This commit is contained in:
Karel Pičman 2018-12-20 14:39:11 +01:00
parent 9a60e29268
commit bdb3d2df48
26 changed files with 191 additions and 177 deletions

View File

@ -22,7 +22,7 @@
source 'https://rubygems.org'
gem 'rubyzip', '>= 1.0.0'
gem 'rubyzip', '>= 1.1.3'
gem 'zip-zip'
gem 'simple_enum'
gem 'uuidtools'

View File

@ -93,7 +93,7 @@ class DmsfController < ApplicationController
:type => 'application/zip',
:disposition => 'attachment')
rescue Exception => e
flash[:error] = e.message
flash[:errors] = e.message
end
def entries_operation
@ -156,7 +156,7 @@ class DmsfController < ApplicationController
rescue DmsfAccessError
render_403 # and return
rescue StandardError => e
flash[:error] = e.message
flash[:errors] = e.message
Rails.logger.error e.message
end
end
@ -176,7 +176,7 @@ class DmsfController < ApplicationController
def entries_email
if params[:email][:to].strip.blank?
flash[:error] = l(:error_email_to_must_be_entered)
flash[:errors] = l(:error_email_to_must_be_entered)
else
DmsfMailer.deliver_send_documents(@project, params[:email])
File.delete(params[:email][:zipped_content])
@ -253,7 +253,7 @@ class DmsfController < ApplicationController
if result
flash[:notice] = l(:notice_folder_deleted)
else
flash[:error] = @folder.errors.full_messages.to_sentence
flash[:errors] = @folder.errors.full_messages.to_sentence
end
respond_to do |format|
format.html do
@ -271,7 +271,7 @@ class DmsfController < ApplicationController
if @folder.restore
flash[:notice] = l(:notice_dmsf_folder_restored)
else
flash[:error] = @folder.errors.full_messages.to_sentence
flash[:errors] = @folder.errors.full_messages.to_sentence
end
redirect_to :back
end
@ -285,7 +285,7 @@ class DmsfController < ApplicationController
if @project.save
flash[:notice] = l(:notice_folder_details_were_saved)
else
flash[:error] = @project.errors.full_messages.to_sentence
flash[:errors] = @project.errors.full_messages.to_sentence
end
end
redirect_to dmsf_folder_path(:id => @project)
@ -343,7 +343,7 @@ class DmsfController < ApplicationController
@folder.unlock!
flash[:notice] = l(:notice_folder_unlocked)
else
flash[:error] = l(:error_only_user_that_locked_folder_can_unlock_it)
flash[:errors] = l(:error_only_user_that_locked_folder_can_unlock_it)
end
end
redirect_to :back
@ -466,7 +466,7 @@ class DmsfController < ApplicationController
folder = DmsfFolder.find_by(id: id)
if folder
unless folder.restore
flash[:error] = folder.errors.full_messages.to_sentence
flash[:errors] = folder.errors.full_messages.to_sentence
end
else
raise FileNotFound
@ -477,7 +477,7 @@ class DmsfController < ApplicationController
file = DmsfFile.find_by(id: id)
if file
unless file.restore
flash[:error] = file.errors.full_messages.to_sentence
flash[:errors] = file.errors.full_messages.to_sentence
end
else
raise FileNotFound
@ -488,7 +488,7 @@ class DmsfController < ApplicationController
link = DmsfLink.find_by(id: id)
if link
unless link.restore
flash[:error] = link.errors.full_messages.to_sentence
flash[:errors] = link.errors.full_messages.to_sentence
end
else
raise FileNotFound
@ -502,7 +502,7 @@ class DmsfController < ApplicationController
folder = DmsfFolder.find_by(id: id)
if folder
unless folder.delete commit
flash[:error] = folder.errors.full_messages.to_sentence
flash[:errors] = folder.errors.full_messages.to_sentence
return
end
elsif !commit
@ -547,7 +547,7 @@ class DmsfController < ApplicationController
link = DmsfLink.find_by(id: id)
link.delete commit if link
end
if flash[:error].blank? && flash[:warning].blank?
if flash[:errors].blank? && flash[:warning].blank?
flash[:notice] = l(:notice_entries_deleted)
end
end

View File

