X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/8a504ad561c1ffbafee8a7bc8da551f9d4b9a29e..2ff5dd54e5daf4dfed3dfd07d161681fc87fe8ff:/apps/workbench/app/views/application/404.html.erb?ds=sidebyside
diff --git a/apps/workbench/app/views/application/404.html.erb b/apps/workbench/app/views/application/404.html.erb
index aa1ffda017..61cbd67005 100644
--- a/apps/workbench/app/views/application/404.html.erb
+++ b/apps/workbench/app/views/application/404.html.erb
@@ -1,9 +1,14 @@
+<%# 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(""), params[:uuid], raw("
")], "")
+ raw(""), params[:uuid], raw("
")], "")
req_item_plain_text = safe_join([class_name_h, " with UUID ", params[:uuid]])
else
req_item = "page you requested"
@@ -11,6 +16,67 @@
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? %>
+
The <%= req_item %> is
+ <% if untrash_object == object %>
+ in the trash.
+ <% else %>
+ owned by trashed project <%= untrash_name %> (<%= untrash_object.uuid %>
).
+ <% end %>
+
+ It will be permanently deleted at <%= render_localized_date(untrash_object.delete_at) %>. +
+ ++ <% 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] %> + + <% end %> +
+ + <% else %> +The <%= req_item %> was not found.
@@ -18,8 +84,11 @@ <% if !current_user %>- (I notice you are not logged in. If you're looking for a private - page, you'll need to <%=link_to 'log in', arvados_api_client.arvados_login_url(return_to: strip_token_from_path(request.url))%> first.) + <%= 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 %> + Log in + <% end %> + to view private data.
<% elsif class_name %> @@ -32,5 +101,7 @@ <% end %> +<% end %> + <% error_message = "The #{req_item_plain_text} was not found." %> <%= render :partial => "report_error", :locals => {error_message: error_message, error_type: '404'} %>