Merge branch '2411-check-copyright'
[arvados.git] / apps / workbench / app / views / application / _show_text_with_locators.html.erb
index f25bd2b4c91fadd92eafbbb2cea0d68203c362f3..273ae1cebb779aa2a6e813f1488baa96086a603c 100644 (file)
@@ -1,3 +1,7 @@
+<%# Copyright (C) The Arvados Authors. All rights reserved.
+
+SPDX-License-Identifier: AGPL-3.0 %>
+
 <%# The locators in the given text are expected to be of the form JSON_KEEP_LOCATOR_REGEXP %>
 
 <% data_height = data_height || 100 %>
@@ -5,12 +9,27 @@
     <% text_data.each_line do |l| %>
       <% text_part = l %>
       <% match = keep_locator_in_json l %>
-      <% if match %>
-        <% text_part = match[1] %>
-        <% rindex = match[2].rindex('"'); match2 = match[2][0..rindex-1] %>
-        <% pdh_readable = object_readable(match2) %>
-        <% quote_char = '"' %>
-      <% end %>
-      <span style="white-space: pre-wrap; margin: none;"><%= text_part %><% if match %><% if pdh_readable then %><%= link_to_arvados_object_if_readable(match[3], match[3], friendly_name: true) %><%= link_to_arvados_object_if_readable(match2, match2, link_text: match[4]) %><% else %><%= match2%><% end %><%=quote_char+match[5]%><br/><% end %></span>
+
+      <%
+        if match
+          text_part = match[1]
+          rindex = match[2].rindex('"'); match2 = match[2][0..rindex-1]
+          quote_char = '"'
+
+          pdh_readable = object_readable(match2)
+          file_link = ''
+          if pdh_readable and match[4].size > 0
+            link_params = {controller: 'collections', action: 'show_file', uuid: match[3], file: match[4][1..-1]}
+            preview_allowed = preview_allowed_for(match[4])
+            if preview_allowed
+              file_link = link_to(raw(match[4]), link_params.merge(disposition: 'inline'))
+            else
+              file_link = link_to(raw(match[4]), link_params.merge(disposition: 'attachment'))
+            end
+          end
+        end
+      %>
+
+      <span style="white-space: pre-wrap; margin: none;"><%= text_part %><% if match %><% if pdh_readable then %><%= link_to_arvados_object_if_readable(match[3], match[3], friendly_name: true) %><%= file_link%><% else %><%= match2%><% end %><%=quote_char+match[5]%><br/><% end %></span>
     <% end %>
   </div>