current view changed after adding new revision #1282

This commit is contained in:
karel.picman@lbcfree.net 2021-08-30 16:51:43 +02:00
parent e47f23da25
commit 42f89a55c0
21 changed files with 161 additions and 123 deletions

View File

@ -35,6 +35,7 @@ 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
@ -42,12 +43,14 @@ 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
@ -55,6 +58,7 @@ 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
render layout: false
rescue ActiveRecord::RecordNotFound

View File

@ -45,6 +45,7 @@ class DmsfController < ApplicationController
include QueriesHelper
helper :dmsf_queries
include DmsfQueriesHelper
helper :context_menus
def permissions
if !DmsfFolder.permissions?(@folder, false)
@ -160,7 +161,7 @@ class DmsfController < ApplicationController
selected_dir_links.blank? && selected_file_links.blank? &&
selected_url_links.blank?
flash[:warning] = l(:warning_no_entries_selected)
redirect_back_or_default dmsf_folder_path(id: @project.id, folder_id: @folder)
redirect_back_or_default dmsf_folder_path(id: @project, folder_id: @folder)
return
end
@ -179,13 +180,13 @@ class DmsfController < ApplicationController
email_entries(selected_folders, selected_files)
elsif params[:restore_entries].present?
restore_entries(selected_folders, selected_files, selected_dir_links, selected_file_links, selected_url_links)
redirect_back_or_default dmsf_folder_path(id: @project.id, folder_id: @folder)
redirect_back_or_default dmsf_folder_path(id: @project, folder_id: @folder)
elsif params[:delete_entries].present?
delete_entries(selected_folders, selected_files, selected_dir_links, selected_file_links, selected_url_links, false)
redirect_back_or_default dmsf_folder_path(id: @project.id, folder_id: @folder)
redirect_back_or_default dmsf_folder_path(id: @project, folder_id: @folder)
elsif params[:destroy_entries].present?
delete_entries(selected_folders, selected_files, selected_dir_links, selected_file_links, selected_url_links, true)
redirect_back_or_default dmsf_folder_path(id: @project.id, folder_id: @folder)
redirect_back_or_default dmsf_folder_path(id: @project, folder_id: @folder)
else
download_entries(selected_folders, selected_files)
end
@ -207,7 +208,7 @@ class DmsfController < ApplicationController
return redirect_to dmsf_folder_path id: @project, folder_id: @folder, custom_field_id: key, custom_value: value
end
end
redirect_back_or_default dmsf_folder_path(id: @project.id, folder_id: @folder)
redirect_back_or_default dmsf_folder_path(id: @project, folder_id: @folder)
end
def entries_email
@ -302,7 +303,7 @@ class DmsfController < ApplicationController
respond_to do |format|
format.html do
if commit
redirect_back_or_default dmsf_folder_path(id: @project.id, folder_id: @folder)
redirect_to trash_dmsf_path(@project)
else
redirect_to dmsf_folder_path(id: @project, folder_id: @parent)
end
@ -317,7 +318,7 @@ class DmsfController < ApplicationController
else
flash[:error] = @folder.errors.full_messages.to_sentence
end
redirect_back_or_default trash_dmsf_path(@project)
redirect_to trash_dmsf_path(@project)
end
def save_root
@ -344,7 +345,7 @@ class DmsfController < ApplicationController
end
flash[:notice] = l(:notice_folder_notifications_activated)
end
redirect_back_or_default dmsf_folder_path(id: @project.id, folder_id: @folder)
redirect_back_or_default dmsf_folder_path(id: @project, folder_id: @folder)
end
def notify_deactivate
@ -359,7 +360,7 @@ class DmsfController < ApplicationController
end
flash[:notice] = l(:notice_folder_notifications_deactivated)
end
redirect_back_or_default dmsf_folder_path(id: @project.id, folder_id: @folder)
redirect_back_or_default dmsf_folder_path(id: @project, folder_id: @folder)
end
def lock
@ -371,7 +372,7 @@ class DmsfController < ApplicationController
@folder.lock!
flash[:notice] = l(:notice_folder_locked)
end
redirect_back_or_default dmsf_folder_path(id: @project.id, folder_id: @folder)
redirect_back_or_default dmsf_folder_path(id: @project, folder_id: @folder)
end
def unlock
@ -387,7 +388,7 @@ class DmsfController < ApplicationController
flash[:error] = l(:error_only_user_that_locked_folder_can_unlock_it)
end
end
redirect_back_or_default dmsf_folder_path(id: @project.id, folder_id: @folder)
redirect_back_or_default dmsf_folder_path(id: @project, folder_id: @folder)
end
def add_email
@ -477,7 +478,7 @@ class DmsfController < ApplicationController
link&.delete true
end
end
redirect_back_or_default trash_dmsf_path(id: @project.id)
redirect_back_or_default trash_dmsf_path(id: @project)
end
private

