diff --git a/app/controllers/dmsf_context_menus_controller.rb b/app/controllers/dmsf_context_menus_controller.rb index 36431390..6c204b71 100644 --- a/app/controllers/dmsf_context_menus_controller.rb +++ b/app/controllers/dmsf_context_menus_controller.rb @@ -35,7 +35,6 @@ class DmsfContextMenusController < ApplicationController @unlockable = @allowed && @dmsf_file.unlockable? && (!@dmsf_file.locked_for_user? || User.current.allowed_to?(:force_file_unlock, @project)) @email_allowed = User.current.allowed_to?(:email_documents, @project) - @back_url = dmsf_folder_path(id: @project, folder_id: @dmsf_file.dmsf_folder) elsif @dmsf_folder @locked = @dmsf_folder.locked? @project = @dmsf_folder.project @@ -43,14 +42,12 @@ class DmsfContextMenusController < ApplicationController @unlockable = @allowed && @dmsf_folder.unlockable? && (!@dmsf_folder.locked_for_user? || User.current.allowed_to?(:force_file_unlock, @project)) @email_allowed = User.current.allowed_to?(:email_documents, @project) - @back_url = dmsf_folder_path(id: @project, folder_id: @dmsf_folder.dmsf_folder) elsif @dmsf_link # url link @locked = false @unlockable = false @project = @dmsf_link.project @allowed = User.current.allowed_to? :file_manipulation, @project @email_allowed = false - @back_url = dmsf_folder_path(id: @project, folder_id: @dmsf_link.dmsf_folder) else # multiple selection @project = get_project @locked = false @@ -58,8 +55,8 @@ class DmsfContextMenusController < ApplicationController @allowed = User.current.allowed_to?(:file_manipulation, @project) && User.current.allowed_to?(:folder_manipulation, @project) @email_allowed = User.current.allowed_to?(:email_documents, @project) - @back_url = dmsf_folder_path(id: @project, folder_id: @dmsf_folder) end + @back_url = dmsf_folder_path(id: @project, folder_id: @folder) render layout: false rescue ActiveRecord::RecordNotFound render_404 diff --git a/app/controllers/dmsf_controller.rb b/app/controllers/dmsf_controller.rb index a73c3036..0ca22843 100644 --- a/app/controllers/dmsf_controller.rb +++ b/app/controllers/dmsf_controller.rb @@ -215,7 +215,7 @@ class DmsfController < ApplicationController if params[:email][:to].strip.blank? flash[:error] = l(:error_email_to_must_be_entered) else - DmsfMailer.deliver_send_documents(@project, params[:email].permit!, User.current) + DmsfMailer.deliver_send_documents @project, params[:email].permit!, User.current if(File.exist?(params[:email][:zipped_content])) File.delete(params[:email][:zipped_content]) else @@ -223,7 +223,7 @@ class DmsfController < ApplicationController end flash[:notice] = l(:notice_email_sent, params[:email][:to]) end - redirect_to dmsf_folder_path(id: @project, folder_id: @folder) + redirect_back_or_default(dmsf_folder_path(id: @project, folder_id: @folder)) end def new @@ -515,6 +515,7 @@ class DmsfController < ApplicationController "#{User.current.name} <#{User.current.mail}>", reply_to: Setting.plugin_redmine_dmsf['dmsf_documents_email_reply_to'] } + @back_url = params[:back_url] render action: 'email_entries' rescue Exception raise diff --git a/app/controllers/dmsf_links_controller.rb b/app/controllers/dmsf_links_controller.rb index 0123d5c7..06a39786 100644 --- a/app/controllers/dmsf_links_controller.rb +++ b/app/controllers/dmsf_links_controller.rb @@ -55,13 +55,12 @@ class DmsfLinksController < ApplicationController @dmsf_file_id = params[:dmsf_file_id] @type = params[:type] @dmsf_link.target_project_id = params[:project_id] - #@target_folder_id = params[:dmsf_folder_id].to_i if params[:dmsf_folder_id].present? @target_folder_id = nil @back_url = params[:back_url] if @type == 'link_to' if @dmsf_file_id - names = DmsfFile.where(id: @dmsf_file_id).pluck(:name) - @dmsf_link.name = names.first if names.any? + f = DmsfFile.find_by(id: @dmsf_file_id) + @dmsf_link.name = f&.last_revision&.title else titles = DmsfFolder.where(id: @target_folder_id).pluck(:title) @dmsf_link.name = titles.first if titles.any? @@ -156,7 +155,7 @@ class DmsfLinksController < ApplicationController redirect_back_or_default dmsf_folder_path(id: @project, folder_id: @dmsf_link.dmsf_folder_id) else if params[:dmsf_link][:dmsf_file_id].present? - redirect_to dmsf_file_path(@dmsf_link.target_file) + redirect_back_or_default dmsf_file_path(@dmsf_link.target_file) else folder = @dmsf_link.target_folder.dmsf_folder if @dmsf_link.target_folder redirect_back_or_default dmsf_folder_path(id: @project, folder_id: folder) diff --git a/app/controllers/dmsf_workflows_controller.rb b/app/controllers/dmsf_workflows_controller.rb index deca0b04..58483097 100644 --- a/app/controllers/dmsf_workflows_controller.rb +++ b/app/controllers/dmsf_workflows_controller.rb @@ -215,8 +215,8 @@ class DmsfWorkflowsController < ApplicationController rescue => e flash[:error] = e.message end - redirect_back_or_default dmsf_folder_path(id: @project, folder_id: @folder) - return + #redirect_back_or_default dmsf_folder_path(id: @project, folder_id: @folder) + #return # DMS link (attached) elsif params[:dmsf_link_id].present? @dmsf_link_id = params[:dmsf_link_id] @@ -226,12 +226,14 @@ class DmsfWorkflowsController < ApplicationController @attachment_id = params[:attachment_id] @dmsf_workflow_id = params[:dmsf_workflow_id] end - else - redirect_back_or_default dmsf_folder_path(id: @project, folder_id: @folder) - return + #else + #redirect_back_or_default dmsf_folder_path(id: @project, folder_id: @folder) + #return end respond_to do |format| - format.html + format.html { + redirect_back_or_default dmsf_folder_path(id: @project, folder_id: @folder) + } format.js end end @@ -261,7 +263,6 @@ class DmsfWorkflowsController < ApplicationController def new @dmsf_workflow = DmsfWorkflow.new - # Reload if params[:dmsf_workflow] && params[:dmsf_workflow][:name].present? @dmsf_workflow.name = params[:dmsf_workflow][:name] @@ -269,7 +270,6 @@ class DmsfWorkflowsController < ApplicationController names = DmsfWorkflow.where(id: params[:dmsf_workflow][:id]).pluck(:name) @dmsf_workflow.name = names.first end - render layout: !request.xhr? end diff --git a/app/views/dmsf/email_entries.html.erb b/app/views/dmsf/email_entries.html.erb index f65a4739..726e7543 100644 --- a/app/views/dmsf/email_entries.html.erb +++ b/app/views/dmsf/email_entries.html.erb @@ -32,6 +32,7 @@ <%= hidden_field_tag 'email[files]', @email_params[:files].to_json %> <%= hidden_field_tag 'email[from]', @email_params[:from] %> <%= hidden_field_tag 'email[reply_to]', @email_params[:reply_to] %> + <%= hidden_field_tag 'back_url', @back_url %>
<%= label_tag '', l(:label_email_from) %> diff --git a/app/views/dmsf_context_menus/_approval_workflow.html.erb b/app/views/dmsf_context_menus/_approval_workflow.html.erb index bc41e47c..97814c03 100644 --- a/app/views/dmsf_context_menus/_approval_workflow.html.erb +++ b/app/views/dmsf_context_menus/_approval_workflow.html.erb @@ -36,25 +36,27 @@ <% if allowed_minor %> <%= context_menu_link l(:title_approval), action_dmsf_workflow_path(project_id: project.id, id: wf.id, dmsf_workflow_step_assignment_id: assignment_id, - dmsf_file_revision_id: dmsf_file.last_revision.id), - remote: true, class: 'icon icon-ok', id: 'dmsf-cm-workflow', - disabled: !assignments || !index %> + dmsf_file_revision_id: dmsf_file.last_revision.id, + back_url: back_url), + remote: true, class: 'icon icon-ok', id: 'dmsf-cm-workflow', + disabled: !assignments || !index %> <% else %> <%= context_menu_link l(:title_approval_minor), action_dmsf_workflow_path(project_id: project.id, id: wf.id, dmsf_workflow_step_assignment_id: assignment_id, - dmsf_file_revision_id: dmsf_file.last_revision.id), - remote: true, class: 'icon icon-ok', id: 'dmsf-cm-workflow', - disabled: true %> + dmsf_file_revision_id: dmsf_file.last_revision.id, + back_url: back_url), + remote: true, class: 'icon icon-ok', id: 'dmsf-cm-workflow', + disabled: true %> <% end %> <% end %> <% when DmsfWorkflow::STATE_ASSIGNED %> <% if allowed_minor %> <%= context_menu_link l(:title_start), start_dmsf_workflow_path(id: dmsf_file.last_revision.dmsf_workflow_id, - dmsf_file_revision_id: dmsf_file.last_revision.id), + dmsf_file_revision_id: dmsf_file.last_revision.id, back_url: back_url), class: 'icon icon-ok', disabled: !allowed %> <% else %> <%= context_menu_link l(:title_start_minor), start_dmsf_workflow_path(id: dmsf_file.last_revision.dmsf_workflow_id, - dmsf_file_revision_id: dmsf_file.last_revision.id), + dmsf_file_revision_id: dmsf_file.last_revision.id, back_url: back_url), class: 'icon icon-ok', disabled: true %> <% end %> <% when DmsfWorkflow::STATE_APPROVED, DmsfWorkflow::STATE_REJECTED, DmsfWorkflow::STATE_OBSOLETE %> @@ -62,12 +64,12 @@ <% else %> <% if allowed_minor %> <%= context_menu_link l(:title_assignment), assign_dmsf_workflow_path(id: project.id, project_id: project.id, - dmsf_file_revision_id: dmsf_file.last_revision.id), + dmsf_file_revision_id: dmsf_file.last_revision.id, back_url: back_url), remote: true, class: 'icon icon-ok', id: 'dmsf-cm-workflow', disabled: locked || !workflows_available %> <% else %> <%= context_menu_link l(:title_assignment_minor), assign_dmsf_workflow_path(id: project.id, project_id: project.id, - dmsf_file_revision_id: dmsf_file.last_revision.id), + dmsf_file_revision_id: dmsf_file.last_revision.id, back_url: back_url), remote: true, class: 'icon icon-ok', id: 'dmsf-cm-workflow', disabled: true %> <% end %> diff --git a/app/views/dmsf_context_menus/_file.html.erb b/app/views/dmsf_context_menus/_file.html.erb index b2c288c2..842a142c 100644 --- a/app/views/dmsf_context_menus/_file.html.erb +++ b/app/views/dmsf_context_menus/_file.html.erb @@ -21,42 +21,43 @@ %>
diff --git a/app/views/dmsf_files/_link.html.erb b/app/views/dmsf_files/_link.html.erb index 8514fa6c..9149745b 100644 --- a/app/views/dmsf_files/_link.html.erb +++ b/app/views/dmsf_files/_link.html.erb @@ -25,12 +25,12 @@
<% end %> <% file_view_url = url_for({ controller: :dmsf_files, action: 'view', id: dmsf_file }) %> - <%= link_to(h(dmsf_file.title), + <%= link_to h(link ? link.name : dmsf_file.title), file_view_url, target: '_blank', class: "icon icon-file #{DmsfHelper.filetype_css(dmsf_file.name)}", title: h(dmsf_file.last_revision.try(:tooltip)), - 'data-downloadurl' => "#{dmsf_file.last_revision.detect_content_type}:#{h(dmsf_file.name)}:#{file_view_url}") %> + 'data-downloadurl' => "#{dmsf_file.last_revision.detect_content_type}:#{h(dmsf_file.name)}:#{file_view_url}" %> <% if dmsf_file.text? || dmsf_file.image? %> <%= link_to l(:button_view), file_view_url, @@ -44,7 +44,7 @@ <% # Details %> <% if User.current.allowed_to? :file_manipulation, dmsf_file.project %> - <%= link_to '', dmsf_file_path(id: dmsf_file), + <%= link_to '', dmsf_file_path(id: dmsf_file, back_url: issue_path(@issue)), title: l(:link_details, title: h(dmsf_file.last_revision.title)), class: 'icon-only icon-edit' %> <% else %> @@ -52,15 +52,15 @@ <% end %> <% # Email %> <%= link_to '', entries_operations_dmsf_path(id: dmsf_file.project_id, email_entries: 'email', - ids: ["file-#{dmsf_file.id}"]), method: :post, title: l(:heading_send_documents_by_email), + ids: ["file-#{dmsf_file.id}"], back_url: issue_path(@issue)), method: :post, title: l(:heading_send_documents_by_email), class: 'icon-only icon-email-disabled' %> <% # Lock %> <% if !dmsf_file.locked? %> - <%= link_to '', lock_dmsf_files_path(id: dmsf_file), + <%= link_to '', lock_dmsf_files_path(id: dmsf_file, back_url: issue_path(@issue)), title: l(:title_lock_file), class: 'icon-only icon-lock' %> <% elsif dmsf_file.unlockable? && (!dmsf_file.locked_for_user? || User.current.allowed_to?(:force_file_unlock, dmsf_file.project)) %> - <%= link_to '', unlock_dmsf_files_path(id: dmsf_file), + <%= link_to '', unlock_dmsf_files_path(id: dmsf_file, back_url: issue_path(@issue)), title: dmsf_file.get_locked_title, class: 'icon-only icon-unlock' %> <% else %> @@ -69,18 +69,18 @@ <% if !dmsf_file.locked? %> <% # Notifications %> <% if dmsf_file.notification %> - <%= link_to '', notify_deactivate_dmsf_files_path(id: dmsf_file), + <%= link_to '', notify_deactivate_dmsf_files_path(id: dmsf_file, back_url: issue_path(@issue)), title: l(:title_notifications_active_deactivate), class: 'icon-only icon-email' %> <% else %> - <%= link_to '', notify_activate_dmsf_files_path(id: dmsf_file), + <%= link_to '', notify_activate_dmsf_files_path(id: dmsf_file, back_url: issue_path(@issue)), title: l(:title_notifications_not_active_activate), class: 'icon-only icon-email-add' %> <% end %> <% # Delete %> <% if @issue.attributes_editable? && User.current.allowed_to?(:file_delete, dmsf_file.project) %> <%= link_to '', - link ? dmsf_link_path(link, commit: 'yes') : dmsf_file_path(id: dmsf_file, commit: 'yes'), + link ? dmsf_link_path(link, commit: 'yes', back_url: issue_path(@issue)) : dmsf_file_path(id: dmsf_file, commit: 'yes', back_url: issue_path(@issue)), data: { confirm: l(:text_are_you_sure) }, method: :delete, title: l(:button_delete), @@ -96,6 +96,6 @@ locals: { file: dmsf_file, file_approval_allowed: User.current.allowed_to?(:file_approval, dmsf_file.project), workflows_available: DmsfWorkflow.where(['project_id = ? OR project_id IS NULL', dmsf_file.project_id]).exists?, - project: dmsf_file.project, wf: wf, dmsf_link_id: nil } %> + project: dmsf_file.project, wf: wf, dmsf_link_id: nil, back_url: issue_path(@issue) } %>
diff --git a/app/views/dmsf_workflows/_action.html.erb b/app/views/dmsf_workflows/_action.html.erb index b5502e57..e7a4be42 100644 --- a/app/views/dmsf_workflows/_action.html.erb +++ b/app/views/dmsf_workflows/_action.html.erb @@ -25,6 +25,7 @@ <%= form_tag({ controller: 'dmsf_workflows', action: 'new_action'}, method: :post, id: 'new-action-form') do %> <%= hidden_field_tag :dmsf_workflow_step_assignment_id, params[:dmsf_workflow_step_assignment_id] %> <%= hidden_field_tag :dmsf_file_revision_id, params[:dmsf_file_revision_id] %> + <%= hidden_field_tag :back_url, params[:back_url] %>