WIP: redmine3 support, continue

This commit is contained in:
Mathieu Le Marec - Pasquet 2015-03-22 17:13:43 +01:00
parent c791061ad6
commit 0ff35263a2
8 changed files with 46 additions and 18 deletions

View File

@ -248,7 +248,8 @@ class DmsfController < ApplicationController
def create
if (Redmine::VERSION::MAJOR >= 3)
@folder = DmsfFolder.new(folder_params)
@folder = DmsfFolder.new(
params.require(:dmsf_folder).permit(:title, :description, :dmsf_folder_id))
else
@folder = DmsfFolder.new(params[:dmsf_folder])
end
@ -436,7 +437,7 @@ class DmsfController < ApplicationController
if (Redmine::VERSION::MAJOR >= 3)
audit = DmsfFileRevisionAccess.new
audit.user = User.current
audit.revision = @revision
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,
@ -591,9 +592,4 @@ class DmsfController < ApplicationController
copy
end
private
def folder_params
params.require(:dmsf_folder).permit(:title, :description, :dmsf_folder_id)
end
end

View File

@ -114,7 +114,12 @@ class DmsfFilesController < ApplicationController
if @file.locked_for_user?
flash[:error] = l(:error_file_is_locked)
else
revision = DmsfFileRevision.new(params[:dmsf_file_revision])
if (Redmine::VERSION::MAJOR >= 3)
aparams = frev_params
else
aparams = params
end
revision = DmsfFileRevision.new(aparams)
revision.file = @file
last_revision = @file.last_revision
@ -288,6 +293,11 @@ class DmsfFilesController < ApplicationController
private
def frev_params
params.require(:dmsf_file_revision).permit(
:title, :name, :description, :comment)
end
def log_activity(action)
Rails.logger.info "#{Time.now.strftime('%Y-%m-%d %H:%M:%S')} #{User.current.login}@#{request.remote_ip}/#{request.env['HTTP_X_FORWARDED_FOR']}: #{action} dmsf://#{@file.project.identifier}/#{@file.id}/#{@revision.id if @revision}"
end

View File

@ -25,7 +25,11 @@ class DmsfLinksController < ApplicationController
before_filter :authorize
def new
@dmsf_link = DmsfLink.new(:project_id => params[:project_id])
if (Redmine::VERSION::MAJOR >= 3)
@dmsf_link = DmsfLink.new(l_params)
else
@dmsf_link = DmsfLink.new(:project_id => params[:project_id])
end
if params[:dmsf_link].present?
# Reload
@ -185,6 +189,10 @@ class DmsfLinksController < ApplicationController
private
def l_params
params.fetch(:dmsf_link, {}).permit(:project_id)
end
def find_link_project
if @dmsf_link
@project = @dmsf_link.project
@ -195,4 +203,4 @@ class DmsfLinksController < ApplicationController
render_404
end
end
end

View File

@ -52,7 +52,11 @@ class DmsfUploadController < ApplicationController
# async single file upload handling
def upload_file
@tempfile = params[:file]
if (Redmine::VERSION::MAJOR >= 3)
@tempfile = params.require(:file)
else
@tempfile = params[:file]
end
unless @tempfile.original_filename
render_404
return
@ -82,7 +86,11 @@ class DmsfUploadController < ApplicationController
end
def commit_files
commited_files = params[:commited_files]
if (Redmine::VERSION::MAJOR >= 3)
commited_files = params.require(:commited_files)
else
commited_files = params[:commited_files]
end
if commited_files && commited_files.is_a?(Hash)
files = []
failed_uploads = []
@ -220,4 +228,4 @@ class DmsfUploadController < ApplicationController
render_403
end
end
end

View File

@ -44,6 +44,7 @@ class DmsfFile < ActiveRecord::Base
:class_name => 'DmsfLock', :foreign_key => 'entity_id', :dependent => :destroy
has_many :referenced_links, -> { where target_type: DmsfFile.model_name},
:class_name => 'DmsfLink', :foreign_key => 'target_id', :dependent => :destroy
accepts_nested_attributes_for :revisions, :locks, :referenced_links, :project
else
has_many :revisions, :class_name => 'DmsfFileRevision', :foreign_key => 'dmsf_file_id',
:order => "#{DmsfFileRevision.table_name}.major_version DESC, #{DmsfFileRevision.table_name}.minor_version DESC, #{DmsfFileRevision.table_name}.updated_at DESC",

View File

@ -27,7 +27,7 @@ class DmsfFileRevision < ActiveRecord::Base
has_many :access, :class_name => 'DmsfFileRevisionAccess', :foreign_key => 'dmsf_file_revision_id', :dependent => :destroy
has_many :dmsf_workflow_step_assignment, :dependent => :destroy
if (Redmine::VERSION::MAJOR >= 3)
accepts_nested_attributes_for :access, :dmsf_workflow_step_assignment
accepts_nested_attributes_for :access, :dmsf_workflow_step_assignment, :file, :user
end

View File

@ -20,8 +20,6 @@
class DmsfFolder < ActiveRecord::Base
unloadable
attr_accessible :title, :description, :dmsf_folder_id
include RedmineDmsf::Lockable
cattr_reader :invalid_characters

View File

@ -577,8 +577,15 @@ 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?
access = DmsfFileRevisionAccess.new(:user_id => User.current.id, :dmsf_file_revision_id => file.last_revision.id,
:action => DmsfFileRevisionAccess::DownloadAction)
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
access.save!
end
Download.new(file.last_revision.disk_file)