@ -95,7 +95,7 @@ class DmsfFilesController < ApplicationController
def create_revision
if params[:dmsf_file_revision]
if @file.locked_for_user?
flash[:error] = l(:error_file_is_locked)
flash[:errors] = l(:error_file_is_locked)
else
revision = DmsfFileRevision.new
revision.title = params[:dmsf_file_revision][:title]
@ -175,10 +175,10 @@ class DmsfFilesController < ApplicationController
logger.error "Could not send email notifications: #{e.message}"
end
else
flash[:error] = @file.errors.full_messages.join(', ')
flash[:errors] = @file.errors.full_messages.join(', ')
end
else
flash[:error] = revision.errors.full_messages.join(', ')
flash[:errors] = revision.errors.full_messages.join(', ')
end
end
end
@ -207,7 +207,7 @@ class DmsfFilesController < ApplicationController
end
else
msg = @file.errors.full_messages.join(', ')
flash[:error] = msg
flash[:errors] = msg
Rails.logger.error msg
end
end
@ -232,7 +232,7 @@ class DmsfFilesController < ApplicationController
end
flash[:notice] = l(:notice_revision_deleted)
else
flash[:error] = @revision.errors.full_messages.join(', ')
flash[:errors] = @revision.errors.full_messages.join(', ')
end
end
redirect_to :action => 'show', :id => @file
@ -243,7 +243,7 @@ class DmsfFilesController < ApplicationController
if @revision.obsolete
flash[:notice] = l(:notice_revision_obsoleted)
else
flash[:error] = @revision.errors.full_messages.join(', ')
flash[:errors] = @revision.errors.full_messages.join(', ')
end
end
redirect_to :action => 'show', :id => @file
@ -257,7 +257,7 @@ class DmsfFilesController < ApplicationController
@file.lock!
flash[:notice] = l(:notice_file_locked)
rescue Exception => e
flash[:error] = e.message
flash[:errors] = e.message
end
end
redirect_to :back
@ -272,10 +272,10 @@ class DmsfFilesController < ApplicationController
@file.unlock!
flash[:notice] = l(:notice_file_unlocked)
rescue Exception => e
flash[:error] = e.message
flash[:errors] = e.message
end
else
flash[:error] = l(:error_only_user_that_locked_file_can_unlock_it)
flash[:errors] = l(:error_only_user_that_locked_file_can_unlock_it)
end
end
redirect_to :back
@ -305,7 +305,7 @@ class DmsfFilesController < ApplicationController
if @file.restore
flash[:notice] = l(:notice_dmsf_file_restored)
else
flash[:error] = @file.errors.full_messages.to_sentence
flash[:errors] = @file.errors.full_messages.to_sentence
end
redirect_to :back
end

View File

@ -36,7 +36,7 @@ class DmsfFilesCopyController < ApplicationController
def copy
new_file = @file.copy_to(@target_project, @target_folder)
unless new_file.errors.empty?
flash[:error] = new_file.errors.full_messages.join(', ')
flash[:errors] = new_file.errors.full_messages.join(', ')
redirect_to :action => 'new', :id => @file, :target_project_id => @target_project,
:target_folder_id => @target_folder
return
@ -47,7 +47,7 @@ class DmsfFilesCopyController < ApplicationController
def move
unless @file.move_to(@target_project, @target_folder)
flash[:error] = @file.errors.full_messages.join(', ')
flash[:errors] = @file.errors.full_messages.join(', ')
redirect_to :action => 'new', :id => @file, :target_project_id => @target_project,
:target_folder_id => @target_folder
return
@ -89,7 +89,7 @@ private
def check_target_folder
if (@target_folder && @target_folder == @file.dmsf_folder) ||
(@target_folder.nil? && @file.dmsf_folder.nil? && @target_project == @file.project)
flash[:error] = l(:error_target_folder_same)
flash[:errors] = l(:error_target_folder_same)
redirect_to :action => :new, :id => @file, :target_project_id => @target_project.id,
:target_folder_id => @target_folder
return

View File

@ -36,7 +36,7 @@ class DmsfFoldersCopyController < ApplicationController
def copy
new_folder = @folder.copy_to(@target_project, @target_folder)
unless new_folder.errors.empty?
flash[:error] = new_folder.errors.full_messages.join(', ')
flash[:errors] = new_folder.errors.full_messages.join(', ')
redirect_to :action => 'new', :id => @folder, :target_project_id => @target_project,
:target_folder_id => @target_folder
return
@ -52,7 +52,7 @@ class DmsfFoldersCopyController < ApplicationController
flash[:notice] = l(:notice_successful_update)
redirect_to dmsf_folder_path(:id => @target_project, :folder_id => @folder)
else
flash[:error] = @folder.errors.full_messages.join(', ')
flash[:errors] = @folder.errors.full_messages.join(', ')
redirect_to :action => 'new', :id => @folder, :target_project_id => @target_project,
:target_folder_id => @target_folder
end
@ -91,7 +91,7 @@ class DmsfFoldersCopyController < ApplicationController
def check_target_folder
if (@target_folder && @target_folder == @folder.dmsf_folder) ||
(@target_folder.nil? && @folder.dmsf_folder.nil? && @target_project == @folder.project)
flash[:error] = l(:error_target_folder_same)
flash[:errors] = l(:error_target_folder_same)
redirect_to :action => :new, :id => @folder, :target_project_id => @target_project.id,
:target_folder_id => @target_folder
return

