Merge branch 'master' into 3661-copy-move-from-show
[arvados.git] / apps / workbench / app / views / collections / show.html.erb
index 9fc67ac4cdd4744c56e6767637c10820d4b7217c..e1b08290b04559dae63a1b6091d8d4cdc135ce71 100644 (file)
@@ -3,34 +3,34 @@
     <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 %>
+          <% if @name_link.nil? and @object.uuid.match /[0-9a-f]{32}/ %>
+            Content hash <%= @object.portable_data_hash %>
+          <% else %>
+           <%= if @object.respond_to? :name
+                  render_editable_attribute @object, :name
+                else
+                  @name_link.andand.name || @object.uuid
+                end %>
+            <% end %>
        </h3>
       </div>
       <div class="panel-body">
+        <div class="arv-description-as-subtitle">
+          <%= render_editable_attribute @object, 'description', nil, { 'data-emptytext' => "(No description provided)", 'data-toggle' => 'manual' } %>
+        </div>
         <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 %>
-
-        <% 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 %>
+        <% if defined? @same_pdh %>
+          <p>Found in collections:<p>
+          <p>
+            <% @same_pdh.each do |c| %>
+              <%= link_to_if_arvados_object get_object(c.owner_uuid), {:friendly_name => true} %> / <%= link_to_if_arvados_object c, {:friendly_name => true} %><br>
+            <% end %>
           </p>
+        <% else %>
+         <p><i>Content hash:</i><br />
+           <span class="arvados-uuid"><%= link_to @object.portable_data_hash, collection_path(@object.portable_data_hash) %></span></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) if name_or_object.created_at %>
           </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) if name_or_object.modified_at %> 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 %>
         <!--
        <input type="text" class="form-control" placeholder="Search"/>
         -->
+
+        <div id="sharing-button">
+          <%= render partial: 'sharing_button' %>
+        </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 %>
           </p>
         <% end %>
+
       </div>
     </div>
   </div>
 </div>
 
-<%= render file: 'application/show.html.erb' %>
+<%= render file: 'application/show.html.erb', locals: local_assigns %>