View File

@ -195,7 +195,7 @@ class DmsfFilesController < ApplicationController
flash[:error] = @file.errors.full_messages.to_sentence if @file.errors.any?
flash[:error] = revision.errors.full_messages.to_sentence if revision.errors.any?
flash[:notice] = (flash[:notice].nil? ? '' : flash[:notice]) + l(:notice_file_revision_created) if ok
redirect_back_or_default dmsf_folder_path(id: @project.id, folder_id: @folder)
redirect_back_or_default dmsf_folder_path(id: @project, folder_id: @folder)
end
format.api
end
@ -229,7 +229,7 @@ class DmsfFilesController < ApplicationController
end
respond_to do |format|
format.html do
redirect_to dmsf_folder_path(id: @project, folder_id: @folder)
redirect_back_or_default dmsf_folder_path(id: @project, folder_id: @folder)
end
format.api { result ? render_api_ok : render_validation_errors(@file) }
end
@ -272,7 +272,7 @@ class DmsfFilesController < ApplicationController
flash[:error] = e.message
end
end
redirect_back_or_default dmsf_folder_path(id: @project.id, folder_id: @folder)
redirect_back_or_default dmsf_folder_path(id: @project, folder_id: @folder)
end
def unlock
@ -290,7 +290,7 @@ class DmsfFilesController < ApplicationController
flash[:error] = l(:error_only_user_that_locked_file_can_unlock_it)
end
end
redirect_back_or_default dmsf_folder_path(id: @project.id, folder_id: @folder)
redirect_back_or_default dmsf_folder_path(id: @project, folder_id: @folder)
end
def notify_activate
@ -300,7 +300,7 @@ class DmsfFilesController < ApplicationController
@file.notify_activate
flash[:notice] = l(:notice_file_notifications_activated)
end
redirect_back_or_default dmsf_folder_path(id: @project.id, folder_id: @folder)
redirect_back_or_default dmsf_folder_path(id: @project, folder_id: @folder)
end
def notify_deactivate
@ -310,7 +310,7 @@ class DmsfFilesController < ApplicationController
@file.notify_deactivate
flash[:notice] = l(:notice_file_notifications_deactivated)
end
redirect_back_or_default dmsf_folder_path(id: @project.id, folder_id: @folder)
redirect_back_or_default dmsf_folder_path(id: @project, folder_id: @folder)
end
def restore
@ -319,7 +319,7 @@ class DmsfFilesController < ApplicationController
else
flash[:error] = @file.errors.full_messages.to_sentence
end
redirect_back_or_default dmsf_folder_path(id: @project.id, folder_id: @folder)
redirect_to trash_dmsf_path(@project)
end
def thumbnail

View File

