diff --git a/app/controllers/dmsf_workflows_controller.rb b/app/controllers/dmsf_workflows_controller.rb index a7b213b1..126fd262 100644 --- a/app/controllers/dmsf_workflows_controller.rb +++ b/app/controllers/dmsf_workflows_controller.rb @@ -51,8 +51,7 @@ class DmsfWorkflowsController < ApplicationController begin file.unlock! true rescue DmsfLockError => e - flash[:info] = e.message - #logger.warn e.message + flash[:info] = e.message end end if revision.workflow == DmsfWorkflow::STATE_APPROVED @@ -171,28 +170,27 @@ class DmsfWorkflowsController < ApplicationController end def assignment - if params[:commit] == l(:button_submit) + if (params[:commit] == l(:button_submit)) && + params[:dmsf_workflow_id].present? && (params[:dmsf_workflow_id] != '-1') revision = DmsfFileRevision.find_by_id params[:dmsf_file_revision_id] if revision - revision.set_workflow(params[:dmsf_workflow_id], params[:action]) - if params[:dmsf_workflow_id].present? - revision.assign_workflow(params[:dmsf_workflow_id]) - if request.post? - if revision.save - file = DmsfFile.find_by_id revision.dmsf_file_id - if file - begin - file.lock! - rescue DmsfLockError => e - logger.warn e.message - end - flash[:notice] = l(:notice_successful_update) + revision.set_workflow(params[:dmsf_workflow_id], params[:action]) + revision.assign_workflow(params[:dmsf_workflow_id]) + if request.post? + if revision.save + file = DmsfFile.find_by_id revision.dmsf_file_id + if file + begin + file.lock! + rescue DmsfLockError => e + logger.warn e.message end - else - flash[:error] = l(:error_workflow_assign) + flash[:notice] = l(:notice_successful_update) end + else + flash[:error] = l(:error_workflow_assign) end - end + end end end redirect_to :back diff --git a/app/helpers/dmsf_workflows_helper.rb b/app/helpers/dmsf_workflows_helper.rb index 90ca653a..d930bb76 100644 --- a/app/helpers/dmsf_workflows_helper.rb +++ b/app/helpers/dmsf_workflows_helper.rb @@ -55,6 +55,7 @@ module DmsfWorkflowsHelper def dmsf_workflows_for_select(project, dmsf_workflow_id) options = Array.new + options << ['', -1] DmsfWorkflow.sorted.where(['project_id = ? OR project_id IS NULL', project.id]).each do |wf| if wf.project_id options << [wf.name, wf.id] diff --git a/app/views/dmsf_workflows/_assign.html.erb b/app/views/dmsf_workflows/_assign.html.erb index e5a6070f..83be9a13 100644 --- a/app/views/dmsf_workflows/_assign.html.erb +++ b/app/views/dmsf_workflows/_assign.html.erb @@ -1,6 +1,6 @@ <%# Redmine plugin for Document Management System "Features" # -# Copyright (C) 2011/15 Karel Pičman +# Copyright (C) 2011-15 Karel Pičman # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License