View File

@ -112,7 +112,7 @@ class DmsfLinksController < ApplicationController
if result
flash[:notice] = l(:notice_successful_create)
else
flash[:error] = @dmsf_link.errors.full_messages.to_sentence
flash[:errors] = @dmsf_link.errors.full_messages.to_sentence
end
else
# Link to
@ -141,7 +141,7 @@ class DmsfLinksController < ApplicationController
if result
flash[:notice] = l(:notice_successful_create)
else
flash[:error] = @dmsf_link.errors.full_messages.to_sentence
flash[:errors] = @dmsf_link.errors.full_messages.to_sentence
end
end
respond_to do |format|
@ -169,7 +169,7 @@ class DmsfLinksController < ApplicationController
flash[:notice] = l(:notice_successful_delete)
else
@dmsf_link.errors.each do |e, msg|
flash[:error] = msg
flash[:errors] = msg
end
end
end

View File

@ -35,7 +35,7 @@ class DmsfStateController < ApplicationController
if format_valid?(member.dmsf_title_format) && member.save
flash[:notice] = l(:notice_your_preferences_were_saved)
else
flash[:error] = l(:notice_your_preferences_were_not_saved)
flash[:errors] = l(:notice_your_preferences_were_not_saved)
end
else
flash[:warning] = l(:user_is_not_project_member)

View File

@ -171,7 +171,7 @@ class DmsfWorkflowsController < ApplicationController
end
flash[:notice] = l(:notice_successful_update)
elsif action.action != DmsfWorkflowStepAction::ACTION_APPROVE && action.note.blank?
flash[:error] = l(:error_empty_note)
flash[:errors] = l(:error_empty_note)
end
end
end
@ -203,12 +203,12 @@ class DmsfWorkflowsController < ApplicationController
flash[:notice] = l(:notice_successful_update)
end
else
flash[:error] = l(:error_workflow_assign)
flash[:errors] = l(:error_workflow_assign)
end
end
end
rescue StandardError => e
flash[:error] = e.message
flash[:errors] = e.message
end
redirect_to :back
return
@ -293,7 +293,7 @@ class DmsfWorkflowsController < ApplicationController
redirect_to dmsf_workflows_path
end
else
flash[:error] = @dmsf_workflow.errors.full_messages.to_sentence
flash[:errors] = @dmsf_workflow.errors.full_messages.to_sentence
redirect_to dmsf_workflow_path(@dmsf_workflow)
end
else
@ -306,7 +306,7 @@ class DmsfWorkflowsController < ApplicationController
@dmsf_workflow.destroy
flash[:notice] = l(:notice_successful_delete)
rescue
flash[:error] = l(:error_unable_delete_dmsf_workflow)
flash[:errors] = l(:error_unable_delete_dmsf_workflow)
end
if @project
redirect_to settings_project_path(@project, :tab => 'dmsf_workflow')
@ -350,11 +350,11 @@ class DmsfWorkflowsController < ApplicationController
if ws.save
@dmsf_workflow.dmsf_workflow_steps << ws
else
flash[:error] = ws.errors.full_messages.to_sentence
flash[:errors] = ws.errors.full_messages.to_sentence
end
end
else
flash[:error] = l(:error_workflow_assign)
flash[:errors] = l(:error_workflow_assign)
end
end
respond_to do |format|
@ -372,7 +372,7 @@ class DmsfWorkflowsController < ApplicationController
if n > params[:step].to_i
ws.step = n - 1
unless ws.save
flash[:error] = l(:notice_cannot_renumber_steps)
flash[:errors] = l(:notice_cannot_renumber_steps)
end
end
end
@ -383,7 +383,7 @@ class DmsfWorkflowsController < ApplicationController
def reorder_steps
if request.put?
unless @dmsf_workflow.reorder_steps(params[:step].to_i, params[:dmsf_workflow][:position].to_i)
flash[:error] = l(:notice_cannot_renumber_steps)
flash[:errors] = l(:notice_cannot_renumber_steps)
end
end
respond_to do |format|
@ -402,7 +402,7 @@ class DmsfWorkflowsController < ApplicationController
@dmsf_workflow.notify_users(@project, revision, self)
flash[:notice] = l(:notice_workflow_started)
else
flash[:error] = l(:notice_cannot_start_workflow)
flash[:errors] = l(:notice_cannot_start_workflow)
end
end
redirect_to :back
@ -418,11 +418,11 @@ class DmsfWorkflowsController < ApplicationController
@dmsf_workflow.dmsf_workflow_steps.where(step: step.step).find_each do |s|
s.name = step.name
unless s.save
flash[:error] = s.errors.full_messages.to_sentence
flash[:errors] = s.errors.full_messages.to_sentence
end
end
else
flash[:error] = step.errors.full_messages.to_sentence
flash[:errors] = step.errors.full_messages.to_sentence
end
end
# Operators/Assignees
@ -433,7 +433,7 @@ class DmsfWorkflowsController < ApplicationController
step.operator = operator.to_i
step.user_id = params[:assignee][id]
unless step.save
flash[:error] = step.errors.full_messages.to_sentence
flash[:errors] = step.errors.full_messages.to_sentence
Rails.logger.error step.errors.full_messages.to_sentence
end
end