@ -33,6 +33,7 @@ class DmsfFilesCopyController < ApplicationController
@projects = DmsfFile.allowed_target_projects_on_copy
@folders = DmsfFolder.directory_tree(@target_project, @folder)
@target_folder = DmsfFolder.visible.find(params[:target_folder_id]) unless params[:target_folder_id].blank?
@back_url = params[:back_url]
render layout: !request.xhr?
end
@ -40,21 +41,19 @@ class DmsfFilesCopyController < ApplicationController
new_file = @file.copy_to(@target_project, @target_folder)
if new_file.nil? || new_file.errors.present?
flash[:error] = new_file ? new_file.errors.full_messages.to_sentence : @file.errors.full_messages.to_sentence
redirect_to action: 'new', id: @file, target_project_id: @target_project, target_folder_id: @target_folder
return
end
else
flash[:notice] = l(:notice_successful_update)
redirect_to dmsf_file_path(new_file)
end
redirect_back_or_default dmsf_folder_path(id: @file.project, folder_id: @file.dmsf_folder)
end
def move
unless @file.move_to(@target_project, @target_folder)
flash[:error] = @file.errors.full_messages.to_sentence
redirect_to action: 'new', id: @file, target_project_id: @target_project, target_folder_id: @target_folder
return
end
if @file.move_to(@target_project, @target_folder)
flash[:notice] = l(:notice_successful_update)
redirect_to dmsf_file_path(@file)
else
flash[:error] = @file.errors.full_messages.to_sentence
end
redirect_back_or_default dmsf_folder_path(id: @file.project, folder_id: @file.dmsf_folder)
end
private

View File

@ -33,6 +33,7 @@ class DmsfFoldersCopyController < ApplicationController
@projects = DmsfFolder.allowed_target_projects_on_copy
@folders = DmsfFolder.directory_tree(@target_project, @folder)
@target_folder = DmsfFolder.visible.find(params[:target_folder_id]) unless params[:target_folder_id].blank?
@back_url = params[:back_url]
render layout: !request.xhr?
end
@ -40,21 +41,19 @@ class DmsfFoldersCopyController < ApplicationController
new_folder = @folder.copy_to(@target_project, @target_folder)
if new_folder.errors.empty?
flash[:notice] = l(:notice_successful_update)
redirect_to dmsf_folder_path(id: @target_project, folder_id: new_folder)
else
flash[:error] = new_folder.errors.full_messages.to_sentence
redirect_back_or_default dmsf_folder_path(id: @project.id, folder_id: @folder)
end
redirect_back_or_default dmsf_folder_path(id: @project, folder_id: @folder.dmsf_folder)
end
def move
if @folder.move_to(@target_project, @target_folder)
flash[:notice] = l(:notice_successful_update)
redirect_to dmsf_folder_path(id: @target_project, folder_id: @folder)
else
flash[:error] = @folder.errors.full_messages.to_sentence
redirect_back_or_default dmsf_folder_path(id: @project.id, folder_id: @folder)
end
redirect_back_or_default dmsf_folder_path(id: @project, folder_id: @folder.dmsf_folder)
end
private

View File

@ -55,7 +55,9 @@ 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 = 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)
@ -151,13 +153,13 @@ class DmsfLinksController < ApplicationController
respond_to do |format|
format.html {
if params[:dmsf_link][:type] == 'link_from'
redirect_to dmsf_folder_path(id: @project, folder_id: @dmsf_link.dmsf_folder_id)
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)
else
folder = @dmsf_link.target_folder.dmsf_folder if @dmsf_link.target_folder
redirect_to dmsf_folder_path(id: @project, folder_id: folder)
redirect_back_or_default dmsf_folder_path(id: @project, folder_id: folder)
end
end
}
@ -186,8 +188,10 @@ class DmsfLinksController < ApplicationController
def restore
if @dmsf_link.restore
flash[:notice] = l(:notice_dmsf_link_restored)
else
flash[:error] = @dmsf_link.errors.full_messages.to_sentence
end
redirect_back_or_default dmsf_folder_path(id: @project.id, folder_id: @folder)
redirect_to trash_dmsf_path(@project)
end
private

View File

@ -180,7 +180,7 @@ class DmsfWorkflowsController < ApplicationController
end
end
end
redirect_back_or_default dmsf_folder_path(id: @project.id, folder_id: @folder)
redirect_back_or_default dmsf_folder_path(id: @project, folder_id: @folder)
end
def assign
@ -215,7 +215,7 @@ class DmsfWorkflowsController < ApplicationController
rescue => e
flash[:error] = e.message
end
redirect_back_or_default dmsf_folder_path(id: @project.id, folder_id: @folder)
redirect_back_or_default dmsf_folder_path(id: @project, folder_id: @folder)
return
# DMS link (attached)
elsif params[:dmsf_link_id].present?
@ -227,7 +227,7 @@ class DmsfWorkflowsController < ApplicationController
@dmsf_workflow_id = params[:dmsf_workflow_id]
end
else
redirect_back_or_default dmsf_folder_path(id: @project.id, folder_id: @folder)
redirect_back_or_default dmsf_folder_path(id: @project, folder_id: @folder)
return
end
respond_to do |format|
@ -422,7 +422,7 @@ class DmsfWorkflowsController < ApplicationController
flash[:error] = l(:notice_cannot_start_workflow)
end
end
redirect_back_or_default dmsf_folder_path(id: @project.id, folder_id: @folder)
redirect_back_or_default dmsf_folder_path(id: @project, folder_id: @folder)
end
def update_step

