3114: Merge branch 'master' into 3114-copy-to-project
[arvados.git] / apps / workbench / app / views / collections / show.html.erb
index 0be6705a9df7ddf25dd44082aa5888a367a21bca..0d52b088c47a91f59bc1f46092d4a73e3fc51a34 100644 (file)
@@ -1,36 +1,36 @@
+<% content_for :tab_line_buttons do %>
+  <%= link_to(
+      choose_projects_path(
+       title: 'Copy to project...',
+       my_root_selectable: true,
+       action_name: 'Copy',
+       action_href: actions_path,
+       action_method: 'post',
+       action_data: {
+         copy_selections_into_project: true,
+         selection: @name_link.andand.uuid || @object.uuid,
+         selection_param: 'uuid',
+         success: 'redirect-to-created-object'
+       }.to_json),
+      { class: "btn btn-sm btn-primary arv-move-to-project", remote: true, method: 'get' }) do %>
+    <i class="fa fa-fw fa-copy"></i> Copy to project...
+  <% end %>
+<% end %>
+
 <div class="row row-fill-height">
   <div class="col-md-6">
     <div class="panel panel-info">
       <div class="panel-heading">
        <h3 class="panel-title">
-          <% default_name = "Collection #{@object.uuid}" %>
-         <% name_html = render_editable_attribute @object, 'name', nil, {data: {emptytext: default_name}} %>
-          <%= (/\S/.match(name_html)) ? name_html : default_name %>
+         <%= @name_link.andand.name || @object.uuid %>
        </h3>
       </div>
       <div class="panel-body">
         <img src="/favicon.ico" class="pull-right" alt="" style="opacity: 0.3"/>
-        <% if not (@output_of.andand.any? or @log_of.andand.any?) %>
-          <p><i>No source information available.</i></p>
-        <% end %>
-
-        <% if @output_of.andand.any? %>
-          <p>Output of jobs:<br />
-          <%= render_arvados_object_list_start(@output_of, 'Show all jobs',
-                jobs_path(filter: [['output', '=', @object.uuid]].to_json)) do |job| %>
-          <%= link_to_if_arvados_object(job, friendly_name: true) %><br />
-          <% end %>
-          </p>
-        <% end %>
+       <p><i>Content hash:</i><br />
+         <span class="arvados-uuid"><%= @object.uuid %></span></p>
 
-        <% if @log_of.andand.any? %>
-          <p>Log of jobs:<br />
-          <%= render_arvados_object_list_start(@log_of, 'Show all jobs',
-                jobs_path(filter: [['log', '=', @object.uuid]].to_json)) do |job| %>
-          <%= link_to_if_arvados_object(job, friendly_name: true) %><br />
-          <% end %>
-          </p>
-        <% end %>
+        <%= render partial: "show_source_summary" %>
       </div>
     </div>
   </div>
        <input type="text" class="form-control" placeholder="Search"/>
         -->
        <div style="height:0.5em;"></div>
-        <% if not @logs.andand.any? %>
+        <% name_or_object = @name_link.andand.uuid ? @name_link : @object %>
+        <% if name_or_object.created_at and not @logs.andand.any? %>
           <p>
-            Created: <%= @object.created_at.to_s(:long) %>
+            Created: <%= name_or_object.created_at.to_s(:long) %>
           </p>
           <p>
-            Last modified: <%= @object.modified_at.to_s(:long) %> by <%= link_to_if_arvados_object @object.modified_by_user_uuid, friendly_name: true %>
+            Last modified: <%= name_or_object.modified_at.to_s(:long) %> by <%= link_to_if_arvados_object name_or_object.modified_by_user_uuid, friendly_name: true %>
           </p>
         <% else %>
           <%= render_arvados_object_list_start(@logs, 'Show all activity',
-                logs_path(filters: [['object_uuid','=',@object.uuid]].to_json)) do |log| %>
+                logs_path(filters: [['object_uuid','=',name_or_object.uuid]].to_json)) do |log| %>
           <p>
-          <%= time_ago_in_words(log.event_at) %> ago: <%= log.summary %>
+          <%= time_ago_in_words(log.event_at) rescue 'unknown time' %> ago: <%= log.summary %>
             <% if log.object_uuid %>
             <%= link_to_if_arvados_object log.object_uuid, link_text: raw('<i class="fa fa-hand-o-right"></i>') %>
             <% end %>
         </div>
 
        <div style="height:0.5em;"></div>
-        <% if @folders.andand.any? %>
-          <p>Included in folders:<br />
-          <%= render_arvados_object_list_start(@folders, 'Show all folders',
-                links_path(filter: [['head_uuid', '=', @object.uuid],
-                                    ['link_class', '=', 'name']].to_json)) do |folder| %>
-          <%= link_to_if_arvados_object(folder, friendly_name: true) %><br />
+        <% if @projects.andand.any? %>
+          <p>Included in projects:<br />
+          <%= render_arvados_object_list_start(@projects, 'Show all projects',
+                links_path(filters: [['head_uuid', '=', @object.uuid],
+                                     ['link_class', '=', 'name']].to_json)) do |project| %>
+            <%= link_to_if_arvados_object(project, friendly_name: true) %><br />
           <% end %>
           </p>
         <% end %>
         <% if @permissions.andand.any? %>
           <p>Readable by:<br />
           <%= render_arvados_object_list_start(@permissions, 'Show all permissions',
-                links_path(filter: [['head_uuid', '=', @object.uuid],
+                links_path(filters: [['head_uuid', '=', @object.uuid],
                                     ['link_class', '=', 'permission']].to_json)) do |link| %>
           <%= link_to_if_arvados_object(link.tail_uuid, friendly_name: true) %><br />
           <% end %>
   </div>
 </div>
 
-<%= render file: 'application/show.html.erb' %>
+<% content_for :tab_line_buttons do %>
+  <span style="padding-left: 1em">Collection storage status:</span>
+  <%= render partial: 'toggle_persist', locals: { uuid: @object.uuid, current_state: (@is_persistent ? 'persistent' : 'cache') } %>
+<% end %>
+
+<%= render file: 'application/show.html.erb', locals: local_assigns %>