9043: Remove non-existent "Graph" tab. Fix "false" selection dropdown. Use
[arvados.git] / apps / workbench / app / controllers / container_requests_controller.rb
index 34f892a8362b597aed4189442b3dc177ee9bd421..54e59144e7873648ac149d4c4898905e9bd260b2 100644 (file)
@@ -5,8 +5,8 @@ class ContainerRequestsController < ApplicationController
   }
 
   def show_pane_list
-    panes = %w(Status Log Graph Advanced)
-    if @object and @object.state == 'Uncommitted'
+    panes = %w(Status Log Advanced)
+    if @object.andand.state == 'Uncommitted'
       panes = %w(Inputs) + panes - %w(Log)
     end
     panes
@@ -27,23 +27,25 @@ class ContainerRequestsController < ApplicationController
     if input_obj
       workflow = @object.mounts[:"/var/lib/cwl/workflow.json"][:content]
       workflow[:inputs].each do |input_schema|
-        if input_obj.include? input_schema[:id]
-          required, primary_type, param_id = cwl_input_info(input_schema)
-          if input_obj[param_id] == ""
-            input_obj[param_id] = nil
-          elsif primary_type == "boolean"
-            input_obj[param_id] = input_obj[param_id] == "true"
-          elsif ["int", "long"].include? primary_type
-            input_obj[param_id] = input_obj[param_id].to_i
-          elsif ["float", "double"].include? primary_type
-            input_obj[param_id] = input_obj[param_id].to_f
-          elsif ["File", "Directory"].include? primary_type
-            input_obj[param_id].match /^([0-9a-z]{5}-([0-9a-z]{5})-[0-9a-z]{15})(\/.*)?$/ do |re|
-              c = display_value = Collection.find(re[1])
-              input_obj[param_id] = {"class" => primary_type,
-                                     "location" => "keep:#{c.portable_data_hash}#{re[3]}",
-                                     "arv:collection" => input_obj[param_id]}
-            end
+        if not input_obj.include? input_schema[:id]
+          next
+        end
+        required, primary_type, param_id = cwl_input_info(input_schema)
+        if input_obj[param_id] == ""
+          input_obj[param_id] = nil
+        elsif primary_type == "boolean"
+          input_obj[param_id] = input_obj[param_id] == "true"
+        elsif ["int", "long"].include? primary_type
+          input_obj[param_id] = input_obj[param_id].to_i
+        elsif ["float", "double"].include? primary_type
+          input_obj[param_id] = input_obj[param_id].to_f
+        elsif ["File", "Directory"].include? primary_type
+          re = CollectionsHelper.match_uuid_with_optional_filepath(input_obj[param_id])
+          if re
+            c = Collection.find(re[1])
+            input_obj[param_id] = {"class" => primary_type,
+                                   "location" => "keep:#{c.portable_data_hash}#{re[4]}",
+                                   "arv:collection" => input_obj[param_id]}
           end
         end
       end