View File

@ -42,7 +42,7 @@ module DmsfLinksHelper
def files_for_select(project_id, folder_id)
files = []
if folder_id && (folder_id != '0')
if folder_id && DmsfLinksHelper::is_a_number?(folder_id)
folder = DmsfFolder.find_by(id: folder_id)
files = folder.dmsf_files.visible.to_a if folder
elsif project_id

View File

@ -22,7 +22,7 @@
<h3 class="title"><%= l(:label_email_address_add) %></h3>
<%= form_tag(append_email_dmsf_path(id: @project.id), remote: true, method: :post, id: 'new-user-form') do %>
<%= form_tag(append_email_dmsf_path(id: @project), remote: true, method: :post, id: 'new-user-form') do %>
<%= hidden_field_tag :project_id, @project.id %>
<p><%= label_tag 'user_search', l(:label_user_search) %><%= text_field_tag 'user_search', nil %></p>
<%= late_javascript_tag "observeSearchfield('user_search', 'users_for_users', '#{ escape_javascript url_for(

View File

@ -28,30 +28,42 @@
<% if !@folder.new_record? && User.current.allowed_to?(:folder_manipulation, @project) && !@folder.system %>
<% if @folder.locked? %>
<%= link_to_if @folder.unlockable? && (!@folder.locked_for_user? || @force_file_unlock_allowed), l(:button_unlock),
unlock_dmsf_path(id: @project, folder_id: @folder),
unlock_dmsf_path(id: @project, folder_id: @folder, back_url: edit_dmsf_url(id: @project, folder_id: @folder)),
title: l(:title_unlock_file), class: 'icon icon-unlock' %>
<% else %>
<%= link_to l(:button_lock), lock_dmsf_path(id: @project, folder_id: @folder),
<%= link_to l(:button_lock), lock_dmsf_path(id: @project, folder_id: @folder,
back_url: edit_dmsf_url(id: @project, folder_id: @folder)),
title: l(:title_lock_file), class: 'icon icon-lock' %>
<% end %>
<% unless @folder.locked? %>
<% if @folder.notification %>
<%= link_to l(:label_notifications_off),
notify_deactivate_dmsf_path(id: @project, folder_id: @folder),
title: l(:title_notifications_active_deactivate),
class: 'icon icon-email' %>
<% if defined?(EasyExtensions) %>
<%= render partial: 'dmsf_context_menus/folder',
locals: { dmsf_folder: @folder,
locked: @folder.locked?,
allowed: true,
dmsf_link: nil,
project: @project,
folder: @folder.dmsf_folder,
edit: true,
unlockable: @folder.unlockable? && (!@folder.locked_for_user? || User.current.allowed_to?(:force_file_unlock, @project)),
email_allowed: User.current.allowed_to?(:email_documents, @project),
back_url: edit_dmsf_url(id: @project, folder_id: @folder)
} %>
<% else %>
<%= link_to l(:label_notifications_on),
notify_activate_dmsf_path(id: @project, folder_id: @folder),
title: l(:title_notifications_not_active_activate),
class: 'icon icon-email-add' %>
<%= actions_dropdown do %>
<%= render partial: 'dmsf_context_menus/folder',
locals: { dmsf_folder: @folder,
locked: @folder.locked?,
allowed: true,
dmsf_link: nil,
project: @project,
folder: @folder.dmsf_folder,
edit: true,
unlockable: @folder.unlockable? && (!@folder.locked_for_user? || User.current.allowed_to?(:force_file_unlock, @project)),
email_allowed: User.current.allowed_to?(:email_documents, @project),
back_url: edit_dmsf_url(id: @project, folder_id: @folder)
} %>
<% end %>
<% end %>
<% unless @folder.locked? %>
<%= link_to l(:button_delete), delete_dmsf_path(id: @project, folder_id: @folder),
data: { confirm: "#{l(:text_are_you_sure)}\n#{l(:text_not_empty) unless @folder.empty?}" },
title: l(:button_delete), class: 'icon icon-del', method: :delete %>
<% end %>
<% end %>
</div>

