This commit is contained in:
karel.picman@lbcfree.net 2021-03-04 10:29:21 +01:00
parent 4d2bf4f31f
commit ea5fedcb4c
7 changed files with 34 additions and 33 deletions

View File

@ -40,7 +40,8 @@ def dmsf_init
# Main menu extension
Redmine::MenuManager.map :top_menu do |menu|
menu.push :dmsf, { controller: 'dmsf', action: 'index' }, caption: :menu_dmsf,
html: { class: 'icon-dmsf' }, if: Proc.new { User.current.logged? }
html: { class: 'icon-dmsf' },
if: Proc.new { User.current.allowed_to?(:view_dmsf_folders, nil, global: true) }
end
Redmine::AccessControl.map do |map|

View File

@ -152,7 +152,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 fallback_location: dmsf_path(id: @project, folder_id: @folder)
redirect_back_or_default dmsf_path(id: @project, folder_id: @folder)
return
end
@ -171,13 +171,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 fallback_location: dmsf_path(id: @project, folder_id: @folder)
redirect_back_or_default dmsf_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 fallback_location: dmsf_path(id: @project, folder_id: @folder)
redirect_back_or_default dmsf_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 fallback_location: dmsf_path(id: @project, folder_id: @folder)
redirect_back_or_default dmsf_path(id: @project, folder_id: @folder)
else
download_entries(selected_folders, selected_files)
end
@ -188,7 +188,7 @@ class DmsfController < ApplicationController
rescue StandardError => e
flash[:error] = e.message
Rails.logger.error e.message
return redirect_back(fallback_location: dmsf_folder_path(id: @project, folder_id: @folder))
return redirect_back_or_default(dmsf_folder_path(id: @project, folder_id: @folder))
end
end
@ -199,7 +199,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 fallback_location: dmsf_path(id: @project, folder_id: @folder)
redirect_back_or_default dmsf_path(id: @project, folder_id: @folder)
end
def entries_email
@ -294,7 +294,7 @@ class DmsfController < ApplicationController
respond_to do |format|
format.html do
if commit
redirect_back fallback_location: dmsf_path(id: @project, folder_id: @folder)
redirect_back_or_default dmsf_path(id: @project, folder_id: @folder)
else
redirect_to dmsf_folder_path(id: @project, folder_id: @parent)
end
@ -309,7 +309,7 @@ class DmsfController < ApplicationController
else
flash[:error] = @folder.errors.full_messages.to_sentence
end
redirect_back fallback_location: trash_dmsf_path(@project)
redirect_back_or_default trash_dmsf_path(@project)
end
def edit_root
@ -339,7 +339,7 @@ class DmsfController < ApplicationController
end
flash[:notice] = l(:notice_folder_notifications_activated)
end
redirect_back fallback_location: dmsf_path(id: @project, folder_id: @folder)
redirect_back_or_default dmsf_path(id: @project, folder_id: @folder)
end
def notify_deactivate
@ -354,7 +354,7 @@ class DmsfController < ApplicationController
end
flash[:notice] = l(:notice_folder_notifications_deactivated)
end
redirect_back fallback_location: dmsf_path(id: @project, folder_id: @folder)
redirect_back_or_default dmsf_path(id: @project, folder_id: @folder)
end
def lock
@ -366,7 +366,7 @@ class DmsfController < ApplicationController
@folder.lock!
flash[:notice] = l(:notice_folder_locked)
end
redirect_back fallback_location: dmsf_path(id: @project, folder_id: @folder)
redirect_back_or_default dmsf_path(id: @project, folder_id: @folder)
end
def unlock
@ -382,7 +382,7 @@ class DmsfController < ApplicationController
flash[:error] = l(:error_only_user_that_locked_folder_can_unlock_it)
end
end
redirect_back fallback_location: dmsf_path(id: @project, folder_id: @folder)
redirect_back_or_default dmsf_path(id: @project, folder_id: @folder)
end
def add_email
@ -472,7 +472,7 @@ class DmsfController < ApplicationController
link&.delete true
end
end
redirect_back_or_default trash_dmsf_path(id: @project.id)
redirect_back_or_default_or_default trash_dmsf_path(id: @project.id)
end
private
@ -645,7 +645,7 @@ class DmsfController < ApplicationController
end
end
unless not_deleted_files.empty?
flash[:warning] = l(:warning_some_entries_were_not_deleted, entries: not_deleted_files.map{ |f| f.title }.
flash[:warning] = l(:warning_some_entries_were_not_deleted, entries: not_deleted_files.map{ |f| h(f.title) }.
join(', '))
end
# Links

View File

@ -158,7 +158,7 @@ class DmsfFilesController < ApplicationController
Rails.logger.error e.message
flash[:error] = e.message
revision.destroy
redirect_back fallback_location: dmsf_path(id: @project, folder_id: @folder)
redirect_back_or_default dmsf_path(id: @project, folder_id: @folder)
return
end
end
@ -194,7 +194,7 @@ class DmsfFilesController < ApplicationController
end
end
end
redirect_back fallback_location: dmsf_path(id: @project, folder_id: @folder)
redirect_back_or_default dmsf_path(id: @project, folder_id: @folder)
end
def delete
@ -268,7 +268,7 @@ class DmsfFilesController < ApplicationController
flash[:error] = e.message
end
end
redirect_back fallback_location: dmsf_path(id: @project, folder_id: @folder)
redirect_back_or_default dmsf_path(id: @project, folder_id: @folder)
end
def unlock
@ -286,7 +286,7 @@ class DmsfFilesController < ApplicationController
flash[:error] = l(:error_only_user_that_locked_file_can_unlock_it)
end
end
redirect_back fallback_location: dmsf_path(id: @project, folder_id: @folder)
redirect_back_or_default dmsf_path(id: @project, folder_id: @folder)
end
def notify_activate
@ -296,7 +296,7 @@ class DmsfFilesController < ApplicationController
@file.notify_activate
flash[:notice] = l(:notice_file_notifications_activated)
end
redirect_back fallback_location: dmsf_path(id: @project, folder_id: @folder)
redirect_back_or_default dmsf_path(id: @project, folder_id: @folder)
end
def notify_deactivate
@ -306,7 +306,7 @@ class DmsfFilesController < ApplicationController
@file.notify_deactivate
flash[:notice] = l(:notice_file_notifications_deactivated)
end
redirect_back fallback_location: dmsf_path(id: @project, folder_id: @folder)
redirect_back_or_default dmsf_path(id: @project, folder_id: @folder)
end
def restore
@ -315,7 +315,7 @@ class DmsfFilesController < ApplicationController
else
flash[:error] = @file.errors.full_messages.to_sentence
end
redirect_back fallback_location: dmsf_path(id: @project, folder_id: @folder)
redirect_back_or_default dmsf_path(id: @project, folder_id: @folder)
end
def thumbnail

View File

@ -43,7 +43,7 @@ class DmsfFoldersCopyController < ApplicationController
redirect_to dmsf_folder_path(id: @target_project, folder_id: new_folder)
else
flash[:error] = new_folder.errors.full_messages.to_sentence
redirect_back fallback_location: dmsf_path(id: @project, folder_id: @folder)
redirect_back_or_default dmsf_path(id: @project, folder_id: @folder)
end
end
@ -53,7 +53,7 @@ class DmsfFoldersCopyController < ApplicationController
redirect_to dmsf_folder_path(id: @target_project, folder_id: @folder)
else
flash[:error] = @folder.errors.full_messages.to_sentence
redirect_back fallback_location: dmsf_path(id: @project, folder_id: @folder)
redirect_back_or_default dmsf_path(id: @project, folder_id: @folder)
end
end

View File

@ -180,14 +180,14 @@ class DmsfLinksController < ApplicationController
errors[:base] << e.message
return false
end
redirect_back fallback_location: dmsf_folder_path(id: @project, folder_id: @folder)
redirect_back_or_default dmsf_folder_path(id: @project, folder_id: @folder)
end
def restore
if @dmsf_link.restore
flash[:notice] = l(:notice_dmsf_link_restored)
end
redirect_back fallback_location: dmsf_path(id: @project, folder_id: @folder)
redirect_back_or_default dmsf_path(id: @project, folder_id: @folder)
end
private

View File

@ -180,7 +180,7 @@ class DmsfWorkflowsController < ApplicationController
end
end
end
redirect_back fallback_location: dmsf_path(id: @project, folder_id: @folder)
redirect_back_or_default dmsf_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 fallback_location: dmsf_path(id: @project, folder_id: @folder)
redirect_back_or_default dmsf_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 fallback_location: dmsf_path(id: @project, folder_id: @folder)
redirect_back_or_default dmsf_path(id: @project, folder_id: @folder)
return
end
respond_to do |format|
@ -394,7 +394,7 @@ class DmsfWorkflowsController < ApplicationController
end
end
end
redirect_back fallback_location: dmsf_path(id: @project, folder_id: @folder)
redirect_back_or_default dmsf_path(id: @project, folder_id: @folder)
end
def reorder_steps
@ -422,7 +422,7 @@ class DmsfWorkflowsController < ApplicationController
flash[:error] = l(:notice_cannot_start_workflow)
end
end
redirect_back fallback_location: dmsf_path(id: @project, folder_id: @folder)
redirect_back_or_default dmsf_path(id: @project, folder_id: @folder)
end
def update_step

View File

@ -216,7 +216,7 @@ class DmsfQuery < Query
CAST(0 AS #{ActiveRecord::Base.connection.type_to_sql(:decimal)}) AS deleted,
0 AS sort #{cf_columns}}).visible
if dmsf_folder_id || deleted
scope.where '1=0'
scope.none
else
scope = scope.non_templates if scope.respond_to?(:non_templates)
scope.where projects: { parent_id: project&.id }
@ -249,7 +249,7 @@ class DmsfQuery < Query
dmsf_folders.deleted AS deleted,
1 AS sort #{cf_columns}}).
joins('LEFT JOIN users ON dmsf_folders.user_id = users.id')
return scope.where('1=0') unless project
return scope.none unless project
if deleted
scope = scope.deleted
else