Merge branch 'devel-1.5.9' of https://github.com/danmunn/redmine_dmsf into devel-1.5.9
This commit is contained in:
commit
6a41b06129
@ -52,8 +52,13 @@ class DmsfFilesController < ApplicationController
|
||||
access.action = DmsfFileRevisionAccess::DownloadAction
|
||||
access.save!
|
||||
member = Member.where(:user_id => User.current.id, :project_id => @file.project.id).first
|
||||
if member && !member.title_format.nil? && !member.title_format.empty?
|
||||
title_format = member.title_format
|
||||
else
|
||||
title_format = Setting.plugin_redmine_dmsf['dmsf_global_title_format']
|
||||
end
|
||||
send_file(@revision.disk_file,
|
||||
:filename => filename_for_content_disposition(@revision.formatted_name(member ? member.title_format : nil)),
|
||||
:filename => filename_for_content_disposition(@revision.formatted_name(title_format)),
|
||||
:type => @revision.detect_content_type,
|
||||
:disposition => 'inline')
|
||||
rescue DmsfAccessError => e
|
||||
@ -84,8 +89,13 @@ class DmsfFilesController < ApplicationController
|
||||
access.action = DmsfFileRevisionAccess::DownloadAction
|
||||
access.save!
|
||||
member = Member.where(:user_id => User.current.id, :project_id => @file.project.id).first
|
||||
if member && !member.title_format.nil? && !member.title_format.empty?
|
||||
title_format = member.title_format
|
||||
else
|
||||
title_format = Setting.plugin_redmine_dmsf['dmsf_global_title_format']
|
||||
end
|
||||
send_file(@revision.disk_file,
|
||||
:filename => filename_for_content_disposition(@revision.formatted_name(member ? member.title_format : nil)),
|
||||
:filename => filename_for_content_disposition(@revision.formatted_name(title_format)),
|
||||
:type => @revision.detect_content_type,
|
||||
:disposition => 'attachment')
|
||||
rescue DmsfAccessError => e
|
||||
|
||||
@ -36,7 +36,7 @@ class DmsfFile < ActiveRecord::Base
|
||||
belongs_to :dmsf_folder
|
||||
belongs_to :deleted_by_user, :class_name => 'User', :foreign_key => 'deleted_by_user_id'
|
||||
|
||||
has_many :dmsf_file_revisions, -> { order("#{DmsfFileRevision.table_name}.major_version DESC, #{DmsfFileRevision.table_name}.minor_version DESC, #{DmsfFileRevision.table_name}.updated_at DESC") },
|
||||
has_many :dmsf_file_revisions, -> { order("#{DmsfFileRevision.table_name}.id DESC") },
|
||||
:dependent => :destroy
|
||||
has_many :locks, -> { where(entity_type: 0).order("#{DmsfLock.table_name}.updated_at DESC") },
|
||||
:class_name => 'DmsfLock', :foreign_key => 'entity_id', :dependent => :destroy
|
||||
@ -403,10 +403,17 @@ class DmsfFile < ActiveRecord::Base
|
||||
end
|
||||
|
||||
def display_name
|
||||
if self.name.length > 50
|
||||
return "#{self.name[0, 25]}...#{self.name[-25, 25]}"
|
||||
member = Member.where(:user_id => User.current.id, :project_id => self.project.id).first
|
||||
if member && !member.title_format.nil? && !member.title_format.empty?
|
||||
title_format = member.title_format
|
||||
else
|
||||
title_format = Setting.plugin_redmine_dmsf['dmsf_global_title_format']
|
||||
end
|
||||
self.name
|
||||
fname = formatted_name(title_format)
|
||||
if fname.length > 50
|
||||
return "#{fname[0, 25]}...#{fname[-25, 25]}"
|
||||
end
|
||||
fname
|
||||
end
|
||||
|
||||
def image?
|
||||
|
||||
@ -83,11 +83,7 @@ class DmsfFileRevision < ActiveRecord::Base
|
||||
errors[:base] << l(:error_at_least_one_revision_must_be_present)
|
||||
return false
|
||||
end
|
||||
dependent = DmsfFileRevision.where(:source_dmsf_file_revision_id => self.id).all
|
||||
dependent.each do |d|
|
||||
d.source_revision = self.source_revision
|
||||
d.save!
|
||||
end
|
||||
|
||||
if commit
|
||||
self.destroy
|
||||
else
|
||||
@ -104,6 +100,11 @@ class DmsfFileRevision < ActiveRecord::Base
|
||||
end
|
||||
|
||||
def destroy
|
||||
dependent = DmsfFileRevision.where(:source_dmsf_file_revision_id => self.id).all
|
||||
dependent.each do |d|
|
||||
d.source_revision = self.source_revision
|
||||
d.save!
|
||||
end
|
||||
if Setting.plugin_redmine_dmsf['dmsf_really_delete_files']
|
||||
dependencies = DmsfFileRevision.where(:disk_filename => self.disk_filename).all.count
|
||||
File.delete(self.disk_file) if dependencies <= 1 && File.exist?(self.disk_file)
|
||||
@ -257,13 +258,14 @@ class DmsfFileRevision < ActiveRecord::Base
|
||||
else
|
||||
filename = self.name
|
||||
end
|
||||
format.sub!('%t', self.title)
|
||||
format.sub!('%f', filename)
|
||||
format.sub!('%d', self.updated_at.strftime('%Y%m%d%H%M%S'))
|
||||
format.sub!('%v', self.version)
|
||||
format.sub!('%i', self.dmsf_file.id.to_s)
|
||||
format.sub!('%r', self.id.to_s)
|
||||
format + ext
|
||||
format2 = format.dup
|
||||
format2.sub!('%t', self.title)
|
||||
format2.sub!('%f', filename)
|
||||
format2.sub!('%d', self.updated_at.strftime('%Y%m%d%H%M%S'))
|
||||
format2.sub!('%v', self.version)
|
||||
format2.sub!('%i', self.dmsf_file.id.to_s)
|
||||
format2.sub!('%r', self.id.to_s)
|
||||
format2 + ext
|
||||
end
|
||||
|
||||
def self.create_digest(path)
|
||||
|
||||
@ -98,7 +98,7 @@ class DmsfLink < ActiveRecord::Base
|
||||
|
||||
def path
|
||||
if self.target_type == DmsfFile.model_name.to_s
|
||||
path = self.target_file.dmsf_path.map { |element| element.is_a?(DmsfFile) ? element.name : element.title }.join('/') if self.target_file
|
||||
path = self.target_file.dmsf_path.map { |element| element.is_a?(DmsfFile) ? element.display_name : element.title }.join('/') if self.target_file
|
||||
else
|
||||
path = self.target_folder ? self.target_folder.dmsf_path_str : ''
|
||||
end
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user