View File

@ -27,15 +27,15 @@
<div class="contextual">
<% if User.current.allowed_to?(:folder_manipulation, @project) %>
<% if @project.dmsf_notification %>
<%= link_to(l(:label_notifications_off),
notify_deactivate_dmsf_path(id: @project),
<%= link_to l(:label_notifications_off),
notify_deactivate_dmsf_path(id: @project, back_url: edit_root_dmsf_path(id: @project)),
title: l(:title_notifications_active_deactivate),
class: 'icon icon-email') %>
class: 'icon icon-email' %>
<% else %>
<%= link_to(l(:label_notifications_on),
notify_activate_dmsf_path(id: @project),
<%= link_to l(:label_notifications_on),
notify_activate_dmsf_path(id: @project, back_url: edit_root_dmsf_path(id: @project)),
title: l(:title_notifications_active_deactivate),
class: 'icon icon-email-add') %>
class: 'icon icon-email-add' %>
<% end %>
<% end %>
</div>

View File

@ -20,54 +20,62 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
%>
<% unless edit %>
<li>
<%= context_menu_link l(:button_edit), edit_dmsf_path(id: dmsf_folder.project, folder_id: dmsf_folder),
class: 'icon icon-edit', disabled: !allowed || locked %>
<%= context_menu_link l(:button_edit), edit_dmsf_path(id: dmsf_folder.project, folder_id: dmsf_folder,
back_url: back_url), class: 'icon icon-edit', disabled: !allowed || locked %>
</li>
<% end %>
<% unless dmsf_link %>
<li>
<%= context_menu_link "#{l(:button_copy)}/#{l(:button_move)}", copy_folder_path(id: dmsf_folder),
<%= context_menu_link "#{l(:button_copy)}/#{l(:button_move)}", copy_folder_path(id: dmsf_folder, back_url: back_url),
class: 'icon icon-copy', disabled: !allowed || locked %>
</li>
<li>
<%= context_menu_link l(:label_link_to),
new_dmsf_link_path(project_id: dmsf_folder.id, dmsf_folder_id: dmsf_folder.id, type: 'link_to'),
class: 'icon dmsf-icon-link' %>
new_dmsf_link_path(project_id: project.id, dmsf_folder_id: dmsf_folder.id, type: 'link_to',
back_url: back_url), class: 'icon dmsf-icon-link' %>
</li>
<% end %>
<% unless edit %>
<li>
<% if locked %>
<%= context_menu_link l(:button_unlock), unlock_dmsf_path(id: dmsf_folder.project, folder_id: dmsf_folder),
title: l(:title_locked_by_user, user: dmsf_folder.locked_by),
<%= context_menu_link l(:button_unlock), unlock_dmsf_path(id: dmsf_folder.project, folder_id: dmsf_folder,
back_url: back_url), title: l(:title_locked_by_user, user: dmsf_folder.locked_by),
class: 'icon icon-unlock', disabled: !allowed || !unlockable %>
<% else %>
<%= context_menu_link l(:button_lock), lock_dmsf_path(id: dmsf_folder.project, folder_id: dmsf_folder),
class: 'icon icon-lock', disabled: !allowed %>
<%= context_menu_link l(:button_lock), lock_dmsf_path(id: dmsf_folder.project, folder_id: dmsf_folder,
back_url: back_url), class: 'icon icon-lock', disabled: !allowed %>
<% end %>
</li>
<% end %>
<li>
<% if dmsf_folder.notification %>
<%= context_menu_link l(:label_notifications_off), notify_deactivate_dmsf_path(id: dmsf_folder.project, folder_id: dmsf_folder),
class: 'icon icon-email', disabled: !allowed || locked || !dmsf_folder.notification? %>
<%= context_menu_link l(:label_notifications_off), notify_deactivate_dmsf_path(id: dmsf_folder.project,
folder_id: dmsf_folder, back_url: back_url), class: 'icon icon-email',
disabled: !allowed || locked || !dmsf_folder.notification? %>
<% else %>
<%= context_menu_link l(:label_notifications_on), notify_activate_dmsf_path(id: dmsf_folder.project, folder_id: dmsf_folder),
class: 'icon icon-email-add', disabled: !allowed || locked || dmsf_folder.notification? %>
<%= context_menu_link l(:label_notifications_on), notify_activate_dmsf_path(id: dmsf_folder.project,
folder_id: dmsf_folder, back_url: back_url), class: 'icon icon-email-add',
disabled: !allowed || locked || dmsf_folder.notification? %>
<% end %>
</li>
<% unless edit %>
<li>
<%= context_menu_link l(:button_download), entries_operations_dmsf_path(id: project, folder_id: folder,
ids: params[:ids], download_entries: true), method: :post, class: 'icon icon-download',
ids: params[:ids], download_entries: true, back_url: back_url), method: :post, class: 'icon icon-download',
id: 'dmsf-cm-download', disabled: false %>
</li>
<li>
<%= context_menu_link l(:field_mail), entries_operations_dmsf_path(id: dmsf_folder.project, folder_id: folder,
ids: params[:ids], email_entries: true), method: :post, class: 'icon icon-email',
ids: params[:ids], email_entries: true, back_url: back_url), method: :post, class: 'icon icon-email',
disabled: !email_allowed %>
</li>
<% end %>
<li>
<%= context_menu_link l(:button_delete),
dmsf_link ? dmsf_link_path(id: dmsf_link, folder_id: folder) :
delete_dmsf_path(id: dmsf_folder.project, folder_id: dmsf_folder, parent_id: folder),
dmsf_link ? dmsf_link_path(id: dmsf_link, folder_id: folder, back_url: back_url) :
delete_dmsf_path(id: dmsf_folder.project, folder_id: dmsf_folder, parent_id: folder, back_url: back_url),
data: { confirm: "#{l(:text_are_you_sure)}\n#{l(:text_not_empty) unless dmsf_folder.empty?}" }, method: :delete,
class: 'icon icon-del', id: 'dmsf-cm-delete', disabled: !allowed || (locked && !dmsf_link) %>
</li>

