+<%# 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 %>
<% 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>