From 8507ee9b09a2748ae6fd6243b3be239af157e896 Mon Sep 17 00:00:00 2001 From: Karel Picman Date: Thu, 21 Apr 2016 14:56:47 +0200 Subject: [PATCH] The same version feature doen't work as expected #526 --- app/controllers/dmsf_files_controller.rb | 22 +++++++----------- app/controllers/dmsf_upload_controller.rb | 2 +- app/models/dmsf_file_revision.rb | 27 ++++++++++------------- app/views/dmsf_files/show.html.erb | 2 +- lib/redmine_dmsf/webdav/dmsf_resource.rb | 8 +++---- 5 files changed, 26 insertions(+), 35 deletions(-) diff --git a/app/controllers/dmsf_files_controller.rb b/app/controllers/dmsf_files_controller.rb index a7135962..c67b988e 100644 --- a/app/controllers/dmsf_files_controller.rb +++ b/app/controllers/dmsf_files_controller.rb @@ -128,24 +128,18 @@ class DmsfFilesController < ApplicationController revision.major_version = last_revision.major_version revision.minor_version = last_revision.minor_version version = params[:version].to_i + if version == 3 + revision.major_version = params[:custom_version_major].to_i + revision.minor_version = params[:custom_version_minor].to_i + else + revision.increase_version(version) + end file_upload = params[:file_upload] unless file_upload - revision.disk_filename = last_revision.disk_filename - if version == 3 - revision.major_version = params[:custom_version_major].to_i - revision.minor_version = params[:custom_version_minor].to_i - else - revision.increase_version(version, false) - end - revision.mime_type = last_revision.mime_type revision.size = last_revision.size + revision.disk_filename = last_revision.disk_filename + revision.mime_type = last_revision.mime_type else - if version == 3 - revision.major_version = params[:custom_version_major].to_i - revision.minor_version = params[:custom_version_minor].to_i - else - revision.increase_version(version, true) - end revision.size = file_upload.size revision.disk_filename = revision.new_storage_filename revision.mime_type = Redmine::MimeType.of(file_upload.original_filename) diff --git a/app/controllers/dmsf_upload_controller.rb b/app/controllers/dmsf_upload_controller.rb index ef32c92c..290c65f0 100644 --- a/app/controllers/dmsf_upload_controller.rb +++ b/app/controllers/dmsf_upload_controller.rb @@ -183,7 +183,7 @@ class DmsfUploadController < ApplicationController new_revision.major_version = commited_file[:custom_version_major].to_i new_revision.minor_version = commited_file[:custom_version_minor].to_i else - new_revision.increase_version(version, true) + new_revision.increase_version(version) end new_revision.mime_type = Redmine::MimeType.of(new_revision.name) new_revision.size = File.size(commited_disk_filepath) diff --git a/app/models/dmsf_file_revision.rb b/app/models/dmsf_file_revision.rb index 13d04d8b..5d22f1ec 100644 --- a/app/models/dmsf_file_revision.rb +++ b/app/models/dmsf_file_revision.rb @@ -200,23 +200,20 @@ class DmsfFileRevision < ActiveRecord::Base wf.assign(self.id) if wf && self.id end - def increase_version(version_to_increase, new_content) - if new_content - self.minor_version = case version_to_increase - when 2 then 0 - else self.minor_version + 1 - end - else - self.minor_version = case version_to_increase - when 1 then self.minor_version + 1 - when 2 then 0 - else self.minor_version - end + def increase_version(version_to_increase) + self.minor_version = case version_to_increase + when 1 + self.minor_version + 1 + when 2 + 0 + else + self.minor_version end - self.major_version = case version_to_increase - when 2 then self.major_version + 1 - else self.major_version + when 2 + self.major_version + 1 + else + major_version end end diff --git a/app/views/dmsf_files/show.html.erb b/app/views/dmsf_files/show.html.erb index 973a773b..ba2d2746 100644 --- a/app/views/dmsf_files/show.html.erb +++ b/app/views/dmsf_files/show.html.erb @@ -62,7 +62,7 @@ <%= render(:partial => '/dmsf/path', - :locals => {:folder => @file.folder, :filename => @file.title, :title => nil}) %> + :locals => {:folder => @file.dmsf_folder, :filename => @file.title, :title => nil}) %> <% if User.current.allowed_to?(:file_manipulation, @file.project) && !@file.locked_for_user? %> <%= error_messages_for('file') %> diff --git a/lib/redmine_dmsf/webdav/dmsf_resource.rb b/lib/redmine_dmsf/webdav/dmsf_resource.rb index 6996ddb9..e5873ad0 100644 --- a/lib/redmine_dmsf/webdav/dmsf_resource.rb +++ b/lib/redmine_dmsf/webdav/dmsf_resource.rb @@ -105,7 +105,7 @@ module RedmineDmsf # Hunt for files parent path f = false if (parent.projectless_path != '/') - f = parent.dmsf_folder if parent.dmsf_folder + f = parent.folder if parent.folder else f = nil end @@ -199,8 +199,8 @@ module RedmineDmsf return MethodNotAllowed if exist? # If we already exist, why waste the time trying to save? parent_folder = nil if (parent.projectless_path != '/') - return Conflict unless parent.dmsf_folder - parent_folder = parent.dmsf_folder.id + return Conflict unless parent.folder + parent_folder = parent.folder.id end f = DmsfFolder.new f.title = basename @@ -498,7 +498,7 @@ module RedmineDmsf new_revision.title = DmsfFileRevision.filename_to_title(basename) new_revision.description = nil new_revision.comment = nil - new_revision.increase_version(1, true) + new_revision.increase_version(1) new_revision.mime_type = Redmine::MimeType.of(new_revision.name) # Phusion passenger does not have a method "length" in its model