View File

@ -22,19 +22,21 @@
<% if file.notification %>
<%= link_to l(:label_notifications_off),
notify_deactivate_dmsf_files_path(id: file),
notify_deactivate_dmsf_files_path(id: file, back_url: back_url),
title: l(:title_notifications_active_deactivate),
class: 'icon icon-email' %>
<% else %>
<%= link_to l(:label_notifications_on),
notify_activate_dmsf_files_path(id: file),
notify_activate_dmsf_files_path(id: file, back_url: back_url),
title: l(:title_notifications_not_active_activate),
class: 'icon icon-email-add' %>
<% end %>
<%= link_to l(:label_link_to),
new_dmsf_link_path(project_id: project.id, dmsf_folder_id: file.dmsf_folder ? file.dmsf_folder.id : nil, dmsf_file_id: file.id, type: 'link_to'),
new_dmsf_link_path(project_id: project.id, dmsf_folder_id: file.dmsf_folder ? file.dmsf_folder.id : nil,
dmsf_file_id: file.id, type: 'link_to', back_url: back_url),
title: l(:title_create_link),
class: 'icon dmsf-icon-link' %>
<%= link_to "#{l(:button_copy)}/#{l(:button_move)}", copy_file_path(id: file),
<%= link_to "#{l(:button_copy)}/#{l(:button_move)}", copy_file_path(id: file, back_url: back_url),
title: l(:title_copy), class: 'icon icon-copy' %>
<%= delete_link(dmsf_file_path(id: file, details: true)) if file_delete_allowed %>
<%= delete_link(dmsf_file_path(id: file, details: true),
back_url: dmsf_folder_path(id: file.project, folder_id: file.dmsf_folder)) if file_delete_allowed %>

