12765: Add test for untrash on 404 page
[arvados.git] / apps / workbench / app / views / application / 404.html.erb
index 9750b9178b3740561459b0168383ceb065757abd..94a6520873cc1a0cbc703aed52371a9b3be28ed6 100644 (file)
@@ -16,20 +16,26 @@ SPDX-License-Identifier: AGPL-3.0 %>
    end
 %>
 
-  <% if check_trash.andand.any? %>
-    <h2>Trashed</h2>
-
-      <% object = check_trash.first %>
+  <% untrash_object = nil %>
 
+  <% if check_trash.andand.any? %>
+    <% object = check_trash.first %>
+    <% if object.respond_to?(:is_trashed) && object.is_trashed %>
       <% untrash_object = object %>
-      <% while !untrash_object.is_trashed %>
-        <% owner = Group.where(uuid: untrash_object.owner_uuid).include_trash(true).first %>
-        <% if owner.nil? then %>
-          <% break %>
-        <% else %>
+    <% else %>
+      <% owner = Group.where(uuid: object.owner_uuid).include_trash(true).first %>
+      <% while !owner.nil? && !owner.is_trashed %>
+        <% if !owner.nil? and owner.is_trashed then %>
           <% untrash_object = owner %>
+          <% break %>
         <% end %>
+        <% owner = Group.where(uuid: owner.owner_uuid).include_trash(true).first %>
       <% end %>
+    <% end %>
+  <% end %>
+
+  <% if !untrash_object.nil? %>
+    <h2>Trashed</h2>
 
       <% untrash_name = if !untrash_object.name.blank? then
                  "'#{untrash_object.name}'"
@@ -45,7 +51,6 @@ SPDX-License-Identifier: AGPL-3.0 %>
       <% end %>
     </p>
 
-
     <p>
       It will be permanently deleted at <%= render_localized_date(untrash_object.delete_at) %>.
     </p>
@@ -54,7 +59,7 @@ SPDX-License-Identifier: AGPL-3.0 %>
     <% if untrash_object != object %>
       You must untrash the owner project to access this <%= class_name_h %>.
     <% end %>
-      <% if untrash_object.editable? %>
+      <% 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 %>