+<%# Copyright (C) The Arvados Authors. All rights reserved.
+
+SPDX-License-Identifier: AGPL-3.0 %>
+
<%
if (controller.andand.action_name == 'show') and params[:uuid]
+ check_trash = controller.model_class.include_trash(true).where(uuid: params[:uuid])
class_name = controller.model_class.to_s.underscore
class_name_h = class_name.humanize(capitalize: false)
req_item = safe_join([class_name_h, " with UUID ",
- raw("<code>"), params[:uuid], raw("</code>")], "")
+ raw("<code>"), params[:uuid], raw("</code>")], "")
req_item_plain_text = safe_join([class_name_h, " with UUID ", params[:uuid]])
else
req_item = "page you requested"
+ req_item_plain_text = "page you requested"
end
%>
+ <% untrash_object = nil %>
+
+ <% if check_trash.andand.any? %>
+ <% object = check_trash.first %>
+ <% if object.respond_to?(:is_trashed) && object.is_trashed %>
+ <% untrash_object = object %>
+ <% else %>
+ <% owner = object %>
+ <% while true %>
+ <% owner = Group.where(uuid: owner.owner_uuid).include_trash(true).first %>
+ <% if owner.nil? %>
+ <% break %>
+ <% end %>
+ <% if owner.is_trashed %>
+ <% untrash_object = owner %>
+ <% break %>
+ <% end %>
+ <% end %>
+ <% end %>
+ <% end %>
+
+ <% if !untrash_object.nil? %>
+ <h2>Trashed</h2>
+
+ <% untrash_name = if !untrash_object.name.blank? then
+ "'#{untrash_object.name}'"
+ else
+ untrash_object.uuid
+ end %>
+
+ <p>The <%= req_item %> is
+ <% if untrash_object == object %>
+ in the trash.
+ <% else %>
+ owned by trashed project <%= untrash_name %> (<code><%= untrash_object.uuid %></code>).
+ <% end %>
+ </p>
+
+ <p>
+ It will be permanently deleted at <%= render_localized_date(untrash_object.delete_at) %>.
+ </p>
+
+ <p>
+ <% if untrash_object != object %>
+ You must untrash the owner project to access this <%= class_name_h %>.
+ <% end %>
+ <% if untrash_object.is_trashed and untrash_object.editable? %>
+ <% msg = "Untrash '#{untrash_name}'?" %>
+ <%= link_to({action: 'untrash_items', selection: [untrash_object.uuid], controller: :trash_items}, remote: true, method: :post,
+ title: "Untrash", style: 'cursor: pointer;') do %>
+
+ <% end %>
+
+ <%= form_tag url_for({action: 'untrash_items', controller: :trash_items}), {method: :post} %>
+ <%= hidden_field_tag :selection, [untrash_object.uuid] %>
+ <button type="submit">Click here to untrash <%= untrash_name %> <i class="fa fa-fw fa-recycle"></i></button>
+ <% end %>
+ </p>
+
+ <% else %>
+
<h2>Not Found</h2>
-<p>The <%= req_item %> was not found.
+<p>The <%= req_item %> was not found.</p>
+
+<% if !current_user %>
+
+ <p>
+ <%= link_to(arvados_api_client.arvados_login_url(return_to: strip_token_from_path(request.url)),
+ {class: "btn btn-primary report-issue-modal-window"}) do %>
+ <i class="fa fa-fw fa-sign-in"></i> Log in
+ <% end %>
+ to view private data.
+ </p>
+
+<% elsif class_name %>
+
+ <p>
+ Perhaps you'd like to <%= link_to("browse all
+ #{class_name_h.pluralize}", action: :index, controller:
+ class_name.tableize) %>?
+ </p>
-<% if class_name %>
-Perhaps you'd like to
-<%= link_to("browse all #{class_name_h.pluralize}", action: :index, controller: class_name.tableize) %>?
<% end %>
-</p>
+<% end %>
-<p>
-<br/>
<% error_message = "The #{req_item_plain_text} was not found." %>
-<strong>Would you like to report this problem?</strong></br>
-<%= link_to report_issue_popup_path(popup_type: 'report', current_location: request.fullpath, action_method: 'post', error_message: error_message),
- {class: 'btn btn-primary report-issue-modal-window', 'data-toggle' => "modal", 'data-target' => '#report-issue-modal-window', :remote => true, return_to: request.url} do %>
- <i class="fa fa-fw fa-support"></i> Report problem
-<% end %>
-</p>
+<%= render :partial => "report_error", :locals => {error_message: error_message, error_type: '404'} %>