View File

@ -24,16 +24,17 @@
<% if @dmsf_file %>
<%= render partial: 'file', locals: { project: @project, folder: @folder, dmsf_file: @dmsf_file,
dmsf_link: @dmsf_link, locked: @locked, unlockable: @unlockable,
allowed: @allowed, email_allowed: @email_allowed } %>
allowed: @allowed, email_allowed: @email_allowed, back_url: @back_url } %>
<% elsif @dmsf_folder %>
<%= render partial: 'folder', locals: { project: @project, folder: @folder, dmsf_folder: @dmsf_folder,
dmsf_link: @dmsf_link, locked: @locked, unlockable: @unlockable,
allowed: @allowed, email_allowed: @email_allowed } %>
allowed: @allowed, email_allowed: @email_allowed, edit: false,
back_url: @back_url } %>
<% elsif @dmsf_link %>
<%= render partial: 'url', locals: { dmsf_link: @dmsf_link, allowed: @allowed } %>
<%= render partial: 'url', locals: { dmsf_link: @dmsf_link, allowed: @allowed, back_url: @back_url } %>
<% else %>
<%= render partial: 'multiple', locals: { project: @project, folder: @folder, allowed: @allowed,
email_allowed: @email_allowed } %>
email_allowed: @email_allowed, back_url: @back_url } %>
<% end %>
</ul>

View File

@ -28,24 +28,28 @@
<% if @file_manipulation_allowed %>
<% if @file.locked_for_user? %>
<% if User.current.allowed_to?(:force_file_unlock, @project) %>
<%= link_to_if @file.unlockable?, l(:button_unlock), unlock_dmsf_files_path(id: @file),
<%= link_to_if @file.unlockable?, l(:button_unlock), unlock_dmsf_files_path(id: @file,
back_url: dmsf_file_path(id: @file)),
title: l(:title_unlock_file), class: 'icon icon-unlock' %>
<% end %>
<% else %>
<% if @file.locked? %>
<%= link_to_if @file.unlockable?, l(:button_unlock), unlock_dmsf_files_path(id: @file),
<%= link_to_if @file.unlockable?, l(:button_unlock), unlock_dmsf_files_path(id: @file,
back_url: dmsf_file_path(id: @file)),
title: l(:title_unlock_file), class: 'icon icon-unlock' %>
<% else %>
<%= link_to l(:button_lock), lock_dmsf_files_path(id: @file),
<%= link_to l(:button_lock), lock_dmsf_files_path(id: @file, back_url: dmsf_file_path(id: @file)),
title: l(:title_lock_file), class: 'icon icon-lock' %>
<% end %>
<% if defined?(EasyExtensions) %>
<%= render partial: 'dmsf_context_menus/revisions',
locals: { project: @project, file: @file, file_delete_allowed: @file_delete_allowed } %>
locals: { project: @project, file: @file, file_delete_allowed: @file_delete_allowed,
back_url: dmsf_file_path(id: @file)} %>
<% else %>
<%= actions_dropdown do %>
<%= render partial: 'dmsf_context_menus/revisions',
locals: { project: @project, file: @file, file_delete_allowed: @file_delete_allowed } %>
locals: { project: @project, file: @file, file_delete_allowed: @file_delete_allowed,
back_url: dmsf_file_path(id: @file) } %>
<% end %>
<% end %>
<% end %>

View File

@ -32,4 +32,5 @@
folders: @folders,
file_or_folder: @file,
target_folder: @target_folder,
permission: :file_manipulation } %>
permission: :file_manipulation,
back_url: @back_url } %>

View File

@ -22,6 +22,7 @@
<% if projects.present? %>
<%= form_tag({ action: 'copy', id: file_or_folder}, id: 'copyForm') do %>
<%= hidden_field_tag 'back_url', back_url %>
<div class="box tabular">
<p>
<%= label_tag 'target_project_id', l(:field_target_project) %>

View File