View File

@ -109,7 +109,7 @@ module DmsfUploadHelper
end
rescue Exception => e
Rails.logger.error e.message
controller.flash[:error] = e.message if controller
controller.flash[:errors] = e.message if controller
failed_uploads.push(file)
end
else

View File

@ -73,7 +73,7 @@ class DmsfFolder < ActiveRecord::Base
"LEFT JOIN #{DmsfFolderPermission.table_name} ON #{DmsfFolder.table_name}.id = #{DmsfFolderPermission.table_name}.dmsf_folder_id").where(
deleted: STATUS_DELETED).where(DmsfFolder.visible_condition).distinct
}
scope :system, -> { where(system: true) }
scope :issystem, -> { where(system: true) }
scope :notsystem, -> { where(system: false) }
acts_as_customizable
@ -506,8 +506,10 @@ class DmsfFolder < ActiveRecord::Base
self.dmsf_folder_id = params[:parent_id]
# Custom fields
if params[:dmsf_folder][:custom_field_values].present?
params[:dmsf_folder][:custom_field_values].each_with_index do |v, i|
custom_field_values[i].value = v[1]
i = 0
params[:dmsf_folder][:custom_field_values].each do |param|
custom_field_values[i].value = param[1]
i += 1
end
end
# Permissions

View File

