diff --git a/README.md b/README.md index 1779a2ea..b6d5ae36 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ Redmine DMSF Plugin =================== -The current version of Redmine DMSF is **1.6.0** [](https://travis-ci.org/danmunn/redmine_dmsf) +The current version of Redmine DMSF is **1.6.1 devel** [](https://travis-ci.org/danmunn/redmine_dmsf) Redmine DMSF is Document Management System Features plugin for Redmine issue tracking system; It is aimed to replace current Redmine's Documents module. diff --git a/app/controllers/dmsf_files_controller.rb b/app/controllers/dmsf_files_controller.rb index 67122f04..2c31a203 100644 --- a/app/controllers/dmsf_files_controller.rb +++ b/app/controllers/dmsf_files_controller.rb @@ -114,8 +114,8 @@ class DmsfFilesController < ApplicationController 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 + revision.major_version = DmsfUploadHelper::db_version(params[:custom_version_major]) + revision.minor_version = DmsfUploadHelper::db_version(params[:custom_version_minor]) else revision.increase_version(version) end diff --git a/app/helpers/dmsf_upload_helper.rb b/app/helpers/dmsf_upload_helper.rb index 7639cd97..f8fab061 100644 --- a/app/helpers/dmsf_upload_helper.rb +++ b/app/helpers/dmsf_upload_helper.rb @@ -72,8 +72,8 @@ module DmsfUploadHelper version = 1 end if version == 3 - new_revision.major_version = commited_file[:custom_version_major].to_i - new_revision.minor_version = commited_file[:custom_version_minor].to_i + new_revision.major_version = DmsfUploadHelper::db_version(commited_file[:custom_version_major]) + new_revision.minor_version = DmsfUploadHelper::db_version(commited_file[:custom_version_minor]) else new_revision.increase_version(version) end @@ -162,4 +162,54 @@ module DmsfUploadHelper [files, failed_uploads] end + # 0..99, A..Z except O + def self.major_version_select_options + (0..99).to_a + ('A'..'Y').to_a - ['O'] + end + + # 0..99, ' ' + def self.minor_version_select_options + (0..99).to_a + [' '] + end + + # 1 -> 2, -1 -> -2, A -> B + def self.increase_version(version, number) + return number if ((version == ' ') || ((-version) == ' '.ord)) + if Integer(version) + if version >= 0 + if (version + number) < 100 + version + number + else + version + end + else + if -(version - number) < 'Z'.ord + version - number + else + version + end + end + end + rescue + if (version.ord + number) < 'Z'.ord + (version.ord + number).chr + else + version + end + end + + # 1 -> 1, -65 -> A + def self.gui_version(version) + return version if version >= 0 + (-version).chr + end + + # 1 -> 1, A -> -65 + def self.db_version(version) + version.to_i if Integer(version) + rescue + version = ' ' if version.blank? + -(version.ord) + end + end diff --git a/app/models/dmsf_file_revision.rb b/app/models/dmsf_file_revision.rb index 8c609624..55439ebf 100644 --- a/app/models/dmsf_file_revision.rb +++ b/app/models/dmsf_file_revision.rb @@ -131,7 +131,11 @@ class DmsfFileRevision < ActiveRecord::Base end def version - "#{self.major_version}.#{self.minor_version}" + ver = DmsfUploadHelper::gui_version(self.major_version).to_s + if -self.minor_version != ' '.ord + ver << ".#{DmsfUploadHelper::gui_version(self.minor_version)}" + end + ver end def storage_base_path @@ -233,7 +237,7 @@ class DmsfFileRevision < ActiveRecord::Base def increase_version(version_to_increase) self.minor_version = case version_to_increase when 1 - self.minor_version + 1 + DmsfUploadHelper.increase_version(self.minor_version, 1) when 2 0 else @@ -241,7 +245,7 @@ class DmsfFileRevision < ActiveRecord::Base end self.major_version = case version_to_increase when 2 - self.major_version + 1 + DmsfUploadHelper::increase_version(self.major_version, 1) else major_version end diff --git a/app/views/dmsf_files/_file_new_revision.html.erb b/app/views/dmsf_files/_file_new_revision.html.erb index b1a44be8..7c8f1ebf 100644 --- a/app/views/dmsf_files/_file_new_revision.html.erb +++ b/app/views/dmsf_files/_file_new_revision.html.erb @@ -58,19 +58,21 @@
<%= label_tag('version_0', l(:label_dmsf_version)) %>
<%= radio_button_tag('version', 0, @revision.version == @file.last_revision.version) %>
- <%= @file.last_revision.major_version %>.<%= @file.last_revision.minor_version %>
+ <%= @file.last_revision.version %>
<%= l(:option_version_same) %>
<%= radio_button_tag('version', 1, @revision.major_version == @file.last_revision.major_version && @revision.minor_version != @file.last_revision.minor_version) %>
- <%= @file.last_revision.major_version %>.<%= @file.last_revision.minor_version + 1 %>
+ <%= DmsfUploadHelper::gui_version(@file.last_revision.major_version) %>.<%= DmsfUploadHelper::gui_version(DmsfUploadHelper.increase_version(@file.last_revision.minor_version, 1)) %>
<%= l(:option_version_minor) %>
<%= radio_button_tag('version', 2, @revision.major_version != @file.last_revision.major_version) %>
- <%= @file.last_revision.major_version + 1 %>.0
+ <%= DmsfUploadHelper.gui_version(DmsfUploadHelper::increase_version(@file.last_revision.major_version, 1)) %>.0
<%= l(:option_version_major) %>
<%= radio_button_tag('version', 3) %>
- <%= select_tag 'custom_version_major', options_for_select(0..99, @file.last_revision.major_version + 2),
- :onchange => '$("#version_3").prop("checked", true)', :class => 'dmsf_select_version' %>.
- <%= select_tag 'custom_version_minor', options_for_select(0..99, @file.last_revision.minor_version + 1),
- :onchange => '$("#version_3").prop("checked", true)', :class => 'dmsf_select_version' %>
+ <%= select_tag 'custom_version_major', options_for_select(DmsfUploadHelper::major_version_select_options,
+ DmsfUploadHelper::gui_version(DmsfUploadHelper::increase_version(@file.last_revision.major_version, 2))),
+ :onchange => '$("#version_3").prop("checked", true)', :class => 'dmsf_select_version' %>.
+ <%= select_tag 'custom_version_minor', options_for_select(DmsfUploadHelper::minor_version_select_options,
+ DmsfUploadHelper::gui_version(DmsfUploadHelper.increase_version(@file.last_revision.minor_version, 1))),
+ :onchange => '$("#version_3").prop("checked", true)', :class => 'dmsf_select_version' %>
<%= l(:option_version_custom) %>
<%= h(file.dmsf_path_str) %> (<%= file.name %>) <% if file.last_revision %> - , <%= number_to_human_size(file.last_revision.size) %>, <%= l(:label_dmsf_version) %> <%= file.last_revision.major_version %>.<%= file.last_revision.minor_version %> + , <%= number_to_human_size(file.last_revision.size) %>, <%= l(:label_dmsf_version) %> <%= file.last_revision.version %> <% end %>
<% end %> \ No newline at end of file diff --git a/app/views/dmsf_mailer/files_deleted.text.erb b/app/views/dmsf_mailer/files_deleted.text.erb index 5a6fd884..04365cd0 100644 --- a/app/views/dmsf_mailer/files_deleted.text.erb +++ b/app/views/dmsf_mailer/files_deleted.text.erb @@ -25,6 +25,6 @@ <% @files.each do |file| %> <%= h(file.dmsf_path_str) %> (<%= file.name %>) <% if file.last_revision %> - , <%= number_to_human_size(file.last_revision.size) %>, <%= l(:label_dmsf_version) %> <%= file.last_revision.major_version %>.<%= file.last_revision.minor_version %> + , <%= number_to_human_size(file.last_revision.size) %>, <%= l(:label_dmsf_version) %> <%= file.last_revision.version %> <% end %> <% end %> \ No newline at end of file diff --git a/app/views/dmsf_mailer/files_updated.html.erb b/app/views/dmsf_mailer/files_updated.html.erb index 05b2020a..eeb99d7e 100644 --- a/app/views/dmsf_mailer/files_updated.html.erb +++ b/app/views/dmsf_mailer/files_updated.html.erb @@ -26,7 +26,7 @@ dmsf_file_url(file, :download => '')) %> (<%= file.name %>), <%= number_to_human_size(file.last_revision.size) %>, - <%= l(:label_dmsf_version) %> <%= file.last_revision.major_version %>.<%= file.last_revision.minor_version %>, + <%= l(:label_dmsf_version) %> <%= file.last_revision.version %>, <%= "#{file.last_revision.workflow_str(true)}," if file.last_revision.workflow_str(true) != l(:title_none) %> <%= link_to(l(:link_details, :title => h(file.title)), dmsf_file_url(file)) %> diff --git a/app/views/dmsf_mailer/files_updated.text.erb b/app/views/dmsf_mailer/files_updated.text.erb index de0d8d9f..da8a7082 100644 --- a/app/views/dmsf_mailer/files_updated.text.erb +++ b/app/views/dmsf_mailer/files_updated.text.erb @@ -23,7 +23,7 @@ <% @files.each do |file| %> <%= h(file.dmsf_path_str) %> (<%= file.name %>), <%= number_to_human_size(file.last_revision.size) %>, - <%= l(:label_dmsf_version) %> <%= file.last_revision.major_version %>.<%= file.last_revision.minor_version %>, + <%= l(:label_dmsf_version) %> <%= file.last_revision.version %>, <%= "#{file.last_revision.workflow_str(true)}," if file.last_revision.workflow_str(true) != l(:title_none) %> <%= dmsf_file_url(file) %> <% if file.last_revision.comment.present? %> diff --git a/app/views/dmsf_upload/_upload_file.html.erb b/app/views/dmsf_upload/_upload_file.html.erb index 2311378f..b6a7b3cc 100644 --- a/app/views/dmsf_upload/_upload_file.html.erb +++ b/app/views/dmsf_upload/_upload_file.html.erb @@ -59,18 +59,20 @@
<%= label_tag("commited_files[#{i}][version]_minor", l(:label_dmsf_version)) %>
<%= radio_button_tag("commited_files[#{i}][version]", 1, true) %>
- <%= upload.major_version %>.<%= upload.minor_version + 1 %>
+ <%= DmsfUploadHelper::gui_version(upload.major_version) %>.<%= DmsfUploadHelper::gui_version(DmsfUploadHelper.increase_version(upload.minor_version, 1)) %>
<%= l(:option_version_minor) %>
<%= radio_button_tag("commited_files[#{i}][version]", 2) %>
- <%= upload.major_version + 1 %>.0
+ <%= DmsfUploadHelper::gui_version(DmsfUploadHelper::increase_version(upload.major_version, 1)) %>.0
<%= l(:option_version_major) %>
<%= radio_button_tag("commited_files[#{i}][version]", 3) %>
<%= select_tag "commited_files[#{i}][custom_version_major]",
- options_for_select(0..99, upload.major_version + 2),
+ options_for_select(DmsfUploadHelper::major_version_select_options,
+ DmsfUploadHelper::gui_version(DmsfUploadHelper::increase_version(upload.major_version, 2))),
:onchange => "$('#commited_files_#{i}_version_3').prop('checked', true)",
:class => 'dmsf_select_version'%>.
<%= select_tag "commited_files[#{i}][custom_version_minor]",
- options_for_select(0..99, upload.minor_version + 1),
+ options_for_select(DmsfUploadHelper::minor_version_select_options,
+ DmsfUploadHelper::gui_version(DmsfUploadHelper.increase_version(upload.minor_version, 1))),
:onchange => "$('#commited_files_#{i}_version_3').prop('checked', true)",
:class => 'dmsf_select_version' %>
<%= l(:option_version_custom) %>
diff --git a/app/views/dmsf_upload/_upload_file_locked.html.erb b/app/views/dmsf_upload/_upload_file_locked.html.erb
index 61a533c1..65da7655 100644
--- a/app/views/dmsf_upload/_upload_file_locked.html.erb
+++ b/app/views/dmsf_upload/_upload_file_locked.html.erb
@@ -66,7 +66,7 @@
<%= label_tag('', l(:label_dmsf_version)) %> - <%= text_field_tag(:name, "#{upload.major_version}.#{upload.minor_version}", :readonly => true) %> + <%= text_field_tag(:name, "#{DmsfUploadHelper::gui_version(upload.major_version)}.#{DmsfUploadHelper::gui_version(upload.minor_version)}", :readonly => true) %>