Merge branch 'master' into 2776-keep-services-table
[arvados.git] / apps / workbench / app / views / folders / show.html.erb
1 <div class="row row-fill-height">
2   <div class="col-md-6">
3     <div class="panel panel-info">
4       <div class="panel-heading">
5         <h3 class="panel-title">
6           <%= render_editable_attribute @object, 'name', nil, {data: {emptytext: "New folder"}} %>
7         </h3>
8       </div>
9       <div class="panel-body">
10         <img src="/favicon.ico" class="pull-right" alt="" style="opacity: 0.3"/>
11         <%= render_editable_attribute @object, 'description', nil, { 'data-emptytext' => "Created: #{@object.created_at.to_s(:long)}", 'data-toggle' => 'manual', 'id' => "#{@object.uuid}-description" } %>
12         <% if @object.attribute_editable? 'description' %>
13         <div style="margin-top: 1em;">
14           <a href="#" class="btn btn-xs btn-default" data-toggle="x-editable" data-toggle-selector="#<%= @object.uuid %>-description"><i class="fa fa-fw fa-pencil"></i> Edit description</a>
15         </div>
16         <% end %>
17       </div>
18     </div>
19   </div>
20   <div class="col-md-3">
21     <div class="panel panel-default">
22       <div class="panel-heading">
23         <h3 class="panel-title">
24           Activity
25         </h3>
26       </div>
27       <div class="panel-body smaller-text">
28         <!--
29         <input type="text" class="form-control" placeholder="Search"/>
30         -->
31         <div style="height:0.5em;"></div>
32         <% if @logs.any? %>
33           <%= render_arvados_object_list_start(@logs, 'Show all activity',
34                 logs_path(filters: [['object_uuid','=',@object.uuid]].to_json)) do |log| %>
35           <p>
36           <%= time_ago_in_words(log.event_at) %> ago: <%= log.summary %>
37             <% if log.object_uuid %>
38             <%= link_to_if_arvados_object log.object_uuid, link_text: raw('<i class="fa fa-hand-o-right"></i>') %>
39             <% end %>
40           </p>
41           <% end %>
42         <% else %>
43           <p>
44             Created: <%= @object.created_at.to_s(:long) %>
45           </p>
46           <p>
47             Last modified: <%= @object.modified_at.to_s(:long) %> by <%= link_to_if_arvados_object @object.modified_by_user_uuid, friendly_name: true %>
48           </p>
49         <% end %>
50       </div>
51     </div>
52   </div>
53   <div class="col-md-3">
54     <div class="panel panel-default">
55       <div class="panel-heading">
56         <h3 class="panel-title">
57           Sharing and permissions
58         </h3>
59       </div>
60       <div class="panel-body">
61         <!--
62         <input type="text" class="form-control" placeholder="Search"/>
63         -->
64         <div style="height:0.5em;"></div>
65         <p>Owner: <%= link_to_if_arvados_object @object.owner_uuid, friendly_name: true %></p>
66         <% if @share_links.any? %>
67         <p>Shared with:
68           <% @share_links.andand.each do |link| %>
69           <br /><%= link_to_if_arvados_object link.tail_uuid, friendly_name: true %>
70           <% end %>
71         </p>
72         <% end %>
73       </div>
74     </div>
75   </div>
76 </div>
77
78 <% if @show_cards %>
79 <!-- disable cards section until we have bookmarks -->
80 <div class="row">
81   <% @objects[0..3].each do |object| %>
82   <div class="card arvados-object">
83     <div class="card-top blue">
84       <a href="#">
85         <img src="/favicon.ico" alt=""/>
86       </a>
87     </div>
88     <div class="card-info">
89       <span class="title"><%= @objects.name_for(object) || object.class_for_display %></span>
90       <div class="desc"><%= object.respond_to?(:description) ? object.description : object.uuid %></div>
91     </div>
92     <div class="card-bottom">
93       <%= render :partial => "show_object_button", :locals => {object: object, htmloptions: {class: 'btn-default btn-block'}} %>
94     </div>
95   </div>
96   <% end %>
97 </div>
98 <!-- end disabled cards section -->
99 <% end %>
100
101 <div class="row">
102   <div class="col-md-12">
103     <div class="panel panel-info">
104       <div class="panel-heading">
105         <div class="row">
106           <div class="col-md-6">
107             <h3 class="panel-title" style="vertical-align:middle;">
108               Contents
109             </h3>
110           </div>
111           <div class="col-md-6">
112             <div class="input-group input-group-sm pull-right">
113               <input type="text" class="form-control search-folder-contents" placeholder="Search folder contents"/>
114             </div>
115           </div>
116         </div>
117       </div>
118       <div class="panel-body">
119         <p>
120         </p>
121         <table class="table table-condensed arv-index">
122           <tbody>
123             <colgroup>
124               <col width="3%" />
125               <col width="8%" />
126               <col width="30%" />
127               <col width="15%" />
128               <col width="15%" />
129               <col width="20%" />
130               <col width="8%" />
131             </colgroup>
132             <% @objects_and_names.each do |object, name_link| %>
133               <tr data-object-uuid="<%= (name_link && name_link.uuid) || object.uuid %>">
134                 <td>
135                   <%= render :partial => "selection_checkbox", :locals => {object: object} %>
136                 </td>
137                 <td>
138                   <%= render :partial => "show_object_button", :locals => {object: object, size: 'xs'} %>
139                 </td>
140                 <td>
141                   <%= render_editable_attribute name_link, 'name', nil, {data: {emptytext: "Unnamed #{object.class_for_display}"}} %>
142                 </td>
143                 <td>
144                   <%= object.content_summary %>
145                 </td>
146                 <td title="<%= object.modified_at %>">
147                   <span>
148                     <%= raw distance_of_time_in_words(object.modified_at, Time.now).sub('about ','~').sub(' ','&nbsp;') + '&nbsp;ago' rescue object.modified_at %>
149                   </span>
150                 </td>
151                 <td class="arvados-uuid">
152                   <%= object.uuid %>
153                 </td>
154                 <td>
155                   <% if @object.editable? %>
156                     <%= link_to({action: 'remove_item', id: @object.uuid, item_uuid: ((name_link && name_link.uuid) || object.uuid)}, method: :delete, remote: true, data: {confirm: "You are about to remove #{object.class_for_display} #{object.uuid} from this folder.\n\nAre you sure?"}, class: 'btn btn-xs btn-default') do %>
157                       Remove <i class="fa fa-fw fa-ban"></i>
158                     <% end %>
159                   <% end %>
160                 </td>
161               </tr>
162             <% end %>
163           </tbody>
164           <thead>
165             <tr>
166               <th>
167               </th>
168               <th>
169               </th>
170               <th>
171                 name
172               </th>
173               <th>
174                 type
175               </th>
176               <th>
177                 modified
178               </th>
179               <th>
180                 uuid
181               </th>
182               <th>
183               </th>
184             </tr>
185           </thead>
186         </table>
187         <p></p>
188       </div>
189     </div>
190   </div>
191 </div>