Merge branch '3824-crunch-container-setup' closes #3824
[arvados.git] / apps / workbench / app / helpers / provenance_helper.rb
index e4ef470595955bad022d910fa3ee214ac7212010..4faad99e6d8f9e81bb33b0a11f6554e9588fcea9 100644 (file)
@@ -149,8 +149,9 @@ module ProvenanceHelper
         end
         unless node == ""
           node += "']"
-          gr += "\"#{node}\" [label=\"#{node}\"];\n"
-          gr += edge(job_uuid(job), node, {:label => prefix})
+          node_value = encode_quotes node
+          gr += "\"#{node_value}\" [label=\"#{node_value}\"];\n"
+          gr += edge(job_uuid(job), node_value, {:label => prefix})
         end
       when String
         return '' if sp.empty?
@@ -159,8 +160,9 @@ module ProvenanceHelper
           gr += edge(job_uuid(job), m, {:label => prefix})
           gr += generate_provenance_edges(m)
         elsif @opts[:all_script_parameters]
-          gr += "\"#{sp}\" [label=\"#{sp}\"];\n"
-          gr += edge(job_uuid(job), sp, {:label => prefix})
+          sp_value = encode_quotes sp
+          gr += "\"#{sp_value}\" [label=\"#{sp_value}\"];\n"
+          gr += edge(job_uuid(job), sp_value, {:label => prefix})
         end
       end
       gr
@@ -263,6 +265,9 @@ module ProvenanceHelper
       gr
     end
 
+    def encode_quotes value
+      value.andand.gsub("\"", "\\\"")
+    end
   end
 
   def self.create_provenance_graph(pdata, svgId, opts={})