X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/5420797c32e73347a79b5ecd8cdfbd212fd8aae8..f6f07b1856fc0aa32cdf1f96d5bdeb12e9e314ef:/apps/workbench/app/controllers/application_controller.rb diff --git a/apps/workbench/app/controllers/application_controller.rb b/apps/workbench/app/controllers/application_controller.rb index 412f86ce07..41d5566885 100644 --- a/apps/workbench/app/controllers/application_controller.rb +++ b/apps/workbench/app/controllers/application_controller.rb @@ -30,6 +30,7 @@ class ApplicationController < ActionController::Base end def render_error(opts) + opts = {status: 500}.merge opts respond_to do |f| # json must come before html here, so it gets used as the # default format when js is requested by the client. This lets @@ -58,7 +59,19 @@ class ApplicationController < ActionController::Base end def index - @objects ||= model_class.limit(200).all + if params[:limit] + limit = params[:limit].to_i + else + limit = 200 + end + + if params[:offset] + offset = params[:offset].to_i + else + offset = 0 + end + + @objects ||= model_class.limit(limit).offset(offset).all respond_to do |f| f.json { render json: @objects } f.html { render } @@ -96,8 +109,16 @@ class ApplicationController < ActionController::Base def update updates = params[@object.class.to_s.underscore.singularize.to_sym] updates.keys.each do |attr| - if @object.send(attr).is_a? Hash and updates[attr].is_a? String - updates[attr] = Oj.load updates[attr] + if @object.send(attr).is_a? Hash + if updates[attr].is_a? String + updates[attr] = Oj.load updates[attr] + end + if params[:merge] || params["merge_#{attr}".to_sym] + # Merge provided Hash with current Hash, instead of + # replacing. + updates[attr] = @object.send(attr).with_indifferent_access. + deep_merge(updates[attr].with_indifferent_access) + end end end if @object.update_attributes updates @@ -149,7 +170,8 @@ class ApplicationController < ActionController::Base def breadcrumb_page_name (@breadcrumb_page_name || - (@object.friendly_link_name if @object.respond_to? :friendly_link_name)) + (@object.friendly_link_name if @object.respond_to? :friendly_link_name) || + action_name) end def index_pane_list @@ -320,14 +342,14 @@ class ApplicationController < ActionController::Base } } - @@notification_tests.push lambda { |controller, current_user| - Job.limit(1).where(created_by: current_user.uuid).each do - return nil - end - return lambda { |view| - view.render partial: 'notifications/jobs_notification' - } - } + #@@notification_tests.push lambda { |controller, current_user| + # Job.limit(1).where(created_by: current_user.uuid).each do + # return nil + # end + # return lambda { |view| + # view.render partial: 'notifications/jobs_notification' + # } + #} @@notification_tests.push lambda { |controller, current_user| Collection.limit(1).where(created_by: current_user.uuid).each do