5145: while combining colletions, append an integer for any duplicate files.
[arvados.git] / apps / workbench / app / models / pipeline_instance.rb
index e33484642b5e666b9887fc60f35ea24d6aaa9a64..f575e20d4ea964355dda807bbafd5d21a33892e9 100644 (file)
@@ -5,10 +5,14 @@ class PipelineInstance < ArvadosBase
     true
   end
 
-  def friendly_link_name
+  def friendly_link_name lookup=nil
     pipeline_name = self.name
     if pipeline_name.nil? or pipeline_name.empty?
-      template = PipelineTemplate.where(uuid: self.pipeline_template_uuid).first
+      template = if lookup and lookup[self.pipeline_template_uuid]
+                   lookup[self.pipeline_template_uuid]
+                 else
+                   PipelineTemplate.where(uuid: self.pipeline_template_uuid).first
+                 end
       if template
         template.name
       else
@@ -43,10 +47,16 @@ class PipelineInstance < ArvadosBase
     end
   end
 
-  def attribute_editable? attr, *args
-    super && (attr.to_sym == :name ||
-              (attr.to_sym == :components and
-               (self.state == 'New' || self.state == 'Ready')))
+  def editable_attributes
+    %w(name description components)
+  end
+
+  def attribute_editable?(name, ever=nil)
+    if name.to_s == "components"
+      (ever or %w(New Ready).include?(state)) and super
+    else
+      super
+    end
   end
 
   def attributes_for_display
@@ -67,4 +77,8 @@ class PipelineInstance < ArvadosBase
       "\"#{input_name.to_s}\" parameter for #{component[:script]} script in #{component_name} component"
     end
   end
+
+  def textile_attributes
+    [ 'description' ]
+  end
 end