<% # encoding: utf-8 # # Redmine plugin for Document Management System "Features" # # Copyright © 2011 Vít Jonáš # Copyright © 2012 Daniel Munn # Copyright © 2011-18 Karel Pičman # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. %> <% html_title l(:dmsf) %>
<% if @folder_manipulation_allowed && !@system_folder %> <% if @folder.nil? %> <%= link_to(l(:button_edit), edit_root_dmsf_path(:id => @project), :title => l(:link_edit, :title => l(:link_documents)), :class => 'icon icon-edit') %> <% elsif !@locked_for_user %> <%= link_to(l(:button_edit), edit_dmsf_path(:id => @project, :folder_id => @folder), :title => l(:link_edit, :title => h(@folder.title)), :class => 'icon icon-edit') %> <% end %> <% if @folder && (!@locked_for_user || User.current.allowed_to?(:force_file_unlock, @project)) %> <% if @folder.locked? %> <%= link_to_if(@folder.unlockable?, l(:button_unlock), unlock_dmsf_path(:id => @project, :folder_id => @folder, :current => request.url), :title => l(:title_unlock_folder), :class => 'icon icon-unlock') %> <% else %> <%= link_to(l(:button_lock), lock_dmsf_path(:id => @project, :folder_id => @folder, :current => request.url), :title => l(:title_lock_folder), :class => 'icon icon-lock') %> <% end %> <% end %> <% if !@locked_for_user && ((@folder && @folder.notification) || (!@folder && @project.dmsf_notification)) %> <%= link_to(l(:label_notifications_off), notify_deactivate_dmsf_path(:id => @project, :folder_id => @folder), :title => l(:title_notifications_active_deactivate), :class => 'icon icon-email') %> <% else %> <%= link_to(l(:label_notifications_on), notify_activate_dmsf_path(:id => @project, :folder_id => @folder), :title => l(:title_notifications_not_active_activate), :class => 'icon icon-email-add') %> <% end %> <% if @file_manipulation_allowed && !@locked_for_user %> <%= link_to(l(:label_link_from), new_dmsf_link_path(:project_id => @project.id, :dmsf_folder_id => @folder ? @folder.id : @folder, :type => 'link_from'), :title => l(:title_create_link), :class => 'icon icon-link') %> <% end %> <%= link_to(l(:link_create_folder), new_dmsf_path(:id => @project, :parent_id => @folder), :title => l(:link_create_folder), :class => 'icon icon-add') unless @locked_for_user %> <% end %> <%= link_to_if(@trash_enabled, l(:link_trash_bin), trash_dmsf_path(@project), :title => l(:link_trash_bin), :class => 'icon icon-del') if @trash_visible %>
<%= render(:partial => 'path', :locals => {:folder => @folder, :filename => nil, :title => nil}) %>
<%= textilizable(@folder ? @folder.description : @project.dmsf_description) %>
<%= error_messages_for('dmsf_workflow') %> <%= form_tag(entries_operations_dmsf_path(:id => @project, :folder_id => @folder), :method => :post, :class => 'dmsf_entries', :id => 'entries_form', :data => {:cm_url => dmsf_context_menu_path}) do %> <%= hidden_field_tag('action') %> <% if !@system_folder %>
<%= submit_tag(l(:button_download), :title => l(:title_download_checked), :name => 'download_entries', :class => 'toggle-selection') if @file_view_allowed %> <%= submit_tag(l(:field_mail), :title => l(:title_send_checked_by_email), :name => 'email_entries', :class => 'toggle-selection') if (@file_view_allowed && User.current.allowed_to?(:email_documents, @project)) %> <% if @file_delete_allowed %> <%= submit_tag(l(:button_delete), :title => l(:title_delete_checked), :name => 'delete_entries', :class => 'toggle-selection') if @file_delete_allowed %> <% end %>
<% end %> <% unless @system_folder %> <% values = @folder ? @folder.custom_field_values : DmsfFolder.new.custom_field_values %> <% unless values.empty? %>
<% custom_value = values.first %> <% custom_value.custom_field.is_required = false %> <% custom_value.value = params[:custom_value].present? ? params[:custom_value] : '' %> <%= h(custom_value.custom_field.name) %>: <%= custom_value.custom_field.format.edit_tag(self, custom_field_tag_id(:dmsf_folder, custom_value.custom_field), custom_field_tag_name(:dmsf_folder, custom_value.custom_field), custom_value, :class => "#{custom_value.custom_field.field_format}_cf", :style => 'width: auto') %>
<% end %> <% end %>
<% if @tree_view %> <%= render(:partial => 'tree_view') %> <% else %> <%= render(:partial => 'list_view') %> <% end %>
<% end %> <%= context_menu %> <%= late_javascript_tag do %> $('#entries_delete_button').click(function () { if (window.confirm("<%= l(:text_are_you_sure) %>")) { $('#entries_form').attr('action', "<%= delete_entries_path(:id => @project, :folder_id => @folder) %>"); $('#entries_form').submit(); } }); $('.list_cf').change(function() { $('#entries_form').attr('action', "<%= tag_changed_path(:id => @project, :folder_id => @folder) %>"); $('#entries_form').submit(); }); <% end %> <% content_for :header_tags do %> <%= stylesheet_link_tag 'jquery.dataTables/datatables.min.css', :plugin => 'redmine_dmsf' %> <%= javascript_include_tag 'jquery.dataTables/datatables.min.js', :plugin => 'redmine_dmsf' %> <% title = DmsfFolder.get_column_position('title') %> <% position = DmsfFolder.get_column_position('position') %> <% commands = DmsfFolder.get_column_position('commands') %> <% position = DmsfFolder.get_column_position('position') %> <% version = DmsfFolder.get_column_position('version') %> <% size_calculated = DmsfFolder.get_column_position('size_calculated') %> <% modified_calculated = DmsfFolder.get_column_position('modified_calculated') %> <% version_calculated = DmsfFolder.get_column_position('version_calculated') %> <% size = DmsfFolder.get_column_position('size') %> <% modified = DmsfFolder.get_column_position('modified') %> <%= late_javascript_tag do %> EASY.schedule.main(function() { $("#browser").dataTable({ orderClasses: false, responsive: { details: false }, language: { url: "<%= plugin_asset_path(:redmine_dmsf, 'javascripts', json_url) %>" }, autoWidth: false, paginate: false, <% if title %> order: [[<%= title %>, "asc"]], <% end %> sortingFixed: [[ <%= position %>, "asc"]], columnDefs: [ { responsivePriority: 1, targets: <%= title %> }, { responsivePriority: 2, targets: <%= commands %> }, { searchable: false, targets: [0, <%= commands %>, <%= position %>, <%= size_calculated %>, <%= modified_calculated %>, <%= version_calculated %>] }, { sortable: false, targets: [0, <%= commands %>] } <% if size %> ,{ iDataSort: <%= size_calculated %>, targets: [ <%= size %> ] } <% end %> <% if modified %> ,{ iDataSort: <%= modified_calculated %>, targets: [ <%= modified %> ] } <% end %> <% if version %> ,{ iDataSort: <%= version_calculated %>, targets: [ <%= version %> ] } <% end %> ], "fnInitComplete": function() { $("#dmsf_buttons").prependTo($("#browser_wrapper div.fg-toolbar")[0]); $("#dmsf_tag").prependTo($("#browser_wrapper div.fg-toolbar")[0]); }, "fnInfoCallback": function( oSettings, iStart, iEnd, iMax, iTotal, sPre ) { <% if @tree_view %> <% if @folder %> return "<%= "#{l(:label_number_of_folders)}: #{@folder.deep_folder_count} #{l(:label_number_of_documents)}: #{@folder.deep_file_count}" %>"; <% else %> return "<%= "#{l(:label_number_of_folders)}: #{DmsfFolder.visible.where(:project_id => @project.id).count + DmsfLink.visible.where(:project_id => @project.id, :target_type => 'DmsfFolder').count}, #{l(:label_number_of_documents)}: #{DmsfFile.visible.where(:project_id => @project.id).count + DmsfLink.visible.where(:project_id => @project.id, :target_type => ['DmsfFile', 'DmsfUrl']).count}" %>"; <% end %> <% else %> return "<%= "#{l(:label_number_of_folders)}: #{@subfolders.count + @dir_links.count}, #{l(:label_number_of_documents)}: #{@files.count + @file_links.count + @url_links.count}" %>"; <% end %> } }); $("[data-downloadurl]").each(function() { var url = this.getAttribute("data-downloadurl"); if (this.addEventListener) { this.addEventListener("dragstart", function(e) { if (e.dataTransfer) { e.dataTransfer.setData("DownloadURL", url); } },false); } }); $("#entries_form").submit(function () { $(this).removeAttr("data-submitted"); }); }); <% end %> <% end %> <% if (@file_manipulation_allowed && !@locked_for_user && !@system_folder) %> <%= render(:partial => 'dmsf_upload/multi_upload', :local => { :lbl => true }) %> <% end %> <% unless @system_folder %> <% other_formats_links do |f| %> <%= f.link_to 'CSV', :url => params, :onclick => "showModal('csv-export-options', '350px'); return false;" %> <% end %> <% end %>