@ -31,4 +31,5 @@
folders: @folders,
file_or_folder: @folder,
target_folder: @target_folder,
permission: :folder_manipulation } %>
permission: :folder_manipulation,
back_url: @back_url} %>

View File

@ -29,6 +29,7 @@
<%= f.hidden_field :type, value: @type %>
<%= f.hidden_field :dmsf_file_id, value: @dmsf_file_id %>
<%= f.hidden_field(:container, value: @container) if @container %>
<%= hidden_field_tag 'back_url', @back_url %>
<div class="box tabular">
<% if (@type == 'link_from') && !@container %>
<p>

View File

@ -105,7 +105,7 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase
assert_equal 0, DmsfFolder.deleted.where(project_id: @project1.id).all.size
assert_equal 0, DmsfFile.deleted.where(project_id: @project1.id).all.size
assert_equal 0, DmsfLink.deleted.where(project_id: @project1.id).all.size
assert_redirected_to trash_dmsf_path(id: @project1.id)
assert_redirected_to trash_dmsf_path(id: @project1)
end
def test_empty_trash_forbidden
@ -124,7 +124,7 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase
def test_delete_locked
# Permissions OK but the folder is locked
@request.env['HTTP_REFERER'] = dmsf_folder_path(id: @project1.id, folder_id: @folder2.id)
@request.env['HTTP_REFERER'] = dmsf_folder_path(id: @project1, folder_id: @folder2.id)
get :delete, params: { id: @project1, folder_id: @folder2.id, commit: false}
assert_response :redirect
assert_include l(:error_folder_is_locked), flash[:error]
@ -154,7 +154,7 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase
def test_restore_ok
# Permissions OK
@request.env['HTTP_REFERER'] = trash_dmsf_path(id: @project1.id)
@request.env['HTTP_REFERER'] = trash_dmsf_path(id: @project1)
@folder1.deleted = 1
@folder1.save
get :restore, params: { id: @project1, folder_id: @folder1.id }
@ -171,7 +171,7 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase
def test_delete_entries_ok
# Permissions OK
@request.env['HTTP_REFERER'] = dmsf_folder_path(id: @project1.id)
@request.env['HTTP_REFERER'] = dmsf_folder_path(id: @project1)
flash[:error] = nil
get :entries_operation, params: { id: @project1, delete_entries: 'Delete',
ids: ["folder-#{@folder7.id}", "file-#{@file1.id}", "file-link-#{@link2.id}"]}
@ -181,7 +181,7 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase
def test_restore_entries
# Restore
@request.env['HTTP_REFERER'] = trash_dmsf_path(id: @project1.id)
@request.env['HTTP_REFERER'] = trash_dmsf_path(id: @project1)
flash[:error] = nil
get :entries_operation, params: { id: @project1, restore_entries: 'Restore',
ids: ["file-#{@file1.id}", "file-link-#{@link2.id}"]}

View File

@ -263,7 +263,7 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase
step_action: DmsfWorkflowStepAction::ACTION_APPROVE,
user_id: nil,
note: ''})
assert_redirected_to dmsf_folder_path(id: @project1.id)
assert_redirected_to dmsf_folder_path(id: @project1)
assert DmsfWorkflowStepAction.where(
dmsf_workflow_step_assignment_id: @wfsa2.id,
action: DmsfWorkflowStepAction::ACTION_APPROVE).first
@ -306,7 +306,7 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase
dmsf_file_revision_id: @revision2.id,
step_action: @admin.id * 10,
note: 'Delegated because...'})
assert_redirected_to dmsf_folder_path(id: @project1.id)
assert_redirected_to dmsf_folder_path(id: @project1)
assert DmsfWorkflowStepAction.where(
dmsf_workflow_step_assignment_id: @wfsa2.id,
action: DmsfWorkflowStepAction::ACTION_DELEGATE).first
@ -329,7 +329,7 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase
def test_start
@revision2.dmsf_workflow_id = @wf1.id
get :start, params: { id: @revision2.dmsf_workflow_id, dmsf_file_revision_id: @revision2.id }
assert_redirected_to dmsf_folder_path(id: @project1.id)
assert_redirected_to dmsf_folder_path(id: @project1)
end
def test_assignment