From 7a66ce52a99da8023fbdc8f73063aa8ac8614fea Mon Sep 17 00:00:00 2001 From: "COLA@Redminetest" Date: Thu, 24 Nov 2016 16:13:34 +0100 Subject: [PATCH 1/4] The DmsfFileRevision.formatted_name method does no longer corrupt the argument 'format'. --- app/models/dmsf_file_revision.rb | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/app/models/dmsf_file_revision.rb b/app/models/dmsf_file_revision.rb index f0963513..1fbffb18 100644 --- a/app/models/dmsf_file_revision.rb +++ b/app/models/dmsf_file_revision.rb @@ -257,13 +257,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) From db885d4edc8164b04d1d0accce47c02ebb84dafd Mon Sep 17 00:00:00 2001 From: "COLA@Redminetest" Date: Thu, 24 Nov 2016 16:32:44 +0100 Subject: [PATCH 2/4] The DmsfFilesController.view and .show methods did not use the global title format, only the user configured title format. --- app/controllers/dmsf_files_controller.rb | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/app/controllers/dmsf_files_controller.rb b/app/controllers/dmsf_files_controller.rb index ee2dc557..a589590c 100644 --- a/app/controllers/dmsf_files_controller.rb +++ b/app/controllers/dmsf_files_controller.rb @@ -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 From c53e8735b192e124f7cdc22e405f194afa3e3735 Mon Sep 17 00:00:00 2001 From: "COLA@Redminetest" Date: Thu, 24 Nov 2016 17:02:03 +0100 Subject: [PATCH 3/4] The display_name should also use the formatted_name. --- app/models/dmsf_file.rb | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/app/models/dmsf_file.rb b/app/models/dmsf_file.rb index e6f72e5c..04e3d10a 100644 --- a/app/models/dmsf_file.rb +++ b/app/models/dmsf_file.rb @@ -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? From e7925a4f9ab4d34e296e9c629bcd1be9b2bb8467 Mon Sep 17 00:00:00 2001 From: "COLA@Redminetest" Date: Thu, 24 Nov 2016 17:31:35 +0100 Subject: [PATCH 4/4] When displaying a link to a file use the display_name. --- app/models/dmsf_link.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/dmsf_link.rb b/app/models/dmsf_link.rb index 1e67e143..89807d04 100644 --- a/app/models/dmsf_link.rb +++ b/app/models/dmsf_link.rb @@ -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