From 0881cd661c5d2a2d3acc70db59139f8767741d24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karel=20Pi=C4=8Dman?= Date: Tue, 24 Mar 2015 13:30:18 +0100 Subject: [PATCH] Redmine3 support #364 --- app/controllers/dmsf_controller.rb | 30 +++++++-------------- app/controllers/dmsf_files_controller.rb | 34 +++++++----------------- app/models/dmsf_workflow.rb | 12 ++++++--- lib/redmine_dmsf/webdav/dmsf_resource.rb | 15 ++++------- 4 files changed, 34 insertions(+), 57 deletions(-) diff --git a/app/controllers/dmsf_controller.rb b/app/controllers/dmsf_controller.rb index 35b260e9..574487dc 100644 --- a/app/controllers/dmsf_controller.rb +++ b/app/controllers/dmsf_controller.rb @@ -405,16 +405,11 @@ class DmsfController < ApplicationController end zip.files.each do |f| - log_activity(f, 'emailing zip') - if (Redmine::VERSION::MAJOR >= 3) - audit = DmsfFileRevisionAccess.new - audit.user = User.current - audit.revision = f.last_revision - audit.action = DmsfFileRevisionAccess::EmailAction - else - audit = DmsfFileRevisionAccess.new(:user_id => User.current.id, :dmsf_file_revision_id => f.last_revision.id, - :action => DmsfFileRevisionAccess::EmailAction) - end + log_activity(f, 'emailing zip') + audit = DmsfFileRevisionAccess.new + audit.user = User.current + audit.revision = f.last_revision + audit.action = DmsfFileRevisionAccess::EmailAction audit.save! end @@ -437,16 +432,11 @@ class DmsfController < ApplicationController zip_entries(zip, selected_folders, selected_files) zip.files.each do |f| - log_activity(f, 'download zip') - if (Redmine::VERSION::MAJOR >= 3) - audit = DmsfFileRevisionAccess.new - audit.user = User.current - audit.revision = f.last_revision - audit.action = DmsfFileRevisionAccess::DownloadAction - else - audit = DmsfFileRevisionAccess.new(:user_id => User.current.id, :dmsf_file_revision_id => f.last_revision.id, - :action => DmsfFileRevisionAccess::DownloadAction) - end + log_activity(f, 'download zip') + audit = DmsfFileRevisionAccess.new + audit.user = User.current + audit.revision = f.last_revision + audit.action = DmsfFileRevisionAccess::DownloadAction audit.save! end diff --git a/app/controllers/dmsf_files_controller.rb b/app/controllers/dmsf_files_controller.rb index 26c9dc24..42fdbf1b 100644 --- a/app/controllers/dmsf_files_controller.rb +++ b/app/controllers/dmsf_files_controller.rb @@ -37,18 +37,11 @@ class DmsfFilesController < ApplicationController @revision = @file.last_revision check_project(@revision.file) begin - log_activity('downloaded') - if (Redmine::VERSION::MAJOR >= 3) - access = DmsfFileRevisionAccess.new - access.user = User.current - access.revision = @revision - access.action = DmsfFileRevisionAccess::DownloadAction - else - access = DmsfFileRevisionAccess.new( - :user_id => User.current.id, - :dmsf_file_revision_id => @revision.id, - :action => DmsfFileRevisionAccess::DownloadAction) - end + log_activity('downloaded') + access = DmsfFileRevisionAccess.new + access.user = User.current + access.revision = @revision + access.action = DmsfFileRevisionAccess::DownloadAction access.save! send_file(@revision.disk_file, :filename => filename_for_content_disposition(@revision.name), @@ -74,18 +67,11 @@ class DmsfFilesController < ApplicationController end check_project(@revision.file) begin - log_activity('downloaded') - if (Redmine::VERSION::MAJOR >= 3) - access = DmsfFileRevisionAccess.new - access.user = User.current - access.revision = @revision - access.action = DmsfFileRevisionAccess::DownloadAction - else - access = DmsfFileRevisionAccess.new( - :user_id => User.current.id, - :dmsf_file_revision_id => @revision.id, - :action => DmsfFileRevisionAccess::DownloadAction) - end + log_activity('downloaded') + access = DmsfFileRevisionAccess.new + access.user = User.current + access.revision = @revision + access.action = DmsfFileRevisionAccess::DownloadAction send_file(@revision.disk_file, :filename => filename_for_content_disposition(@revision.name), :type => @revision.detect_content_type, diff --git a/app/models/dmsf_workflow.rb b/app/models/dmsf_workflow.rb index 9cb10c40..8ec83d9c 100644 --- a/app/models/dmsf_workflow.rb +++ b/app/models/dmsf_workflow.rb @@ -1,6 +1,8 @@ +# encoding: utf-8 +# # Redmine plugin for Document Management System "Features" # -# Copyright (C) 2011-14 Karel Picman +# Copyright (C) 2011-15 Karel Picman # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License @@ -16,8 +18,12 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -class DmsfWorkflow < ActiveRecord::Base - has_many :dmsf_workflow_steps, -> { order 'step ASC, operator DESC' }, :dependent => :destroy +class DmsfWorkflow < ActiveRecord::Base + if (Redmine::VERSION::MAJOR >= 3) + has_many :dmsf_workflow_steps, -> { order 'step ASC, operator DESC' }, :dependent => :destroy + else + has_many :dmsf_workflow_steps, :dependent => :destroy, :order => 'step ASC, operator DESC' + end scope :sorted, lambda { order('name ASC') } scope :global, lambda { where('project_id IS NULL') } diff --git a/lib/redmine_dmsf/webdav/dmsf_resource.rb b/lib/redmine_dmsf/webdav/dmsf_resource.rb index feda35a4..76bac198 100644 --- a/lib/redmine_dmsf/webdav/dmsf_resource.rb +++ b/lib/redmine_dmsf/webdav/dmsf_resource.rb @@ -576,16 +576,11 @@ module RedmineDmsf # If there is no range (start of ranged download, or direct download) then we log the # file access, so we can properly keep logged information - if @request.env['HTTP_RANGE'].nil? - if (Redmine::VERSION::MAJOR >= 3) - access = DmsfFileRevisionAccess.new - access.user = User.current - access.revision = file.revision - access.action = DmsfFileRevisionAccess::DownloadAction - else - access = DmsfFileRevisionAccess.new(:user_id => User.current.id, :dmsf_file_revision_id => file.last_revision.id, - :action => DmsfFileRevisionAccess::DownloadAction) - end + if @request.env['HTTP_RANGE'].nil? + access = DmsfFileRevisionAccess.new + access.user = User.current + access.revision = file.revision + access.action = DmsfFileRevisionAccess::DownloadAction access.save! end Download.new(file.last_revision.disk_file)