@ -31,19 +31,6 @@ class DmsfMailer < Mailer
end
end
def files_updated(user, project, files)
if user && project && files.count > 0
files = files.select { |file| file.notify? }
redmine_headers 'Project' => project.identifier if project
@files = files
@project = project
message_id project
set_language_if_valid user.language
mail :to => user.mail,
:subject => "[#{@project.name} - #{l(:menu_dmsf)}] #{l(:text_email_doc_updated_subject)}"
end
end
def self.deliver_files_deleted(project, files)
users = get_notify_users(project, files)
users.each do |user|
@ -51,65 +38,16 @@ class DmsfMailer < Mailer
end
end
def files_deleted(user, project, files)
if user && files.count > 0
files = files.select { |file| file.notify? }
redmine_headers 'Project' => project.identifier if project
@files = files
@project = project
message_id project
set_language_if_valid user.language
mail :to => user.mail,
:subject => "[#{@project.name} - #{l(:menu_dmsf)}] #{l(:text_email_doc_deleted_subject)}"
end
end
def self.deliver_send_documents(project, email_params)
send_documents(email_params[:to], project, email_params).deliver_later
end
def send_documents(user, project, email_params)
redmine_headers 'Project' => project.identifier if project
@body = email_params[:body]
@links_only = email_params[:links_only] == '1'
@public_urls = email_params[:public_urls] == '1'
@expired_at = email_params[:expired_at]
@folders = email_params[:folders]
@files = email_params[:files]
unless @links_only
zipped_content_data = open(email_params[:zipped_content], 'rb') { |io| io.read }
attachments['Documents.zip'] = { :content_type => 'application/zip', :content => zipped_content_data }
end
mail :to => user, :cc => email_params[:cc],
:subject => email_params[:subject], 'From' => email_params[:from], 'Reply-To' => email_params[:reply_to]
end
def self.deliver_workflow_notification(users, workflow, revision, subject_id, text1_id, text2_id, notice = nil)
users.each do |user|
workflow_notification(user, workflow, revision, subject_id.to_s, text1_id.to_s, text2_id.to_s, notice).deliver_later
end
end
def workflow_notification(user, workflow, revision, subject_id, text1_id, text2_id, notice = nil)
if user && workflow && revision
if revision.dmsf_file && revision.dmsf_file.project
@project = revision.dmsf_file.project
redmine_headers 'Project' => @project.identifier
end
set_language_if_valid user.language
@user = user
message_id workflow
@workflow = workflow
@revision = revision
@text1 = l(text1_id, :name => workflow.name, :filename => revision.dmsf_file.name, :notice => notice)
@text2 = l(text2_id)
@notice = notice
mail :to => user.mail,
:subject => "[#{@project.name} - #{l(:field_label_dmsf_workflow)}] #{@workflow.name} #{l(subject_id)}"
end
end
def self.get_notify_users(project, files = [], force_notification = false)
return [] unless project.active?
if !force_notification && files.present?
@ -166,4 +104,68 @@ class DmsfMailer < Mailer
notify_members.collect { |m| m.user }.uniq
end
private
def workflow_notification(user, workflow, revision, subject_id, text1_id, text2_id, notice = nil)
if user && workflow && revision
if revision.dmsf_file && revision.dmsf_file.project
@project = revision.dmsf_file.project
redmine_headers 'Project' => @project.identifier
end
set_language_if_valid user.language
@user = user
message_id workflow
@workflow = workflow
@revision = revision
@text1 = l(text1_id, :name => workflow.name, :filename => revision.dmsf_file.name, :notice => notice)
@text2 = l(text2_id)
@notice = notice
mail :to => user.mail,
:subject => "[#{@project.name} - #{l(:field_label_dmsf_workflow)}] #{@workflow.name} #{l(subject_id)}"
end
end
def send_documents(user, project, email_params)
redmine_headers 'Project' => project.identifier if project
@body = email_params[:body]
@links_only = email_params[:links_only] == '1'
@public_urls = email_params[:public_urls] == '1'
@expired_at = email_params[:expired_at]
@folders = email_params[:folders]
@files = email_params[:files]
unless @links_only
zipped_content_data = open(email_params[:zipped_content], 'rb') { |io| io.read }
attachments['Documents.zip'] = { :content_type => 'application/zip', :content => zipped_content_data }
end
mail :to => user, :cc => email_params[:cc],
:subject => email_params[:subject], 'From' => email_params[:from], 'Reply-To' => email_params[:reply_to]
end
def files_deleted(user, project, files)
if user && files.count > 0
files = files.select { |file| file.notify? }
redmine_headers 'Project' => project.identifier if project
@files = files
@project = project
message_id project
set_language_if_valid user.language
mail :to => user.mail,
:subject => "[#{@project.name} - #{l(:menu_dmsf)}] #{l(:text_email_doc_deleted_subject)}"
end
end
def files_updated(user, project, files)
if user && project && files.count > 0
files = files.select { |file| file.notify? }
redmine_headers 'Project' => project.identifier if project
@files = files
@project = project
message_id project
set_language_if_valid user.language
mail :to => user.mail,
:subject => "[#{@project.name} - #{l(:menu_dmsf)}] #{l(:text_email_doc_updated_subject)}"
end
end
end

View File

@ -18,7 +18,9 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
class EpmDmsfLockedDocuments < EasyPageModule
if defined?(EasyExtensions)
class EpmDmsfLockedDocuments < EasyPageModule
def category_name
@category_name ||= 'easy_dms'
@ -36,4 +38,6 @@ class EpmDmsfLockedDocuments < EasyPageModule
'redmine_dmsf'
end
end
end

View File

@ -18,7 +18,9 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
class EpmDmsfOpenApprovals < EasyPageModule
if defined?(EasyExtensions)
class EpmDmsfOpenApprovals < EasyPageModule
def category_name
@category_name ||= 'easy_dms'
@ -32,4 +34,6 @@ class EpmDmsfOpenApprovals < EasyPageModule
'redmine_dmsf'
end
end
end

Binary file not shown.

Before

Width:  |  Height:  |  Size: 220 B

View File

