<% # Redmine plugin for Document Management System "Features" # # 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. %> <% cls = link ? 'dmsf-gray' : '' %> <% file_view_url = url_for({ controller: :dmsf_files, action: 'view', id: dmsf_file }) %> <%= link_to h(link ? link.name : dmsf_file.title), file_view_url, target: '_blank', rel: 'noopener', class: "icon icon-file #{DmsfHelper.filetype_css(dmsf_file.name)}", title: h(dmsf_file.last_revision.try(:tooltip)), 'data-downloadurl' => "#{dmsf_file.last_revision.detect_content_type}:#{h(dmsf_file.name)}:#{file_view_url}" %> (<%= number_to_human_size dmsf_file.last_revision.size %>) <%= link_to '', view_dmsf_file_url(dmsf_file, download: dmsf_file.last_revision, disposition: 'attachment'), title: l(:title_title_version_version_download, title: h(dmsf_file.last_revision.title), version: dmsf_file.last_revision.version), class: 'icon icon-download dmsf-revision-action-button' %> <%= dmsf_file.description unless dmsf_file.description.blank? %> <%= dmsf_file.last_revision.user %>, <%= format_time(dmsf_file.last_revision.updated_at) %> <% # Command icons %> <% # Details %> <% if User.current.allowed_to? :file_manipulation, dmsf_file.project %> <%= link_to '', dmsf_file_path(id: dmsf_file, back_url: issue_path(@issue)), title: l(:link_details, title: h(dmsf_file.last_revision.title)), class: 'icon-only icon-edit' %> <% else %> <% end %> <% # Email %> <%= link_to '', entries_operations_dmsf_path(id: dmsf_file.project_id, email_entries: 'email', ids: ["file-#{dmsf_file.id}"], back_url: issue_path(@issue)), method: :post, title: l(:heading_send_documents_by_email), class: 'icon-only icon-email-disabled' %> <% # Lock %> <% if !dmsf_file.locked? %> <%= link_to '', lock_dmsf_files_path(id: dmsf_file, back_url: issue_path(@issue)), title: l(:title_lock_file), class: 'icon-only icon-lock' %> <% elsif dmsf_file.unlockable? && (!dmsf_file.locked_for_user? || User.current.allowed_to?(:force_file_unlock, dmsf_file.project)) %> <%= link_to '', unlock_dmsf_files_path(id: dmsf_file, back_url: issue_path(@issue)), title: dmsf_file.locked_title, class: 'icon-only icon-unlock' %> <% else %> <% end %> <% if !dmsf_file.locked? %> <% # Notifications %> <% if dmsf_file.notification %> <%= link_to '', notify_deactivate_dmsf_files_path(id: dmsf_file, back_url: issue_path(@issue)), title: l(:title_notifications_active_deactivate), class: 'icon-only icon-email' %> <% else %> <%= link_to '', notify_activate_dmsf_files_path(id: dmsf_file, back_url: issue_path(@issue)), title: l(:title_notifications_not_active_activate), class: 'icon-only icon-email-add' %> <% end %> <% else %> <% end %> <% # Delete %> <% if @issue.attributes_editable? && ((link && User.current.allowed_to?(:file_manipulation, dmsf_file.project)) || (!link && User.current.allowed_to?(:file_delete, dmsf_file.project))) %> <%= link_to '', link ? dmsf_link_path(link, commit: 'yes', back_url: issue_path(@issue)) : dmsf_file_path(id: dmsf_file, commit: 'yes', back_url: issue_path(@issue)), data: { confirm: l(:text_are_you_sure) }, method: :delete, title: l(:button_delete), class: 'icon-only icon-del' %> <% end %> <% # Approval workflow %> <% wf = DmsfWorkflow.find_by(id: dmsf_file.last_revision.dmsf_workflow_id) if dmsf_file.last_revision.dmsf_workflow_id %> <%= render partial: 'dmsf_workflows/approval_workflow_button', locals: { file: dmsf_file, file_approval_allowed: User.current.allowed_to?(:file_approval, dmsf_file.project), workflows_available: DmsfWorkflow.where(['project_id = ? OR project_id IS NULL', dmsf_file.project_id]).exists?, project: dmsf_file.project, wf: wf, dmsf_link_id: nil, back_url: issue_path(@issue) } %>