Merge remote-tracking branch 'origin/master' into 2961-load-tab-partials
authorPeter Amstutz <peter.amstutz@curoverse.com>
Mon, 9 Jun 2014 13:09:20 +0000 (09:09 -0400)
committerPeter Amstutz <peter.amstutz@curoverse.com>
Mon, 9 Jun 2014 13:09:20 +0000 (09:09 -0400)
1  2 
apps/workbench/app/controllers/application_controller.rb
apps/workbench/app/controllers/jobs_controller.rb

index d225b6e93c7b1f4c57302d102fc4fd54b42752a5,7d49f55e33625c4eaa477762ba7652192b58e924..78884a020ef781b9840b5ced4ae383d204869a1f
@@@ -87,15 -87,7 +87,15 @@@ class ApplicationController < ActionCon
      @objects = @objects.filter(@filters).limit(@limit).offset(@offset).all
      respond_to do |f|
        f.json { render json: @objects }
 -      f.html { render }
 +      f.html {
 +        if params['tab_pane']
 +          comparable = self.respond_to? :compare
 +          render(partial: 'show_' + params['tab_pane'].downcase,
 +                 locals: { comparable: comparable, objects: @objects })
 +        else
 +          render
 +        end
 +      }
        f.js { render }
      end
    end
        return render_not_found("object not found")
      end
      respond_to do |f|
 +      puts f
        f.json { render json: @object.attributes.merge(href: url_for(@object)) }
        f.html {
 -        if request.method == 'GET'
 -          render
 +        if params['tab_pane']
 +          comparable = self.respond_to? :compare
 +          render(partial: 'show_' + params['tab_pane'].downcase,
 +                 locals: { comparable: comparable, objects: @objects })
          else
 -          redirect_to params[:return_to] || @object
 +          if request.method == 'GET'
 +            render
 +          else
 +            redirect_to params[:return_to] || @object
 +          end
          end
        }
        f.js { render }
      @new_resource_attrs ||= params[model_class.to_s.underscore.singularize]
      @new_resource_attrs ||= {}
      @new_resource_attrs.reject! { |k,v| k.to_s == 'uuid' }
-     @object ||= model_class.new @new_resource_attrs
-     @object.save!
-     show
+     @object ||= model_class.new @new_resource_attrs, params["options"]
+     if @object.save
+       respond_to do |f|
+         f.json { render json: @object.attributes.merge(href: url_for(@object)) }
+         f.html {
+           redirect_to @object
+         }
+         f.js { render }
+       end
+     else
+       self.render_error status: 422
+     end
    end
  
    def destroy
    end
  
    def current_user
 +    return Thread.current[:user] if Thread.current[:user]
 +
      if Thread.current[:arvados_api_token]
 -      Thread.current[:user] ||= User.current
 +      if session[:user]
 +        if session[:user][:is_active] != true
 +          Thread.current[:user] = User.current
 +        else
 +          Thread.current[:user] = User.new(session[:user])
 +        end
 +      else
 +        Thread.current[:user] = User.current
 +      end
      else
        logger.error "No API token in Thread"
        return nil
          # call to verify its authenticity.
          if verify_api_token
            session[:arvados_api_token] = params[:api_token]
 +          u = User.current
 +          session[:user] = {
 +            email: u.email,
 +            first_name: u.first_name,
 +            last_name: u.last_name,
 +            is_active: u.is_active,
 +            is_admin: u.is_admin,
 +            prefs: u.prefs
 +          }
            if !request.format.json? and request.method == 'GET'
              # Repeat this request with api_token in the (new) session
              # cookie instead of the query string.  This prevents API
    }
  
    def check_user_notifications
 +    return if params['tab_pane']
 +
      @notification_count = 0
      @notifications = []
  
index 03d5cb38275a3d9361eee366430ed8208dd7ab04,841d3a9fdc6827486a7f54948e6c63ee4b3b5b1a..dc31229189e9a7be5636eb38ec58f9aa510aec0e
@@@ -1,8 -1,6 +1,8 @@@
  class JobsController < ApplicationController
  
    def generate_provenance(jobs)
 +    return if params['tab_pane'] != "Provenance"
 +
      nodes = []
      collections = []
      jobs.each do |j|
        generate_provenance(@objects)
      else
        @limit = 20
 -      super
      end
 +    super
    end
  
+   def cancel
+     @object.cancel
+     redirect_to @object
+   end
    def show
      generate_provenance([@object])
 +    super
    end
  
    def index_pane_list
@@@ -47,6 -49,6 +52,6 @@@
    end
  
    def show_pane_list
-     %w(Attributes Provenance Metadata JSON API)
+     %w(Status Attributes Provenance Metadata JSON API)
    end
  end