@ -285,12 +285,12 @@ div.dmsf_revision_inner_box .attribute .label {
.dmsf_hidden { display:none; }
.dmsf_tree span.dmsf_expander { cursor: pointer; }
.dmsf_tree.dmsf_expanded td.dmsf_title span {
background: url(../images/bullet_arrow_down.png) no-repeat 0 50%;
background: url(../../../images/arrow_down.png) no-repeat 0 50%;
padding-left: 16px;
}
.dmsf_tree.dmsf_child .dmsf_title span { padding-left: 16px; }
.dmsf_tree.dmsf_collapsed .dmsf_title span {
background: url(../../../images/bullet_arrow_right.png) no-repeat 0 50%;
background: url(../../../images/arrow_right.png) no-repeat 0 50%;
padding-left: 16px;
}
.dmsf_tree.idnt-1 .dmsf_title {padding-left: 1.5em;}

View File

@ -32,7 +32,7 @@ Redmine::Plugin.register :redmine_dmsf do
end
author 'Vít Jonáš / Daniel Munn / Karel Pičman'
description 'Document Management System Features'
version '1.6.2'
version '2.0.0 devel'
requires_redmine version_or_higher: '4.0.0'

View File

@ -52,7 +52,7 @@ require 'redmine_dmsf/webdav/index_resource'
require 'redmine_dmsf/webdav/project_resource'
require 'redmine_dmsf/webdav/resource_proxy'
# Exceptions
# Errors
require 'redmine_dmsf/errors/dmsf_access_error'
require 'redmine_dmsf/errors/dmsf_content_error'
require 'redmine_dmsf/errors/dmsf_email_max_file_error'

View File

@ -81,7 +81,7 @@ module RedmineDmsf
if old_system_folder
old_system_folder.title = "#{issue.id} - #{DmsfFolder::get_valid_title(issue.subject)}"
unless old_system_folder.save
controller.flash[:error] = old_system_folder.errors.full_messages.to_sentence
controller.flash[:errors] = old_system_folder.errors.full_messages.to_sentence
Rails.logger.error old_system_folder.errors.full_messages.to_sentence
end
end
@ -93,20 +93,20 @@ module RedmineDmsf
old_system_folder.dmsf_folder_id = new_main_system_folder.id
old_system_folder.project_id = project_id
unless old_system_folder.save
controller.flash[:error] = old_system_folder.errors.full_messages.to_sentence
controller.flash[:errors] = old_system_folder.errors.full_messages.to_sentence
Rails.logger.error old_system_folder.errors.full_messages.to_sentence
end
issue.dmsf_files.each do |dmsf_file|
dmsf_file.project_id = project_id
unless dmsf_file.save
controller.flash[:error] = dmsf_file.errors.full_messages.to_sentence
controller.flash[:errors] = dmsf_file.errors.full_messages.to_sentence
Rails.logger.error dmsf_file.errors.full_messages.to_sentence
end
end
issue.dmsf_links.each do | dmsf_link|
dmsf_link.project_id = project_id
unless dmsf_link.save
controller.flash[:error] = dmsf_link.errors.full_messages.to_sentence
controller.flash[:errors] = dmsf_link.errors.full_messages.to_sentence
Rails.logger.error dmsf_link.errors.full_messages.to_sentence
end
end

View File

@ -98,7 +98,7 @@ module RedmineDmsf
end
def system_folder(create = false)
parent = DmsfFolder.system.where(project_id: self.project_id, title: '.CRM cases').first
parent = DmsfFolder.issystem.find_by(project_id: self.project_id, title: '.CRM cases')
if create && !parent
parent = DmsfFolder.new
parent.project_id = self.project_id
@ -109,7 +109,7 @@ module RedmineDmsf
parent.save
end
if parent
folder = DmsfFolder.system.where(['project_id = ? AND dmsf_folder_id = ? AND CAST(title AS DECIMAL) = ?',
folder = DmsfFolder.issystem.where(['project_id = ? AND dmsf_folder_id = ? AND CAST(title AS DECIMAL) = ?',
self.project_id, parent.id, self.id]).first
if create && !folder
folder = DmsfFolder.new

View File

@ -93,7 +93,7 @@ module RedmineDmsf
def main_system_folder(create = false, prj_id = nil)
prj_id ||= self.project_id
parent = DmsfFolder.system.find_by(project_id: prj_id, title: '.Issues')
parent = DmsfFolder.issystem.find_by(project_id: prj_id, title: '.Issues')
if create && !parent
parent = DmsfFolder.new
parent.project_id = prj_id
@ -110,7 +110,7 @@ module RedmineDmsf
prj_id ||= self.project_id
parent = main_system_folder(create, prj_id)
if parent
folder = DmsfFolder.system.where(["project_id = ? AND dmsf_folder_id = ? AND title LIKE '? - %'",
folder = DmsfFolder.issystem.where(["project_id = ? AND dmsf_folder_id = ? AND title LIKE '? - %'",
prj_id, parent.id, self.id]).first
if create && !folder
folder = DmsfFolder.new

View File

@ -36,7 +36,15 @@ module RedmineDmsf
end
def setup
if ::Rails::VERSION::MAJOR >= 5
if ::Rails::VERSION::MINOR >= 1
@request = ActionController::TestRequest.create(self.class.controller_class)
else
@request = ActionController::TestRequest.create
end
else
@request = ActionController::TestRequest.new
end
@response = ActionController::TestResponse.new
end

View File

@ -20,12 +20,6 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# Load the normal Rails helper
#require File.expand_path("#{Rails.root}/test/test_helper")
# Use fixtures from redmine
#ActiveSupport::TestCase.fixture_path = "#{Rails.root}/test/fixtures"
module RedmineDmsf
module Test
class UnitTest < ActiveSupport::TestCase

View File

@ -113,7 +113,7 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase
@role.add_permission! :folder_manipulation
get :delete, :params => {:id => @project, :folder_id => @folder1.id, :commit => false}
assert_response :redirect
assert_include l(:error_folder_is_not_empty), flash[:error]
assert_include l(:error_folder_is_not_empty), flash[:errors]
end
def test_delete_locked
@ -121,7 +121,7 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase
@role.add_permission! :folder_manipulation
get :delete, :params => {:id => @project, :folder_id => @folder2.id, :commit => false}
assert_response :redirect
assert_include l(:error_folder_is_locked), flash[:error]
assert_include l(:error_folder_is_locked), flash[:errors]
end
def test_delete_ok
@ -163,18 +163,18 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase
get :entries_operation, :params => {:id => @project, :delete_entries => 'Delete',
:ids => ["folder-#{@folder1.id}", "file-#{@file1.id}", "folder-link-#{@folder_link1.id}", "file-link-#{@file_link2.id}"]}
assert_response :redirect
assert_equal flash[:error].to_s, l(:error_folder_is_not_empty)
assert_equal flash[:errors].to_s, l(:error_folder_is_not_empty)
end
def test_delete_restore_entries_ok
# Permissions OK
@request.env['HTTP_REFERER'] = dmsf_folder_path(:id => @project.id)
@role.add_permission! :view_dmsf_files
flash[:error] = nil
flash[:errors] = nil
get :entries_operation, :params => {:id => @project, :delete_entries => 'Delete',
:ids => ["file-#{@file1.id}", "file-link-#{@file_link2.id}"]}
assert_response :redirect
assert_nil flash[:error]
assert_nil flash[:errors]
end
def test_restore_entries
@ -184,7 +184,7 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase
get :entries_operation, :params => {:id => @project, :restore_entries => 'Restore',
:ids => ["file-#{@file1.id}", "file-link-#{@file_link2.id}"]}
assert_response :redirect
assert_nil flash[:error]
assert_nil flash[:errors]
end
def test_show

View File

@ -91,16 +91,16 @@ class DmsfFilesControllerTest < RedmineDmsf::Test::TestCase
@role.add_permission! :file_delete
delete @file, :params => {:commit => false}
assert_response :redirect
assert_include l(:error_file_is_locked), flash[:error]
assert_include l(:error_file_is_locked), flash[:errors]
end
def delete_ok
# Permissions OK and not locked
flash[:error].clear
flash[:errors].clear
@file.unlock!
delete @file, :params => {:commit => false}
assert_response :redirect
assert_equal 0, flash[:error].size
assert_equal 0, flash[:errors].size
end
def test_obsolete_revision_ok

View File

@ -122,12 +122,12 @@ class DmsfFilesCopyControllerTest < RedmineDmsf::Test::TestCase
def test_copy
post :copy, :params => {:id => @file1.id, :target_project_id => @project1.id, :target_folder_id => @folder1.id}
assert_response :redirect
assert_nil flash[:error]
assert_nil flash[:errors]
end
def test_copy_the_same_target
post :copy, :params => {:id => @file1.id, :target_project_id => @file1.project.id, :target_folder_id => @file1.dmsf_folder}
assert_equal flash[:error], l(:error_target_folder_same)
assert_equal flash[:errors], l(:error_target_folder_same)
assert_redirected_to :action => 'new', :target_project_id => @file1.project.id, :target_folder_id => @file1.dmsf_folder
end
@ -146,7 +146,7 @@ class DmsfFilesCopyControllerTest < RedmineDmsf::Test::TestCase
@project5.enable_module!(:dmsf)
post :copy, :params => {:id => @file1.id, :target_project_id => @project5.id, :target_folder_id => nil}
assert_response :redirect
assert_nil flash[:error]
assert_nil flash[:errors]
end
def test_copy_to_as_non_member
@ -157,12 +157,12 @@ class DmsfFilesCopyControllerTest < RedmineDmsf::Test::TestCase
def test_move
post :move, :params => {:id => @file1.id, :target_project_id => @project1.id, :target_folder_id => @folder1.id}
assert_response :redirect
assert_nil flash[:error]
assert_nil flash[:errors]
end
def test_move_the_same_target
post :move, :params => {:id => @file1.id, :target_project_id => @file1.project.id, :target_folder_id => @file1.dmsf_folder}
assert_equal flash[:error], l(:error_target_folder_same)
assert_equal flash[:errors], l(:error_target_folder_same)
assert_redirected_to :action => 'new', :target_project_id => @file1.project.id, :target_folder_id => @file1.dmsf_folder
end
@ -170,7 +170,7 @@ class DmsfFilesCopyControllerTest < RedmineDmsf::Test::TestCase
@file1.lock!
post :move, :params => {:id => @file1.id, :target_project_id => @file1.project.id, :target_folder_id => @folder1.id}
assert_response :redirect
assert_equal l(:error_file_is_locked), flash[:error]
assert_equal l(:error_file_is_locked), flash[:errors]
end
def test_move_to_locked_folder
@ -188,7 +188,7 @@ class DmsfFilesCopyControllerTest < RedmineDmsf::Test::TestCase
@project5.enable_module!(:dmsf)
post :move, :params => {:id => @file1.id, :target_project_id => @project5.id, :target_folder_id => nil}
assert_response :redirect
assert_nil flash[:error]
assert_nil flash[:errors]
end
def test_move_to_as_non_member

View File

@ -123,7 +123,7 @@ class DmsfFoldersCopyControllerTest < RedmineDmsf::Test::TestCase
def test_copy
post :copy, :params => {:id => @folder1.id, :target_project_id => @project1.id, :target_folder_id => @folder6.id}
assert_response :redirect
assert_nil flash[:error]
assert_nil flash[:errors]
end
def test_copy_to_another_project
@ -132,7 +132,7 @@ class DmsfFoldersCopyControllerTest < RedmineDmsf::Test::TestCase
assert_equal @project1.id, @folder1.project_id
post :copy, :params => {:id => @folder1.id, :target_project_id => @project2.id}
assert_response :redirect
assert_nil flash[:error]
assert_nil flash[:errors]
# Check all childs' project ID
tree = DmsfHelper::all_children_sorted(@project2, 0, 0)
tree.each do |f, pos|
@ -142,7 +142,7 @@ class DmsfFoldersCopyControllerTest < RedmineDmsf::Test::TestCase
def test_copy_the_same_target
post :copy, :params => {:id => @folder1.id, :target_project_id => @folder1.project.id, :target_folder_id => @folder1.dmsf_folder}
assert_equal flash[:error], l(:error_target_folder_same)
assert_equal flash[:errors], l(:error_target_folder_same)
assert_redirected_to :action => 'new', :target_project_id => @folder1.project.id,
:target_folder_id => @folder1.dmsf_folder
end
@ -161,7 +161,7 @@ class DmsfFoldersCopyControllerTest < RedmineDmsf::Test::TestCase
@project5.enable_module!(:dmsf)
post :copy, :params => {:id => @folder1.id, :target_project_id => @project5.id, :target_folder_id => nil}
assert_response :redirect
assert_nil flash[:error]
assert_nil flash[:errors]
end
def test_copy_to_as_non_member
@ -172,12 +172,12 @@ class DmsfFoldersCopyControllerTest < RedmineDmsf::Test::TestCase
def test_move
post :move, :params => {:id => @folder1.id, :target_project_id => @project1.id, :target_folder_id => @folder6.id}
assert_response :redirect
assert_nil flash[:error]
assert_nil flash[:errors]
end
def test_move_the_same_target
post :move, :params => {:id => @folder1.id, :target_project_id => @folder1.project.id, :target_folder_id => @folder1.dmsf_folder}
assert_equal flash[:error], l(:error_target_folder_same)
assert_equal flash[:errors], l(:error_target_folder_same)
assert_redirected_to :action => 'new', :target_project_id => @folder1.project.id, :target_folder_id => @folder1.dmsf_folder
end
@ -201,7 +201,7 @@ class DmsfFoldersCopyControllerTest < RedmineDmsf::Test::TestCase
@project5.enable_module!(:dmsf)
post :move, :params => {:id => @folder1.id, :target_project_id => @project5.id, :target_folder_id => nil}
assert_response :redirect
assert_nil flash[:error]
assert_nil flash[:errors]
end
def test_move_to_as_non_member
@ -215,7 +215,7 @@ class DmsfFoldersCopyControllerTest < RedmineDmsf::Test::TestCase
assert_equal @project1.id, @folder1.project_id
post :move, :params => {:id => @folder1.id, :target_project_id => @project2.id}
assert_response :redirect
assert_nil flash[:error]
assert_nil flash[:errors]
# Check all childs' project ID
tree = DmsfHelper::all_children_sorted(@project2, 0, 0)
tree.each do |f, pos|