From 43f38dbf96127a4036be5e8b01f9e82d825ad949 Mon Sep 17 00:00:00 2001 From: Brett Smith Date: Thu, 15 May 2014 10:55:47 -0400 Subject: [PATCH] 2753: Workbench shows Collection files in a tree. --- .../views/collections/_show_files.html.erb | 141 +++++++++++------- 1 file changed, 87 insertions(+), 54 deletions(-) diff --git a/apps/workbench/app/views/collections/_show_files.html.erb b/apps/workbench/app/views/collections/_show_files.html.erb index 4b63162be0..4cc262ecc0 100644 --- a/apps/workbench/app/views/collections/_show_files.html.erb +++ b/apps/workbench/app/views/collections/_show_files.html.erb @@ -1,7 +1,45 @@ <% content_for :css do %> -.file-list-inline-image { - width: 50%; +ul.collection_files { + line-height: 2.5em; + list-style-type: none; + background: #FFF; +} + +ul.collection_files li { + clear: both; +} + +li.collection_files_row_even { + background: #FFF; +} + +li.collection_files_row_odd { + background: #EEE; +} + +.collection_files_inline { + clear: both; + width: 80%; height: auto; + max-height: 6em; + margin: 0 1em; +} + +.collection_files_name { + padding-left: .5em; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.collection_files_name i.fa { + display: block-inline; + width: 1.75em; + text-align: center; +} + +.collection_files_buttons { + float: right; } <% end %> @@ -17,59 +55,54 @@ <% end %> - - - - - - - - - - - - - - - - - - <% if @object then @object.files.sort_by{|f|[f[0],f[1]]}.each do |file| %> - <% file_path = CollectionsHelper::file_path file %> - - - - - - - - - - - <% end; end %> - -
pathfilesized/l
- <%= check_box_tag 'uuids[]', @object.uuid+'/'+file_path, false, { +<% file_tree = @object.andand.files_tree %> +<% if file_tree.nil? or file_tree.empty? %> +

This collection is empty.

+<% else %> +
    + <% dirstack = [file_tree.first.first] %> + <% file_tree.each_with_index do |(dirname, filename, size), index| %> + <% file_path = CollectionsHelper::file_path([dirname, filename]) %> + <% while dirstack.any? and (dirstack.last != dirname) %> + <% dirstack.pop %>
+ <% end %> +
  • + <% if size.nil? # This is a subdirectory. %> + <% dirstack.push(File.join(dirname, filename)) %> +
    <%= filename %>
    +
      + <% else %> + <% link_params = {controller: 'collections', action: 'show_file', + uuid: @object.uuid, file: file_path, size: size} %> +
      + <%= raw(human_readable_bytes_html(size)) %> + <%= check_box_tag 'uuids[]', "#{@object.uuid}/#{file_path}", false, { :class => 'persistent-selection', :friendly_type => "File", :friendly_name => "#{@object.uuid}/#{file_path}", - :href => "#{url_for controller: 'collections', action: 'show', id: @object.uuid }/#{file_path}", - :title => "Click to add this item to your selection list" + :href => url_for(controller: 'collections', action: 'show_file', + uuid: @object.uuid, file: file_path), + :title => "Include #{file_path} in your selections", } %> -
  • - <%= file[0] %> - - <%= link_to (if CollectionsHelper::is_image file[1] - image_tag "#{url_for @object}/#{file_path}", class: "file-list-inline-image" - else - file[1] - end), - {controller: 'collections', action: 'show_file', uuid: @object.uuid, file: file_path, size: file[2], disposition: 'inline'}, - {title: file_path} %> - - <%= raw(human_readable_bytes_html(file[2])) %> - -
    - <%= link_to raw(''), {controller: 'collections', action: 'show_file', uuid: @object.uuid, file: file_path, size: file[2], disposition: 'attachment'}, {class: 'btn btn-info btn-sm', title: 'Download'} %> -
    -
    + <%= link_to(raw(''), + link_params.merge(disposition: 'inline'), + {title: "View #{file_path}", class: "btn btn-info btn-sm"}) %> + <%= link_to(raw(''), + link_params.merge(disposition: 'attachment'), + {title: "Download #{file_path}", class: "btn btn-info btn-sm"}) %> + + <% if CollectionsHelper::is_image(filename) %> +
    <%= filename %>
    +
    + <%= link_to(image_tag("#{url_for @object}/#{file_path}"), + link_params.merge(disposition: 'inline'), + {title: file_path}) %> +
    + <% else %> +
    <%= filename %>
    + <% end %> + + <% end # if file or directory %> + <% end # file_tree.each %> + +<% end # if file_tree %> -- 2.30.2