Keep documents locked after the approval workflow is finished as an option #675
This commit is contained in:
parent
b5977343fa
commit
4dbf6cc487
@ -22,6 +22,8 @@ Changelog for Redmine DMSF
|
|||||||
Global title format for downloading
|
Global title format for downloading
|
||||||
New columns in the main DMSF view; columns are configurable from the plugin settings
|
New columns in the main DMSF view; columns are configurable from the plugin settings
|
||||||
|
|
||||||
|
* New: #675 - Keep documents locked after the approval workflow is finished as an option
|
||||||
|
* Bug: #671 - Webdav: MOVE returns incorrect response
|
||||||
* Bug: #663 - Locked documnts on My page
|
* Bug: #663 - Locked documnts on My page
|
||||||
* Bug: #662 - Broken paging on the Add approver form
|
* Bug: #662 - Broken paging on the Add approver form
|
||||||
* New: #655 - ERROR: Couldn't find Project with identifier=desktop.ini
|
* New: #655 - ERROR: Couldn't find Project with identifier=desktop.ini
|
||||||
|
|||||||
@ -55,7 +55,7 @@ class DmsfWorkflowsController < ApplicationController
|
|||||||
if @dmsf_workflow.try_finish revision, action, (params[:step_action].to_i / 10)
|
if @dmsf_workflow.try_finish revision, action, (params[:step_action].to_i / 10)
|
||||||
if revision.dmsf_file
|
if revision.dmsf_file
|
||||||
begin
|
begin
|
||||||
revision.dmsf_file.unlock! true
|
revision.dmsf_file.unlock!(true) unless Setting.plugin_redmine_dmsf['dmsf_keep_documents_locked'].present?
|
||||||
rescue DmsfLockError => e
|
rescue DmsfLockError => e
|
||||||
flash[:info] = e.message
|
flash[:info] = e.message
|
||||||
end
|
end
|
||||||
@ -205,6 +205,10 @@ class DmsfWorkflowsController < ApplicationController
|
|||||||
def log
|
def log
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def edit
|
||||||
|
redirect_to dmsf_workflow_path(@dmsf_workflow)
|
||||||
|
end
|
||||||
|
|
||||||
def new
|
def new
|
||||||
@dmsf_workflow = DmsfWorkflow.new
|
@dmsf_workflow = DmsfWorkflow.new
|
||||||
|
|
||||||
|
|||||||
@ -61,7 +61,7 @@ module DmsfWorkflowsHelper
|
|||||||
if wf.project_id
|
if wf.project_id
|
||||||
options << [wf.name, wf.id]
|
options << [wf.name, wf.id]
|
||||||
else
|
else
|
||||||
options << ["#{wf.name} (global)", wf.id]
|
options << ["#{wf.name} #{l(:note_global)}", wf.id]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
options_for_select(options, :selected => dmsf_workflow_id)
|
options_for_select(options, :selected => dmsf_workflow_id)
|
||||||
@ -83,7 +83,7 @@ module DmsfWorkflowsHelper
|
|||||||
end
|
end
|
||||||
else
|
else
|
||||||
# Global approval workflows
|
# Global approval workflows
|
||||||
options << [wf.name, wf.id]
|
options << ["#{wf.name} #{l(:note_global)}", wf.id]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
options_for_select(options, :selected => dmsf_workflow_id)
|
options_for_select(options, :selected => dmsf_workflow_id)
|
||||||
|
|||||||
@ -135,6 +135,20 @@
|
|||||||
|
|
||||||
<%= render(:partial => 'settings/dmsf_columns', :locals => { :settings => @settings }) %>
|
<%= render(:partial => 'settings/dmsf_columns', :locals => { :settings => @settings }) %>
|
||||||
|
|
||||||
|
<hr/>
|
||||||
|
<em class="info">
|
||||||
|
<%= l(:field_label_dmsf_workflow) %>
|
||||||
|
</em>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<%= content_tag(:label, l(:label_dmsf_keep_documents_locked)) %>
|
||||||
|
<%= check_box_tag('settings[dmsf_keep_documents_locked]', false, @settings['dmsf_keep_documents_locked']) %>
|
||||||
|
<em class="info">
|
||||||
|
<%= l(:note_dmsf_keep_documents_locked) %><br/>
|
||||||
|
<%= l(:label_default)%>: <%= l(:general_text_No)%>
|
||||||
|
</em>
|
||||||
|
</p>
|
||||||
|
|
||||||
<hr/>
|
<hr/>
|
||||||
<em class="info">
|
<em class="info">
|
||||||
<%= l(:label_webdav) %>
|
<%= l(:label_webdav) %>
|
||||||
|
|||||||
@ -351,3 +351,7 @@ cs:
|
|||||||
|
|
||||||
label_webdav_disable_versioning: No versioning files patterns
|
label_webdav_disable_versioning: No versioning files patterns
|
||||||
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
||||||
|
|
||||||
|
label_dmsf_keep_documents_locked: Ponechat dokumenty zamčené
|
||||||
|
note_dmsf_keep_documents_locked: Dokumenty zůstanou i po schválení zamčené.
|
||||||
|
note_global: (globální)
|
||||||
@ -348,3 +348,7 @@ de:
|
|||||||
|
|
||||||
label_webdav_disable_versioning: No versioning files patterns
|
label_webdav_disable_versioning: No versioning files patterns
|
||||||
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
||||||
|
|
||||||
|
label_dmsf_keep_documents_locked: Keep documents locked
|
||||||
|
note_dmsf_keep_documents_locked: Documents will be kept locked when approved
|
||||||
|
note_global: (global)
|
||||||
@ -351,3 +351,7 @@ en:
|
|||||||
|
|
||||||
label_webdav_disable_versioning: No versioning files patterns
|
label_webdav_disable_versioning: No versioning files patterns
|
||||||
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
||||||
|
|
||||||
|
label_dmsf_keep_documents_locked: Keep documents locked
|
||||||
|
note_dmsf_keep_documents_locked: Documents will be kept locked when approved
|
||||||
|
note_global: (global)
|
||||||
@ -351,3 +351,7 @@ es:
|
|||||||
|
|
||||||
label_webdav_disable_versioning: No versioning files patterns
|
label_webdav_disable_versioning: No versioning files patterns
|
||||||
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
||||||
|
|
||||||
|
label_dmsf_keep_documents_locked: Keep documents locked
|
||||||
|
note_dmsf_keep_documents_locked: Documents will be kept locked when approved
|
||||||
|
note_global: (global)
|
||||||
@ -351,3 +351,7 @@ fr:
|
|||||||
|
|
||||||
label_webdav_disable_versioning: No versioning files patterns
|
label_webdav_disable_versioning: No versioning files patterns
|
||||||
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
||||||
|
|
||||||
|
label_dmsf_keep_documents_locked: Keep documents locked
|
||||||
|
note_dmsf_keep_documents_locked: Documents will be kept locked when approved
|
||||||
|
note_global: (global)
|
||||||
@ -351,3 +351,7 @@ it: # Italian strings thx 2 Matteo Arceci!
|
|||||||
|
|
||||||
label_webdav_disable_versioning: No versioning files patterns
|
label_webdav_disable_versioning: No versioning files patterns
|
||||||
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
||||||
|
|
||||||
|
label_dmsf_keep_documents_locked: Keep documents locked
|
||||||
|
note_dmsf_keep_documents_locked: Documents will be kept locked when approved
|
||||||
|
note_global: (global)
|
||||||
@ -351,3 +351,7 @@ ja:
|
|||||||
|
|
||||||
label_webdav_disable_versioning: No versioning files patterns
|
label_webdav_disable_versioning: No versioning files patterns
|
||||||
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
||||||
|
|
||||||
|
label_dmsf_keep_documents_locked: Keep documents locked
|
||||||
|
note_dmsf_keep_documents_locked: Documents will be kept locked when approved
|
||||||
|
note_global: (global)
|
||||||
@ -351,3 +351,7 @@ pl:
|
|||||||
|
|
||||||
label_webdav_disable_versioning: No versioning files patterns
|
label_webdav_disable_versioning: No versioning files patterns
|
||||||
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
||||||
|
|
||||||
|
label_dmsf_keep_documents_locked: Keep documents locked
|
||||||
|
note_dmsf_keep_documents_locked: Documents will be kept locked when approved
|
||||||
|
note_global: (global)
|
||||||
@ -351,3 +351,7 @@ pt-BR:
|
|||||||
|
|
||||||
label_webdav_disable_versioning: No versioning files patterns
|
label_webdav_disable_versioning: No versioning files patterns
|
||||||
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
||||||
|
|
||||||
|
label_dmsf_keep_documents_locked: Keep documents locked
|
||||||
|
note_dmsf_keep_documents_locked: Documents will be kept locked when approved
|
||||||
|
note_global: (global)
|
||||||
@ -351,3 +351,7 @@ ru:
|
|||||||
|
|
||||||
label_webdav_disable_versioning: No versioning files patterns
|
label_webdav_disable_versioning: No versioning files patterns
|
||||||
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
||||||
|
|
||||||
|
label_dmsf_keep_documents_locked: Keep documents locked
|
||||||
|
note_dmsf_keep_documents_locked: Documents will be kept locked when approved
|
||||||
|
note_global: (global)
|
||||||
@ -351,3 +351,7 @@ sl:
|
|||||||
|
|
||||||
label_webdav_disable_versioning: No versioning files patterns
|
label_webdav_disable_versioning: No versioning files patterns
|
||||||
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
||||||
|
|
||||||
|
label_dmsf_keep_documents_locked: Keep documents locked
|
||||||
|
note_dmsf_keep_documents_locked: Documents will be kept locked when approved
|
||||||
|
note_global: (global)
|
||||||
@ -351,3 +351,7 @@ zh-TW:
|
|||||||
|
|
||||||
label_webdav_disable_versioning: No versioning files patterns
|
label_webdav_disable_versioning: No versioning files patterns
|
||||||
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
||||||
|
|
||||||
|
label_dmsf_keep_documents_locked: Keep documents locked
|
||||||
|
note_dmsf_keep_documents_locked: Documents will be kept locked when approved
|
||||||
|
note_global: (global)
|
||||||
@ -351,3 +351,7 @@ zh:
|
|||||||
|
|
||||||
label_webdav_disable_versioning: No versioning files patterns
|
label_webdav_disable_versioning: No versioning files patterns
|
||||||
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
||||||
|
|
||||||
|
label_dmsf_keep_documents_locked: Keep documents locked
|
||||||
|
note_dmsf_keep_documents_locked: Documents will be kept locked when approved
|
||||||
|
note_global: (global)
|
||||||
Binary file not shown.
5
init.rb
5
init.rb
@ -50,7 +50,8 @@ Redmine::Plugin.register :redmine_dmsf do
|
|||||||
'dmsf_columns' => %w(title size modified version workflow author),
|
'dmsf_columns' => %w(title size modified version workflow author),
|
||||||
'dmsf_memcached_servers' => '',
|
'dmsf_memcached_servers' => '',
|
||||||
'dmsf_webdav_ignore' => '^(\._|\.DS_Store$|Thumbs.db$)',
|
'dmsf_webdav_ignore' => '^(\._|\.DS_Store$|Thumbs.db$)',
|
||||||
'dmsf_webdav_disable_versioning' => '^\~\$|\.tmp$'
|
'dmsf_webdav_disable_versioning' => '^\~\$|\.tmp$',
|
||||||
|
'dmsf_keep_documents_locked' => false
|
||||||
}
|
}
|
||||||
|
|
||||||
menu :project_menu, :dmsf, { :controller => 'dmsf', :action => 'show' }, :caption => :menu_dmsf, :before => :documents, :param => :id
|
menu :project_menu, :dmsf, { :controller => 'dmsf', :action => 'show' }, :caption => :menu_dmsf, :before => :documents, :param => :id
|
||||||
@ -95,7 +96,7 @@ Redmine::Plugin.register :redmine_dmsf do
|
|||||||
{:dmsf_workflows => [:action, :new_action, :autocomplete_for_user, :start, :assign, :assignment]}
|
{:dmsf_workflows => [:action, :new_action, :autocomplete_for_user, :start, :assign, :assignment]}
|
||||||
permission :manage_workflows,
|
permission :manage_workflows,
|
||||||
{:dmsf_workflows => [:index, :new, :create, :destroy, :show, :new_step, :add_step, :remove_step, :reorder_steps,
|
{:dmsf_workflows => [:index, :new, :create, :destroy, :show, :new_step, :add_step, :remove_step, :reorder_steps,
|
||||||
:update, :update_step, :delete_step]}
|
:update, :update_step, :delete_step, :edit]}
|
||||||
end
|
end
|
||||||
|
|
||||||
# Administration menu extension
|
# Administration menu extension
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#/bin/bash
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
# This script is almost entirely built on the build script from redmine_backlogs
|
# This script is almost entirely built on the build script from redmine_backlogs
|
||||||
# Please see: https://github.com/backlogs/redmine_backlogs
|
# Please see: https://github.com/backlogs/redmine_backlogs
|
||||||
|
|||||||
@ -279,19 +279,16 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase
|
|||||||
end
|
end
|
||||||
|
|
||||||
def test_action_approve
|
def test_action_approve
|
||||||
post(
|
approve
|
||||||
:new_action,
|
assert !@revision1.dmsf_file.locked_for_user?
|
||||||
:commit => l(:button_submit),
|
end
|
||||||
:id => @wf1.id,
|
|
||||||
:dmsf_workflow_step_assignment_id => @wfsa2.id,
|
def test_action_approve
|
||||||
:dmsf_file_revision_id => @revision1.id,
|
Setting.plugin_redmine_dmsf['dmsf_keep_documents_locked'] = '1'
|
||||||
:step_action => DmsfWorkflowStepAction::ACTION_APPROVE,
|
approve
|
||||||
:user_id => nil,
|
if Setting.plugin_redmine_dmsf['dmsf_keep_documents_locked'] == '1'
|
||||||
:note => '')
|
assert @revision1.dmsf_file.locked_for_user?
|
||||||
assert_redirected_to dmsf_folder_path(:id => @project1.id)
|
end
|
||||||
assert DmsfWorkflowStepAction.where(
|
|
||||||
:dmsf_workflow_step_assignment_id => @wfsa2.id,
|
|
||||||
:action => DmsfWorkflowStepAction::ACTION_APPROVE).first
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_action_reject
|
def test_action_reject
|
||||||
@ -397,4 +394,21 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase
|
|||||||
assert_response :redirect
|
assert_response :redirect
|
||||||
end
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def approve
|
||||||
|
post(
|
||||||
|
:new_action,
|
||||||
|
:commit => l(:button_submit),
|
||||||
|
:id => @wf1.id,
|
||||||
|
:dmsf_workflow_step_assignment_id => @wfsa2.id,
|
||||||
|
:dmsf_file_revision_id => @revision1.id,
|
||||||
|
:step_action => DmsfWorkflowStepAction::ACTION_APPROVE,
|
||||||
|
:user_id => nil,
|
||||||
|
:note => '')
|
||||||
|
assert_redirected_to dmsf_folder_path(:id => @project1.id)
|
||||||
|
assert DmsfWorkflowStepAction.where(
|
||||||
|
:dmsf_workflow_step_assignment_id => @wfsa2.id,
|
||||||
|
:action => DmsfWorkflowStepAction::ACTION_APPROVE).first
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user