From bea9ce62aa8cfd8814b5f9b646ff3a6d53a50733 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karel=20Pi=C4=8Dman?= Date: Wed, 4 Mar 2020 15:18:24 +0100 Subject: [PATCH] Coding style --- after_init.rb | 66 ++--- app/controllers/dmsf_controller.rb | 72 ++--- app/controllers/dmsf_files_controller.rb | 34 +-- app/controllers/dmsf_files_copy_controller.rb | 13 +- .../dmsf_folders_copy_controller.rb | 17 +- app/controllers/dmsf_links_controller.rb | 6 +- .../dmsf_public_urls_controller.rb | 12 +- app/controllers/dmsf_state_controller.rb | 2 +- app/controllers/dmsf_upload_controller.rb | 28 +- app/controllers/dmsf_workflows_controller.rb | 32 +-- app/helpers/dmsf_helper.rb | 95 ------- app/helpers/dmsf_links_helper.rb | 2 +- app/helpers/dmsf_upload_helper.rb | 2 +- app/helpers/dmsf_workflows_helper.rb | 18 +- app/models/dmsf_file.rb | 34 +-- app/models/dmsf_file_revision.rb | 24 +- app/models/dmsf_file_revision_access.rb | 27 +- app/models/dmsf_folder.rb | 48 ++-- app/models/dmsf_link.rb | 12 +- app/models/dmsf_lock.rb | 4 +- app/models/dmsf_mailer.rb | 14 +- app/models/dmsf_upload.rb | 12 +- app/models/dmsf_workflow.rb | 7 +- app/models/dmsf_workflow_step.rb | 3 +- app/models/dmsf_workflow_step_action.rb | 4 +- app/models/dmsf_workflow_step_assignment.rb | 4 +- app/views/dmsf/_add_email.html.erb | 12 +- app/views/dmsf/_path.html.erb | 6 +- app/views/dmsf/add_email.js.erb | 2 +- app/views/dmsf/edit.html.erb | 53 ++-- app/views/dmsf/edit_root.html.erb | 21 +- app/views/dmsf/email_entries.html.erb | 30 +-- app/views/dmsf/show.api.rsb | 33 +-- app/views/dmsf/show.html.erb | 68 ++--- .../dmsf_files/_file_new_revision.html.erb | 20 +- app/views/dmsf_files/_link.html.erb | 70 ++--- app/views/dmsf_files/_links.html.erb | 4 +- .../dmsf_files/_revision_access.html.erb | 4 +- app/views/dmsf_files/_thumbnails.html.erb | 4 +- app/views/dmsf_files/show.html.erb | 51 ++-- app/views/dmsf_files_copy/new.html.erb | 21 +- .../dmsf_folder_permissions/_new.html.erb | 2 +- app/views/dmsf_folder_permissions/new.js.erb | 2 +- app/views/dmsf_folders_copy/_form.html.erb | 20 +- app/views/dmsf_folders_copy/new.html.erb | 19 +- app/views/dmsf_links/_form.html.erb | 30 +-- app/views/dmsf_links/new.html.erb | 2 +- app/views/dmsf_links/new.js.erb | 2 +- app/views/dmsf_mailer/files_updated.html.erb | 6 +- app/views/dmsf_mailer/send_documents.html.erb | 14 +- app/views/dmsf_mailer/send_documents.text.erb | 4 +- .../workflow_notification.html.erb | 7 +- .../workflow_notification.text.erb | 4 +- app/views/dmsf_public_urls/_new.html.erb | 8 +- app/views/dmsf_state/_user_pref.html.erb | 20 +- app/views/dmsf_upload/_form.html.erb | 62 ++--- app/views/dmsf_upload/_upload_file.html.erb | 48 ++-- .../dmsf_upload/_upload_file_locked.html.erb | 52 ++-- app/views/dmsf_upload/commit.api.rsb | 2 +- app/views/dmsf_upload/multi_upload.html.erb | 4 +- app/views/dmsf_upload/upload.js.erb | 2 +- app/views/dmsf_upload/upload_files.html.erb | 15 +- app/views/dmsf_workflows/_action.html.erb | 11 +- .../_approval_workflow_button.html.erb | 46 ++-- app/views/dmsf_workflows/_assign.html.erb | 17 +- app/views/dmsf_workflows/_main.html.erb | 24 +- .../dmsf_workflows/_new_step_form.html.erb | 8 +- .../dmsf_workflows/_new_step_modal.html.erb | 10 +- app/views/dmsf_workflows/_steps.html.erb | 27 +- app/views/dmsf_workflows/action.js.erb | 4 +- app/views/dmsf_workflows/assign.js.erb | 4 +- app/views/dmsf_workflows/index.html.erb | 2 +- app/views/dmsf_workflows/log.html.erb | 2 +- app/views/dmsf_workflows/new.html.erb | 15 +- app/views/dmsf_workflows/new_step.js.erb | 4 +- app/views/dmsf_workflows/remove_step.html.erb | 2 +- .../dmsf_workflows/reorder_steps.html.erb | 2 +- .../_dmsf_locked_documents_show.html.erb | 2 +- .../_dmsf_open_approvals_show.html.erb | 2 +- .../redmine_dmsf/_view_my_account.html.erb | 25 -- .../_view_users_bulk_edit.html.erb | 27 -- .../my/blocks/_locked_documents.html.erb | 24 +- app/views/my/blocks/_open_approvals.html.erb | 41 ++- app/views/search/_container.html.erb | 4 +- app/views/settings/_dmsf_columns.html.erb | 2 +- app/views/settings/_dmsf_settings.html.erb | 105 ++++---- assets/stylesheets/redmine_dmsf.css | 65 +++-- config/locales/cs.yml | 1 - config/locales/de.yml | 1 - config/locales/en.yml | 1 - config/locales/es.yml | 1 - config/locales/fr.yml | 1 - config/locales/hu.yml | 1 - config/locales/it.yml | 1 - config/locales/ja.yml | 1 - config/locales/ko.yml | 1 - config/locales/nl.yml | 1 - config/locales/pl.yml | 1 - config/locales/pt-BR.yml | 1 - config/locales/ru.yml | 1 - config/locales/sl.yml | 1 - config/locales/zh-TW.yml | 1 - config/locales/zh.yml | 1 - config/routes.rb | 123 +++++---- db/migrate/05_dmsf_0_9_0_1.rb | 2 +- db/migrate/07_dmsf_1_4_4.rb | 4 +- ...0421101901_dmsf_file_container_rollback.rb | 2 +- .../20170422104901_migrate_documents.rb | 4 +- extra/xapian_indexer.rb | 2 +- lib/redmine_dmsf.rb | 1 - .../errors/dmsf_email_max_file_error.rb | 3 +- .../errors/dmsf_zip_max_file_error.rb | 3 +- .../controllers/issues_controller_hooks.rb | 8 +- .../hooks/helpers/search_helper_hooks.rb | 4 +- .../hooks/views/base_view_hooks.rb | 10 +- .../hooks/views/issue_view_hooks.rb | 64 ++--- .../hooks/views/my_account_view_hooks.rb | 41 --- .../hooks/views/search_view_hooks.rb | 4 +- .../hooks/views/view_projects_form_hook.rb | 9 +- lib/redmine_dmsf/macros.rb | 40 +-- .../patches/easy_crm_case_patch.rb | 6 +- lib/redmine_dmsf/patches/issue_patch.rb | 6 +- lib/redmine_dmsf/patches/project_patch.rb | 20 +- .../patches/queries_helper_patch.rb | 17 +- lib/redmine_dmsf/patches/role_patch.rb | 3 +- .../patches/user_preference_patch.rb | 10 +- lib/redmine_dmsf/webdav/dmsf_resource.rb | 4 +- lib/tasks/dmsf_convert_documents.rake | 6 +- lib/tasks/dmsf_create_digests.rake | 2 +- lib/tasks/dmsf_maintenance.rake | 8 +- test/functional/dmsf_controller_test.rb | 85 +++--- test/functional/dmsf_files_controller_test.rb | 16 +- .../dmsf_files_copy_controller_test.rb | 48 ++-- ...dmsf_folder_permissions_controller_test.rb | 6 +- .../dmsf_folders_copy_controller_test.rb | 53 ++-- test/functional/dmsf_links_controller_test.rb | 254 +++++++++--------- .../dmsf_public_urls_controller_test.rb | 6 +- test/functional/dmsf_state_controller_test.rb | 16 +- .../dmsf_workflow_controller_test.rb | 182 ++++++------- test/functional/issues_controller_test.rb | 4 +- test/functional/my_controller_test.rb | 6 +- .../rest_api/dmsf_file_api_test.rb | 18 +- .../rest_api/dmsf_folder_api_test.rb | 125 ++++----- .../rest_api/dmsf_link_api_test.rb | 8 +- .../webdav/dmsf_webdav_delete_test.rb | 48 ++-- .../webdav/dmsf_webdav_get_test.rb | 194 ++++++------- .../webdav/dmsf_webdav_head_test.rb | 28 +- .../webdav/dmsf_webdav_lock_test.rb | 6 +- .../webdav/dmsf_webdav_mkcol_test.rb | 18 +- .../webdav/dmsf_webdav_options_test.rb | 24 +- .../webdav/dmsf_webdav_post_test.rb | 2 +- .../webdav/dmsf_webdav_propfind_test.rb | 26 +- test/unit/dmsf_folder_test.rb | 4 +- 153 files changed, 1503 insertions(+), 1887 deletions(-) delete mode 100644 app/views/hooks/redmine_dmsf/_view_my_account.html.erb delete mode 100644 app/views/hooks/redmine_dmsf/_view_users_bulk_edit.html.erb delete mode 100644 lib/redmine_dmsf/hooks/views/my_account_view_hooks.rb diff --git a/after_init.rb b/after_init.rb index 7b963d7e..a868864e 100644 --- a/after_init.rb +++ b/after_init.rb @@ -29,62 +29,62 @@ ActiveSupport::Dependencies.autoload_paths << File.join(File.dirname(__FILE__), def dmsf_init # Administration menu extension Redmine::MenuManager.map :admin_menu do |menu| - menu.push :dmsf_approvalworkflows, :dmsf_workflows_path, :caption => :label_dmsf_workflow_plural, - :html => { :class => 'icon icon-approvalworkflows' }, :if => Proc.new { |_| User.current.admin? } + menu.push :dmsf_approvalworkflows, :dmsf_workflows_path, caption: :label_dmsf_workflow_plural, + html: { class: 'icon icon-approvalworkflows' }, if: Proc.new { |_| User.current.admin? } end Redmine::MenuManager.map :project_menu do |menu| - menu.push :dmsf, { :controller => 'dmsf', :action => 'show' }, :caption => :menu_dmsf, :before => :documents, - :param => :id + menu.push :dmsf, { controller: 'dmsf', action: 'show' }, caption: :menu_dmsf, before: :documents, + param: :id end # Permissions Redmine::AccessControl.map do |map| map.project_module :dmsf do |pmap| pmap.permission :view_dmsf_file_revision_accesses, - :read => true + read: true pmap.permission :view_dmsf_file_revisions, - :read => true + read: true pmap.permission :view_dmsf_folders, - {:dmsf => [:show]}, - :read => true + { dmsf: [:show] }, + read: true pmap.permission :user_preferences, { dmsf_state: [:user_pref_save] } pmap.permission :view_dmsf_files, - {:dmsf => [:entries_operation, :entries_email, :download_email_entries, :tag_changed, :add_email, + { dmsf: [:entries_operation, :entries_email, :download_email_entries, :tag_changed, :add_email, :append_email, :autocomplete_for_user], - :dmsf_files => [:show, :view, :thumbnail], - :dmsf_workflows => [:log]}, - :read => true + dmsf_files: [:show, :view, :thumbnail], + dmsf_workflows: [:log] }, + read: true pmap.permission :email_documents, - {:dmsf_public_urls => [:create]} + { dmsf_public_urls: [:create] } pmap.permission :folder_manipulation, { dmsf: [:new, :create, :delete, :edit, :save, :edit_root, :save_root, :lock, :unlock, :notify_activate, :notify_deactivate, :restore, :drop], - :dmsf_folder_permissions => [:new, :append, :autocomplete_for_user], - :dmsf_folders_copy => [:new, :copy, :move], - :dmsf_context_menus => [:dmsf]} + dmsf_folder_permissions: [:new, :append, :autocomplete_for_user], + dmsf_folders_copy: [:new, :copy, :move], + dmsf_context_menus: [:dmsf] } pmap.permission :file_manipulation, - {:dmsf_files => [:create_revision, :lock, :unlock, :delete_revision, :obsolete_revision, + { dmsf_files: [:create_revision, :lock, :unlock, :delete_revision, :obsolete_revision, :notify_activate, :notify_deactivate, :restore], - :dmsf_upload => [:upload_files, :upload_file, :upload, :commit_files, :commit, + dmsf_upload: [:upload_files, :upload_file, :upload, :commit_files, :commit, :delete_dmsf_attachment, :delete_dmsf_link_attachment, :multi_upload], - :dmsf_links => [:new, :create, :destroy, :restore, :autocomplete_for_project, + dmsf_links: [:new, :create, :destroy, :restore, :autocomplete_for_project, :autocomplete_for_folder], - :dmsf_files_copy => [:new, :copy, :move], - :dmsf_context_menus => [:dmsf]} + dmsf_files_copy: [:new, :copy, :move], + dmsf_context_menus: [:dmsf]} pmap.permission :file_delete, - {:dmsf => [:trash, :delete_entries], - :dmsf_files => [:delete], - :dmsf_trash_context_menus => [:trash]} + { dmsf: [:trash, :delete_entries], + dmsf_files: [:delete], + dmsf_trash_context_menus: [:trash] } pmap.permission :force_file_unlock, {} pmap.permission :file_approval, - {:dmsf_workflows => [:action, :new_action, :autocomplete_for_user, :start, :assign, :assignment]} + { dmsf_workflows: [:action, :new_action, :autocomplete_for_user, :start, :assign, :assignment] } pmap.permission :manage_workflows, - {:dmsf_workflows => [:index, :new, :create, :destroy, :show, :new_step, :add_step, :remove_step, - :reorder_steps, :update, :update_step, :delete_step, :edit]} + { dmsf_workflows: [:index, :new, :create, :destroy, :show, :new_step, :add_step, :remove_step, + :reorder_steps, :update, :update_step, :delete_step, :edit] } pmap.permission :display_system_folders, - :read => true + read: true end end end @@ -96,8 +96,8 @@ if Redmine::Plugin.installed?(:easy_extensions) require File.expand_path('../app/models/easy_page_modules/easy_dms/epm_dmsf_locked_documents', __FILE__) require File.expand_path('../app/models/easy_page_modules/easy_dms/epm_dmsf_open_approvals', __FILE__) - EpmDmsfLockedDocuments.register_to_scope(:user, :plugin => :redmine_dmsf) - EpmDmsfOpenApprovals.register_to_scope(:user, :plugin => :redmine_dmsf) + EpmDmsfLockedDocuments.register_to_scope(:user, plugin: :redmine_dmsf) + EpmDmsfOpenApprovals.register_to_scope(:user, plugin: :redmine_dmsf) end else dmsf_init @@ -108,15 +108,15 @@ RedmineExtensions::Reloader.to_prepare do Zip.unicode_names = true # DMS custom fields - CustomFieldsHelper::CUSTOM_FIELDS_TABS << { :name => 'DmsfFileRevisionCustomField', :partial => 'custom_fields/index', - :label => :dmsf } + CustomFieldsHelper::CUSTOM_FIELDS_TABS << { name: 'DmsfFileRevisionCustomField', partial: 'custom_fields/index', + label: :dmsf } Redmine::Search.map do |search| search.register :dmsf_files search.register :dmsf_folders end - Redmine::Activity.register :dmsf_file_revision_accesses, :default => false + Redmine::Activity.register :dmsf_file_revision_accesses, default: false Redmine::Activity.register :dmsf_file_revisions # Uncomment to remove the original Documents from searching and project's modules (replaced with DMSF) diff --git a/app/controllers/dmsf_controller.rb b/app/controllers/dmsf_controller.rb index 11b43b6f..4352d76c 100644 --- a/app/controllers/dmsf_controller.rb +++ b/app/controllers/dmsf_controller.rb @@ -25,15 +25,13 @@ class DmsfController < ApplicationController include RedmineDmsf::DmsfZip before_action :find_project - before_action :authorize, :except => [:expand_folder, :exp_folder] - before_action :find_folder, :except => [:new, :create, :edit_root, :save_root, :add_email, :append_email, + before_action :authorize, except: [:expand_folder] + before_action :find_folder, except: [:new, :create, :edit_root, :save_root, :add_email, :append_email, :autocomplete_for_user] - before_action :find_parent, :only => [:new, :create] - before_action :tree_view, :only => [:delete, :show] + before_action :find_parent, only: [:new, :create] before_action :permissions - # also try to lookup folder by title if this is API call - before_action :find_folder_by_title, :only => [:show], :if => :api_request? + before_action :find_folder_by_title, only: [:show] accept_api_auth :show, :create, :save, :delete @@ -48,16 +46,6 @@ class DmsfController < ApplicationController end def expand_folder - @tree_view = true - get_display_params - @idnt = params[:idnt].present? ? params[:idnt].to_i + 1 : 0 - @pos = params[:pos].present? ? params[:pos].to_f : 0.0 - respond_to do |format| - format.js { render :action => 'dmsf_rows' } - end - end - - def exp_folder @idnt = params[:idnt].present? ? params[:idnt].to_i + 1 : 0 @query = retrieve_query(DmsfQuery, true) @query.dmsf_folder_id = @folder.id @@ -89,11 +77,7 @@ class DmsfController < ApplicationController } format.api format.csv { - filename = @project.name - filename << "_#{@folder.title}" if @folder - filename << DateTime.current.strftime('_%Y%m%d%H%M%S.csv') - send_data(DmsfHelper.dmsf_to_csv(@folder ? @folder : @project, params[:settings][:dmsf_columns]), - type: 'text/csv; header=present', filename: filename) + send_data query_to_csv(@query.dmsf_nodes, @query), type: 'text/csv; header=present', filename: 'dmsf.csv' } end end @@ -202,13 +186,13 @@ class DmsfController < ApplicationController File.delete(params[:email][:zipped_content]) flash[:notice] = l(:notice_email_sent, params[:email][:to]) end - redirect_to dmsf_folder_path(:id => @project, :folder_id => @folder) + redirect_to dmsf_folder_path(id: @project, folder_id: @folder) end def new @folder = DmsfFolder.new @pathfolder = @parent - render :action => 'edit' + render action: 'edit' end def edit @@ -279,10 +263,10 @@ class DmsfController < ApplicationController end respond_to do |format| format.html do - if commit || @tree_view + if commit redirect_to :back else - redirect_to dmsf_folder_path(:id => @project, :folder_id => @folder.dmsf_folder) + redirect_to dmsf_folder_path(id: @project, folder_id: @folder.dmsf_folder) end end format.api { result ? render_api_ok : render_validation_errors(@folder) } @@ -310,7 +294,7 @@ class DmsfController < ApplicationController flash[:error] = @project.errors.full_messages.to_sentence end end - redirect_to dmsf_folder_path(:id => @project) + redirect_to dmsf_folder_path(id: @project) end def notify_activate @@ -405,13 +389,13 @@ class DmsfController < ApplicationController when 'folder' dmsf_folder = DmsfFolder.find_by(id: id) if dmsf_folder - dmsf_folder.dmsf_folder_id = $1; + dmsf_folder.dmsf_folder_id = $1 result = dmsf_folder.save end when 'file-link', 'folder-link', 'url-link' dmsf_link = DmsfLink.find_by(id: id) if dmsf_link - dmsf_link.dmsf_folder_id = $1; + dmsf_link.dmsf_folder_id = $1 result = dmsf_link.save end end @@ -453,15 +437,15 @@ class DmsfController < ApplicationController end @email_params = { - :zipped_content => zipped_content, - :folders => selected_folders, - :files => selected_files, - :subject => "#{@project.name} #{l(:label_dmsf_file_plural).downcase}", - :from => Setting.plugin_redmine_dmsf['dmsf_documents_email_from'].presence || + zipped_content: zipped_content, + folders: selected_folders, + files: selected_files, + subject: "#{@project.name} #{l(:label_dmsf_file_plural).downcase}", + from: Setting.plugin_redmine_dmsf['dmsf_documents_email_from'].presence || "#{User.current.name} <#{User.current.mail}>", - :reply_to => Setting.plugin_redmine_dmsf['dmsf_documents_email_reply_to'] + reply_to: Setting.plugin_redmine_dmsf['dmsf_documents_email_reply_to'] } - render :action => 'email_entries' + render action: 'email_entries' rescue Exception raise ensure @@ -479,9 +463,9 @@ class DmsfController < ApplicationController audit.save! end send_file(zip.finish, - :filename => filename_for_content_disposition("#{@project.name}-#{DateTime.current.strftime('%y%m%d%H%M%S')}.zip"), - :type => 'application/zip', - :disposition => 'attachment') + filename: filename_for_content_disposition("#{@project.name}-#{DateTime.current.strftime('%y%m%d%H%M%S')}.zip"), + type: 'application/zip', + disposition: 'attachment') rescue StandardError raise ensure @@ -589,7 +573,7 @@ class DmsfController < ApplicationController if recipients.any? to = recipients.collect{ |r| r.name }.first(DMSF_MAX_NOTIFICATION_RECEIVERS_INFO).join(', ') to << ((recipients.count > DMSF_MAX_NOTIFICATION_RECEIVERS_INFO) ? ',...' : '.') - flash[:warning] = l(:warning_email_notifications, :to => to) + flash[:warning] = l(:warning_email_notifications, to: to) end end rescue => e @@ -597,7 +581,8 @@ class DmsfController < ApplicationController end end unless not_deleted_files.empty? - flash[:warning] = l(:warning_some_entries_were_not_deleted, :entries => not_deleted_files.map{|e| e.title}.join(', ')) + flash[:warning] = l(:warning_some_entries_were_not_deleted, entries: not_deleted_files.map{ |f| f.title }. + join(', ')) end # Links selected_dir_links.each do |id| @@ -624,7 +609,7 @@ class DmsfController < ApplicationController end def find_folder_by_title - if !@folder && params[:folder_title].present? + if api_request? && !@folder && params[:folder_title].present? @folder = DmsfFolder.find_by(title: params[:folder_title], project_id: @project.id) render_404 unless @folder end @@ -636,11 +621,6 @@ class DmsfController < ApplicationController render_404 end - def tree_view - tag = params[:custom_field_id].present? && params[:custom_value].present? - @tree_view = (User.current.pref.dmsf_tree_view == '1') && (!%w(atom xml json).include?(params[:format])) && !tag - end - def copy_folder(folder) copy = folder.clone copy.id = folder.id diff --git a/app/controllers/dmsf_files_controller.rb b/app/controllers/dmsf_files_controller.rb index ac62f908..5ca5f120 100644 --- a/app/controllers/dmsf_files_controller.rb +++ b/app/controllers/dmsf_files_controller.rb @@ -24,10 +24,9 @@ class DmsfFilesController < ApplicationController menu_item :dmsf - before_action :find_file, :except => [:delete_revision, :obsolete_revision] - before_action :find_revision, :only => [:delete_revision, :obsolete_revision] + before_action :find_file, except: [:delete_revision, :obsolete_revision] + before_action :find_revision, only: [:delete_revision, :obsolete_revision] before_action :authorize - before_action :tree_view, :only => [:delete] before_action :permissions accept_api_auth :show, :view, :delete @@ -70,9 +69,9 @@ class DmsfFilesController < ApplicationController # IE has got a tendency to cache files expires_in(0.year, 'must-revalidate' => true) send_file(@revision.disk_file, - :filename => filename_for_content_disposition(@revision.formatted_name(title_format)), - :type => @revision.detect_content_type, - :disposition => @revision.dmsf_file.disposition) + filename: filename_for_content_disposition(@revision.formatted_name(title_format)), + type: @revision.detect_content_type, + disposition: @revision.dmsf_file.disposition) rescue DmsfAccessError => e Rails.logger.error e.message render_403 @@ -94,7 +93,7 @@ class DmsfFilesController < ApplicationController respond_to do |format| format.html { - render :layout => !request.xhr? + render layout: !request.xhr? } format.api end @@ -186,7 +185,7 @@ class DmsfFilesController < ApplicationController if recipients.any? to = recipients.collect{ |r| r.name }.first(DMSF_MAX_NOTIFICATION_RECEIVERS_INFO).join(', ') to << ((recipients.count > DMSF_MAX_NOTIFICATION_RECEIVERS_INFO) ? ',...' : '.') - flash[:warning] = l(:warning_email_notifications, :to => to) + flash[:warning] = l(:warning_email_notifications, to: to) end end rescue => e @@ -216,7 +215,7 @@ class DmsfFilesController < ApplicationController if recipients.any? to = recipients.collect{ |r| r.name }.first(DMSF_MAX_NOTIFICATION_RECEIVERS_INFO).join(', ') to << ((recipients.count > DMSF_MAX_NOTIFICATION_RECEIVERS_INFO) ? ',...' : '.') - flash[:warning] = l(:warning_email_notifications, :to => to) + flash[:warning] = l(:warning_email_notifications, to: to) end end rescue => e @@ -231,11 +230,7 @@ class DmsfFilesController < ApplicationController end respond_to do |format| format.html do - if commit || (@tree_view && params[:details].blank?) - redirect_to :back - else - redirect_to dmsf_folder_path(:id => @project, :folder_id => @file.dmsf_folder) - end + redirect_to dmsf_folder_path(id: @project, folder_id: @file.dmsf_folder) end format.api { result ? render_api_ok : render_validation_errors(@file) } end @@ -332,9 +327,9 @@ class DmsfFilesController < ApplicationController if @file.image? && tbnail = @file.thumbnail(:size => params[:size]) if stale?(:etag => tbnail) send_file tbnail, - :filename => filename_for_content_disposition(@file.last_revision.disk_file), - :type => @file.last_revision.detect_content_type, - :disposition => 'inline' + filename: filename_for_content_disposition(@file.last_revision.disk_file), + type: @file.last_revision.detect_content_type, + disposition: 'inline' end else head 404 @@ -364,9 +359,4 @@ class DmsfFilesController < ApplicationController end end - def tree_view - tag = params[:custom_field_id].present? && params[:custom_value].present? - @tree_view = (User.current.pref.dmsf_tree_view == '1') && (!%w(atom xml json).include?(params[:format])) && !tag - end - end \ No newline at end of file diff --git a/app/controllers/dmsf_files_copy_controller.rb b/app/controllers/dmsf_files_copy_controller.rb index a58cc083..40ef11eb 100644 --- a/app/controllers/dmsf_files_copy_controller.rb +++ b/app/controllers/dmsf_files_copy_controller.rb @@ -27,21 +27,20 @@ class DmsfFilesCopyController < ApplicationController before_action :find_file before_action :authorize before_action :find_target_folder - before_action :check_target_folder, :only => [:copy, :move] + before_action :check_target_folder, only: [:copy, :move] def new @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? - render :layout => !request.xhr? + render layout: !request.xhr? end def copy new_file = @file.copy_to(@target_project, @target_folder) unless new_file.errors.empty? flash[:error] = new_file.errors.full_messages.to_sentence - redirect_to :action => 'new', :id => @file, :target_project_id => @target_project, - :target_folder_id => @target_folder + redirect_to action: 'new', id: @file, target_project_id: @target_project, target_folder_id: @target_folder return end flash[:notice] = l(:notice_successful_update) @@ -51,8 +50,7 @@ class DmsfFilesCopyController < ApplicationController 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 + redirect_to action: 'new', id: @file, target_project_id: @target_project, target_folder_id: @target_folder return end flash[:notice] = l(:notice_successful_update) @@ -93,8 +91,7 @@ private 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) - redirect_to :action => :new, :id => @file, :target_project_id => @target_project.id, - :target_folder_id => @target_folder + redirect_to action: :new, id: @file, target_project_id: @target_project.id, target_folder_id: @target_folder return end if (@target_folder && (@target_folder.locked_for_user? || !DmsfFolder.permissions?(@target_folder, false))) || diff --git a/app/controllers/dmsf_folders_copy_controller.rb b/app/controllers/dmsf_folders_copy_controller.rb index 9d54e40b..53b26b52 100644 --- a/app/controllers/dmsf_folders_copy_controller.rb +++ b/app/controllers/dmsf_folders_copy_controller.rb @@ -27,25 +27,24 @@ class DmsfFoldersCopyController < ApplicationController before_action :find_folder before_action :authorize before_action :find_target_folder - before_action :check_target_folder, :only => [:copy, :move] + before_action :check_target_folder, only: [:copy, :move] def new @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? - render :layout => !request.xhr? + render layout: !request.xhr? end def copy new_folder = @folder.copy_to(@target_project, @target_folder) unless new_folder.errors.empty? flash[:error] = new_folder.errors.full_messages.to_sentence - redirect_to :action => 'new', :id => @folder, :target_project_id => @target_project, - :target_folder_id => @target_folder + redirect_to action: 'new', id: @folder, target_project_id: @target_project, target_folder_id: @target_folder return end flash[:notice] = l(:notice_successful_update) - redirect_to dmsf_folder_path(:id => @target_project, :folder_id => new_folder) + redirect_to dmsf_folder_path(id: @target_project, folder_id: new_folder) end def move @@ -53,11 +52,10 @@ class DmsfFoldersCopyController < ApplicationController @folder.dmsf_folder = @target_folder if @folder.save flash[:notice] = l(:notice_successful_update) - redirect_to dmsf_folder_path(:id => @target_project, :folder_id => @folder) + redirect_to dmsf_folder_path(id: @target_project, folder_id: @folder) else flash[:error] = @folder.errors.full_messages.to_sentence - redirect_to :action => 'new', :id => @folder, :target_project_id => @target_project, - :target_folder_id => @target_folder + redirect_to action: 'new', id: @folder, target_project_id: @target_project, target_folder_id: @target_folder end end @@ -95,8 +93,7 @@ class DmsfFoldersCopyController < ApplicationController 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) - redirect_to :action => :new, :id => @folder, :target_project_id => @target_project.id, - :target_folder_id => @target_folder + redirect_to action: :new, id: @folder, target_project_id: @target_project.id, target_folder_id: @target_folder return end if (@target_folder && (@target_folder.locked_for_user? || !DmsfFolder.permissions?(@target_folder, false))) || diff --git a/app/controllers/dmsf_links_controller.rb b/app/controllers/dmsf_links_controller.rb index 6bb20509..344f02f9 100644 --- a/app/controllers/dmsf_links_controller.rb +++ b/app/controllers/dmsf_links_controller.rb @@ -23,7 +23,7 @@ class DmsfLinksController < ApplicationController model_object DmsfLink - before_action :find_model_object, :only => [:destroy, :restore] + before_action :find_model_object, only: [:destroy, :restore] before_action :find_link_project before_action :authorize before_action :permissions @@ -150,12 +150,12 @@ class DmsfLinksController < ApplicationController respond_to do |format| format.html { if params[:dmsf_link][:type] == 'link_from' - redirect_to dmsf_folder_path(:id => @project.id, :folder_id => @dmsf_link.dmsf_folder_id) + redirect_to dmsf_folder_path(id: @project.id, 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 - redirect_to edit_dmsf_path(:id => params[:dmsf_link][:project_id], :folder_id => params[:dmsf_link][:dmsf_folder_id]) + redirect_to edit_dmsf_path(id: params[:dmsf_link][:project_id], folder_id: params[:dmsf_link][:dmsf_folder_id]) end end } diff --git a/app/controllers/dmsf_public_urls_controller.rb b/app/controllers/dmsf_public_urls_controller.rb index 5a4f6244..087d6094 100644 --- a/app/controllers/dmsf_public_urls_controller.rb +++ b/app/controllers/dmsf_public_urls_controller.rb @@ -22,8 +22,8 @@ class DmsfPublicUrlsController < ApplicationController model_object DmsfPublicUrl - before_action :authorize, :only => [:create] - skip_before_action :check_if_login_required, :only => [:show] + before_action :authorize, only: [:create] + skip_before_action :check_if_login_required, only: [:show] def show dmsf_public_url = DmsfPublicUrl.where('token = ? AND expire_at >= ?', params[:token], DateTime.current).first @@ -31,11 +31,11 @@ class DmsfPublicUrlsController < ApplicationController revision = dmsf_public_url.dmsf_file.last_revision begin # IE has got a tendency to cache files - expires_in(0.year, "must-revalidate" => true) + expires_in(0.year, 'must-revalidate' => true) send_file(revision.disk_file, - :filename => filename_for_content_disposition(revision.name), - :type => revision.detect_content_type, - :disposition => dmsf_public_url.dmsf_file.disposition) + filename: filename_for_content_disposition(revision.name), + type: revision.detect_content_type, + disposition: dmsf_public_url.dmsf_file.disposition) rescue => e Rails.logger.error e.message render_404 diff --git a/app/controllers/dmsf_state_controller.rb b/app/controllers/dmsf_state_controller.rb index b8ae9d41..ba01ccad 100644 --- a/app/controllers/dmsf_state_controller.rb +++ b/app/controllers/dmsf_state_controller.rb @@ -44,7 +44,7 @@ class DmsfStateController < ApplicationController if Setting.plugin_redmine_dmsf['dmsf_act_as_attachable'] @project.update_attribute :dmsf_act_as_attachable, params[:act_as_attachable] end - redirect_to settings_project_path(@project, :tab => 'dmsf') + redirect_to settings_project_path(@project, tab: 'dmsf') end private diff --git a/app/controllers/dmsf_upload_controller.rb b/app/controllers/dmsf_upload_controller.rb index 335ac516..6049f554 100644 --- a/app/controllers/dmsf_upload_controller.rb +++ b/app/controllers/dmsf_upload_controller.rb @@ -24,11 +24,13 @@ class DmsfUploadController < ApplicationController menu_item :dmsf - before_action :find_project, :except => [:upload, :delete_dmsf_attachment, :delete_dmsf_link_attachment] - before_action :authorize, :except => [:upload, :delete_dmsf_attachment, :delete_dmsf_link_attachment] - before_action :authorize_global, :only => [:upload, :delete_dmsf_attachment, :delete_dmsf_link_attachment] - before_action :find_folder, :except => [:upload_file, :upload, :commit, :delete_dmsf_attachment, :delete_dmsf_link_attachment] - before_action :permissions, :except => [:upload_file, :upload, :commit, :delete_dmsf_attachment, :delete_dmsf_link_attachment] + before_action :find_project, except: [:upload, :delete_dmsf_attachment, :delete_dmsf_link_attachment] + before_action :authorize, except: [:upload, :delete_dmsf_attachment, :delete_dmsf_link_attachment] + before_action :authorize_global, only: [:upload, :delete_dmsf_attachment, :delete_dmsf_link_attachment] + before_action :find_folder, except: [:upload_file, :upload, :commit, :delete_dmsf_attachment, + :delete_dmsf_link_attachment] + before_action :permissions, except: [:upload_file, :upload, :commit, :delete_dmsf_attachment, + :delete_dmsf_link_attachment] helper :all helper :dmsf_workflows @@ -49,14 +51,6 @@ class DmsfUploadController < ApplicationController upload = DmsfUpload.create_from_uploaded_attachment(@project, @folder, uploaded_file) @uploads.push(upload) if upload end - else - # plupload multi upload completed - uploaded = params[:uploaded] - if uploaded - uploaded.each do |_, uploaded_file| - @uploads.push(DmsfUpload.new(@project, @folder, uploaded_file)) - end - end end if @uploads.empty? flash.now[:error] = l(:label_attachment) + ' ' + l('activerecord.errors.messages.invalid') @@ -81,7 +75,7 @@ class DmsfUploadController < ApplicationController f.write(@tempfile) end end - render :layout => false + render layout: false end # REST API and Redmine attachment form @@ -91,7 +85,7 @@ class DmsfUploadController < ApplicationController return end - @attachment = Attachment.new(:file => request.raw_post) + @attachment = Attachment.new(file: request.raw_post) @attachment.author = User.current @attachment.filename = params[:filename].presence || Redmine::Utils.random_hex(16) @attachment.content_type = params[:content_type].presence @@ -101,7 +95,7 @@ class DmsfUploadController < ApplicationController format.js format.api { if saved - render :action => 'upload', :status => :created + render action: 'upload', status: :created else render_validation_errors(@attachment) end @@ -154,7 +148,7 @@ class DmsfUploadController < ApplicationController respond_to do |format| format.js format.api { render_validation_errors(failed_uploads) unless failed_uploads.empty? } - format.html { redirect_to dmsf_folder_path(:id => @project, :folder_id => @folder) } + format.html { redirect_to dmsf_folder_path(id: @project, folder_id: @folder) } end end diff --git a/app/controllers/dmsf_workflows_controller.rb b/app/controllers/dmsf_workflows_controller.rb index d47d790f..f444094c 100644 --- a/app/controllers/dmsf_workflows_controller.rb +++ b/app/controllers/dmsf_workflows_controller.rb @@ -23,11 +23,11 @@ class DmsfWorkflowsController < ApplicationController model_object DmsfWorkflow - before_action :find_model_object, :except => [:create, :new, :index, :assign, :assignment] + before_action :find_model_object, except: [:create, :new, :index, :assign, :assignment] before_action :find_project before_action :authorize_custom - before_action :permissions, :only => [:new_action, :assignment, :start] - before_action :approver_candidates, :only => [:remove_step, :show, :reorder_steps, :add_step] + before_action :permissions, only: [:new_action, :assignment, :start] + before_action :approver_candidates, only: [:remove_step, :show, :reorder_steps, :add_step] layout :workflows_layout @@ -47,7 +47,7 @@ class DmsfWorkflowsController < ApplicationController def index @status = params[:status] || 1 - @workflow_pages, @workflows = paginate DmsfWorkflow.status(@status).global.sorted, :per_page => 25 + @workflow_pages, @workflows = paginate DmsfWorkflow.status(@status).global.sorted, per_page: 25 end def action @@ -56,9 +56,9 @@ class DmsfWorkflowsController < ApplicationController def new_action if params[:commit] == l(:button_submit) action = DmsfWorkflowStepAction.new( - :dmsf_workflow_step_assignment_id => params[:dmsf_workflow_step_assignment_id], - :action => (params[:step_action].to_i >= 10) ? DmsfWorkflowStepAction::ACTION_DELEGATE : params[:step_action], - :note => params[:note]) + dmsf_workflow_step_assignment_id: params[:dmsf_workflow_step_assignment_id], + action: (params[:step_action].to_i >= 10) ? DmsfWorkflowStepAction::ACTION_DELEGATE : params[:step_action], + note: params[:note]) if request.post? if action.save revision = DmsfFileRevision.find_by(id: params[:dmsf_file_revision_id]) @@ -85,7 +85,7 @@ class DmsfWorkflowsController < ApplicationController unless recipients.blank? to = recipients.collect{ |r| r.name }.first(DMSF_MAX_NOTIFICATION_RECEIVERS_INFO).join(', ') to << ((recipients.count > DMSF_MAX_NOTIFICATION_RECEIVERS_INFO) ? ',...' : '.') - flash[:warning] = l(:warning_email_notifications, :to => to) + flash[:warning] = l(:warning_email_notifications, to: to) end end else @@ -106,7 +106,7 @@ class DmsfWorkflowsController < ApplicationController unless recipients.blank? to = recipients.collect{ |r| r.name }.first(DMSF_MAX_NOTIFICATION_RECEIVERS_INFO).join(', ') to << ((recipients.count > DMSF_MAX_NOTIFICATION_RECEIVERS_INFO) ? ',...' : '.') - flash[:warning] = l(:warning_email_notifications, :to => to) + flash[:warning] = l(:warning_email_notifications, to: to) end end end @@ -124,7 +124,7 @@ class DmsfWorkflowsController < ApplicationController :text_email_to_proceed, action.note) if Setting.plugin_redmine_dmsf['dmsf_display_notified_recipients'] - flash[:warning] = l(:warning_email_notifications, :to => delegate.name) + flash[:warning] = l(:warning_email_notifications, to: delegate.name) end end else @@ -162,7 +162,7 @@ class DmsfWorkflowsController < ApplicationController unless recipients.empty? to = recipients.collect{ |r| r.name }.first(DMSF_MAX_NOTIFICATION_RECEIVERS_INFO).join(', ') to << ((recipients.count > DMSF_MAX_NOTIFICATION_RECEIVERS_INFO) ? ',...' : '.') - flash[:warning] = l(:warning_email_notifications, :to => to) + flash[:warning] = l(:warning_email_notifications, to: to) end end end @@ -266,7 +266,7 @@ class DmsfWorkflowsController < ApplicationController @dmsf_workflow.name = names.first end - render :layout => !request.xhr? + render layout: !request.xhr? end def create @@ -285,19 +285,19 @@ class DmsfWorkflowsController < ApplicationController if request.post? && @dmsf_workflow && @dmsf_workflow.valid? flash[:notice] = l(:notice_successful_create) if @project - redirect_to settings_project_path(@project, :tab => 'dmsf_workflow') + redirect_to settings_project_path(@project, tab: 'dmsf_workflow') else redirect_to dmsf_workflows_path end else - render :action => 'new' + render action: 'new' end end def update if params[:dmsf_workflow] - res = @dmsf_workflow.update_attributes({:name => params[:dmsf_workflow][:name]}) if params[:dmsf_workflow][:name].present? - res = @dmsf_workflow.update_attributes({:status => params[:dmsf_workflow][:status]}) if params[:dmsf_workflow][:status].present? + res = @dmsf_workflow.update_attributes({ name: params[:dmsf_workflow][:name] }) if params[:dmsf_workflow][:name].present? + res = @dmsf_workflow.update_attributes({ status: params[:dmsf_workflow][:status] }) if params[:dmsf_workflow][:status].present? if res flash[:notice] = l(:notice_successful_update) if @project diff --git a/app/helpers/dmsf_helper.rb b/app/helpers/dmsf_helper.rb index 7fb83d79..3e51a0da 100644 --- a/app/helpers/dmsf_helper.rb +++ b/app/helpers/dmsf_helper.rb @@ -77,103 +77,8 @@ module DmsfHelper File.join('/plugin_assets', plugin.to_s, asset_type, source) end - def json_url - locale = I18n.locale || 'en' - ret = File.join('jquery.dataTables', 'locales', "#{locale}.json") - path = File.join('public', plugin_asset_path(:redmine_dmsf, 'javascripts', ret)) - unless File.exist?(path) - Rails.logger.warn "#{path} not found" - ret = File.join('jquery.dataTables', 'locales', 'en.json') - end - ret - end - - def js_url - locale = I18n.locale || 'en' - ret = File.join('plupload', 'js', 'i18n', "#{locale}.js") - path = File.join('public', plugin_asset_path(:redmine_dmsf, 'javascripts', ret)) - unless File.exist?(path) - Rails.logger.warn "#{path} not found" - ret = File.join('plupload', 'js', 'i18n', 'en.js') - end - ret - end - - def all_children_sorted(parent, pos, ident) - # Folders && files && links - nodes = DmsfFolder::visible_folders(parent.dmsf_folders.visible.to_a, parent.is_a?(Project) ? parent : parent.project) + - parent.dmsf_links.visible + parent.dmsf_files.visible - # Alphabetical and type sort - nodes.sort! do |x, y| - if (x.is_a?(DmsfFolder) || (x.is_a?(DmsfLink) && x.is_folder?)) && - (y.is_a?(DmsfFile) || (y.is_a?(DmsfLink) && y.is_file?)) - -1 - elsif (x.is_a?(DmsfFile) || (x.is_a?(DmsfLink) && x.is_file?)) && - (y.is_a?(DmsfFolder) || (y.is_a?(DmsfLink) && y.is_folder?)) - 1 - else - clear_title(x.title) <=> clear_title(y.title) - end - end - # Calculate position - ident = 0 unless ident - pos = (10 ** 12) unless pos - step = (10 ** 12) / (10 ** (ident * 3)) - tree = [] - i = 0 - nodes.each do |x| - if x.is_a?(DmsfFolder) || (x.is_a?(DmsfLink) && x.is_folder?) - i += 1 - tree << [x, pos + (step * i)] - else - tree << [x, pos + (step * (i + 1))] - end - end - tree - end - - def self.dmsf_to_csv(parent, columns) - CSV.generate(:force_quotes => true, :encoding => 'UTF-8') do |csv| - # Header - csv << columns.map { |c| c.capitalize } - # Lines - DmsfHelper.object_to_csv(csv, parent, columns) - end - end - - def self.object_to_csv(csv, parent, columns, level = -1) - # Folder - if level >= 0 - csv << parent.to_csv(columns, level) - end - # Sub-folders - folders = parent.dmsf_folders.visible.to_a - folders.concat(parent.folder_links.visible.to_a.map{ |l| l.folder }) - folders.compact! - folders.sort!{ |x, y| x.title <=> y.title} - folders.each do |f| - DmsfHelper.object_to_csv(csv, f, columns, level + 1) - end - # Files - files = parent.dmsf_files.visible.to_a - files.concat(parent.file_links.visible.to_a.map{ |l| l.target_file }) - files.concat(parent.url_links.visible.to_a) - files.compact! - files.sort!{ |x, y| x.title <=> y.title} - files.each do |file_or_link| - csv << file_or_link.to_csv(columns, level + 1) - end - end - def render_principals_for_new_email(users) principals_check_box_tags 'user_ids[]', users end - # Replace specifics characters with their ASCII version + 'z' in order to fix the wrong ordering - # e.g. 'č' -> 'cz' - def clear_title(title) - str = title.gsub(/[ěščřýáíéůúďťňĚŠČŘÝÁÍÉÚŮĎŤŇ]/) { |c| c + 'z' } - str.tr('ěščřýáíéůúďťňĚŠČŘÝÁÍÉÚŮĎŤŇ', 'escryaieuudtnESCRYAIEUUDTN').downcase - end - end diff --git a/app/helpers/dmsf_links_helper.rb b/app/helpers/dmsf_links_helper.rb index 938b1036..6508a395 100644 --- a/app/helpers/dmsf_links_helper.rb +++ b/app/helpers/dmsf_links_helper.rb @@ -24,7 +24,7 @@ module DmsfLinksHelper def folder_tree_options_for_select(folder_tree, options = {}) s = +'' folder_tree.each do |name, id| - tag_options = {:value => id} + tag_options = { value: id } if id == options[:selected] tag_options[:selected] = 'selected' else diff --git a/app/helpers/dmsf_upload_helper.rb b/app/helpers/dmsf_upload_helper.rb index 49237d51..b6990d98 100644 --- a/app/helpers/dmsf_upload_helper.rb +++ b/app/helpers/dmsf_upload_helper.rb @@ -148,7 +148,7 @@ module DmsfUploadHelper unless recipients.empty? to = recipients.collect{ |r| r.name }.first(DMSF_MAX_NOTIFICATION_RECEIVERS_INFO).join(', ') to << ((recipients.count > DMSF_MAX_NOTIFICATION_RECEIVERS_INFO) ? ',...' : '.') - controller.flash[:warning] = l(:warning_email_notifications, :to => to) if controller + controller.flash[:warning] = l(:warning_email_notifications, to: to) if controller end end rescue => e diff --git a/app/helpers/dmsf_workflows_helper.rb b/app/helpers/dmsf_workflows_helper.rb index 69e000f5..4221ea18 100644 --- a/app/helpers/dmsf_workflows_helper.rb +++ b/app/helpers/dmsf_workflows_helper.rb @@ -30,22 +30,22 @@ module DmsfWorkflowsHelper # Delegation if dmsf_workflow_step_assignment_id s = content_tag('div', - content_tag('div', principals_radio_button_tags('step_action', principals), :id => 'users_for_delegate'), - :class => 'objects-selection') + content_tag('div', principals_radio_button_tags('step_action', principals), id: 'users_for_delegate'), + class: 'objects-selection') # New step else s = content_tag('div', - content_tag('div', principals_check_box_tags('user_ids[]', principals), :id => 'users'), - :class => 'objects-selection') + content_tag('div', principals_check_box_tags('user_ids[]', principals), id: 'users'), + class: 'objects-selection') end - links = pagination_links_full(principal_pages, principal_count, :per_page_links => false) do |text, parameters, options| + links = pagination_links_full(principal_pages, principal_count, per_page_links: false) do |text, parameters, options| link_to text, - autocomplete_for_user_dmsf_workflow_path(workflow, parameters.merge(:q => params[:q], :format => 'js')), + autocomplete_for_user_dmsf_workflow_path(workflow, parameters.merge(q: params[:q], format: 'js')), remote: true end - s + content_tag('span', links, :class => 'pagination') + s + content_tag('span', links, class: 'pagination') end def dmsf_workflow_steps_options_for_select(steps) @@ -67,7 +67,7 @@ module DmsfWorkflowsHelper options << ["#{wf.name} #{l(:note_global)}", wf.id] end end - options_for_select(options, :selected => dmsf_workflow_id) + options_for_select(options, selected: dmsf_workflow_id) end def dmsf_all_workflows_for_select(dmsf_workflow_id) @@ -89,7 +89,7 @@ module DmsfWorkflowsHelper options << ["#{wf.name} #{l(:note_global)}", wf.id] end end - options_for_select(options, :selected => dmsf_workflow_id) + options_for_select(options, selected: dmsf_workflow_id) end def principals_radio_button_tags(name, principals) diff --git a/app/models/dmsf_file.rb b/app/models/dmsf_file.rb index c36245e8..611d8d9b 100644 --- a/app/models/dmsf_file.rb +++ b/app/models/dmsf_file.rb @@ -39,12 +39,12 @@ class DmsfFile < ActiveRecord::Base belongs_to :deleted_by_user, :class_name => 'User', :foreign_key => 'deleted_by_user_id' has_many :dmsf_file_revisions, -> { order(created_at: :desc, id: :desc) }, - :dependent => :destroy + dependent: :destroy has_many :locks, -> { where(entity_type: 0).order(updated_at: :desc) }, - :class_name => 'DmsfLock', :foreign_key => 'entity_id', :dependent => :destroy + class_name: 'DmsfLock', foreign_key: 'entity_id', :dependent => :destroy has_many :referenced_links, -> { where target_type: DmsfFile.model_name.to_s}, - :class_name => 'DmsfLink', :foreign_key => 'target_id', :dependent => :destroy - has_many :dmsf_public_urls, :dependent => :destroy + class_name: 'DmsfLink', foreign_key: 'target_id', dependent: :destroy + has_many :dmsf_public_urls, dependent: :destroy STATUS_DELETED = 1 STATUS_ACTIVE = 0 @@ -54,11 +54,11 @@ class DmsfFile < ActiveRecord::Base validates :name, presence: true, dmsf_file_name: true validates :project, presence: true - validates_uniqueness_of :name, :scope => [:dmsf_folder_id, :project_id, :deleted], + validates_uniqueness_of :name, scope: [:dmsf_folder_id, :project_id, :deleted], conditions: -> { where(deleted: STATUS_ACTIVE) } - acts_as_event :title => Proc.new { |o| o.name }, - :description => Proc.new { |o| + acts_as_event title: Proc.new { |o| o.name }, + description: Proc.new { |o| desc = Redmine::Search.cache_store.fetch("DmsfFile-#{o.id}") if desc Redmine::Search.cache_store.delete("DmsfFile-#{o.id}") @@ -70,13 +70,13 @@ class DmsfFile < ActiveRecord::Base end desc }, - :url => Proc.new { |o| {:controller => 'dmsf_files', :action => 'view', :id => o} }, - :datetime => Proc.new { |o| o.updated_at }, - :author => Proc.new { |o| o.last_revision.user } + url: Proc.new { |o| { controller: 'dmsf_files', action: 'view', id: o } }, + datetime: Proc.new { |o| o.updated_at }, + author: Proc.new { |o| o.last_revision.user } - acts_as_searchable :columns => ["#{table_name}.name", "#{DmsfFileRevision.table_name}.title", "#{DmsfFileRevision.table_name}.description", "#{DmsfFileRevision.table_name}.comment"], - :project_key => 'project_id', - :date_column => "#{table_name}.updated_at" + acts_as_searchable columns: ["#{table_name}.name", "#{DmsfFileRevision.table_name}.title", "#{DmsfFileRevision.table_name}.description", "#{DmsfFileRevision.table_name}.comment"], + project_key: 'project_id', + date_column: "#{table_name}.updated_at" before_create :default_values @@ -132,7 +132,7 @@ class DmsfFile < ActiveRecord::Base if locked_for_user? && (!User.current.allowed_to?(:force_file_unlock, project)) Rails.logger.info l(:error_file_is_locked) if lock.reverse[0].user - errors[:base] << l(:title_locked_by_user, :user => lock.reverse[0].user) + errors[:base] << l(:title_locked_by_user, user: lock.reverse[0].user) else errors[:base] << l(:error_file_is_locked) end @@ -284,7 +284,7 @@ class DmsfFile < ActiveRecord::Base if File.exist? last_revision.disk_file FileUtils.cp last_revision.disk_file, new_revision.disk_file(false) end - new_revision.comment = l(:comment_copied_from, :source => "#{project.identifier}: #{dmsf_path_str}") + new_revision.comment = l(:comment_copied_from, source: "#{project.identifier}: #{dmsf_path_str}") new_revision.custom_values = [] last_revision.custom_values.each do |cv| v = CustomValue.new @@ -575,7 +575,7 @@ class DmsfFile < ActiveRecord::Base # Url if columns.include?(l(:label_document_url)) default_url_options[:host] = Setting.host_name - csv << url_for(:controller => :dmsf_files, :action => 'view', :id => id) + csv << url_for(controller: :dmsf_files, action: 'view', id: id) end # Revision if columns.include?(l(:label_last_revision_id)) @@ -618,7 +618,7 @@ class DmsfFile < ActiveRecord::Base def get_locked_title if locked_for_user? if lock.reverse[0].user - return l(:title_locked_by_user, :user => lock.reverse[0].user) + return l(:title_locked_by_user, user: lock.reverse[0].user) else return l(:notice_account_unknown_email) end diff --git a/app/models/dmsf_file_revision.rb b/app/models/dmsf_file_revision.rb index 8f59dd22..941f4b86 100644 --- a/app/models/dmsf_file_revision.rb +++ b/app/models/dmsf_file_revision.rb @@ -55,18 +55,18 @@ class DmsfFileRevision < ActiveRecord::Base scope :deleted, -> { where(deleted: STATUS_DELETED) } acts_as_customizable - acts_as_event :title => Proc.new {|o| (o.source_dmsf_file_revision_id.present? ? "#{l(:label_dmsf_updated)}" : "#{l(:label_created)}") + + acts_as_event title: Proc.new {|o| (o.source_dmsf_file_revision_id.present? ? "#{l(:label_dmsf_updated)}" : "#{l(:label_created)}") + ": #{o.dmsf_file.dmsf_path_str}"}, - :url => Proc.new {|o| {:controller => 'dmsf_files', :action => 'show', :id => o.dmsf_file}}, - :datetime => Proc.new {|o| o.updated_at }, - :description => Proc.new { |o| "#{o.description}\n#{o.comment}" }, - :author => Proc.new {|o| o.user } + url: Proc.new { |o| { controller: 'dmsf_files', action: 'show', id: o.dmsf_file } }, + datetime: Proc.new {|o| o.updated_at }, + description: Proc.new { |o| "#{o.description}\n#{o.comment}" }, + author: Proc.new { |o| o.user } - acts_as_activity_provider :type => 'dmsf_file_revisions', - :timestamp => "#{DmsfFileRevision.table_name}.updated_at", - :author_key => "#{DmsfFileRevision.table_name}.user_id", - :permission => :view_dmsf_file_revisions, - :scope => DmsfFileRevision.joins(:dmsf_file). + acts_as_activity_provider type: 'dmsf_file_revisions', + timestamp: "#{DmsfFileRevision.table_name}.updated_at", + author_key: "#{DmsfFileRevision.table_name}.user_id", + permission: :view_dmsf_file_revisions, + scope: DmsfFileRevision.joins(:dmsf_file). joins("JOIN #{Project.table_name} ON #{Project.table_name}.id = #{DmsfFile.table_name}.project_id").visible validates :title, presence: true @@ -93,7 +93,7 @@ class DmsfFileRevision < ActiveRecord::Base end def self.easy_activity_custom_project_scope(scope, options, event_type) - scope.where(:dmsf_files => { project_id: options[:project_ids] }) + scope.where(dmsf_files: { project_id: options[:project_ids] }) end def delete(commit = false, force = true) @@ -349,7 +349,7 @@ class DmsfFileRevision < ActiveRecord::Base end when DmsfWorkflow::STATE_APPROVED, DmsfWorkflow::STATE_REJECTED action = DmsfWorkflowStepAction.joins(:dmsf_workflow_step_assignment).where( - :dmsf_workflow_step_assignments => { :dmsf_file_revision_id => id }).order( + dmsf_workflow_step_assignments: { dmsf_file_revision_id: id }).order( 'dmsf_workflow_step_actions.created_at').last tooltip << action.author.name if action end diff --git a/app/models/dmsf_file_revision_access.rb b/app/models/dmsf_file_revision_access.rb index a2c61985..1a788155 100644 --- a/app/models/dmsf_file_revision_access.rb +++ b/app/models/dmsf_file_revision_access.rb @@ -25,10 +25,9 @@ class DmsfFileRevisionAccess < ActiveRecord::Base belongs_to :dmsf_file_revision belongs_to :user - delegate :dmsf_file, :to => :dmsf_file_revision, :allow_nil => false - delegate :project, :to => :dmsf_file, :allow_nil => false + delegate :dmsf_file, to: :dmsf_file_revision, allow_nil: false + delegate :project, to: :dmsf_file, allow_nil: false - # TODO: dmsf_file_revision_accesses.dmsf_file_revision_id should be a key scope :access_grouped, -> { select('user_id, COUNT(*) AS count, MIN(created_at) AS first_at, MAX(created_at) AS last_at').group('user_id') } validates :dmsf_file_revision, presence: true @@ -36,18 +35,18 @@ class DmsfFileRevisionAccess < ActiveRecord::Base DownloadAction = 0 EmailAction = 1 - acts_as_event :title => Proc.new {|ra| "#{l(:label_dmsf_downloaded)}: #{ra.dmsf_file.dmsf_path_str}"}, - :url => Proc.new {|ra| {:controller => 'dmsf_files', :action => 'show', :id => ra.dmsf_file}}, - :datetime => Proc.new {|ra| ra.updated_at }, - :description => Proc.new {|ra| ra.dmsf_file_revision.comment }, - :author => Proc.new {|ra| ra.user } + acts_as_event title: Proc.new { |ra| "#{l(:label_dmsf_downloaded)}: #{ra.dmsf_file.dmsf_path_str}" }, + url: Proc.new { |ra| { controller: 'dmsf_files', action: 'show', id: ra.dmsf_file } }, + datetime: Proc.new { |ra| ra.updated_at }, + description: Proc.new { |ra| ra.dmsf_file_revision.comment }, + author: Proc.new { |ra| ra.user } - acts_as_activity_provider :type => 'dmsf_file_revision_accesses', - :timestamp => "#{DmsfFileRevisionAccess.table_name}.updated_at", - :author_key => "#{DmsfFileRevisionAccess.table_name}.user_id", - :permission => :view_dmsf_file_revision_accesses, - :scope => DmsfFileRevisionAccess. + acts_as_activity_provider type: 'dmsf_file_revision_accesses', + timestamp: "#{DmsfFileRevisionAccess.table_name}.updated_at", + author_key: "#{DmsfFileRevisionAccess.table_name}.user_id", + permission: :view_dmsf_file_revision_accesses, + scope: DmsfFileRevisionAccess. joins(:dmsf_file_revision).joins("JOIN #{DmsfFile.table_name} ON dmsf_files.id = dmsf_file_revisions.dmsf_file_id"). joins("JOIN #{Project.table_name} on dmsf_files.project_id = projects.id"). - where(:dmsf_files => { deleted: DmsfFile::STATUS_ACTIVE }) + where(dmsf_files: { deleted: DmsfFile::STATUS_ACTIVE }) end diff --git a/app/models/dmsf_folder.rb b/app/models/dmsf_folder.rb index 5310a411..4ba3c855 100644 --- a/app/models/dmsf_folder.rb +++ b/app/models/dmsf_folder.rb @@ -26,23 +26,23 @@ class DmsfFolder < ActiveRecord::Base belongs_to :project belongs_to :dmsf_folder - belongs_to :deleted_by_user, :class_name => 'User', :foreign_key => 'deleted_by_user_id' + belongs_to :deleted_by_user, class_name: 'User', foreign_key: 'deleted_by_user_id' belongs_to :user - has_many :dmsf_folders, -> { order :title }, :dependent => :destroy - has_many :dmsf_files, :dependent => :destroy + has_many :dmsf_folders, -> { order :title }, dependent: :destroy + has_many :dmsf_files, dependent: :destroy has_many :folder_links, -> { where(target_type: 'DmsfFolder').order(:name) }, - :class_name => 'DmsfLink', :foreign_key => 'dmsf_folder_id', :dependent => :destroy + class_name: 'DmsfLink', foreign_key: 'dmsf_folder_id', dependent: :destroy has_many :file_links, -> { where(target_type: 'DmsfFile') }, - :class_name => 'DmsfLink', :foreign_key => 'dmsf_folder_id', :dependent => :destroy + class_name: 'DmsfLink', foreign_key: 'dmsf_folder_id', dependent: :destroy has_many :url_links, -> { where(target_type: 'DmsfUrl') }, - :class_name => 'DmsfLink', :foreign_key => 'dmsf_folder_id', :dependent => :destroy - has_many :dmsf_links, :dependent => :destroy + class_name: 'DmsfLink', foreign_key: 'dmsf_folder_id', dependent: :destroy + has_many :dmsf_links, dependent: :destroy has_many :referenced_links, -> { where(target_type: 'DmsfFolder') }, - :class_name => 'DmsfLink', :foreign_key => 'target_id', :dependent => :destroy + class_name: 'DmsfLink', foreign_key: 'target_id', dependent: :destroy has_many :locks, -> { where(entity_type: 1).order(updated_at: :desc) }, - :class_name => 'DmsfLock', :foreign_key => 'entity_id', :dependent => :destroy - has_many :dmsf_folder_permissions, :dependent => :destroy + class_name: 'DmsfLock', foreign_key: 'entity_id', dependent: :destroy + has_many :dmsf_folder_permissions, dependent: :destroy INVALID_CHARACTERS = '\[\]\/\\\?":<>#%\*' STATUS_DELETED = 1 @@ -79,21 +79,21 @@ class DmsfFolder < ActiveRecord::Base acts_as_customizable - acts_as_searchable :columns => ["#{table_name}.title", "#{table_name}.description"], - :project_key => 'project_id', - :date_column => 'updated_at', - :permission => :view_dmsf_files, - :scope => Proc.new { DmsfFolder.visible } + acts_as_searchable columns: ["#{table_name}.title", "#{table_name}.description"], + project_key: 'project_id', + date_column: 'updated_at', + permission: :view_dmsf_files, + scope: Proc.new { DmsfFolder.visible } - acts_as_event :title => Proc.new {|o| o.title}, - :description => Proc.new {|o| o.description }, - :url => Proc.new {|o| {:controller => 'dmsf', :action => 'show', :id => o.project, :folder_id => o}}, - :datetime => Proc.new {|o| o.updated_at }, - :author => Proc.new {|o| o.user } + acts_as_event title: Proc.new { |o| o.title }, + description: Proc.new { |o| o.description }, + url: Proc.new { |o| { controller: 'dmsf', action: 'show', id: o.project, folder_id: o } }, + datetime: Proc.new { |o| o.updated_at }, + author: Proc.new { |o| o.user } validates :title, presence: true, dmsf_file_name: true validates :project, presence: true - validates_uniqueness_of :title, :scope => [:dmsf_folder_id, :project_id, :deleted], + validates_uniqueness_of :title, scope: [:dmsf_folder_id, :project_id, :deleted], conditions: -> { where(deleted: STATUS_ACTIVE) } validates :description, length: { maximum: 65535 } @@ -226,7 +226,7 @@ class DmsfFolder < ActiveRecord::Base def self.file_list(files) options = Array.new - options.push ['', nil, :label => 'none'] + options.push ['', nil, label: 'none'] files.each do |f| options.push [f.title, f.id] end @@ -456,7 +456,7 @@ class DmsfFolder < ActiveRecord::Base # Url if columns.include?(l(:label_document_url)) default_url_options[:host] = Setting.host_name - csv << url_for(:controller => :dmsf, :action => 'show', :id => project_id, :folder_id => id) + csv << url_for(controller: :dmsf, action: 'show', id: project_id, folder_id: id) end # Revision csv << '' if columns.include?(l(:label_last_revision_id)) @@ -470,7 +470,7 @@ class DmsfFolder < ActiveRecord::Base def get_locked_title if locked_for_user? if lock.reverse[0].user - return l(:title_locked_by_user, :user => lock.reverse[0].user) + return l(:title_locked_by_user, user: lock.reverse[0].user) else return l(:notice_account_unknown_email) end diff --git a/app/models/dmsf_link.rb b/app/models/dmsf_link.rb index 7c638f5c..2356b048 100644 --- a/app/models/dmsf_link.rb +++ b/app/models/dmsf_link.rb @@ -25,7 +25,7 @@ class DmsfLink < ActiveRecord::Base belongs_to :project belongs_to :dmsf_folder - belongs_to :deleted_by_user, :class_name => 'User', :foreign_key => 'deleted_by_user_id' + belongs_to :deleted_by_user, class_name: 'User', foreign_key: 'deleted_by_user_id' belongs_to :user validates :name, presence: true, length: { maximum: 255 } @@ -92,9 +92,9 @@ class DmsfLink < ActiveRecord::Base def self.find_link_by_file_name(project, folder, filename) links = DmsfLink.where( - :project_id => project.id, - :dmsf_folder_id => folder ? folder.id : nil, - :target_type => DmsfFile.model_name.to_s).visible.all + project_id: project.id, + dmsf_folder_id: folder ? folder.id : nil, + target_type: DmsfFile.model_name.to_s).visible.all links.each do |link| return link if link.target_file && (link.target_file.name == filename) end @@ -142,7 +142,7 @@ class DmsfLink < ActiveRecord::Base else self.deleted = STATUS_DELETED self.deleted_by_user = User.current - save(:validate => false) + save validate: false end end @@ -153,7 +153,7 @@ class DmsfLink < ActiveRecord::Base end self.deleted = STATUS_ACTIVE self.deleted_by_user = nil - save(:validate => false) + save validate: false end def is_folder? diff --git a/app/models/dmsf_lock.rb b/app/models/dmsf_lock.rb index 89dfa2b6..b02220f6 100644 --- a/app/models/dmsf_lock.rb +++ b/app/models/dmsf_lock.rb @@ -25,8 +25,8 @@ require 'simple_enum' class DmsfLock < ActiveRecord::Base before_create :generate_uuid - belongs_to :file, :class_name => 'DmsfFile', :foreign_key => 'entity_id' - belongs_to :folder, :class_name => 'DmsfFolder', :foreign_key => 'entity_id' + belongs_to :file, class_name: 'DmsfFile', foreign_key: 'entity_id' + belongs_to :folder, class_name: 'DmsfFolder', foreign_key: 'entity_id' belongs_to :user # At the moment apparently we're only supporting a write lock? diff --git a/app/models/dmsf_mailer.rb b/app/models/dmsf_mailer.rb index 1235663b..66438fb7 100644 --- a/app/models/dmsf_mailer.rb +++ b/app/models/dmsf_mailer.rb @@ -43,7 +43,7 @@ class DmsfMailer < Mailer @author = User.anonymous unless @author 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)}" + mail to: user.mail, subject: "[#{@project.name} - #{l(:menu_dmsf)}] #{l(:text_email_doc_updated_subject)}" end end @@ -65,8 +65,8 @@ class DmsfMailer < Mailer @author = User.anonymous unless @author 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)}" + mail to: user.mail, + subject: "[#{@project.name} - #{l(:menu_dmsf)}] #{l(:text_email_doc_deleted_subject)}" end end @@ -85,7 +85,7 @@ class DmsfMailer < Mailer @author = author 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 } + attachments['Documents.zip'] = { content_type: 'application/zip', content: zipped_content_data } end mail to: email_params[:to], cc: email_params[:cc], subject: email_params[:subject], 'From' => email_params[:from], 'Reply-To' => email_params[:reply_to] @@ -108,13 +108,13 @@ class DmsfMailer < Mailer message_id workflow @workflow = workflow @revision = revision - @text1 = l(text1_id, :name => workflow.name, :filename => revision.dmsf_file.name, :notice => notice) + @text1 = l(text1_id, name: workflow.name, filename: revision.dmsf_file.name, notice: notice) @text2 = l(text2_id) @notice = notice @author = revision.dmsf_workflow_assigned_by_user @author = User.anonymous unless @author - mail :to => user.mail, - :subject => "[#{@project.name} - #{l(:field_label_dmsf_workflow)}] #{@workflow.name} #{l(subject_id)}" + mail to: user.mail, + subject: "[#{@project.name} - #{l(:field_label_dmsf_workflow)}] #{@workflow.name} #{l(subject_id)}" end end diff --git a/app/models/dmsf_upload.rb b/app/models/dmsf_upload.rb index 65383d78..50237f6e 100644 --- a/app/models/dmsf_upload.rb +++ b/app/models/dmsf_upload.rb @@ -44,11 +44,11 @@ class DmsfUpload a = Attachment.find_by_token(uploaded_file[:token]) if a uploaded = { - :disk_filename => DmsfHelper.temp_filename(a.filename), - :content_type => a.content_type, - :original_filename => a.filename, - :comment => uploaded_file[:description], - :tempfile_path => a.diskfile + disk_filename: DmsfHelper.temp_filename(a.filename), + content_type: a.content_type, + original_filename: a.filename, + comment: uploaded_file[:description], + tempfile_path: a.diskfile } DmsfUpload.new(project, folder, uploaded) else @@ -104,7 +104,7 @@ class DmsfUpload present_custom_fields = file.last_revision.custom_values.collect(&:custom_field).uniq file.last_revision.available_custom_fields.each do |cf| unless present_custom_fields.include?(cf) - @custom_values << CustomValue.new({:custom_field => cf, :value => cf.default_value}) if cf.default_value + @custom_values << CustomValue.new({ custom_field: cf, value: cf.default_value}) if cf.default_value end end end diff --git a/app/models/dmsf_workflow.rb b/app/models/dmsf_workflow.rb index 6bde0300..2dbff559 100644 --- a/app/models/dmsf_workflow.rb +++ b/app/models/dmsf_workflow.rb @@ -20,13 +20,14 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. class DmsfWorkflow < ActiveRecord::Base + has_many :dmsf_workflow_steps, -> { order(step: :asc, operator: :desc) }, dependent: :destroy - belongs_to :author, :class_name => 'User' + belongs_to :author, class_name: 'User' scope :sorted, lambda { order(name: :asc) } scope :global, lambda { where(project_id: nil) } scope :active, lambda { where(status: STATUS_ACTIVE) } - scope :status, lambda { |arg| where(arg.blank? ? nil : {:status => arg.to_i}) } + scope :status, lambda { |arg| where(arg.blank? ? nil : { status: arg.to_i }) } validates :name, presence: true, length: { maximum: 255 }, dmsf_workflow_name: true @@ -222,7 +223,7 @@ class DmsfWorkflow < ActiveRecord::Base unless recipients.blank? to = recipients.collect{ |r| r.name }.first(DMSF_MAX_NOTIFICATION_RECEIVERS_INFO).join(', ') to << ((recipients.count > DMSF_MAX_NOTIFICATION_RECEIVERS_INFO) ? ',...' : '.') - controller.flash[:warning] = l(:warning_email_notifications, :to => to) if controller + controller.flash[:warning] = l(:warning_email_notifications, to: to) if controller end end end diff --git a/app/models/dmsf_workflow_step.rb b/app/models/dmsf_workflow_step.rb index 70f31fb8..18e9b289 100644 --- a/app/models/dmsf_workflow_step.rb +++ b/app/models/dmsf_workflow_step.rb @@ -20,10 +20,11 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. class DmsfWorkflowStep < ActiveRecord::Base + belongs_to :dmsf_workflow belongs_to :user - has_many :dmsf_workflow_step_assignments, :dependent => :destroy + has_many :dmsf_workflow_step_assignments, dependent: :destroy validates :dmsf_workflow, presence: true validates :step, presence: true diff --git a/app/models/dmsf_workflow_step_action.rb b/app/models/dmsf_workflow_step_action.rb index d732e3b6..f8feac6c 100644 --- a/app/models/dmsf_workflow_step_action.rb +++ b/app/models/dmsf_workflow_step_action.rb @@ -22,12 +22,12 @@ class DmsfWorkflowStepAction < ActiveRecord::Base belongs_to :dmsf_workflow_step_assignment - belongs_to :author, :class_name => 'User', :foreign_key => 'author_id' + belongs_to :author, class_name: 'User', foreign_key: 'author_id' validates :dmsf_workflow_step_assignment, presence: true validates :action, presence: true validates :author_id, presence: true - validates :note, presence: true, :unless => lambda { action == DmsfWorkflowStepAction::ACTION_APPROVE } + validates :note, presence: true, unless: lambda { action == DmsfWorkflowStepAction::ACTION_APPROVE } validates_uniqueness_of :dmsf_workflow_step_assignment_id, scope: [:action], unless: lambda { action == DmsfWorkflowStepAction::ACTION_DELEGATE } diff --git a/app/models/dmsf_workflow_step_assignment.rb b/app/models/dmsf_workflow_step_assignment.rb index 7ead5c8b..9cb00164 100644 --- a/app/models/dmsf_workflow_step_assignment.rb +++ b/app/models/dmsf_workflow_step_assignment.rb @@ -20,11 +20,12 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. class DmsfWorkflowStepAssignment < ActiveRecord::Base + belongs_to :dmsf_workflow_step belongs_to :user belongs_to :dmsf_file_revision - has_many :dmsf_workflow_step_actions, :dependent => :destroy + has_many :dmsf_workflow_step_actions, dependent: :destroy validates :dmsf_workflow_step, presence: true validates :dmsf_file_revision, presence: true @@ -43,4 +44,5 @@ class DmsfWorkflowStepAssignment < ActiveRecord::Base end false end + end \ No newline at end of file diff --git a/app/views/dmsf/_add_email.html.erb b/app/views/dmsf/_add_email.html.erb index fd9c486c..84760d88 100644 --- a/app/views/dmsf/_add_email.html.erb +++ b/app/views/dmsf/_add_email.html.erb @@ -23,21 +23,21 @@

<%= l(:label_email_address_add) %>

<%= form_tag(append_email_dmsf_path, - :remote => true, - :method => :post, - :id => 'new-user-form') do %> + remote: true, + method: :post, + id: 'new-user-form') do %> <%= hidden_field_tag :project_id, @project.id %>

<%= label_tag 'user_search', l(:label_user_search) %><%= text_field_tag 'user_search', nil %>

<%= late_javascript_tag "observeSearchfield('user_search', 'users_for_users', '#{ escape_javascript url_for( - :controller => 'dmsf', :action => 'autocomplete_for_user', :project_id => @project) }')" %> + controller: 'dmsf', action: 'autocomplete_for_user', project_id: @project) }')" %>
<%= render_principals_for_new_email(@principals) %>

- <%= submit_tag l(:button_add), :name => nil, :onclick => "hideModal(this);" %> - <%= submit_tag l(:button_cancel), :name => nil, :onclick => "hideModal(this);", :type => 'button' %> + <%= submit_tag l(:button_add), name: nil, onclick: 'hideModal(this);' %> + <%= submit_tag l(:button_cancel), name: nil, onclick: 'hideModal(this);', type: 'button' %>

<% end %> diff --git a/app/views/dmsf/_path.html.erb b/app/views/dmsf/_path.html.erb index d1501704..82e74e04 100644 --- a/app/views/dmsf/_path.html.erb +++ b/app/views/dmsf/_path.html.erb @@ -22,17 +22,17 @@

<% if folder %> - <%= link_to l(:link_documents), dmsf_folder_path(:id => @project) %> + <%= link_to l(:link_documents), dmsf_folder_path(id: @project) %> <% folder.dmsf_path.each do |path_element| %> / <% if filename.blank? && (path_element == folder.dmsf_path.last) %> <%= h(path_element.title) %> <% else %> - <%= link_to h(path_element.title), dmsf_folder_path(:id => @project, :folder_id => path_element) %> + <%= link_to h(path_element.title), dmsf_folder_path(id: @project, folder_id: path_element) %> <% end %> <% end %> <% else %> - <%= link_to l(:link_documents), dmsf_folder_path(:id => @project) %> + <%= link_to l(:link_documents), dmsf_folder_path(id: @project) %> <% end %> <% if filename %> / diff --git a/app/views/dmsf/add_email.js.erb b/app/views/dmsf/add_email.js.erb index 57b6481e..3b61bb20 100644 --- a/app/views/dmsf/add_email.js.erb +++ b/app/views/dmsf/add_email.js.erb @@ -22,6 +22,6 @@ var modal = $('#ajax-modal'); -modal.html("<%= escape_javascript(render :partial => 'dmsf/add_email') %>"); +modal.html("<%= escape_javascript(render partial: 'dmsf/add_email') %>"); showModal('ajax-modal', '400px'); modal.addClass('new-user'); diff --git a/app/views/dmsf/edit.html.erb b/app/views/dmsf/edit.html.erb index cd9b76d8..857de524 100644 --- a/app/views/dmsf/edit.html.erb +++ b/app/views/dmsf/edit.html.erb @@ -28,52 +28,53 @@ <% 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), - :title => l(:title_unlock_file), :class => 'icon icon-unlock') %> + unlock_dmsf_path(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), - :title => l(:title_lock_file), :class => 'icon icon-lock') %> + <%= link_to(l(:button_lock), lock_dmsf_path(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') %> + notify_deactivate_dmsf_path(id: @project, folder_id: @folder), + title: l(:title_notifications_active_deactivate), + class: 'icon icon-email') %> <% 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') %> + notify_activate_dmsf_path(id: @project, folder_id: @folder), + title: l(:title_notifications_not_active_activate), + class: 'icon icon-email-add') %> <% end %> <% end %> <%= link_to(l(:label_link_to), - new_dmsf_link_path(:project_id => @project.id, :dmsf_folder_id => @folder.id, :type => 'link_to'), - :title => l(:title_create_link), :class => 'icon icon-link') %> - <%= link_to("#{l(:button_copy)}/#{l(:button_move)}", copy_folder_path(:id => @folder), - :title => l(:title_copy), :class => 'icon icon-copy') %> + new_dmsf_link_path(project_id: @project.id, dmsf_folder_id: @folder.id, type: 'link_to'), + title: l(:title_create_link), class: 'icon icon-link') %> + <%= link_to("#{l(:button_copy)}/#{l(:button_move)}", copy_folder_path(id: @folder), + title: l(:title_copy), class: 'icon icon-copy') %> <% unless @folder.locked? %> - <%= link_to(l(:button_delete), delete_dmsf_path(:id => @project, :folder_id => @folder), - :data => {:confirm => l(:text_are_you_sure)}, - :title => l(:button_delete), :class => 'icon icon-del', :method => :delete) %> + <%= link_to(l(:button_delete), delete_dmsf_path(id: @project, folder_id: @folder), + data: { confirm: l(:text_are_you_sure) }, + title: l(:button_delete), class: 'icon icon-del', method: :delete) %> <% end %> <% end %> <% create = @pathfolder == @parent %> -<%= render(:partial => 'path', - :locals => {:folder => @pathfolder, :filename => create ? l(:heading_new_folder) : nil, :title => nil}) %> +<%= render partial: 'path', + locals: { folder: @pathfolder, filename: create ? l(:heading_new_folder) : nil, title: nil} %> -<%= labelled_form_for(@folder, :url => {:action => create ? 'create' : 'save', :id => @project, :folder_id => @folder, :parent_id => @parent}, - :html => {:method=>:post}) do |f| %> +<%= labelled_form_for(@folder, + url: { action: create ? 'create' : 'save', id: @project, folder_id: @folder, parent_id: @parent}, + html: { method: :post}) do |f| %> <%= error_messages_for(@folder) %> <%= f.hidden_field :redirect_to_folder_id, value: @redirect_to_folder_id %>

- <%= f.text_field(:title, :required => true) %> + <%= f.text_field(:title, required: true) %>

- <%= f.text_area :description, :rows => 8, :class => 'wiki-edit' %> + <%= f.text_area :description, rows: 8, class: 'wiki-edit' %>

<% dir = @folder.inherited_permissions_from %> @@ -117,9 +118,9 @@ <% end %> <%= link_to l(:label_user_search_add), - new_dmsf_folder_permissions_path(:project_id => @project, :dmsf_folder_id => @folder), - :remote => true, - :method => 'get' %> + new_dmsf_folder_permissions_path(project_id: @project, dmsf_folder_id: @folder), + remote: true, + method: :get %>

<% values = @folder ? @folder.custom_field_values : (@parent ? @parent.custom_field_values : DmsfFolder.new.custom_field_values) %> diff --git a/app/views/dmsf/edit_root.html.erb b/app/views/dmsf/edit_root.html.erb index ed810042..02849c57 100644 --- a/app/views/dmsf/edit_root.html.erb +++ b/app/views/dmsf/edit_root.html.erb @@ -28,27 +28,24 @@ <% if User.current.allowed_to?(:folder_manipulation, @project) %> <% if @project.dmsf_notification %> <%= link_to(l(:label_notifications_off), - notify_deactivate_dmsf_path(:id => @project), - :title => l(:title_notifications_active_deactivate), - :class => 'icon icon-email') %> + notify_deactivate_dmsf_path(id: @project), + title: l(:title_notifications_active_deactivate), + class: 'icon icon-email') %> <% else %> <%= link_to(l(:label_notifications_on), - notify_activate_dmsf_path(:id => @project), - :title => l(:title_notifications_active_deactivate), - :class => 'icon icon-email-add') %> + notify_activate_dmsf_path(id: @project), + title: l(:title_notifications_active_deactivate), + class: 'icon icon-email-add') %> <% end %> <% end %>
-<%= render(:partial => 'path', - :locals => {:folder => nil, :filename => nil, :title => nil}) %> +<%= render partial: 'path', locals: { folder: nil, filename: nil, title: nil } %> -<%= labelled_form_for(@project, :url => {:action => 'save_root', :id => @project}, - :html => {:method => :post}) do |f| %> +<%= labelled_form_for(@project, url: { action: 'save_root', id: @project }, html: { method: :post }) do |f| %>

- <%= f.text_area(:dmsf_description, :rows => 8, :class => 'wiki-edit', - :label => l(:field_description)) %> + <%= f.text_area :dmsf_description, rows: 8, class: 'wiki-edit', label: l(:field_description) %>

<%= f.submit l(:submit_save) %> diff --git a/app/views/dmsf/email_entries.html.erb b/app/views/dmsf/email_entries.html.erb index 9612cf9a..bac33c3d 100644 --- a/app/views/dmsf/email_entries.html.erb +++ b/app/views/dmsf/email_entries.html.erb @@ -22,13 +22,11 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. %> -<% html_title(l(:dmsf)) %> +<% html_title l(:dmsf) %> -<%= render(:partial => 'path', - :locals => {:folder => @folder, :filename => nil, :title => l(:heading_send_documents_by_email)}) %> +<%= render partial: 'path', locals: { folder: @folder, filename: nil, title: l(:heading_send_documents_by_email) } %> -<%= form_tag(email_entries_path(:id => @project, :folder_id => @folder), - { :method => :post }) do %> +<%= form_tag(email_entries_path(id: @project, folder_id: @folder), { method: :post }) do %> <%= hidden_field_tag('email[zipped_content]', @email_params[:zipped_content]) %> <%= hidden_field_tag('email[folders]', @email_params[:folders].to_json) %> <%= hidden_field_tag('email[files]', @email_params[:files].to_json) %> @@ -37,40 +35,40 @@

<%= label_tag('', l(:label_email_from)) %> - <%= text_field_tag('email[from_disabled]', @email_params[:from], :style => 'width: 90%;', :disabled => true) %> + <%= text_field_tag('email[from_disabled]', @email_params[:from], style: 'width: 90%;', disabled: true) %>

<%= label_tag('email[to]', l(:label_email_to)) %> - <%= text_field_tag('email[to]', @email_params[:to], :style => 'width: 90%;', :required => true) %> - <%= link_to l(:button_add), add_email_dmsf_path(:project_id => @project), - :title => l(:label_email_address_add), :class => 'icon icon-add', :remote => true %> + <%= text_field_tag('email[to]', @email_params[:to], style: 'width: 90%;', required: true) %> + <%= link_to l(:button_add), add_email_dmsf_path(project_id: @project), + title: l(:label_email_address_add), class: 'icon icon-add', remote: true %>

<%= label_tag('email[cc]', l(:label_email_cc)) %> - <%= text_field_tag('email[cc]', @email_params[:cc], :style => 'width: 90%;') %> + <%= text_field_tag('email[cc]', @email_params[:cc], style: 'width: 90%;') %>

<%= label_tag('email[subject]', l(:label_email_subject)) %> - <%= text_field_tag('email[subject]', @email_params[:subject], :style => 'width: 90%;') %> + <%= text_field_tag('email[subject]', @email_params[:subject], style: 'width: 90%;') %>

<%= label_tag('', l(:label_email_documents)) %> - <%= link_to 'Documents.zip', download_email_entries_path(:id => @project, :folder_id => @folder, - :path => @email_params[:zipped_content]) %> + <%= link_to 'Documents.zip', download_email_entries_path(id: @project, folder_id: @folder, + path: @email_params[:zipped_content]) %> <%= l(:label_or) %> <%= check_box_tag('email[links_only]', 1, Setting.plugin_redmine_dmsf['dmsf_documents_email_links_only'], - :onchange => "$('#public_url').toggle($('#email_links_only').prop('checked'))") + onchange: "$('#public_url').toggle($('#email_links_only').prop('checked'))") %> <%= l(:label_links_only) %> - <%= render(:partial => 'dmsf_public_urls/new') %> + <%= render partial: 'dmsf_public_urls/new' %>

<%= label_tag('email[body]', l(:label_email_body)) %> - <%= text_area_tag('email[body]', @email_params['body'], :rows => '20', :style => 'width: 90%;') %> + <%= text_area_tag('email[body]', @email_params['body'], rows: '20', style: 'width: 90%;') %>

<%= submit_tag(l(:label_email_send)) %>

diff --git a/app/views/dmsf/show.api.rsb b/app/views/dmsf/show.api.rsb index 8d0ef0e0..76dfee1b 100644 --- a/app/views/dmsf/show.api.rsb +++ b/app/views/dmsf/show.api.rsb @@ -1,31 +1,12 @@ api.dmsf do - api.array :dmsf_folders, api_meta(:total_count => @subfolders.size) do - @subfolders.each do |folder| - api.folder do - api.id folder.id - api.title folder.title - end - end - end - api.array :dmsf_files, api_meta(:total_count => @files.size) do - @files.each do |file| - api.file do - api.id file.id - api.name file.name - end - end - end - - api.array :dmsf_links, api_meta(:total_count => @dir_links.size + @file_links.size + @url_links.size) do - (@dir_links + @file_links + @url_links).each do |link| - api.link do - api.id link.id - api.name link.name - api.target_type link.target_type - api.target_id link.target_id - api.target_project_id link.target_project_id - api.external_url link.external_url if link.external_url.present? + api.array :dmsf_nodes, api_meta(total_count: @query.dmsf_nodes.count) do + @query.dmsf_nodes.each do |node| + api.node do + api.id node.id + api.title node.title + api.type node.type + api.filename node.filename end end end diff --git a/app/views/dmsf/show.html.erb b/app/views/dmsf/show.html.erb index af630e81..869ae39f 100644 --- a/app/views/dmsf/show.html.erb +++ b/app/views/dmsf/show.html.erb @@ -31,47 +31,47 @@ <%= actions_dropdown do %> <% if @folder_manipulation_allowed && !@system_folder %> <% if @folder.nil? %> - <%= link_to(l(:button_edit), edit_root_dmsf_path(:id => @project), - :title => l(:link_edit, :title => l(:link_documents)), - :class => 'icon icon-edit') %> + <%= link_to l(:button_edit), edit_root_dmsf_path(id: @project), + title: l(:link_edit, title: l(:link_documents)), + class: 'icon icon-edit' %> <% elsif !@locked_for_user %> - <%= link_to(l(:button_edit), + <%= link_to l(:button_edit), edit_dmsf_path(id: @project, folder_id: @folder, redirect_to_folder_id: @folder.id), title: l(:link_edit, title: h(@folder.title)), - class: 'icon icon-edit') %> + class: 'icon icon-edit' %> <% end %> <% if @folder && (!@locked_for_user || User.current.allowed_to?(:force_file_unlock, @project)) %> <% if @folder.locked? %> - <%= link_to_if(@folder.unlockable?, l(:button_unlock), - unlock_dmsf_path(:id => @project, :folder_id => @folder, :current => request.url), - :title => l(:title_unlock_folder), :class => 'icon icon-unlock') %> + <%= link_to_if @folder.unlockable?, l(:button_unlock), + unlock_dmsf_path(id: @project, folder_id: @folder, current: request.url), + title: l(:title_unlock_folder), class: 'icon icon-unlock' %> <% else %> <%= link_to(l(:button_lock), - lock_dmsf_path(:id => @project, :folder_id => @folder, :current => request.url), - :title => l(:title_lock_folder), :class => 'icon icon-lock') %> + lock_dmsf_path(id: @project, folder_id: @folder, current: request.url), + title: l(:title_lock_folder), class: 'icon icon-lock') %> <% end %> <% end %> <% if !@locked_for_user && ((@folder && @folder.notification) || (!@folder && @project.dmsf_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') %> + <%= 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' %> <% 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') %> + <%= 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' %> <% end %> <% if @file_manipulation_allowed && !@locked_for_user %> - <%= link_to(l(:label_link_from), - new_dmsf_link_path(:project_id => @project.id, :dmsf_folder_id => @folder ? @folder.id : @folder, - :type => 'link_from'), :title => l(:title_create_link), - :class => 'icon icon-link') %> + <%= link_to l(:label_link_from), + new_dmsf_link_path(project_id: @project.id, dmsf_folder_id: @folder ? @folder.id : @folder, + type: 'link_from'), title: l(:title_create_link), + class: 'icon icon-link' %> <% end %> <%= link_to(l(:link_create_folder), - new_dmsf_path(:id => @project, :parent_id => @folder), - :title => l(:link_create_folder), - :class => 'icon icon-add') unless @locked_for_user %> + new_dmsf_path(id: @project, parent_id: @folder), + title: l(:link_create_folder), + class: 'icon icon-add') unless @locked_for_user %> <% end %> <% if @trash_enabled %> <%= link_to l(:link_trash_bin), trash_dmsf_path(@project), title: l(:link_trash_bin), class: 'icon icon-del' %> @@ -101,22 +101,6 @@ <% unless (@folder && @folder.system) %> <% other_formats_links do |f| %> - <%= f.link_to 'CSV', onclick: "showModal('dmsf_csv_export_options', '350px'); return false;" %> + <%= f.link_to 'CSV', url: { action: :show, id: @project, dmsf_folder_id: @folder } %> <% end %> <% end %> - -
-

<%= l(:label_export_options, export_format: 'CSV') %>

- <%= form_tag(dmsf_folder_path(id: @project, format: 'csv'), method: :get, id: 'csv-export-form') do %> - <%= hidden_field_tag(:folder_id, @folder.id) if @folder %> -
- <%= render(partial: 'settings/dmsf_columns', - locals: { selected_columns: Setting.plugin_redmine_dmsf['dmsf_columns'], - extra_columns: @extra_columns ? @extra_columns : @query.extra_columns }) %> -
-

- <%= submit_tag l(:button_export), name: nil, onclick: "hideModal(this);" %> - <%= submit_tag l(:button_cancel), name: nil, onclick: "hideModal(this);", type: 'button' %> -

- <% end %> -
diff --git a/app/views/dmsf_files/_file_new_revision.html.erb b/app/views/dmsf_files/_file_new_revision.html.erb index 7680e1f4..69e2d8ac 100644 --- a/app/views/dmsf_files/_file_new_revision.html.erb +++ b/app/views/dmsf_files/_file_new_revision.html.erb @@ -28,8 +28,8 @@ <% if @file.locked_for_user? %>

<%= l(:info_file_locked) %>

<% else %> - <%= labelled_form_for(@revision, :url => { :action => 'create_revision', :id => @file }, - :html => { :method => :post, :multipart => true, :id => 'new_revision_form' }) do |f| %> + <%= labelled_form_for(@revision, url: { action: 'create_revision', id: @file }, + html: { method: :post, multipart: true, id: 'new_revision_form' }) do |f| %>

@@ -38,12 +38,12 @@

- <%= f.text_field(:name, :label => l(:label_file)) %> + <%= f.text_field :name, label: l(:label_file) %>

- <%= f.text_area(:description, :rows => 6, :class => 'wiki-edit') %> + <%= f.text_area :description, rows: 6, class: 'wiki-edit' %>

@@ -69,23 +69,23 @@ <%= radio_button_tag('version', 3) %> <%= select_tag 'custom_version_major', options_for_select(DmsfUploadHelper::major_version_select_options, DmsfUploadHelper::gui_version(DmsfUploadHelper::increase_version(@file.last_revision.major_version, 2))), - :onchange => '$("#version_3").prop("checked", true)', :class => 'dmsf_select_version' %>. + onchange: '$("#version_3").prop("checked", true)', class: 'dmsf_select_version' %>. <%= select_tag 'custom_version_minor', options_for_select(DmsfUploadHelper::minor_version_select_options, DmsfUploadHelper::gui_version(DmsfUploadHelper.increase_version(@file.last_revision.minor_version, 1))), - :onchange => '$("#version_3").prop("checked", true)', :class => 'dmsf_select_version' %> + onchange: '$("#version_3").prop("checked", true)', class: 'dmsf_select_version' %> <%= l(:option_version_custom) %>

- <%= label_tag('file_upload', l(:label_new_content)) %> - <%= render :partial => 'dmsf_upload/form', - :locals => { :multiple => false, :container => nil, :description => false, :awf => false } %> + <%= label_tag 'file_upload', l(:label_new_content) %> + <%= render partial: 'dmsf_upload/form', + locals: { multiple: false, container: nil, description: false, awf: false } %>

- <%= f.text_area(:comment, :rows => 2, :label => l(:label_comment), :class => 'wiki-edit') %> + <%= f.text_area :comment, rows: 2, label: l(:label_comment), class: 'wiki-edit' %>

<%= f.submit l(:submit_create) %> <% end %> diff --git a/app/views/dmsf_files/_link.html.erb b/app/views/dmsf_files/_link.html.erb index 2f2490f0..c704b37a 100644 --- a/app/views/dmsf_files/_link.html.erb +++ b/app/views/dmsf_files/_link.html.erb @@ -24,18 +24,18 @@ <% else %>

<% end %> - <% file_view_url = url_for({:controller => :dmsf_files, :action => 'view', :id => dmsf_file}) %> + <% file_view_url = url_for({ controller: :dmsf_files, action: 'view', id: dmsf_file }) %> <%= link_to(h(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)), + 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}") %> <% if dmsf_file.text? || dmsf_file.image? %> <%= link_to l(:button_view), file_view_url, - :class => 'icon-only icon-magnifier', - :title => l(:button_view) %> + class: 'icon-only icon-magnifier', + title: l(:button_view) %> <% end %> <%= " - #{dmsf_file.description}" unless dmsf_file.description.blank? %> (<%= number_to_human_size dmsf_file.last_revision.size %>) @@ -44,47 +44,47 @@ <% # Details %> <% if User.current.allowed_to? :file_manipulation, dmsf_file.project %> - <%= link_to('', dmsf_file_path(:id => dmsf_file), - :title => l(:link_details, :title => h(dmsf_file.last_revision.title)), - :class => 'icon-only icon-edit') %> + <%= link_to '', dmsf_file_path(id: dmsf_file), + title: l(:link_details, title: h(dmsf_file.last_revision.title)), + class: 'icon-only icon-edit' %> <% else %> <% 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), - :class => 'icon-only icon-email-disabled') %> + <%= 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), + class: 'icon-only icon-email-disabled' %> <% # Lock %> <% if !dmsf_file.locked? %> - <%= link_to('', lock_dmsf_files_path(:id => dmsf_file), - :title => l(:title_lock_file), - :class => 'icon-only icon-lock') %> + <%= link_to '', lock_dmsf_files_path(id: dmsf_file), + 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), - :title => dmsf_file.get_locked_title, - :class => 'icon-only icon-unlock') %> + <%= link_to '', unlock_dmsf_files_path(id: dmsf_file), + title: dmsf_file.get_locked_title, + class: 'icon-only icon-unlock' %> <% else %> <% end %> <% if !dmsf_file.locked? %> <% # Notifications %> <% if dmsf_file.notification %> - <%= link_to('', notify_deactivate_dmsf_files_path(:id => dmsf_file), - :title => l(:title_notifications_active_deactivate), - :class => 'icon-only icon-email') %> + <%= link_to '', notify_deactivate_dmsf_files_path(id: dmsf_file), + title: l(:title_notifications_active_deactivate), + class: 'icon-only icon-email' %> <% else %> - <%= link_to('', notify_activate_dmsf_files_path(:id => dmsf_file), - :title => l(:title_notifications_not_active_activate), - :class => 'icon-only icon-email-add') %> + <%= link_to '', notify_activate_dmsf_files_path(id: dmsf_file), + 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'), - :data => {:confirm => l(:text_are_you_sure)}, - :method => :delete, - :title => l(:button_delete), - :class => 'icon-only icon-del') %> + <%= link_to '', + link ? dmsf_link_path(link, commit: 'yes') : dmsf_file_path(id: dmsf_file, commit: 'yes'), + data: { confirm: l(:text_are_you_sure) }, + method: :delete, + title: l(:button_delete), + class: 'icon-only icon-del' %> <% end %> <% else %> @@ -92,10 +92,10 @@ <% end %> <% # Approval workflow %> <% wf = DmsfWorkflow.find_by(id: dmsf_file.last_revision.dmsf_workflow_id) if dmsf_file.last_revision.dmsf_workflow_id %> - <%= render(:partial => 'dmsf_workflows/approval_workflow_button', - :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 }) %> + <%= render partial: 'dmsf_workflows/approval_workflow_button', + 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 } %>

diff --git a/app/views/dmsf_files/_links.html.erb b/app/views/dmsf_files/_links.html.erb index 477704ef..5351f655 100644 --- a/app/views/dmsf_files/_links.html.erb +++ b/app/views/dmsf_files/_links.html.erb @@ -26,8 +26,8 @@
<% # DMS documents & links %> <% links.each do |dmsf_file, link, create_at| %> - <%= render :partial => 'dmsf_files/link', :locals => { :dmsf_file => dmsf_file, :link => link } %> + <%= render partial: 'dmsf_files/link', locals: { dmsf_file: dmsf_file, link: link } %> <% end %> - <%= render :partial => 'dmsf_files/thumbnails', :locals => { :links => links, :thumbnails => thumbnails, :link_to => true } %> + <%= render partial: 'dmsf_files/thumbnails', locals: { links: links, thumbnails: thumbnails, link_to: true } %>
<% end %> diff --git a/app/views/dmsf_files/_revision_access.html.erb b/app/views/dmsf_files/_revision_access.html.erb index ceb78861..a87d44bd 100644 --- a/app/views/dmsf_files/_revision_access.html.erb +++ b/app/views/dmsf_files/_revision_access.html.erb @@ -29,7 +29,7 @@ <% query.inline_columns.each do |column| %> - <%= column_header(query, column, query_options) %> + <%= column_header query, column, query_options %> <% end %> @@ -37,7 +37,7 @@ <% query.accesses.each do |access| %> <% query.inline_columns.each do |column| %> - <%= content_tag('td', column_content(column, access), class: column.css_classes) %> + <%= content_tag 'td', column_content(column, access), class: column.css_classes %> <% end %> <% end %> diff --git a/app/views/dmsf_files/_thumbnails.html.erb b/app/views/dmsf_files/_thumbnails.html.erb index 2710b790..17fe7329 100644 --- a/app/views/dmsf_files/_thumbnails.html.erb +++ b/app/views/dmsf_files/_thumbnails.html.erb @@ -30,10 +30,10 @@ <% images.each do |file| %>
<% if link_to # Redmine classic %> - <%= link_to image_tag(dmsf_thumbnail_path(file)), view_dmsf_file_path(file), :alt => file.title %> + <%= link_to image_tag(dmsf_thumbnail_path(file)), view_dmsf_file_path(file), alt: file.title %> <% else # jQuery gallery %> <%= image_tag(dmsf_thumbnail_path(file), - { :'data-fullsrc' => view_dmsf_file_path(file), :alt => file.title }) %> + { :'data-fullsrc' => view_dmsf_file_path(file), alt: file.title }) %> <% end %>
<% end %> diff --git a/app/views/dmsf_files/show.html.erb b/app/views/dmsf_files/show.html.erb index 31bc5aa6..ec375758 100644 --- a/app/views/dmsf_files/show.html.erb +++ b/app/views/dmsf_files/show.html.erb @@ -22,46 +22,46 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. %> -<% html_title(l(:dmsf)) %> +<% html_title l(:dmsf) %>
<% 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), - title: l(:title_unlock_file), class: 'icon icon-unlock')%> + <%= link_to_if @file.unlockable?, l(:button_unlock), unlock_dmsf_files_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), - title: l(:title_unlock_file), class: 'icon icon-unlock') %> + <%= link_to_if @file.unlockable?, l(:button_unlock), unlock_dmsf_files_path(id: @file), + title: l(:title_unlock_file), class: 'icon icon-unlock' %> <% else %> - <%= link_to(l(:button_lock), lock_dmsf_files_path(id: @file), - title: l(:title_lock_file), class: 'icon icon-lock') %> + <%= link_to l(:button_lock), lock_dmsf_files_path(id: @file), + title: l(:title_lock_file), class: 'icon icon-lock' %> <% end %> <% if @file.notification %> - <%= link_to(l(:label_notifications_off), + <%= link_to l(:label_notifications_off), notify_deactivate_dmsf_files_path(id: @file), title: l(:title_notifications_active_deactivate), - class: 'icon icon-email') %> + class: 'icon icon-email' %> <% else %> - <%= link_to(l(:label_notifications_on), + <%= link_to l(:label_notifications_on), notify_activate_dmsf_files_path(id: @file), title: l(:title_notifications_not_active_activate), - class: 'icon icon-email-add') %> + class: 'icon icon-email-add' %> <% end %> - <%= link_to(l(:label_link_to), + <%= 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'), title: l(:title_create_link), - class: 'icon icon-link') %> - <%= link_to("#{l(:button_copy)}/#{l(:button_move)}", copy_file_path(id: @file), - title: l(:title_copy), class: 'icon icon-copy') %> + class: 'icon icon-link' %> + <%= link_to "#{l(:button_copy)}/#{l(:button_move)}", copy_file_path(id: @file), + title: l(:title_copy), class: 'icon icon-copy' %> <%= delete_link(dmsf_file_path(id: @file, details: true)) if @file_delete_allowed %> <% end %> <% end %>
-<%= render(partial: '/dmsf/path', locals: { folder: @file.dmsf_folder, filename: @file.title, title: nil}) %> +<%= render partial: '/dmsf/path', locals: { folder: @file.dmsf_folder, filename: @file.title, title: nil} %> <% if @file_manipulation_allowed && !@file.locked_for_user? %> <%= error_messages_for('file') %> @@ -76,7 +76,7 @@

<%= l(:heading_revisions) %>

<% @file.dmsf_file_revisions.visible[@revision_pages.offset, @revision_pages.per_page].each do |revision| %> -
+
@@ -101,7 +101,7 @@
<%= l(:info_revision, rev: revision.id) %> <%= (revision.source_revision.nil? ? l(:label_created) : l(:label_changed)).downcase %> - <%= l(:info_changed_by_user, :changed => format_time(revision.updated_at)) %> + <%= l(:info_changed_by_user, changed: format_time(revision.updated_at)) %> <%= link_to(revision.user.name, user_path(revision.user)) if revision.user %>
@@ -185,8 +185,6 @@ <%= pagination_links_full @revision_pages, @file.dmsf_file_revisions.visible.count %> <%= late_javascript_tag do %> - $('.dmsf_controls').show(); - $('#browser').show(); $('a.delete-revision').click(function(event) { if(!window.confirm('<%= l(:text_are_you_sure) %>')) { event.preventDefault(); @@ -213,17 +211,4 @@ $('#new_revision_form_content').show(); } }); - $('.dmsf_list').dataTable({ - language: { - url: "<%= plugin_asset_path(:redmine_dmsf, 'javascripts', json_url) %>" - }, - oLanguage: { - sSearch: "<%= l(:description_filter) %>:" - } - }); -<% end %> - -<% content_for :header_tags do %> - <%= stylesheet_link_tag 'jquery.dataTables/datatables.min.css', plugin: :redmine_dmsf %> - <%= javascript_include_tag 'jquery.dataTables/datatables.min.js', plugin: :redmine_dmsf, defer: true %> <% end %> diff --git a/app/views/dmsf_files_copy/new.html.erb b/app/views/dmsf_files_copy/new.html.erb index bd77d982..7edd9760 100644 --- a/app/views/dmsf_files_copy/new.html.erb +++ b/app/views/dmsf_files_copy/new.html.erb @@ -22,15 +22,14 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. %> -<%= render(:partial => '/dmsf/path', :locals => { :folder => @file.dmsf_folder, :filename => @file.title, - :title => nil }) %> +<%= render partial: '/dmsf/path', locals: { folder: @file.dmsf_folder, filename: @file.title, title: nil } %> -<%= render(:partial => '/dmsf_folders_copy/form', :locals => { - :projects => @projects, - :project => @project, - :target_project => @target_project, - :folders => @folders, - :file_or_folder => @file, - :target_folder => @target_folder, - :permission => :file_manipulation -}) %> +<%= render partial: '/dmsf_folders_copy/form', + locals: { + projects: @projects, + project: @project, + target_project: @target_project, + folders: @folders, + file_or_folder: @file, + target_folder: @target_folder, + permission: :file_manipulation } %> diff --git a/app/views/dmsf_folder_permissions/_new.html.erb b/app/views/dmsf_folder_permissions/_new.html.erb index 458ee9f1..1d4016e6 100644 --- a/app/views/dmsf_folder_permissions/_new.html.erb +++ b/app/views/dmsf_folder_permissions/_new.html.erb @@ -31,7 +31,7 @@ dmsf_folder_id: @dmsf_folder) }')" %>
- <%= render_principals_for_new_folder_permissions(@principals) %> + <%= render_principals_for_new_folder_permissions @principals %>

diff --git a/app/views/dmsf_folder_permissions/new.js.erb b/app/views/dmsf_folder_permissions/new.js.erb index fc395d19..48362ebb 100644 --- a/app/views/dmsf_folder_permissions/new.js.erb +++ b/app/views/dmsf_folder_permissions/new.js.erb @@ -23,6 +23,6 @@ var modal = $('#ajax-modal'); $('#users_for_watcher').html('<%= escape_javascript(render_principals_for_new_folder_permissions(@principals)) %>'); -modal.html('<%= escape_javascript(render :partial => 'dmsf_folder_permissions/new') %>'); +modal.html('<%= escape_javascript(render partial: 'dmsf_folder_permissions/new') %>'); showModal('ajax-modal', '400px'); modal.addClass('new-user'); diff --git a/app/views/dmsf_folders_copy/_form.html.erb b/app/views/dmsf_folders_copy/_form.html.erb index 62994e34..3019218b 100644 --- a/app/views/dmsf_folders_copy/_form.html.erb +++ b/app/views/dmsf_folders_copy/_form.html.erb @@ -21,23 +21,21 @@ %> <% if projects.present? %> - <%= form_tag({:action => 'copy', :id => file_or_folder}, :id => 'copyForm') do %> + <%= form_tag({ action: 'copy', id: file_or_folder}, id: 'copyForm') do %>

- <%= label_tag('target_project_id', l(:field_target_project)) %> - <%= select_tag('target_project_id', - project_tree_options_for_select(projects, :selected => target_project)) %> + <%= label_tag 'target_project_id', l(:field_target_project) %> + <%= select_tag 'target_project_id', project_tree_options_for_select(projects, selected: target_project) %>

- <%= label_tag('target_folder_id', l(:field_target_folder)) %> - <%= select_tag('target_folder_id', options_for_select(folders, - :selected => (target_folder.id if target_folder))) %> + <%= label_tag 'target_folder_id', l(:field_target_folder) %> + <%= select_tag 'target_folder_id', options_for_select(folders, selected: (target_folder.id if target_folder)) %>

- <%= submit_tag(l(:button_copy), :id => 'copy_button') %> + <%= submit_tag l(:button_copy), id: 'copy_button' %> <% if !file_or_folder.locked? && User.current.allowed_to?(permission, project) %> - <%= submit_tag(l(:button_move), :id => 'move_button') %> + <%= submit_tag l(:button_move), id: 'move_button' %> <% end %>

<% end %> @@ -45,11 +43,11 @@ <%= late_javascript_tag do %> $('#move_button').click(function(event) { - $('#copyForm').attr('action', "<%= url_for(:action => 'move', :id => file_or_folder) %>"); + $('#copyForm').attr('action', "<%= url_for(action: 'move', id: file_or_folder) %>"); $('#copyForm').submit(); }); $('#target_project_id').change(function () { - $('#content').load("<%= url_for(:action => 'new') %>", $('#copyForm').serialize()); + $('#content').load("<%= url_for(action: 'new') %>", $('#copyForm').serialize()); }); $('#target_project_id').select2(); $('#target_folder_id').select2(); diff --git a/app/views/dmsf_folders_copy/new.html.erb b/app/views/dmsf_folders_copy/new.html.erb index 26f48535..7f712619 100644 --- a/app/views/dmsf_folders_copy/new.html.erb +++ b/app/views/dmsf_folders_copy/new.html.erb @@ -22,14 +22,13 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. %> -<%= render(:partial => '/dmsf/path', :locals => { :folder => @folder, :filename => nil, :title => nil }) %> +<%= render partial: '/dmsf/path', locals: { folder: @folder, filename: nil, title: nil } %> -<%= render(:partial => '/dmsf_folders_copy/form', :locals => { - :projects => @projects, - :project => @project, - :target_project => @target_project, - :folders => @folders, - :file_or_folder => @folder, - :target_folder => @target_folder, - :permission => :folder_manipulation - }) %> +<%= render partial: '/dmsf_folders_copy/form', locals: { + projects: @projects, + project: @project, + target_project: @target_project, + folders: @folders, + file_or_folder: @folder, + target_folder: @target_folder, + permission: :folder_manipulation } %> diff --git a/app/views/dmsf_links/_form.html.erb b/app/views/dmsf_links/_form.html.erb index adfc905f..45e2ff65 100644 --- a/app/views/dmsf_links/_form.html.erb +++ b/app/views/dmsf_links/_form.html.erb @@ -22,13 +22,13 @@

<%= l(:title_create_link) %>

-<%= labelled_form_for @dmsf_link, :remote => modal do |f| %> +<%= labelled_form_for @dmsf_link, remote: modal do |f| %> <%= error_messages_for @dmsf_link %> - <%= f.hidden_field :project_id, :value => @dmsf_link.project_id %> - <%= f.hidden_field :dmsf_folder_id, :value => @dmsf_link.dmsf_folder_id if @dmsf_link.dmsf_folder_id %> - <%= f.hidden_field :type, :value => @type %> - <%= f.hidden_field :dmsf_file_id, :value => @dmsf_file_id %> - <%= f.hidden_field(:container, :value => @container) if @container %> + <%= f.hidden_field :project_id, value: @dmsf_link.project_id %> + <%= f.hidden_field :dmsf_folder_id, value: @dmsf_link.dmsf_folder_id if @dmsf_link.dmsf_folder_id %> + <%= f.hidden_field :type, value: @type %> + <%= f.hidden_field :dmsf_file_id, value: @dmsf_file_id %> + <%= f.hidden_field(:container, value: @container) if @container %>
<% if (@type == 'link_from') && !@container %>

@@ -46,11 +46,11 @@ <% end %> <%= select_tag('dmsf_link[target_project_id]', project_tree_options_for_select(DmsfFile.allowed_target_projects_on_copy, - :selected => @dmsf_link.target_project)) %> + selected: @dmsf_link.target_project)) %> <%= late_javascript_tag do %> $('#dmsf_link_target_project_id').change(function(){ $.ajax({ - url: '<%= escape_javascript autocomplete_for_project_dmsf_link_path(@project, :format => 'js') %>', + url: '<%= escape_javascript autocomplete_for_project_dmsf_link_path(@project, format: 'js') %>', type: 'get', data: $('#new_dmsf_link').serialize() }); @@ -67,17 +67,17 @@ * <% if @fast_links %> - <%= text_field_tag 'dmsf_link[target_folder_id]', '', :required => true, :max_length => 255 %> + <%= text_field_tag 'dmsf_link[target_folder_id]', '', required: true, max_length: 255 %> <% end %> <% end %> <% if !@fast_links || (@type != 'link_to') %> <%= select_tag('dmsf_link[target_folder_id]', folder_tree_options_for_select(DmsfFolder.directory_tree(@dmsf_link.target_project), - :selected => @target_folder_id)) %> + selected: @target_folder_id)) %> <%= late_javascript_tag do %> $('#dmsf_link_target_folder_id').change(function(){ $.ajax({ - url: '<%= escape_javascript autocomplete_for_folder_dmsf_link_path(@project, :format => 'js') %>', + url: '<%= escape_javascript autocomplete_for_folder_dmsf_link_path(@project, format: 'js') %>', type: 'get', data: $('#new_dmsf_link').serialize() }); @@ -90,24 +90,24 @@ <%= label_tag('dmsf_link[target_file_id]', l(:field_target_file)) %> <% files = files_for_select(@dmsf_link.target_project.id, @target_folder_id) %> <%= select_tag('dmsf_link[target_file_id]', - options_for_select(DmsfFolder.file_list(files)), :required => modal) %> + options_for_select(DmsfFolder.file_list(files)), required: modal) %>

<% end %>
<% if (@type == 'link_from') && !@container %> <% end %>

- <%= f.text_field :name, :required => true, :max_length => 255 %> + <%= f.text_field :name, required: true, max_length: 255 %>

<% if modal %> - <%= f.submit l(:button_create), :onclick => 'hideModal(this);' %> + <%= f.submit l(:button_create), onclick: 'hideModal(this);' %> <% else %> <%= f.submit l(:button_create) %> <% end %> diff --git a/app/views/dmsf_links/new.html.erb b/app/views/dmsf_links/new.html.erb index 37f2df1e..7741a8cc 100644 --- a/app/views/dmsf_links/new.html.erb +++ b/app/views/dmsf_links/new.html.erb @@ -20,4 +20,4 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. %> -<%= render :partial => 'form', :locals => { :modal => false } %> \ No newline at end of file +<%= render partial: 'form', locals: { modal: false } %> \ No newline at end of file diff --git a/app/views/dmsf_links/new.js.erb b/app/views/dmsf_links/new.js.erb index 4c99c845..dd9dbe3b 100644 --- a/app/views/dmsf_links/new.js.erb +++ b/app/views/dmsf_links/new.js.erb @@ -20,5 +20,5 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. %> -$('#ajax-modal').html('<%= escape_javascript(render :partial => 'form', :locals => { :modal => true }) %>'); +$('#ajax-modal').html('<%= escape_javascript(render partial: 'form', locals: { modal: true }) %>'); showModal('ajax-modal', '40%'); \ No newline at end of file diff --git a/app/views/dmsf_mailer/files_updated.html.erb b/app/views/dmsf_mailer/files_updated.html.erb index 3032b6ad..a1887099 100644 --- a/app/views/dmsf_mailer/files_updated.html.erb +++ b/app/views/dmsf_mailer/files_updated.html.erb @@ -22,14 +22,12 @@ <%= link_to @project, project_url(@project) %> <%= l(:text_email_doc_follows) %> <% @files.each do |file| %>

- <%= link_to(h(file.dmsf_path_str), - dmsf_file_url(file, :download => '')) %> + <%= link_to h(file.dmsf_path_str), dmsf_file_url(file, download: '') %> (<%= file.name %>), <%= number_to_human_size(file.last_revision.size) %>, <%= l(:label_dmsf_version) %> <%= file.last_revision.version %>, <%= "#{file.last_revision.workflow_str(true)}," if file.last_revision.workflow_str(true) != l(:title_none) %> - <%= link_to(l(:link_details, :title => h(file.title)), - dmsf_file_url(file)) %> + <%= link_to l(:link_details, title: h(file.title)), dmsf_file_url(file) %> <% if file.last_revision.comment.present? %>
    <%= h(file.last_revision.comment) %> <% end %> diff --git a/app/views/dmsf_mailer/send_documents.html.erb b/app/views/dmsf_mailer/send_documents.html.erb index 795a6e98..0d87cf1d 100644 --- a/app/views/dmsf_mailer/send_documents.html.erb +++ b/app/views/dmsf_mailer/send_documents.html.erb @@ -34,7 +34,7 @@ <% dir = DmsfFolder.find_by(id: i) %> <% if dir && !folders.include?(dir) %>
- <%= link_to(h(dir.dmsf_path_str), dmsf_folder_path(:id => dir.project_id, :folder_id => dir.id, :only_path => false)) %> + <%= link_to h(dir.dmsf_path_str), dmsf_folder_path(id: dir.project_id, folder_id: dir.id, only_path: false) %>

<% dir.dmsf_files.each do |file| %> <% unless files.include?(file) %> @@ -44,8 +44,8 @@ <% dmsf_public_url.user = @author %> <% dmsf_public_url.expire_at = @expired_at %> <% dmsf_public_url.save %> - <%= link_to(h(file.title), dmsf_public_urls_url(:token => dmsf_public_url.token)) %> - (<%= link_to(h(file.name), dmsf_public_urls_url(:token => dmsf_public_url.token)) %>) + <%= link_to h(file.title), dmsf_public_urls_url(token: dmsf_public_url.token) %> + (<%= link_to h(file.name), dmsf_public_urls_url(token: dmsf_public_url.token) %>) <% else %> <%= link_to(h(file.title), dmsf_file_url(file)) %>  (<%= link_to(h(file.name), dmsf_file_url(file)) %>) @@ -71,11 +71,11 @@ <% dmsf_public_url.user = @author %> <% dmsf_public_url.expire_at = @expired_at %> <% dmsf_public_url.save %> - <%= link_to(h(file.title), dmsf_public_urls_url(:token => dmsf_public_url.token)) %> -  (<%= link_to(h(file.name), dmsf_public_urls_url(:token => dmsf_public_url.token)) %>) + <%= link_to h(file.title), dmsf_public_urls_url(token: dmsf_public_url.token) %> +  (<%= link_to h(file.name), dmsf_public_urls_url(token: dmsf_public_url.token) %>) <% else %> - <%= link_to(h(file.title), dmsf_file_url(file)) %> -  (<%= link_to(h(file.name), dmsf_file_url(file)) %>) + <%= link_to h(file.title), dmsf_file_url(file) %> +  (<%= link_to h(file.name), dmsf_file_url(file) %>) <% end %>
<% files << file %> diff --git a/app/views/dmsf_mailer/send_documents.text.erb b/app/views/dmsf_mailer/send_documents.text.erb index 06f71eb8..16acf882 100644 --- a/app/views/dmsf_mailer/send_documents.text.erb +++ b/app/views/dmsf_mailer/send_documents.text.erb @@ -42,7 +42,7 @@ <% dmsf_public_url.user = @author %> <% dmsf_public_url.expire_at = @expired_at %> <% dmsf_public_url.save %> - <%= dmsf_public_urls_url(:token => dmsf_public_url.token) %> + <%= dmsf_public_urls_url(token: dmsf_public_url.token) %> <% else %> <%= dmsf_file_url(file) %> <% end %> @@ -64,7 +64,7 @@ <% dmsf_public_url.user = @author %> <% dmsf_public_url.expire_at = @expired_at %> <% dmsf_public_url.save %> - <%= dmsf_public_urls_url(:token => dmsf_public_url.token) %> + <%= dmsf_public_urls_url(token: dmsf_public_url.token) %> <% else %> <%= dmsf_file_url(file) %> <% end %> diff --git a/app/views/dmsf_mailer/workflow_notification.html.erb b/app/views/dmsf_mailer/workflow_notification.html.erb index 9ad9cc07..8baba3af 100644 --- a/app/views/dmsf_mailer/workflow_notification.html.erb +++ b/app/views/dmsf_mailer/workflow_notification.html.erb @@ -23,10 +23,9 @@

<%= @text2 %> <% if @revision.dmsf_file.dmsf_folder %> - <%= link_to @revision.dmsf_file.dmsf_folder.title, - dmsf_folder_url(:id => @revision.dmsf_file.project, :folder_id => @revision.dmsf_file.dmsf_folder) %> + <%= link_to @revision.dmsf_file.dmsf_folder.title, + dmsf_folder_url(id: @revision.dmsf_file.project, folder_id: @revision.dmsf_file.dmsf_folder) %> <% else %> - <%= link_to l(:link_documents), - dmsf_folder_url(:id => @revision.dmsf_file.project) %> + <%= link_to l(:link_documents), dmsf_folder_url(id: @revision.dmsf_file.project) %> <% end %>.

\ No newline at end of file diff --git a/app/views/dmsf_mailer/workflow_notification.text.erb b/app/views/dmsf_mailer/workflow_notification.text.erb index ffe66917..7bf618b9 100644 --- a/app/views/dmsf_mailer/workflow_notification.text.erb +++ b/app/views/dmsf_mailer/workflow_notification.text.erb @@ -22,7 +22,7 @@ <%= @user.name %>, <%= @text1 %> <% if @revision.dmsf_file.dmsf_folder %> -<%= @text2 %> <%= dmsf_folder_url(:id => @revision.dmsf_file.project, :folder_id => @revision.dmsf_file.dmsf_folder) %>. +<%= @text2 %> <%= dmsf_folder_url(id: @revision.dmsf_file.project, folder_id: @revision.dmsf_file.dmsf_folder) %>. <% else %> -<%= @text2 %> <%= dmsf_folder_url(:id => @revision.dmsf_file.project) %>. +<%= @text2 %> <%= dmsf_folder_url(id: @revision.dmsf_file.project) %>. <% end %> \ No newline at end of file diff --git a/app/views/dmsf_public_urls/_new.html.erb b/app/views/dmsf_public_urls/_new.html.erb index afa11be0..ca04310c 100644 --- a/app/views/dmsf_public_urls/_new.html.erb +++ b/app/views/dmsf_public_urls/_new.html.erb @@ -21,8 +21,8 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. %> -"> - <%= check_box_tag('email[public_urls]', 1, false) %> <%= l(:label_public_urls) %> - <%= date_field_tag('email[expired_at]', '', :value => (DateTime.current + 3.days).to_date, :size => 10, - :readonly => true) + calendar_for('email_expired_at') %> +"> + <%= check_box_tag 'email[public_urls]', 1, false %> <%= l(:label_public_urls) %> + <%= date_field_tag('email[expired_at]', '', value: (DateTime.current + 3.days).to_date, size: 10, readonly: true) + + calendar_for('email_expired_at') %> diff --git a/app/views/dmsf_state/_user_pref.html.erb b/app/views/dmsf_state/_user_pref.html.erb index 6ac52cb3..ebcc128f 100644 --- a/app/views/dmsf_state/_user_pref.html.erb +++ b/app/views/dmsf_state/_user_pref.html.erb @@ -34,20 +34,19 @@ <%= l(:link_user_preferences) %>

<%= content_tag(:label, l(:label_notifications)) %> - <%= select_tag( - 'email_notify', + <%= select_tag 'email_notify', options_for_select([[l(:select_option_default), nil], [l(:select_option_activated), true], [l(:select_option_deactivated), false]], - :selected => mail_notification)) %> + selected: mail_notification) %>

- <%= content_tag(:label, l(:label_title_format)) %> - <%= text_field_tag 'title_format', title_format, :size => 10 %> + <%= content_tag :label, l(:label_title_format) %> + <%= text_field_tag 'title_format', title_format, size: 10 %> <%= l(:text_title_format) %>

- <%= content_tag(:label, l(:label_dmsf_fast_links)) %> - <%= check_box_tag('fast_links', 1, fast_links) %> + <%= content_tag :label, l(:label_dmsf_fast_links) %> + <%= check_box_tag 'fast_links', 1, fast_links %> <%= l(:text_dmsf_fast_links_info) %> @@ -58,14 +57,13 @@ <%= l(:field_project) %> <%= l(:label_preferences) %>

<%= content_tag(:label, "#{l(:label_act_as_attachable)}:") %> - <%= select_tag( - 'act_as_attachable', + <%= select_tag 'act_as_attachable', options_for_select([ [l(:label_attachment_plural) + ' & ' + l(:menu_dmsf), Project::ATTACHABLE_DMS_AND_ATTACHMENTS], [l(:label_attachment_plural), Project::ATTACHABLE_ATTACHMENTS], - ],:selected => @project.dmsf_act_as_attachable)) %> + ], selected: @project.dmsf_act_as_attachable) %>

<% end %> - <%= submit_tag(l(:submit_save), :title => l(:title_save_preferences)) %> + <%= submit_tag l(:submit_save), title: l(:title_save_preferences) %> <% end %> \ No newline at end of file diff --git a/app/views/dmsf_upload/_form.html.erb b/app/views/dmsf_upload/_form.html.erb index 3b3a6c85..a38d7b03 100644 --- a/app/views/dmsf_upload/_form.html.erb +++ b/app/views/dmsf_upload/_form.html.erb @@ -25,19 +25,19 @@ <% container.saved_dmsf_attachments.each_with_index do |attachment, i| %> <%= hidden_field_tag "dmsf_attachments[p#{i}][token]", "#{attachment.token}" %> - <%= text_field_tag("dmsf_attachments[p#{i}][filename]", attachment.filename, :class => 'filename') %> - <%= text_field_tag("dmsf_attachments[p#{i}][description]", attachment.description, :maxlength => 255, - :placeholder => l(:label_optional_description), :class => 'description') if description %> - <%= link_to('', dmsf_attachment_path(attachment, :attachment_id => "p#{i}", :format => 'js'), - :method => 'delete', :remote => true, :class => 'remove-upload icon-only icon-del') %> + <%= text_field_tag("dmsf_attachments[p#{i}][filename]", attachment.filename, class: 'filename') %> + <%= text_field_tag("dmsf_attachments[p#{i}][description]", attachment.description, maxlength: 255, + placeholder: l(:label_optional_description), class: 'description') if description %> + <%= link_to '', dmsf_attachment_path(attachment, attachment_id: "p#{i}", format: 'js'), + method: 'delete', remote: true, class: 'remove-upload icon-only icon-del' %> <% wf = container.saved_dmsf_attachments_wfs[attachment.id] %> <% if wf %> <%= hidden_field_tag("dmsf_attachments_wfs[p#{i}]", wf.id) if wf %> <% else %> - <%= link_to('', assign_dmsf_workflow_path(:id => container.project.id, :project_id => container.project.id, - :attachment_id => i + 1), :title => l(:label_dmsf_wokflow_action_assign), - :remote => true, :class => 'modify-upload icon-only icon-ok') %> + <%= link_to '', assign_dmsf_workflow_path(id: container.project.id, project_id: container.project.id, + attachment_id: i + 1), title: l(:label_dmsf_wokflow_action_assign), + remote: true, class: 'modify-upload icon-only icon-ok' %> <% end %> <% end %> @@ -50,19 +50,19 @@ - <%= link_to('', dmsf_link_attachment_path(dmsf_link, :link_id => "#{index}", :format => 'js'), - :method => 'delete', :remote => true, :class => 'remove-upload icon-only icon-del') %> + <%= link_to '', dmsf_link_attachment_path(dmsf_link, link_id: "#{index}", :format => 'js'), + method: 'delete', remote: true, class: 'remove-upload icon-only icon-del' %> <% wf = container.saved_dmsf_links_wfs[dmsf_link.id] %> <% if wf %> <%= hidden_field_tag("dmsf_links_wfs[#{dmsf_link.id}]", wf.id) if wf %> <% else %> - <%= render(:partial => 'dmsf_workflows/approval_workflow_button', - :locals => {:file => dmsf_link.target_file, - :file_approval_allowed => User.current.allowed_to?(:file_approval, dmsf_link.target_file.project), - :workflows_available => DmsfWorkflow.where( + <%= render partial: 'dmsf_workflows/approval_workflow_button', + locals: { file: dmsf_link.target_file, + file_approval_allowed: User.current.allowed_to?(:file_approval, dmsf_link.target_file.project), + workflows_available: DmsfWorkflow.where( ['project_id = ? OR project_id IS NULL', dmsf_link.target_file.project_id]).exists?, - :project => dmsf_link.target_file.project, :wf => wf, :dmsf_link_id => dmsf_link.id }) %> + project: dmsf_link.target_file.project, wf: wf, dmsf_link_id: dmsf_link.id } %> <% end %> <% end %> @@ -71,27 +71,27 @@ <%= file_field_tag 'dmsf_attachments[dummy][file]', - :id => nil, - :class => 'file_selector', - :multiple => multiple, - :onchange => "dmsfAddInputFiles(this);", - :data => { - :max_file_size => Setting.attachment_max_size.to_i.kilobytes, - :max_file_size_message => l(:error_attachment_too_big, - :max_size => number_to_human_size(Setting.attachment_max_size.to_i.kilobytes)), - :max_concurrent_uploads => Redmine::Configuration['max_concurrent_ajax_uploads'].to_i, - :upload_path => dmsf_uploads_path(:format => 'js'), - :description_placeholder => l(:label_optional_description), - :project => @project ? "#{@project.identifier}" : "", - :description => description, - :awf => awf + id: nil, + class: 'file_selector', + multiple: multiple, + onchange: 'dmsfAddInputFiles(this);', + data: { + max_file_size: Setting.attachment_max_size.to_i.kilobytes, + max_file_size_message: l(:error_attachment_too_big, + max_size: number_to_human_size(Setting.attachment_max_size.to_i.kilobytes)), + max_concurrent_uploads: Redmine::Configuration['max_concurrent_ajax_uploads'].to_i, + upload_path: dmsf_uploads_path(format: 'js'), + description_placeholder: l(:label_optional_description), + project: @project ? "#{@project.identifier}" : '', + description: description, + awf: awf } %> <% if defined?(container) && container %> <%= link_to l(:label_link_from), - new_dmsf_link_path(:project_id => container.project.id, :type => 'link_from', :container => container.class.name), - :title => l(:title_create_link), :class => 'icon icon-add file_selector', :remote => true %> + new_dmsf_link_path(project_id: container.project.id, type: 'link_from', container: container.class.name), + title: l(:title_create_link), class: 'icon icon-add file_selector', remote: true %> <% end %> diff --git a/app/views/dmsf_upload/_upload_file.html.erb b/app/views/dmsf_upload/_upload_file.html.erb index f2adedef..73e4027b 100644 --- a/app/views/dmsf_upload/_upload_file.html.erb +++ b/app/views/dmsf_upload/_upload_file.html.erb @@ -23,28 +23,28 @@ %>
- <%= hidden_field_tag("commited_files[#{i}][disk_filename]", upload.disk_filename) %> - <%= hidden_field_tag("commited_files[#{i}][tempfile_path]", upload.tempfile_path) %> - <%= hidden_field_tag("commited_files[#{i}][size]", upload.size) %> - <%= hidden_field_tag("commited_files[#{i}][mime_type]", upload.mime_type) %> + <%= hidden_field_tag "commited_files[#{i}][disk_filename]", upload.disk_filename %> + <%= hidden_field_tag "commited_files[#{i}][tempfile_path]", upload.tempfile_path %> + <%= hidden_field_tag "commited_files[#{i}][size]", upload.size %> + <%= hidden_field_tag "commited_files[#{i}][mime_type]", upload.mime_type %>

- <%= label_tag("commited_files[#{i}][title]", l(:label_title)) %> - <%= text_field_tag("commited_files[#{i}][title]", upload.title, :required => true) %> + <%= label_tag "commited_files[#{i}][title]", l(:label_title) %> + <%= text_field_tag "commited_files[#{i}][title]", upload.title, required:true %>

- <%= label_tag('', l(:label_filename)) %> - <%= text_field_tag(:name, h(upload.name), :readonly => true) %> - <%= hidden_field_tag("commited_files[#{i}][name]", upload.name) %> + <%= label_tag '', l(:label_filename) %> + <%= text_field_tag :name, h(upload.name), readonly: true %> + <%= hidden_field_tag "commited_files[#{i}][name]", upload.name %>

- <%= label_tag("commited_files[#{i}][description]", l(:label_description)) %> - <%= text_area_tag("commited_files[#{i}][description]", upload.description, :rows => 6, :class => 'wiki-edit') %> + <%= label_tag "commited_files[#{i}][description]", l(:label_description) %> + <%= text_area_tag "commited_files[#{i}][description]", upload.description, rows: 6, class: 'wiki-edit' %>

@@ -57,41 +57,41 @@

- <%= label_tag("commited_files[#{i}][version]_minor", l(:label_dmsf_version)) %> - <%= radio_button_tag("commited_files[#{i}][version]", 1, true) %> + <%= label_tag "commited_files[#{i}][version]_minor", l(:label_dmsf_version) %> + <%= radio_button_tag "commited_files[#{i}][version]", 1, true %> <%= DmsfUploadHelper::gui_version(upload.major_version) %>.<%= DmsfUploadHelper::gui_version(DmsfUploadHelper.increase_version(upload.minor_version, 1)) %> <%= l(:option_version_minor) %>
- <%= radio_button_tag("commited_files[#{i}][version]", 2) %> + <%= radio_button_tag "commited_files[#{i}][version]", 2 %> <%= DmsfUploadHelper::gui_version(DmsfUploadHelper::increase_version(upload.major_version, 1)) %>.0 <%= l(:option_version_major) %>
- <%= radio_button_tag("commited_files[#{i}][version]", 3) %> + <%= radio_button_tag "commited_files[#{i}][version]", 3 %> <%= select_tag "commited_files[#{i}][custom_version_major]", options_for_select(DmsfUploadHelper::major_version_select_options, DmsfUploadHelper::gui_version(DmsfUploadHelper::increase_version(upload.major_version, 2))), - :onchange => "$('#commited_files_#{i}_version_3').prop('checked', true)", - :class => 'dmsf_select_version'%>. + onchange: "$('#commited_files_#{i}_version_3').prop('checked', true)", + class: 'dmsf_select_version'%>. <%= select_tag "commited_files[#{i}][custom_version_minor]", options_for_select(DmsfUploadHelper::minor_version_select_options, DmsfUploadHelper::gui_version(DmsfUploadHelper.increase_version(upload.minor_version, 1))), - :onchange => "$('#commited_files_#{i}_version_3').prop('checked', true)", - :class => 'dmsf_select_version' %> + onchange: "$('#commited_files_#{i}_version_3').prop('checked', true)", + class: 'dmsf_select_version' %> <%= l(:option_version_custom) %>

<%= label_tag '', l(:label_mime) %> - <%= text_field_tag(:name, h(upload.mime_type), :readonly => true) %> + <%= text_field_tag :name, h(upload.mime_type), readonly: true %>

- <%= label_tag('', l(:label_size)) %> - <%= text_field_tag(:name, number_to_human_size(upload.size), :readonly => true) %> + <%= label_tag '', l(:label_size) %> + <%= text_field_tag :name, number_to_human_size(upload.size), readonly: true %>

- <%= label_tag("commited_files[#{i}][comment]", l(:label_comment)) %> - <%= text_area_tag("commited_files[#{i}][comment]", upload.comment, :rows => 2, :class => 'wiki-edit') %> + <%= label_tag "commited_files[#{i}][comment]", l(:label_comment) %> + <%= text_area_tag "commited_files[#{i}][comment]", upload.comment, rows: 2, class: 'wiki-edit' %>

diff --git a/app/views/dmsf_upload/_upload_file_locked.html.erb b/app/views/dmsf_upload/_upload_file_locked.html.erb index 903385ee..41908b91 100644 --- a/app/views/dmsf_upload/_upload_file_locked.html.erb +++ b/app/views/dmsf_upload/_upload_file_locked.html.erb @@ -3,8 +3,8 @@ # # Redmine plugin for Document Management System "Features" # - # Copyright © 2011 Vít Jonáš - # Copyright © 2012 Daniel Munn + # Copyright © 2011 Vít Jonáš + # Copyright © 2012 Daniel Munn # Copyright © 2011-20 Karel Pičman # # This program is free software; you can redistribute it and/or @@ -23,32 +23,32 @@ %>
- <%= hidden_field_tag("commited_files[#{i}][disk_filename]", upload.disk_filename) %> - <%= hidden_field_tag("commited_files[#{i}][tempfile_path]", upload.tempfile_path) %> - <%= hidden_field_tag("commited_files[#{i}][size]", upload.size) %> - <%= hidden_field_tag("commited_files[#{i}][mime_type]", upload.mime_type) %> - <%= hidden_field_tag("commited_files[#{i}][name]", upload.name) %> + <%= hidden_field_tag "commited_files[#{i}][disk_filename]", upload.disk_filename %> + <%= hidden_field_tag "commited_files[#{i}][tempfile_path]", upload.tempfile_path %> + <%= hidden_field_tag "commited_files[#{i}][size]", upload.size %> + <%= hidden_field_tag "commited_files[#{i}][mime_type]", upload.mime_type %> + <%= hidden_field_tag "commited_files[#{i}][name]", upload.name %>

<%= l(:info_file_locked) %>

- <%= label_tag('', l(:label_title)) %> - <%= text_field_tag(:name, h(upload.title), :readonly => true) %> + <%= label_tag '', l(:label_title) %> + <%= text_field_tag :name, h(upload.title), readonly: true %>

- <%= label_tag('', l(:label_filename)) %> - <%= text_field_tag(:name, h(upload.name), :readonly => true) %> + <%= label_tag '', l(:label_filename) %> + <%= text_field_tag :name, h(upload.name), readonly: true %>

<% if upload.description.present? %>

- <%= label_tag('', l(:label_description)) %> -

- <%= textilizable(upload.description) %> -
+ <%= label_tag '', l(:label_description) %> +
+ <%= textilizable upload.description %> +

<% end %>
@@ -56,34 +56,36 @@
<% upload.custom_values.each do |value| %>

- <%= label_tag('', h(value.custom_field.name)) %> + <%= label_tag '', h(value.custom_field.name) %> <% value.value = nil if value.custom_field.dmsf_not_inheritable %> - <%= text_field_tag(:name, h(value.value), :readonly => true) %> + <%= text_field_tag :name, h(value.value), readonly: true %>

<% end %>

- <%= label_tag('', l(:label_dmsf_version)) %> - <%= text_field_tag(:name, "#{DmsfUploadHelper::gui_version(upload.major_version)}.#{DmsfUploadHelper::gui_version(upload.minor_version)}", :readonly => true) %> + <%= label_tag '', l(:label_dmsf_version) %> + <%= text_field_tag :name, + "#{DmsfUploadHelper::gui_version(upload.major_version)}.#{DmsfUploadHelper::gui_version(upload.minor_version)}", + readonly: true %>

- <%= label_tag('', l(:label_mime)) %> - <%= text_field_tag(:name, h(upload.mime_type), :readonly => true) %> + <%= label_tag '', l(:label_mime) %> + <%= text_field_tag :name, h(upload.mime_type), readonly: true %>

- <%= label_tag('', l(:label_size)) %> - <%= text_field_tag(:name, h(number_to_human_size(upload.size)), :readonly => true) %> + <%= label_tag '', l(:label_size) %> + <%= text_field_tag :name, h(number_to_human_size(upload.size)), readonly: true %>

<% if upload.comment.present? %>

- <%= label_tag('', l(:label_comment)) %> -

<%= textilizable(upload.comment) %>
+ <%= label_tag '', l(:label_comment) %> +
<%= textilizable upload.comment %>

<% end %>
diff --git a/app/views/dmsf_upload/commit.api.rsb b/app/views/dmsf_upload/commit.api.rsb index e5e85426..3cac3721 100644 --- a/app/views/dmsf_upload/commit.api.rsb +++ b/app/views/dmsf_upload/commit.api.rsb @@ -1,4 +1,4 @@ -api.array :dmsf_files, api_meta(:total_count => @files.size) do +api.array :dmsf_files, api_meta(total_count: @files.size) do @files.each do |file| api.file do api.id file.id diff --git a/app/views/dmsf_upload/multi_upload.html.erb b/app/views/dmsf_upload/multi_upload.html.erb index dc1e7ae0..cb0cea52 100644 --- a/app/views/dmsf_upload/multi_upload.html.erb +++ b/app/views/dmsf_upload/multi_upload.html.erb @@ -20,8 +20,8 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. %> -<%= render(partial: '/dmsf/path', - locals: { folder: @folder, filename: nil, title: l(:label_attachment_new) }) %> +<%= render partial: '/dmsf/path', + locals: { folder: @folder, filename: nil, title: l(:label_attachment_new) } %> <%= form_tag({ controller: 'dmsf_upload', action: 'upload_files', id: @project, folder_id: @folder }, id: 'uploadform', method: :post, multipart: true) do %>
diff --git a/app/views/dmsf_upload/upload.js.erb b/app/views/dmsf_upload/upload.js.erb index 19279d3a..b525ddb5 100644 --- a/app/views/dmsf_upload/upload.js.erb +++ b/app/views/dmsf_upload/upload.js.erb @@ -30,7 +30,7 @@ fileSpan.find('a.dmsf-remove-upload') .attr({ "data-remote": true, "data-method": 'delete', - href: '<%= j dmsf_attachment_path(@attachment, :attachment_id => params[:attachment_id], :format => 'js') %>' + href: '<%= j dmsf_attachment_path(@attachment, attachment_id: params[:attachment_id], format: 'js') %>' }) .off('click'); <% end %> diff --git a/app/views/dmsf_upload/upload_files.html.erb b/app/views/dmsf_upload/upload_files.html.erb index e1834eac..8bf419f1 100644 --- a/app/views/dmsf_upload/upload_files.html.erb +++ b/app/views/dmsf_upload/upload_files.html.erb @@ -24,8 +24,8 @@ <% html_title l(:dmsf) %> -<%= render(partial: '/dmsf/path', - locals: { folder: @folder, filename: nil, title: l(:heading_uploaded_files) }) %> +<%= render partial: '/dmsf/path', + locals: { folder: @folder, filename: nil, title: l(:heading_uploaded_files) } %> <% if (@folder && @folder.description.present?) || @project.dmsf_description.present? %>
@@ -33,18 +33,17 @@
<% end %> -<% unless@uploads.empty? %> - <%= form_tag({ action: 'commit_files', id: @project, folder_id: @folder }, - method: :post) do %> +<% unless @uploads.empty? %> + <%= form_tag({ action: 'commit_files', id: @project, folder_id: @folder }, method: :post) do %> <% @uploads.each_with_index do |upload, i| %> <% if upload.locked %> - <%= render(partial: 'upload_file_locked', locals: { upload: upload, i: i }) %> + <%= render partial: 'upload_file_locked', locals: { upload: upload, i: i } %> <% else %> - <%= render(partial: 'upload_file', locals: { upload: upload, i: i }) %> + <%= render partial: 'upload_file', locals: { upload: upload, i: i } %> <% end %> <% end %>
<%= submit_tag l(:submit_commit), class: 'button-positive' %>
<% end %> -<% end %> \ No newline at end of file +<% end %> diff --git a/app/views/dmsf_workflows/_action.html.erb b/app/views/dmsf_workflows/_action.html.erb index f081c475..11924d2d 100644 --- a/app/views/dmsf_workflows/_action.html.erb +++ b/app/views/dmsf_workflows/_action.html.erb @@ -22,8 +22,7 @@

<%= l(:field_label_dmsf_workflow) %>

-<%= form_tag({:controller => 'dmsf_workflows', :action => 'new_action'}, - :method => :post, :id => 'new-action-form') do %> +<%= 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] %>

@@ -38,13 +37,13 @@ <%= l(:label_dmsf_wokflow_action_reject) %>
- <%= text_area_tag :note, '', :placeholder => l(:message_dmsf_wokflow_note), :style => 'width: 90%' %> + <%= text_area_tag :note, '', placeholder: l(:message_dmsf_wokflow_note), style: 'width: 90%' %>

<%= label_tag 'delegate', l(:label_dmsf_wokflow_action_delegate) %>
<%= text_field_tag 'user_search', nil %> - <%= late_javascript_tag "observeSearchfield('user_search', null, '#{ escape_javascript autocomplete_for_user_dmsf_workflow_path(@dmsf_workflow, :dmsf_workflow_step_assignment_id => params[:dmsf_workflow_step_assignment_id], :dmsf_file_revision_id => params[:dmsf_file_revision_id]) }')" %> + <%= late_javascript_tag "observeSearchfield('user_search', null, '#{escape_javascript autocomplete_for_user_dmsf_workflow_path(@dmsf_workflow, dmsf_workflow_step_assignment_id: params[:dmsf_workflow_step_assignment_id], dmsf_file_revision_id: params[:dmsf_file_revision_id])}')" %>
<%= render_principals_for_new_dmsf_workflow_users( @dmsf_workflow, params[:dmsf_workflow_step_assignment_id], params[:dmsf_file_revision_id]) %> @@ -52,7 +51,7 @@

- <%= submit_tag l(:button_submit), :name => 'commit', :onclick => 'hideModal(this);' %> - <%= submit_tag l(:button_cancel), :name => 'commit', :onclick => 'hideModal(this);' %> + <%= submit_tag l(:button_submit), name: 'commit', onclick: 'hideModal(this);' %> + <%= submit_tag l(:button_cancel), name: 'commit', onclick: 'hideModal(this);' %>

<% end %> diff --git a/app/views/dmsf_workflows/_approval_workflow_button.html.erb b/app/views/dmsf_workflows/_approval_workflow_button.html.erb index a4a890f5..2f028247 100644 --- a/app/views/dmsf_workflows/_approval_workflow_button.html.erb +++ b/app/views/dmsf_workflows/_approval_workflow_button.html.erb @@ -27,15 +27,13 @@ <% assignments = wf.next_assignments(file.last_revision.id) %> <% index = assignments.find_index{|assignment| assignment.user_id == User.current.id} if assignments %> <% if assignments && index %> - <%= link_to('', - action_dmsf_workflow_path( - :project_id => project.id, - :id => wf.id, - :dmsf_workflow_step_assignment_id => assignments[index].id, - :dmsf_file_revision_id => file.last_revision.id), - :title => l(:title_waiting_for_approval), - :remote => true, - :class => 'icon-only icon-ok') %> + <%= link_to '', + action_dmsf_workflow_path(project_id: project.id, id: wf.id, + dmsf_workflow_step_assignment_id: assignments[index].id, + dmsf_file_revision_id: file.last_revision.id), + title: l(:title_waiting_for_approval), + remote: true, + class: 'icon-only icon-ok' %> <% else %> <% end %> @@ -44,12 +42,11 @@ <% end %> <% when DmsfWorkflow::STATE_ASSIGNED %> <% if User.current && (file.last_revision.dmsf_workflow_assigned_by_user == User.current) && wf %> - <%= link_to('', - start_dmsf_workflow_path( - :id => file.last_revision.dmsf_workflow_id, - :dmsf_file_revision_id => file.last_revision.id), - :title => l(:label_dmsf_wokflow_action_start), - :class => 'icon-only icon-ok') %> + <%= link_to '', + start_dmsf_workflow_path(id: file.last_revision.dmsf_workflow_id, + dmsf_file_revision_id: file.last_revision.id), + title: l(:label_dmsf_wokflow_action_start), + class: 'icon-only icon-ok' %> <% else %> <% end %> @@ -57,19 +54,14 @@ <% else %> <% if workflows_available %> - <%= link_to('', + <%= link_to '', dmsf_link_id ? - assign_dmsf_workflow_path( - :id => project.id, - :project_id => project.id, - :dmsf_link_id => dmsf_link_id) : - assign_dmsf_workflow_path( - :id => project.id, - :project_id => project.id, - :dmsf_file_revision_id => file.last_revision.id), - :title => l(:label_dmsf_wokflow_action_assign), - :remote => true, - :class => 'icon-only icon-ok') %> + assign_dmsf_workflow_path(id: project.id, project_id: project.id, dmsf_link_id: dmsf_link_id) : + assign_dmsf_workflow_path(id: project.id, project_id: project.id, + dmsf_file_revision_id: file.last_revision.id), + title: l(:label_dmsf_wokflow_action_assign), + remote: true, + class: 'icon-only icon-ok' %> <% else %> <% end %> diff --git a/app/views/dmsf_workflows/_assign.html.erb b/app/views/dmsf_workflows/_assign.html.erb index aa4a9e7e..d138f127 100644 --- a/app/views/dmsf_workflows/_assign.html.erb +++ b/app/views/dmsf_workflows/_assign.html.erb @@ -22,25 +22,22 @@

<%= l(:field_label_dmsf_workflow) %>

<% remote = params[:dmsf_link_id] || params[:attachment_id] %> -<%= form_tag({:controller => 'dmsf_workflows', :action => 'assignment'}, - :method => :post, :id => 'assignment-form', :remote => remote) do %> +<%= form_tag({ controller: 'dmsf_workflows', action: 'assignment' }, method: :post, id: 'assignment-form', + remote: remote) do %> <%= hidden_field_tag :dmsf_file_revision_id, params[:dmsf_file_revision_id] %> <%= hidden_field_tag :dmsf_link_id, params[:dmsf_link_id] %> <%= hidden_field_tag :attachment_id, params[:attachment_id] %>

- <%= label_tag('workflow', "#{l(:link_workflow)}:") %> - <%= select_tag( - 'dmsf_workflow_id', - dmsf_workflows_for_select(@project, nil))%> + <%= label_tag 'workflow', "#{l(:link_workflow)}:" %> + <%= select_tag 'dmsf_workflow_id', dmsf_workflows_for_select(@project, nil)%>

<% if (!remote) && User.current.allowed_to?(:manage_workflows, @project) %>

- <%= link_to l(:label_dmsf_workflow_new), new_dmsf_workflow_path(:project_id => @project.id), - :class => 'icon icon-add' %> + <%= link_to l(:label_dmsf_workflow_new), new_dmsf_workflow_path(project_id: @project.id), class: 'icon icon-add' %>

<% end %>

- <%= submit_tag l(:button_submit), :name => 'commit', :onclick => 'hideModal(this);' %> - <%= submit_tag l(:button_cancel), :name => 'commit', :onclick => 'hideModal(this);' %> + <%= submit_tag l(:button_submit), name: 'commit', onclick: 'hideModal(this);' %> + <%= submit_tag l(:button_cancel), name: 'commit', onclick: 'hideModal(this);' %>

<% end %> diff --git a/app/views/dmsf_workflows/_main.html.erb b/app/views/dmsf_workflows/_main.html.erb index 19e03b0d..742bafea 100644 --- a/app/views/dmsf_workflows/_main.html.erb +++ b/app/views/dmsf_workflows/_main.html.erb @@ -20,30 +20,28 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. %> -<% @workflows = DmsfWorkflow.active.sorted.where(:project_id => @project.id) if @project && @workflows.nil? %> +<% @workflows = DmsfWorkflow.active.sorted.where(project_id: @project.id) if @project && @workflows.nil? %> <% unless @project %>
- <%= link_to l(:label_dmsf_workflow_new), new_dmsf_workflow_path, :class => 'icon icon-add' %> + <%= link_to l(:label_dmsf_workflow_new), new_dmsf_workflow_path, class: 'icon icon-add' %>
-

<%=l(:label_dmsf_workflow_plural)%>

- - <%= form_tag(dmsf_workflows_path, :method => :get) do %> + <%= form_tag(dmsf_workflows_path, method: :get) do %>
<%= l(:label_filter_plural) %> - <%= select_tag 'status', workflows_status_options_for_select(@status), :class => 'small', :onchange => 'this.form.submit(); return false;' %> + <%= select_tag 'status', workflows_status_options_for_select(@status), class: 'small', + onchange: 'this.form.submit(); return false;' %>
- <% end %> -   + <% end %>  <% end %> <% if @workflows.any? %> - - + <% @workflows.each do |workflow| %> @@ -62,9 +60,11 @@ <% end %> <% if @project %> -

<%= link_to l(:label_dmsf_workflow_new), new_dmsf_workflow_path(:project_id => @project.id), :class => 'icon icon-add' %>

+

+ <%= link_to l(:label_dmsf_workflow_new), new_dmsf_workflow_path(project_id: @project.id), class: 'icon icon-add' %> +

<% else %> <% if @workflow_pages %> <%= pagination_links_full @workflow_pages %> <% end %> -<% end %> \ No newline at end of file +<% end %> diff --git a/app/views/dmsf_workflows/_new_step_form.html.erb b/app/views/dmsf_workflows/_new_step_form.html.erb index c4587ec7..86db36d7 100644 --- a/app/views/dmsf_workflows/_new_step_form.html.erb +++ b/app/views/dmsf_workflows/_new_step_form.html.erb @@ -23,18 +23,18 @@
<%= l(:label_dmsf_workflow_add_approver) %>

<%= label_tag 'user_search', l(:label_user_search) %><%= text_field_tag 'user_search', nil %>

- <%= late_javascript_tag "observeSearchfield('user_search', null, '#{ escape_javascript autocomplete_for_user_dmsf_workflow_path(@dmsf_workflow, :dmsf_workflow_step_assignment_id => nil, :dmsf_file_revision_id => nil, :project_id => @project ? @project.id : nil) }')" %> + <%= late_javascript_tag "observeSearchfield('user_search', null, '#{ escape_javascript autocomplete_for_user_dmsf_workflow_path(@dmsf_workflow, dmsf_workflow_step_assignment_id: nil, dmsf_file_revision_id: nil, project_id: @project ? @project.id : nil) }')" %>
- <%= render_principals_for_new_dmsf_workflow_users(@dmsf_workflow) %> + <%= render_principals_for_new_dmsf_workflow_users @dmsf_workflow %>
<%= l(:label_dmsf_workflow_step) %> <%= select_tag 'step', dmsf_workflow_steps_options_for_select(@steps), - :id => 'selected_step', :onchange => "$('#dmsf_step_name').toggle(this.value == 0);", :style => 'max-width: 40%' %> + id: 'selected_step', onchange: "$('#dmsf_step_name').toggle(this.value == 0);", style: 'max-width: 40%' %>   <%= label_tag 'name', l(:field_name) %> - <%= text_field_tag 'name', nil, :maxlength => 30, :style => 'max-width: 40%' %> + <%= text_field_tag 'name', nil, maxlength: 30, style: 'max-width: 40%' %>
diff --git a/app/views/dmsf_workflows/_new_step_modal.html.erb b/app/views/dmsf_workflows/_new_step_modal.html.erb index b306964a..a231c6bf 100644 --- a/app/views/dmsf_workflows/_new_step_modal.html.erb +++ b/app/views/dmsf_workflows/_new_step_modal.html.erb @@ -22,11 +22,11 @@

<%= l(:dmsf_new_step) %>

-<%= labelled_form_for(@dmsf_workflow, {:url => edit_dmsf_workflow_path(@dmsf_workflow), :method => :post}) do |f| %> - <%= render :partial => 'new_step_form' %> +<%= labelled_form_for(@dmsf_workflow, { url: edit_dmsf_workflow_path(@dmsf_workflow), method: :post}) do |f| %> + <%= render partial: 'new_step_form' %>

- <%= f.submit l(:dmsf_and), :id => 'add-step-and' %> - <%= f.submit l(:dmsf_or), :id => 'add-step-or' %> - <%= f.submit l(:button_cancel), :name => nil, :onclick => 'hideModal(this);', :type => 'button', :class => 'button' %> + <%= f.submit l(:dmsf_and), id: 'add-step-and' %> + <%= f.submit l(:dmsf_or), id: 'add-step-or' %> + <%= f.submit l(:button_cancel), name: nil, onclick: 'hideModal(this);', type: 'button', class: 'button' %>

<% end %> diff --git a/app/views/dmsf_workflows/_steps.html.erb b/app/views/dmsf_workflows/_steps.html.erb index 28157c41..1de88b87 100644 --- a/app/views/dmsf_workflows/_steps.html.erb +++ b/app/views/dmsf_workflows/_steps.html.erb @@ -21,7 +21,7 @@ %> <% if @dmsf_workflow.project %> -

<%= link_to l(:label_dmsf_workflow_plural), settings_project_path(@project, :tab => 'dmsf_workflow') %> » <%=h @dmsf_workflow %>

+

<%= link_to l(:label_dmsf_workflow_plural), settings_project_path(@project, tab: 'dmsf_workflow') %> » <%=h @dmsf_workflow %>

<% else %>

<%= link_to l(:label_dmsf_workflow_plural), dmsf_workflows_path %> » <%=h @dmsf_workflow %>

<% end %> @@ -57,13 +57,11 @@ <% end %> diff --git a/app/views/dmsf_workflows/action.js.erb b/app/views/dmsf_workflows/action.js.erb index 0228aa4d..0919aed8 100644 --- a/app/views/dmsf_workflows/action.js.erb +++ b/app/views/dmsf_workflows/action.js.erb @@ -22,6 +22,6 @@ var modal = $('#ajax-modal'); -modal.html('<%= escape_javascript(render :partial => 'action', :locals => {:workflow => @dmsf_workflow}) %>'); +modal.html('<%= escape_javascript(render partial: 'action', locals: { workflow: @dmsf_workflow }) %>'); showModal('ajax-modal', '35%'); -modal.addClass('new-action'); \ No newline at end of file +modal.addClass('new-action'); diff --git a/app/views/dmsf_workflows/assign.js.erb b/app/views/dmsf_workflows/assign.js.erb index 5d34351a..f7103772 100644 --- a/app/views/dmsf_workflows/assign.js.erb +++ b/app/views/dmsf_workflows/assign.js.erb @@ -22,6 +22,6 @@ var modal = $('#ajax-modal'); -modal.html('<%= escape_javascript(render :partial => 'assign') %>'); +modal.html('<%= escape_javascript(render partial: 'assign') %>'); showModal('ajax-modal', '30%'); -modal.addClass('assignment'); \ No newline at end of file +modal.addClass('assignment'); diff --git a/app/views/dmsf_workflows/index.html.erb b/app/views/dmsf_workflows/index.html.erb index debd5e83..4733d16c 100644 --- a/app/views/dmsf_workflows/index.html.erb +++ b/app/views/dmsf_workflows/index.html.erb @@ -20,4 +20,4 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. %> -<%= render 'main' %> \ No newline at end of file +<%= render 'main' %> diff --git a/app/views/dmsf_workflows/log.html.erb b/app/views/dmsf_workflows/log.html.erb index 81e292fb..720fd000 100644 --- a/app/views/dmsf_workflows/log.html.erb +++ b/app/views/dmsf_workflows/log.html.erb @@ -19,4 +19,4 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.%> -<%= render partial: 'log', locals: { workflow: @dmsf_workflow, revision: @revision } %> \ No newline at end of file +<%= render partial: 'log', locals: { workflow: @dmsf_workflow, revision: @revision } %> diff --git a/app/views/dmsf_workflows/new.html.erb b/app/views/dmsf_workflows/new.html.erb index bf4b81ed..ff164692 100644 --- a/app/views/dmsf_workflows/new.html.erb +++ b/app/views/dmsf_workflows/new.html.erb @@ -24,22 +24,23 @@ <% @project = Project.find_by_id params[:dmsf_workflow][:project_id] %> <% end %> <% if @project %> -

<%= link_to l(:label_dmsf_workflow_plural), settings_project_path(@project, :tab => 'dmsf_workflow') %> » <%= l(:label_dmsf_workflow_new) %>

+

+ <%= link_to l(:label_dmsf_workflow_plural), settings_project_path(@project, tab: 'dmsf_workflow') %> » <%= l(:label_dmsf_workflow_new) %> +

<% else %>

<%= link_to l(:label_dmsf_workflow_plural), dmsf_workflows_path %> » <%= l(:label_dmsf_workflow_new) %>

<% end %> <%= labelled_form_for @dmsf_workflow do |f| %> - <%= f.hidden_field(:project_id, :value => @project.id) if @project %> + <%= f.hidden_field(:project_id, value: @project.id) if @project %> <%= error_messages_for 'dmsf_workflow' %>

- <%= f.text_field :name, :required => true %> + <%= f.text_field :name, required: true %>

- <%= f.select(:id, - dmsf_all_workflows_for_select(params[:dmsf_workflow] ? params[:dmsf_workflow][:id] : nil), - :label => l(:label_copy_workflow_from)) %> + <%= f.select(:id, dmsf_all_workflows_for_select(params[:dmsf_workflow] ? params[:dmsf_workflow][:id] : nil), + label: l(:label_copy_workflow_from)) %>

<%= f.submit l(:button_create) %> @@ -47,7 +48,7 @@ <%= late_javascript_tag do %> $('#dmsf_workflow_id').change(function () { - $('#content').load("<%= @project ? url_for(:action => 'new', :project_id => @project.id) : url_for(:action => 'new') %>", $('#new_dmsf_workflow').serialize()); + $('#content').load("<%= @project ? url_for(action: 'new', project_id: @project.id) : url_for(action: 'new') %>", $('#new_dmsf_workflow').serialize()); }); $('#dmsf_workflow_id').select2(); <% end %> diff --git a/app/views/dmsf_workflows/new_step.js.erb b/app/views/dmsf_workflows/new_step.js.erb index 38a84c3e..66a5741c 100644 --- a/app/views/dmsf_workflows/new_step.js.erb +++ b/app/views/dmsf_workflows/new_step.js.erb @@ -19,5 +19,5 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.%> -$('#ajax-modal').html('<%= escape_javascript(render :partial => 'new_step_modal') %>'); -showModal('ajax-modal', '40%'); \ No newline at end of file +$('#ajax-modal').html('<%= escape_javascript(render partial: 'new_step_modal') %>'); +showModal('ajax-modal', '40%'); diff --git a/app/views/dmsf_workflows/remove_step.html.erb b/app/views/dmsf_workflows/remove_step.html.erb index f8c3f699..33628e7a 100644 --- a/app/views/dmsf_workflows/remove_step.html.erb +++ b/app/views/dmsf_workflows/remove_step.html.erb @@ -20,4 +20,4 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. %> -<%= render 'steps' %> \ No newline at end of file +<%= render 'steps' %> diff --git a/app/views/dmsf_workflows/reorder_steps.html.erb b/app/views/dmsf_workflows/reorder_steps.html.erb index 7de61c3f..719abc17 100644 --- a/app/views/dmsf_workflows/reorder_steps.html.erb +++ b/app/views/dmsf_workflows/reorder_steps.html.erb @@ -16,4 +16,4 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.%> -<%= render 'steps' %> \ No newline at end of file +<%= render 'steps' %> diff --git a/app/views/easy_page_modules/easy_dms/_dmsf_locked_documents_show.html.erb b/app/views/easy_page_modules/easy_dms/_dmsf_locked_documents_show.html.erb index caa6f48d..ffa9a1be 100644 --- a/app/views/easy_page_modules/easy_dms/_dmsf_locked_documents_show.html.erb +++ b/app/views/easy_page_modules/easy_dms/_dmsf_locked_documents_show.html.erb @@ -20,4 +20,4 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. %> -<%= render :partial => 'my/blocks/locked_documents' %> \ No newline at end of file +<%= render partial: 'my/blocks/locked_documents' %> diff --git a/app/views/easy_page_modules/easy_dms/_dmsf_open_approvals_show.html.erb b/app/views/easy_page_modules/easy_dms/_dmsf_open_approvals_show.html.erb index 7fa0e55d..473e8c4e 100644 --- a/app/views/easy_page_modules/easy_dms/_dmsf_open_approvals_show.html.erb +++ b/app/views/easy_page_modules/easy_dms/_dmsf_open_approvals_show.html.erb @@ -20,4 +20,4 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. %> -<%= render :partial => 'my/blocks/open_approvals' %> +<%= render partial: 'my/blocks/open_approvals' %> diff --git a/app/views/hooks/redmine_dmsf/_view_my_account.html.erb b/app/views/hooks/redmine_dmsf/_view_my_account.html.erb deleted file mode 100644 index 5056fde2..00000000 --- a/app/views/hooks/redmine_dmsf/_view_my_account.html.erb +++ /dev/null @@ -1,25 +0,0 @@ -<%# -# encoding: utf-8 -# -# Redmine plugin for Document Management System "Features" -# -# Copyright © 2011-20 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 -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -%> - -<%= labelled_fields_for :pref, @user.pref do |pref_fields| %> -

<%= pref_fields.check_box :dmsf_tree_view %>

-<% end %> \ No newline at end of file diff --git a/app/views/hooks/redmine_dmsf/_view_users_bulk_edit.html.erb b/app/views/hooks/redmine_dmsf/_view_users_bulk_edit.html.erb deleted file mode 100644 index 09711270..00000000 --- a/app/views/hooks/redmine_dmsf/_view_users_bulk_edit.html.erb +++ /dev/null @@ -1,27 +0,0 @@ -<%# -# encoding: utf-8 -# -# Redmine plugin for Document Management System "Features" -# -# Copyright © 2011 Vít Jonáš -# Copyright © 2012 Daniel Munn -# Copyright © 2011-20 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 -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -%> - -<%= labelled_fields_for 'user[pref]', @user.pref do |pref_fields| %> -

<%= pref_fields.check_box :dmsf_tree_view %>

-<% end %> diff --git a/app/views/my/blocks/_locked_documents.html.erb b/app/views/my/blocks/_locked_documents.html.erb index 5097e44d..862ba9e8 100644 --- a/app/views/my/blocks/_locked_documents.html.erb +++ b/app/views/my/blocks/_locked_documents.html.erb @@ -50,16 +50,15 @@ <%= link_to_project(folder.project) %>
@@ -70,17 +69,16 @@ <%= link_to_project(file.project) if file.project %> diff --git a/app/views/my/blocks/_open_approvals.html.erb b/app/views/my/blocks/_open_approvals.html.erb index b8df0ac5..e70cf51a 100644 --- a/app/views/my/blocks/_open_approvals.html.erb +++ b/app/views/my/blocks/_open_approvals.html.erb @@ -24,7 +24,7 @@ <% if @user %> <% all_assignments = DmsfWorkflowStepAssignment.joins( 'LEFT JOIN dmsf_workflow_step_actions ON dmsf_workflow_step_assignments.id = dmsf_workflow_step_actions.dmsf_workflow_step_assignment_id').where( - :dmsf_workflow_step_assignments => { :user_id => @user.id }).where( + dmsf_workflow_step_assignments: { user_id: @user.id }).where( ['dmsf_workflow_step_actions.id IS NULL OR dmsf_workflow_step_actions.action = ?', DmsfWorkflowStepAction::ACTION_DELEGATE]) %> <% all_assignments.find_each do |assignment| %> <% if assignment.dmsf_file_revision.dmsf_file.last_revision && @@ -67,44 +67,43 @@ <% end %> diff --git a/app/views/search/_container.html.erb b/app/views/search/_container.html.erb index 32494197..34ff6262 100644 --- a/app/views/search/_container.html.erb +++ b/app/views/search/_container.html.erb @@ -27,5 +27,5 @@ <% else %> <% title = dmsf_file_or_folder.project.name %> <% end %> -<%= link_to(h(title), dmsf_folder_path(:id => dmsf_file_or_folder.project, - :folder_id => dmsf_file_or_folder.dmsf_folder_id), :class => 'icon icon-folder') %> +<%= link_to h(title), dmsf_folder_path(id: dmsf_file_or_folder.project, + folder_id: dmsf_file_or_folder.dmsf_folder_id), class: 'icon icon-folder' %> diff --git a/app/views/settings/_dmsf_columns.html.erb b/app/views/settings/_dmsf_columns.html.erb index d3e45491..9d2f2b2b 100644 --- a/app/views/settings/_dmsf_columns.html.erb +++ b/app/views/settings/_dmsf_columns.html.erb @@ -33,7 +33,7 @@ <% columns.concat(cfs.map{ |c| c.name }) %> <% selected_columns = DmsfFolder::DEFAULT_COLUMNS if selected_columns.blank? %> <% columns.each_with_index do |column, i| %> - <%= check_box_tag('settings[dmsf_columns][]', column, selected_columns.include?(column), id: "dmsf_column_#{i}") %> + <%= check_box_tag 'settings[dmsf_columns][]', column, selected_columns.include?(column), id: "dmsf_column_#{i}" %> <%= h column.capitalize %>
<% end %> diff --git a/app/views/settings/_dmsf_settings.html.erb b/app/views/settings/_dmsf_settings.html.erb index f33a285c..c799eb32 100644 --- a/app/views/settings/_dmsf_settings.html.erb +++ b/app/views/settings/_dmsf_settings.html.erb @@ -27,28 +27,28 @@

- <%= content_tag(:label, l(:label_maximum_files_download)) %> - <%= text_field_tag 'settings[dmsf_max_file_download]', @settings['dmsf_max_file_download'], :size => 10 %> + <%= content_tag :label, l(:label_maximum_files_download) %> + <%= text_field_tag 'settings[dmsf_max_file_download]', @settings['dmsf_max_file_download'], size: 10 %> <%= l(:note_maximum_number_of_files_downloaded) %> <%= l(:label_default) %>: 0

- <%= content_tag(:label, l(:label_maximum_email_filesize)) %> - <%= text_field_tag 'settings[dmsf_max_email_filesize]', @settings['dmsf_max_email_filesize'], :size => 10 %> + <%= content_tag :label, l(:label_maximum_email_filesize) %> + <%= text_field_tag 'settings[dmsf_max_email_filesize]', @settings['dmsf_max_email_filesize'], size: 10 %> <%= l(:note_maximum_email_filesize) %> <%= l(:label_default) %>: 0

- <%= content_tag(:label, l(:label_file_storage_directory)) %> + <%= content_tag :label, l(:label_file_storage_directory) %> <% storage_dir = @settings['dmsf_storage_directory'].strip if @settings['dmsf_storage_directory'].present? storage_dir = 'dmsf' if storage_dir.blank? %> - <%= text_field_tag 'settings[dmsf_storage_directory]', storage_dir, :size => 256 %> + <%= text_field_tag 'settings[dmsf_storage_directory]', storage_dir, size: 256 %> <%= l(:label_default) %>: dmsf @@ -67,7 +67,7 @@ <% rescue %>

<%= l(:error_file_can_not_be_created) %>

<% ensure %> - <% FileUtils.rm_f(testfilename) %> + <% FileUtils.rm_f testfilename %> <% end %> <% end %> @@ -77,7 +77,7 @@ tmpdir = @settings['dmsf_tmpdir'].strip if @settings['dmsf_tmpdir'].present? tmpdir = Dir.tmpdir if tmpdir.blank? %> - <%= text_field_tag 'settings[dmsf_tmpdir]', tmpdir, :size => 256 %> + <%= text_field_tag 'settings[dmsf_tmpdir]', tmpdir, size: 256 %> <%= l(:label_default) %>: <%= Dir.tmpdir %> @@ -102,48 +102,48 @@ <% end %>

- <%= content_tag(:label, l(:label_physical_file_delete)) %> - <%= check_box_tag('settings[dmsf_really_delete_files]', true, @settings['dmsf_really_delete_files']) %> + <%= content_tag :label, l(:label_physical_file_delete) %> + <%= check_box_tag 'settings[dmsf_really_delete_files]', true, @settings['dmsf_really_delete_files'] %> <%= l(:label_default)%>: <%= l(:general_text_No)%>

- <%= content_tag(:label, l(:label_default_notifications)) %> - <%= select_tag('settings[dmsf_default_notifications]', + <%= content_tag :label, l(:label_default_notifications) %> + <%= select_tag 'settings[dmsf_default_notifications]', options_for_select([ [l(:select_option_deactivated), nil], [l(:select_option_activated), '1']], - :selected => @settings['dmsf_default_notifications'])) %> + selected: @settings['dmsf_default_notifications']) %> <%= l(:label_default) %>: <%= l(:select_option_deactivated) %>

- <%= content_tag(:label, l(:label_display_notified_recipients)) %> - <%= select_tag('settings[dmsf_display_notified_recipients]', + <%= content_tag :label, l(:label_display_notified_recipients) %> + <%= select_tag 'settings[dmsf_display_notified_recipients]', options_for_select([ [l(:select_option_deactivated), nil], [l(:select_option_activated), '1']], - :selected => @settings['dmsf_display_notified_recipients'])) %> + selected: @settings['dmsf_display_notified_recipients']) %> <%= l(:note_display_notified_recipients).html_safe %> <%= l(:label_default) %>: <%= l(:select_option_deactivated) %>

- <%= content_tag(:label, l(:label_title_format)) %> - <%= text_field_tag 'settings[dmsf_global_title_format]', @settings['dmsf_global_title_format'], :size => 10 %> + <%= content_tag :label, l(:label_title_format) %> + <%= text_field_tag 'settings[dmsf_global_title_format]', @settings['dmsf_global_title_format'], size: 10 %> <%= l(:text_title_format) %>

- <%= content_tag(:label, l(:label_act_as_attachable)) %> - <%= check_box_tag('settings[dmsf_act_as_attachable]', true, @settings['dmsf_act_as_attachable']) %> + <%= content_tag :label, l(:label_act_as_attachable) %> + <%= check_box_tag 'settings[dmsf_act_as_attachable]', true, @settings['dmsf_act_as_attachable'] %> <%= l(:note_dmsf_act_as_attachable) %>
<%= l(:label_default) %>: <%= l(:general_text_No) %> @@ -155,7 +155,7 @@ <%= l(:menu_dmsf) %> <%= l(:field_column_names) %>
-<%= render(:partial => 'settings/dmsf_columns', :locals => { :selected_columns => @settings['dmsf_columns'] }) %> +<%= render partial: 'settings/dmsf_columns', locals: { selected_columns: @settings['dmsf_columns'] } %>


@@ -163,24 +163,24 @@

- <%= content_tag(:label, l(:label_email_from_override)) %> - <%= text_field_tag 'settings[dmsf_documents_email_from]', @settings['dmsf_documents_email_from'], :size => 128 %> + <%= content_tag :label, l(:label_email_from_override) %> + <%= text_field_tag 'settings[dmsf_documents_email_from]', @settings['dmsf_documents_email_from'], size: 128 %> <%= l(:label_default) %>: <%= l(:text_email_from_override) %>

- <%= content_tag(:label, l(:label_email_reply_to)) %> - <%= text_field_tag 'settings[dmsf_documents_email_reply_to]', @settings['dmsf_documents_email_reply_to'], :size => 128 %> + <%= content_tag :label, l(:label_email_reply_to) %> + <%= text_field_tag 'settings[dmsf_documents_email_reply_to]', @settings['dmsf_documents_email_reply_to'], size: 128 %> <%= l(:label_default) %>: <%= "''" %>

- <%= content_tag(:label, l(:label_links_only).capitalize) %> - <%= check_box_tag('settings[dmsf_documents_email_links_only]', true, @settings['dmsf_documents_email_links_only']) %> + <%= content_tag :label, l(:label_links_only).capitalize %> + <%= check_box_tag 'settings[dmsf_documents_email_links_only]', true, @settings['dmsf_documents_email_links_only'] %> <%= l(:label_default) %>: <%= l(:general_text_No) %> @@ -192,8 +192,8 @@

- <%= content_tag(:label, l(:label_dmsf_keep_documents_locked)) %> - <%= check_box_tag('settings[dmsf_keep_documents_locked]', false, @settings['dmsf_keep_documents_locked']) %> + <%= content_tag :label, l(:label_dmsf_keep_documents_locked) %> + <%= check_box_tag 'settings[dmsf_keep_documents_locked]', false, @settings['dmsf_keep_documents_locked'] %> <%= l(:note_dmsf_keep_documents_locked) %>
<%= l(:label_default)%>: <%= l(:general_text_No)%> @@ -206,24 +206,25 @@

- <%= content_tag(:label, l(:label_webdav)) %> - <%= select_tag('settings[dmsf_webdav]', + <%= content_tag :label, l(:label_webdav) %> + <%= select_tag 'settings[dmsf_webdav]', options_for_select([ [l(:select_option_deactivated), nil], [l(:select_option_activated), '1']], - :selected => @settings['dmsf_webdav'])) %> + selected: @settings['dmsf_webdav']) %> - <%= l(:note_webdav, :protocol => Setting.protocol, :domain => Setting.host_name).html_safe %> <%= l(:label_default) %>: <%= l(:select_option_activated) %> + <%= l(:note_webdav, protocol: Setting.protocol, domain: Setting.host_name).html_safe %> <%= l(:label_default) %>: <%= l(:select_option_activated) %>

- <%= content_tag(:label, l(:label_webdav_strategy)) %> - <%= select_tag('settings[dmsf_webdav_strategy]', + <%= content_tag :label, l(:label_webdav_strategy) %> + <%= select_tag'settings[dmsf_webdav_strategy]', options_for_select([ [l(:select_option_webdav_readonly), 'WEBDAV_READ_ONLY'], [l(:select_option_webdav_readwrite), 'WEBDAV_READ_WRITE']], - :selected => @settings['dmsf_webdav_strategy'])) %>
+ selected: @settings['dmsf_webdav_strategy']) %> +
<%= l(:note_webdav_strategy).html_safe %> <%= l(:label_default) %>: <%= l(:select_option_webdav_readonly) %> @@ -231,14 +232,14 @@

<%= content_tag(:label, l(:label_webdav_ignore)) %> - <%= text_field_tag 'settings[dmsf_webdav_ignore]', @settings['dmsf_webdav_ignore'], :size => 50 %> + <%= text_field_tag 'settings[dmsf_webdav_ignore]', @settings['dmsf_webdav_ignore'], size: 50 %> <%= l(:note_webdav_ignore) %> <%= l(:label_default) %>: ^(\._|\.DS_Store$|Thumbs.db$)

- <%= content_tag(:label, l(:label_webdav_disable_versioning)) %> - <%= text_field_tag 'settings[dmsf_webdav_disable_versioning]', @settings['dmsf_webdav_disable_versioning'], :size => 50 %> + <%= content_tag :label, l(:label_webdav_disable_versioning) %> + <%= text_field_tag 'settings[dmsf_webdav_disable_versioning]', @settings['dmsf_webdav_disable_versioning'], size: 50 %> <%= l(:note_webdav_disable_versioning) %>
<%= l(:label_default) %>: ^\~\$|\.tmp$ @@ -246,8 +247,8 @@

- <%= content_tag(:label, l(:label_webdav_use_project_names)) %> - <%= check_box_tag('settings[dmsf_webdav_use_project_names]', true, @settings['dmsf_webdav_use_project_names']) %> + <%= content_tag :label, l(:label_webdav_use_project_names) %> + <%= check_box_tag 'settings[dmsf_webdav_use_project_names]', true, @settings['dmsf_webdav_use_project_names'] %> <%= l(:note_webdav_use_project_names) %>
<%= l(:label_default)%>: <%= l(:general_text_No)%> @@ -269,8 +270,9 @@ <% end %>

- <%= content_tag(:label, l(:label_index_database)) %> - <%= text_field_tag 'settings[dmsf_index_database]', @settings['dmsf_index_database'], :disabled => xapian_disabled, :size => 50 %> + <%= content_tag :label, l(:label_index_database) %> + <%= text_field_tag 'settings[dmsf_index_database]', @settings['dmsf_index_database'], disabled: xapian_disabled, + size: 50 %> <%= l(:label_default) %>: <%= File.expand_path('dmsf_index', Rails.root) %> @@ -279,25 +281,28 @@ <% stem_langs = %w(danish dutch english finnish french german hungarian italian norwegian portuguese romanian russian spanish swedish turkish) %>

- <%= content_tag(:label, l(:label_stemming_language)) %> - <%= select_tag('settings[dmsf_stemming_lang]', options_for_select(stem_langs, @settings['dmsf_stemming_lang']))%> + <%= content_tag :label, l(:label_stemming_language) %> + <%= select_tag 'settings[dmsf_stemming_lang]', options_for_select(stem_langs, @settings['dmsf_stemming_lang']) %> <%= l(:note_possible_values) %>: <%= stem_langs.join(', ') %>. <%= "#{l(:label_default)}: #{stem_langs[2]}" %>

- <%= content_tag(:label, l(:label_stem_strategy)) %> - <%= radio_button_tag 'settings[dmsf_stemming_strategy]', 'STEM_NONE', @settings['dmsf_stemming_strategy'] == 'STEM_NONE', :disabled => xapian_disabled, :checked => true %> <%= l(:option_stem_none) %>
- <%= radio_button_tag 'settings[dmsf_stemming_strategy]', 'STEM_SOME', @settings['dmsf_stemming_strategy'] == 'STEM_SOME', :disabled => xapian_disabled %> <%= l(:option_stem_some) %>
- <%= radio_button_tag 'settings[dmsf_stemming_strategy]', 'STEM_ALL', @settings['dmsf_stemming_strategy'] == 'STEM_ALL', :disabled => xapian_disabled %> <%= l(:option_stem_all) %>
+ <%= content_tag :label, l(:label_stem_strategy) %> + <%= radio_button_tag 'settings[dmsf_stemming_strategy]', 'STEM_NONE', @settings['dmsf_stemming_strategy'] == 'STEM_NONE', + disabled: xapian_disabled, checked: true %> <%= l(:option_stem_none) %>
+ <%= radio_button_tag 'settings[dmsf_stemming_strategy]', 'STEM_SOME', @settings['dmsf_stemming_strategy'] == 'STEM_SOME', + disabled: xapian_disabled %> <%= l(:option_stem_some) %>
+ <%= radio_button_tag 'settings[dmsf_stemming_strategy]', 'STEM_ALL', @settings['dmsf_stemming_strategy'] == 'STEM_ALL', + disabled: xapian_disabled %> <%= l(:option_stem_all) %>
<%= l(:text_stemming_info) %>

- <%= content_tag(:label, l(:label_enable_cjk_ngrams)) %> + <%= content_tag :label, l(:label_enable_cjk_ngrams) %> <%= check_box_tag 'settings[enable_cjk_ngrams]', true, @settings['dmsf_enable_cjk_ngrams'] %> <%= l(:text_enable_cjk_ngrams) %> diff --git a/assets/stylesheets/redmine_dmsf.css b/assets/stylesheets/redmine_dmsf.css index bf1d156b..baa5ef0b 100644 --- a/assets/stylesheets/redmine_dmsf.css +++ b/assets/stylesheets/redmine_dmsf.css @@ -19,37 +19,6 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -#browser.dmsf_list { - border-bottom: none; - display: none; - padding-right: 1px; -} - -#dmsf_ajax_loading.ajax-loading { - background:url(../../../images/loading.gif) no-repeat 0 50%; - width: 16px; - height: 16px; -} - -#browser_wrapper .ui-toolbar { - margin-right: -2px; -} - -.dmsf_list .dmsf_th { - border: none; -} - -.list .dmsf_modified { - min-width: 127px; - width: 127px; - font-size: 0.8em; - text-align: left; -} - -.dmsf_modified img { - vertical-align:text-top; -} - .list .dmsf_title { width: 40%; text-align: left; @@ -235,8 +204,38 @@ div.dmsf_revision_inner_box .attribute .label { /* DMSF tree view */ .dmsf_hidden { display:none; } -.dmsf_odd {background-color:#f6f7f8;} -.dmsf_even {background-color: #fff;} +.dmsf_tree span.dmsf_expander { cursor: pointer; } +.dmsf_tree.dmsf_expanded td.dmsf_title span { + 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/arrow_right.png) no-repeat 0 50%; + padding-left: 16px; +} +.dmsf_tree.idnt-1 .dmsf_title { padding-left: 1.5em; } +.dmsf_tree.idnt-2 .dmsf_title { padding-left: 2em; } +.dmsf_tree.idnt-3 .dmsf_title { padding-left: 2.5em; } +.dmsf_tree.idnt-4 .dmsf_title { padding-left: 3em; } +.dmsf_tree.idnt-5 .dmsf_title { padding-left: 3.5em; } +.dmsf_tree.idnt-6 .dmsf_title { padding-left: 4em; } +.dmsf_tree.idnt-7 .dmsf_title { padding-left: 4.5em; } +.dmsf_tree.idnt-8 .dmsf_title { padding-left: 5em; } +.dmsf_tree.idnt-9 .dmsf_title { padding-left: 5.5em; } + +.dmsf_select_version { + max-width: 50px; +} + +.dmsf_parent_container { + overflow: hidden; +} + +.dmsf_child_container { + float: left; + text-align: left; +} .dmsf_select_version { max-width: 50px; diff --git a/config/locales/cs.yml b/config/locales/cs.yml index fdfc444d..273477f7 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -339,7 +339,6 @@ cs: error_lock_exclusively: Nelze zamknout již zamčený objekt error_unlock_parent_locked: Nelze odemknout - nadřazený objekt je zamčený - field_dmsf_tree_view: Zobrazit složky jako stromovou strukturu label_dmsf_version: Verze locked_documents: Zamčené dokumenty diff --git a/config/locales/de.yml b/config/locales/de.yml index aab90cf2..e83a9101 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -340,7 +340,6 @@ de: error_lock_exclusively: Unable to lock exclusively an already-locked resource error_unlock_parent_locked: Unlock failed - resource parent is locked - field_dmsf_tree_view: Ordner in der Baumstruktur durchstöbern label_dmsf_version: Version locked_documents: Gesperrte Dateien diff --git a/config/locales/en.yml b/config/locales/en.yml index 2493e065..6011ec80 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -339,7 +339,6 @@ en: error_lock_exclusively: Unable to lock exclusively an already-locked resource error_unlock_parent_locked: Unlock failed - resource parent is locked - field_dmsf_tree_view: Navigate folders in a tree label_dmsf_version: Version locked_documents: Locked documents diff --git a/config/locales/es.yml b/config/locales/es.yml index 4c5dc335..ec5f645a 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -339,7 +339,6 @@ es: error_lock_exclusively: Unable to lock exclusively an already-locked resource error_unlock_parent_locked: Unlock failed - resource parent is locked - field_dmsf_tree_view: Navigate folders in a tree label_dmsf_version: Versión locked_documents: Documentos bloqueados diff --git a/config/locales/fr.yml b/config/locales/fr.yml index f7b1c032..9b05e1cd 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -339,7 +339,6 @@ fr: error_lock_exclusively: Impossible de verrouiller de manière exclusive une ressource déjà verrouillée error_unlock_parent_locked: Echec du déverrouillage - la ressource parente est verrouillée - field_dmsf_tree_view: Vue arborescente des dossiers label_dmsf_version: Version locked_documents: Documents verrouillés diff --git a/config/locales/hu.yml b/config/locales/hu.yml index 44e7f38a..2c434f5e 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -339,7 +339,6 @@ hu: error_lock_exclusively: Nem lehetséges kivételként zárolni egy már zárolt erőforrást error_unlock_parent_locked: Feloldás sikertelen - szülő erőforrás zárolva - field_dmsf_tree_view: Mappák közötti navigálás fastruktúrában label_dmsf_version: Verzió locked_documents: Locked documents diff --git a/config/locales/it.yml b/config/locales/it.yml index 3a941bdb..27221ca6 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -339,7 +339,6 @@ it: # Italian strings thx 2 Matteo Arceci! error_lock_exclusively: impossibile bloccare in modo esclusivo una risorsa già bloccata error_unlock_parent_locked: Sblocco fallito - la risorsa superiore è bloccata - field_dmsf_tree_view: Navigate folders in a tree label_dmsf_version: Version locked_documents: Documenti bloccati diff --git a/config/locales/ja.yml b/config/locales/ja.yml index b9343711..34061f48 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -339,7 +339,6 @@ ja: error_lock_exclusively: 既にロックされているリソースを排他的にロックできません error_unlock_parent_locked: ロック解除に失敗しました - リソースの親フォルダがロックされています - field_dmsf_tree_view: Navigate folders in a tree label_dmsf_version: バージョン locked_documents: ロック中 diff --git a/config/locales/ko.yml b/config/locales/ko.yml index d640db34..de03317e 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -337,7 +337,6 @@ ko: error_lock_exclusively: 이미 잠겨있는 리소스를 잠글 수 없습니다 error_unlock_parent_locked: 잠금 실패 - 리소스 상위 파일이 잠겨있습니다 - field_dmsf_tree_view: 트리에서 폴더 검색 label_dmsf_version: 버전 locked_documents: 잠긴 문서 diff --git a/config/locales/nl.yml b/config/locales/nl.yml index ba6b239c..1212079e 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -339,7 +339,6 @@ nl: error_lock_exclusively: Vergrendelen niet mogelijk op een reeds vergrendelde bron error_unlock_parent_locked: Ontgrendelen mislukt - bron ouder is vergrendeld - field_dmsf_tree_view: Navigeer door mappen in een boom label_dmsf_version: Versie locked_documents: Vergrendelde documenten diff --git a/config/locales/pl.yml b/config/locales/pl.yml index d5e114fc..78547cb0 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -339,7 +339,6 @@ pl: error_lock_exclusively: Unable to lock exclusively an already-locked resource error_unlock_parent_locked: Unlock failed - resource parent is locked - field_dmsf_tree_view: Navigate folders in a tree label_dmsf_version: Wersja locked_documents: Dokumenty zablokowane diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index d983564c..ae56a255 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -339,7 +339,6 @@ pt-BR: error_lock_exclusively: Não é possível bloquear exclusivamente um recurso já bloqueado error_unlock_parent_locked: Falha no desbloqueio - o recurso pai está bloqueado - field_dmsf_tree_view: Navegação de pastas em árvore label_dmsf_version: Versão locked_documents: Documentos bloqueados diff --git a/config/locales/ru.yml b/config/locales/ru.yml index 4ff8399d..56f23719 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -339,7 +339,6 @@ ru: error_lock_exclusively: Невозможно эксклюзивно заблокировать уже заблокированный ресурс error_unlock_parent_locked: Разблокировка не удалась - родительская запись заблокирована - field_dmsf_tree_view: Навигация по папкам в виде дерева label_dmsf_version: Версия locked_documents: Заблокированные документы diff --git a/config/locales/sl.yml b/config/locales/sl.yml index c3734c57..84d62653 100644 --- a/config/locales/sl.yml +++ b/config/locales/sl.yml @@ -339,7 +339,6 @@ sl: error_lock_exclusively: Unable to lock exclusively an already-locked resource error_unlock_parent_locked: Unlock failed - resource parent is locked - field_dmsf_tree_view: Navigate folders in a tree label_dmsf_version: Verzija locked_documents: Locked documents diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index a246cd4a..f4cf96df 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -339,7 +339,6 @@ zh-TW: error_lock_exclusively: Unable to lock exclusively an already-locked resource error_unlock_parent_locked: Unlock failed - resource parent is locked - field_dmsf_tree_view: Navigate folders in a tree label_dmsf_version: 版本 locked_documents: Locked documents diff --git a/config/locales/zh.yml b/config/locales/zh.yml index 2a96533e..31a05cd6 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -339,7 +339,6 @@ zh: error_lock_exclusively: Unable to lock exclusively an already-locked resource error_unlock_parent_locked: Unlock failed - resource parent is locked - field_dmsf_tree_view: Navigate folders in a tree label_dmsf_version: 版本 locked_documents: Locked documents diff --git a/config/routes.rb b/config/routes.rb index f460400f..4f2d3d0a 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -30,41 +30,40 @@ if Redmine::Plugin.installed? :redmine_dmsf # /projects//dmsf # [As this controller also processes 'folders' it maybe better to branch into a folder route rather than leaving it as is] ## - post '/projects/:id/dmsf/create', :controller => 'dmsf', :action => 'create' - get '/projects/:id/dmsf/notify/activate', :controller => 'dmsf', :action => 'notify_activate', :as => 'notify_activate_dmsf' - get '/projects/:id/dmsf/notify/deactivate', :controller => 'dmsf', :action => 'notify_deactivate', :as => 'notify_deactivate_dmsf' - delete '/projects/:id/dmsf/delete', :controller => 'dmsf', :action => 'delete', :as => 'delete_dmsf' - post '/projects/:id/dmsf/save', :controller => 'dmsf', :action => 'save' - post '/projects/:id/dmsf/save/root', :controller => 'dmsf', :action => 'save_root' - post '/projects/:id/dmsf/entries', :controller => 'dmsf', :action => 'entries_operation', :as => 'entries_operations_dmsf' - post '/projects/:id/dmsf/tag_changed', :controller => 'dmsf', :action => 'tag_changed', :as => 'tag_changed' - post '/projects/:id/dmsf/entries/delete', :controller => 'dmsf', :action => 'delete_entries', :as => 'delete_entries' - post '/projects/:id/dmsf/entries/email', :to => 'dmsf#entries_email', :as => 'email_entries' - get '/projects/:id/dmsf/entries/download_email_entries', :controller => 'dmsf', :action => 'download_email_entries', :as => 'download_email_entries' - get '/projects/:id/dmsf/lock', :controller => 'dmsf', :action => 'lock', :as => 'lock_dmsf' - get '/projects/:id/dmsf/unlock', :controller => 'dmsf', :action => 'unlock', :as => 'unlock_dmsf' - get '/projects/:id/dmsf/', :controller => 'dmsf', :action => 'show', :as => 'dmsf_folder' - get '/projects/:id/dmsf/new', :controller => 'dmsf', :action => 'new', :as => 'new_dmsf' - get '/projects/:id/dmsf/edit', :controller => 'dmsf', :action => 'edit', :as => 'edit_dmsf' - get '/projects/:id/dmsf/edit/root', :controller => 'dmsf', :action => 'edit_root', :as => 'edit_root_dmsf' - get '/projects/:id/dmsf/trash', :controller => 'dmsf', :action => 'trash', :as => 'trash_dmsf' - get '/projects/:id/dmsf/restore', :controller => 'dmsf', :action => 'restore', :as => 'restore_dmsf' - post '/projects/:id/dmsf/expand_folder', :controller => 'dmsf', :action => 'expand_folder', :as => 'expand_folder_dmsf' - post '/projects/:id/dmsf/exp_folder', controller: 'dmsf', action: 'exp_folder', as: 'exp_folder_dmsf' - get '/projects/:id/dmsf/add_email', :controller => 'dmsf', :action => 'add_email', :as => 'add_email_dmsf' - post '/projects/:id/dmsf/append_email', :controller => 'dmsf', :action => 'append_email', :as => 'append_email_dmsf' - get '/projects/:id/dmsf/autocomplete_for_user', :controller => 'dmsf', :action => 'autocomplete_for_user' + post '/projects/:id/dmsf/create', controller: 'dmsf', action: 'create' + get '/projects/:id/dmsf/notify/activate', controller: 'dmsf', action: 'notify_activate', as: 'notify_activate_dmsf' + get '/projects/:id/dmsf/notify/deactivate', controller: 'dmsf', action: 'notify_deactivate', as: 'notify_deactivate_dmsf' + delete '/projects/:id/dmsf/delete', controller: 'dmsf', action: 'delete', as: 'delete_dmsf' + post '/projects/:id/dmsf/save', controller: 'dmsf', action: 'save' + post '/projects/:id/dmsf/save/root', controller: 'dmsf', action: 'save_root' + post '/projects/:id/dmsf/entries', controller: 'dmsf', action: 'entries_operation', as: 'entries_operations_dmsf' + post '/projects/:id/dmsf/tag_changed', controller: 'dmsf', action: 'tag_changed', as: 'tag_changed' + post '/projects/:id/dmsf/entries/delete', controller: 'dmsf', action: 'delete_entries', as: 'delete_entries' + post '/projects/:id/dmsf/entries/email', to: 'dmsf#entries_email', as: 'email_entries' + get '/projects/:id/dmsf/entries/download_email_entries', controller: 'dmsf', action: 'download_email_entries', as: 'download_email_entries' + get '/projects/:id/dmsf/lock', controller: 'dmsf', action: 'lock', as: 'lock_dmsf' + get '/projects/:id/dmsf/unlock', controller: 'dmsf', action: 'unlock', as: 'unlock_dmsf' + get '/projects/:id/dmsf/', controller: 'dmsf', action: 'show', as: 'dmsf_folder' + get '/projects/:id/dmsf/new', controller: 'dmsf', action: 'new', as: 'new_dmsf' + get '/projects/:id/dmsf/edit', controller: 'dmsf', action: 'edit', as: 'edit_dmsf' + get '/projects/:id/dmsf/edit/root', controller: 'dmsf', action: 'edit_root', as: 'edit_root_dmsf' + get '/projects/:id/dmsf/trash', controller: 'dmsf', action: 'trash', as: 'trash_dmsf' + get '/projects/:id/dmsf/restore', controller: 'dmsf', action: 'restore', as: 'restore_dmsf' + post '/projects/:id/dmsf/expand_folder', controller: 'dmsf', action: 'expand_folder', as: 'expand_folder_dmsf' + get '/projects/:id/dmsf/add_email', controller: 'dmsf', action: 'add_email', as: 'add_email_dmsf' + post '/projects/:id/dmsf/append_email', controller: 'dmsf', action: 'append_email', as: 'append_email_dmsf' + get '/projects/:id/dmsf/autocomplete_for_user', controller: 'dmsf', action: 'autocomplete_for_user' put '/projects/:id/dmsf', controller: 'dmsf', action: 'drop' # dmsf_context_menu_controller - match '/projects/:id/dmsf/context_menu', :to => 'dmsf_context_menus#dmsf', :as => 'dmsf_context_menu', :via => [:get, :post] - match '/projects/:id/dmsf/trash/context_menu', :to => 'dmsf_context_menus#trash', :as => 'dmsf_trash_context_menu', :via => [:get, :post] + match '/projects/:id/dmsf/context_menu', to: 'dmsf_context_menus#dmsf', as: 'dmsf_context_menu', via: [:get, :post] + match '/projects/:id/dmsf/trash/context_menu', to: 'dmsf_context_menus#trash', as: 'dmsf_trash_context_menu', via: [:get, :post] # # dmsf_state controller # /projects//dmsf/state ## - post '/projects/:id/dmsf/state', :controller => 'dmsf_state', :action => 'user_pref_save', :as => 'dmsf_user_pref_save' + post '/projects/:id/dmsf/state', controller: 'dmsf_state', action: 'user_pref_save', as: 'dmsf_user_pref_save' # # dmsf_upload controller @@ -72,60 +71,60 @@ if Redmine::Plugin.installed? :redmine_dmsf ## get '/projects/:id/dmsf/upload/multi_upload', controller: 'dmsf_upload', action: 'multi_upload', as: 'multi_dmsf_upload' - post '/projects/:id/dmsf/upload/files', :controller => 'dmsf_upload', :action => 'upload_files' - post '/projects/:id/dmsf/upload/file', :controller => 'dmsf_upload', :action => 'upload_file' - post '/projects/:id/dmsf/upload', :controller => 'dmsf_upload', :action => 'upload' - post '/projects/:id/dmsf/upload/commit', :controller => 'dmsf_upload', :action => 'commit_files' - post '/projects/:id/dmsf/commit', :controller => 'dmsf_upload', :action => 'commit' - match 'dmsf_uploads', :to => 'dmsf_upload#upload', :via => :post - delete '/dmsf/attachments/:id/delete', :to => 'dmsf_upload#delete_dmsf_attachment', :as => 'dmsf_attachment' - delete '/dmsf/link_attachments/:id/delete', :to => 'dmsf_upload#delete_dmsf_link_attachment', :as => 'dmsf_link_attachment' + post '/projects/:id/dmsf/upload/files', controller: 'dmsf_upload', action: 'upload_files' + post '/projects/:id/dmsf/upload/file', controller: 'dmsf_upload', action: 'upload_file' + post '/projects/:id/dmsf/upload', controller: 'dmsf_upload', action: 'upload' + post '/projects/:id/dmsf/upload/commit', controller: 'dmsf_upload', action: 'commit_files' + post '/projects/:id/dmsf/commit', controller: 'dmsf_upload', action: 'commit' + match 'dmsf_uploads', to: 'dmsf_upload#upload', via: :post + delete '/dmsf/attachments/:id/delete', to: 'dmsf_upload#delete_dmsf_attachment', as: 'dmsf_attachment' + delete '/dmsf/link_attachments/:id/delete', to: 'dmsf_upload#delete_dmsf_link_attachment', as: 'dmsf_link_attachment' # # dmsf_files controller # /dmsf/files/ ## - get '/dmsf/files/:id/notify/activate', :controller => 'dmsf_files', :action => 'notify_activate', :as => 'notify_activate_dmsf_files' - get '/dmsf/files/:id/notify/deactivate', :controller => 'dmsf_files', :action => 'notify_deactivate', :as => 'notify_deactivate_dmsf_files' - get '/dmsf/files/:id/lock', :controller => 'dmsf_files', :action => 'lock', :as => 'lock_dmsf_files' - get '/dmsf/files/:id/unlock', :controller => 'dmsf_files', :action => 'unlock', :as => 'unlock_dmsf_files' - post '/dmsf/files/:id/delete', :controller => 'dmsf_files', :action => 'delete', :as => 'delete_dmsf_files' - post '/dmsf/files/:id/revision/create', :controller => 'dmsf_files', :action => 'create_revision' - get '/dmsf/files/:id/revision/delete', :controller => 'dmsf_files', :action => 'delete_revision', :as => 'delete_revision' - get '/dmsf/files/:id/revision/obsolete', :controller => 'dmsf_files', :action => 'obsolete_revision', :as => 'obsolete_revision' - get '/dmsf/files/:id/download', :to => 'dmsf_files#view', :download => '', :as => 'download_dmsf_file' # Otherwise will not route nil into the download param - get '/dmsf/files/:id/view', :to => 'dmsf_files#view', :as => 'view_dmsf_file' - get '/dmsf/files/:id', :controller => 'dmsf_files', :action => 'show', :as => 'dmsf_file' - delete '/dmsf/files/:id', :controller => 'dmsf_files', :action => 'delete' - get '/dmsf/files/:id/restore', :controller => 'dmsf_files', :action => 'restore', :as => 'restore_dmsf_file' - get '/dmsf/files/:id/thumbnail', :to => 'dmsf_files#thumbnail', :as => 'dmsf_thumbnail' + get '/dmsf/files/:id/notify/activate', controller: 'dmsf_files', action: 'notify_activate', as: 'notify_activate_dmsf_files' + get '/dmsf/files/:id/notify/deactivate', controller: 'dmsf_files', action: 'notify_deactivate', as: 'notify_deactivate_dmsf_files' + get '/dmsf/files/:id/lock', controller: 'dmsf_files', action: 'lock', as: 'lock_dmsf_files' + get '/dmsf/files/:id/unlock', controller: 'dmsf_files', action: 'unlock', as: 'unlock_dmsf_files' + post '/dmsf/files/:id/delete', controller: 'dmsf_files', action: 'delete', as: 'delete_dmsf_files' + post '/dmsf/files/:id/revision/create', controller: 'dmsf_files', action: 'create_revision' + get '/dmsf/files/:id/revision/delete', controller: 'dmsf_files', action: 'delete_revision', as: 'delete_revision' + get '/dmsf/files/:id/revision/obsolete', controller: 'dmsf_files', action: 'obsolete_revision', as: 'obsolete_revision' + get '/dmsf/files/:id/download', to: 'dmsf_files#view', download: '', as: 'download_dmsf_file' # Otherwise will not route nil into the download param + get '/dmsf/files/:id/view', to: 'dmsf_files#view', as: 'view_dmsf_file' + get '/dmsf/files/:id', controller: 'dmsf_files', action: 'show', as: 'dmsf_file' + delete '/dmsf/files/:id', controller: 'dmsf_files', action: 'delete' + get '/dmsf/files/:id/restore', controller: 'dmsf_files', action: 'restore', as: 'restore_dmsf_file' + get '/dmsf/files/:id/thumbnail', to: 'dmsf_files#thumbnail', as: 'dmsf_thumbnail' # # url controller # /dmsf/links/ ## - get '/dmsf/links/:id/restore', :controller => 'dmsf_links', :action => 'restore', :as => 'restore_dmsf_link' - delete '/dmsf/links/:id', :controller => 'dmsf_links', :action => 'delete' + get '/dmsf/links/:id/restore', controller: 'dmsf_links', action: 'restore', as: 'restore_dmsf_link' + delete '/dmsf/links/:id', controller: 'dmsf_links', action: 'delete' # Just to keep backward compatibility with old external direct links - get '/dmsf_files/:id', :controller => 'dmsf_files', :action => 'show' - get '/dmsf_files/:id/download', :controller => 'dmsf_files', :action => 'show', :download => '' + get '/dmsf_files/:id', controller: 'dmsf_files', action: 'show' + get '/dmsf_files/:id/download', controller: 'dmsf_files', action: 'show', download: '' # # files_copy controller # /dmsf/files//copy ## - post '/dmsf/files/:id/copy/copy', :controller => 'dmsf_files_copy', :action => 'copy' - post '/dmsf/files/:id/copy/move', :controller => 'dmsf_files_copy', :action => 'move' - get '/dmsf/files/:id/copy', :controller => 'dmsf_files_copy', :action => 'new', :as => 'copy_file' + post '/dmsf/files/:id/copy/copy', controller: 'dmsf_files_copy', action: 'copy' + post '/dmsf/files/:id/copy/move', controller: 'dmsf_files_copy', action: 'move' + get '/dmsf/files/:id/copy', controller: 'dmsf_files_copy', action: 'new', as: 'copy_file' # # folders_copy controller # /dmsf/folders//copy ## - post '/dmsf/folders/:id/copy/copy', :controller => 'dmsf_folders_copy', :action => 'copy' - post '/dmsf/folders/:id/copy/move', :controller => 'dmsf_folders_copy', :action => 'move' - get '/dmsf/folders/:id/copy', :controller => 'dmsf_folders_copy', :action => 'new', :as => 'copy_folder' + post '/dmsf/folders/:id/copy/copy', controller: 'dmsf_folders_copy', action: 'copy' + post '/dmsf/folders/:id/copy/move', controller: 'dmsf_folders_copy', action: 'move' + get '/dmsf/folders/:id/copy', controller: 'dmsf_folders_copy', action: 'new', as: 'copy_folder' # Approval workflow resources :dmsf_workflows do @@ -143,9 +142,9 @@ if Redmine::Plugin.installed? :redmine_dmsf end end - match 'dmsf_workflows/:id/edit', :controller => 'dmsf_workflows', :action => 'add_step', :id => /\d+/, :via => :post - match 'dmsf_workflows/:id/edit', :controller => 'dmsf_workflows', :action => 'remove_step', :id => /\d+/, :via => :delete - match 'dmsf_workflows/:id/edit', :controller => 'dmsf_workflows', :action => 'reorder_steps', :id => /\d+/, :via => :put + match 'dmsf_workflows/:id/edit', controller: 'dmsf_workflows', action: 'add_step', id: /\d+/, via: :post + match 'dmsf_workflows/:id/edit', controller: 'dmsf_workflows', action: 'remove_step', id: /\d+/, via: :delete + match 'dmsf_workflows/:id/edit', controller: 'dmsf_workflows', action: 'reorder_steps', id: /\d+/, via: :put # Links resources :dmsf_links do diff --git a/db/migrate/05_dmsf_0_9_0_1.rb b/db/migrate/05_dmsf_0_9_0_1.rb index bb8fd306..197deb47 100644 --- a/db/migrate/05_dmsf_0_9_0_1.rb +++ b/db/migrate/05_dmsf_0_9_0_1.rb @@ -22,7 +22,7 @@ class Dmsf0901 < ActiveRecord::Migration[4.2] def change create_table :dmsf_file_revision_accesses do |t| t.references :dmsf_file_revision, null: false - t.integer :action, :default => 0, null: false # 0 ... download, 1 ... email + t.integer :action, default: 0, null: false # 0 ... download, 1 ... email t.references :user, null: false t.timestamps null: false end diff --git a/db/migrate/07_dmsf_1_4_4.rb b/db/migrate/07_dmsf_1_4_4.rb index a0877a9f..0de46ca3 100644 --- a/db/migrate/07_dmsf_1_4_4.rb +++ b/db/migrate/07_dmsf_1_4_4.rb @@ -86,7 +86,7 @@ class Dmsf144 < ActiveRecord::Migration[4.2] # Ensure the project path exists project_directory = File.dirname(new_path) Dir.mkdir(project_directory) unless File.directory? project_directory - FileUtils.mv(existing, new_path) + FileUtils.mv existing, new_path say "Migration: #{existing} -> #{new_path} succeeded" end rescue #Here we wrap around IO in the loop to prevent one failure ruining complete run. @@ -131,7 +131,7 @@ class Dmsf144 < ActiveRecord::Migration[4.2] rev.save! new_path = DmsfFile.storage_path.join(rev.disk_filename) end - FileUtils.mv(existing, new_path) + FileUtils.mv existing, new_path end end rescue diff --git a/db/migrate/20170421101901_dmsf_file_container_rollback.rb b/db/migrate/20170421101901_dmsf_file_container_rollback.rb index 76b3e467..f62727b2 100644 --- a/db/migrate/20170421101901_dmsf_file_container_rollback.rb +++ b/db/migrate/20170421101901_dmsf_file_container_rollback.rb @@ -82,7 +82,7 @@ class DmsfFileContainerRollback < ActiveRecord::Migration[4.2] add_column :dmsf_files, :project_id, :int, null: true add_column :dmsf_files, :container_type, :string, limit: 30, null: false, default: 'Project' - DmsfFile.update_all(:container_type => 'Project') + DmsfFile.update_all(container_type: 'Project') file_folder_ids.each do |id, title| file = DmsfFile.find_by(id: id) if file && (title =~ /(^\d+) - .*/) diff --git a/db/migrate/20170422104901_migrate_documents.rb b/db/migrate/20170422104901_migrate_documents.rb index eecb2a66..7262395f 100644 --- a/db/migrate/20170422104901_migrate_documents.rb +++ b/db/migrate/20170422104901_migrate_documents.rb @@ -32,7 +32,7 @@ class MigrateDocuments < ActiveRecord::Migration[4.2] if target if !File.exist?(target) begin - FileUtils.mv origin, target, :verbose => true + FileUtils.mv origin, target, verbose: true folder = storage_base_path(dmsf_file_revision) Dir.rmdir(folder) if (folder && (Dir.entries(folder).size == 2)) rescue => e @@ -89,7 +89,7 @@ class MigrateDocuments < ActiveRecord::Migration[4.2] Rails.logger.error msg else begin - FileUtils.mv origin, target, :verbose => true + FileUtils.mv origin, target, verbose: true folder = dmsf_file_revision.storage_base_path Dir.rmdir(folder) if (folder && (Dir.entries(folder).size == 2)) rescue => e diff --git a/extra/xapian_indexer.rb b/extra/xapian_indexer.rb index 00eaad9d..3a4e66dc 100644 --- a/extra/xapian_indexer.rb +++ b/extra/xapian_indexer.rb @@ -101,7 +101,7 @@ def system_or_raise(command) if $verbose > 0 raise "\"#{command}\" failed" unless system command else - raise "\"#{command}\" failed" unless system command, :out => '/dev/null' + raise "\"#{command}\" failed" unless system command, out: '/dev/null' end end diff --git a/lib/redmine_dmsf.rb b/lib/redmine_dmsf.rb index 6dee6107..bd18404f 100644 --- a/lib/redmine_dmsf.rb +++ b/lib/redmine_dmsf.rb @@ -67,7 +67,6 @@ require 'redmine_dmsf/hooks/controllers/search_controller_hooks' require 'redmine_dmsf/hooks/controllers/issues_controller_hooks' require 'redmine_dmsf/hooks/views/view_projects_form_hook' require 'redmine_dmsf/hooks/views/base_view_hooks' -require 'redmine_dmsf/hooks/views/my_account_view_hooks' require 'redmine_dmsf/hooks/views/issue_view_hooks' require 'redmine_dmsf/hooks/views/custom_field_view_hooks' require 'redmine_dmsf/hooks/views/search_view_hooks' diff --git a/lib/redmine_dmsf/errors/dmsf_email_max_file_error.rb b/lib/redmine_dmsf/errors/dmsf_email_max_file_error.rb index 6d18d810..5bab7eb2 100644 --- a/lib/redmine_dmsf/errors/dmsf_email_max_file_error.rb +++ b/lib/redmine_dmsf/errors/dmsf_email_max_file_error.rb @@ -26,8 +26,7 @@ class EmailMaxFileSize < StandardError if message.present? super message else - super l(:error_max_email_filesize_exceeded, - :number => Setting.plugin_redmine_dmsf['dmsf_max_email_filesize']) + super l(:error_max_email_filesize_exceeded, number: Setting.plugin_redmine_dmsf['dmsf_max_email_filesize']) end end end diff --git a/lib/redmine_dmsf/errors/dmsf_zip_max_file_error.rb b/lib/redmine_dmsf/errors/dmsf_zip_max_file_error.rb index e536e81b..759cd239 100644 --- a/lib/redmine_dmsf/errors/dmsf_zip_max_file_error.rb +++ b/lib/redmine_dmsf/errors/dmsf_zip_max_file_error.rb @@ -26,8 +26,7 @@ class ZipMaxFilesError < StandardError if message.present? super message else - super l(:error_max_files_exceeded, - :number => Setting.plugin_redmine_dmsf['dmsf_max_file_download']) + super l(:error_max_files_exceeded, number: Setting.plugin_redmine_dmsf['dmsf_max_file_download']) end end end diff --git a/lib/redmine_dmsf/hooks/controllers/issues_controller_hooks.rb b/lib/redmine_dmsf/hooks/controllers/issues_controller_hooks.rb index 833e3655..7966945f 100644 --- a/lib/redmine_dmsf/hooks/controllers/issues_controller_hooks.rb +++ b/lib/redmine_dmsf/hooks/controllers/issues_controller_hooks.rb @@ -160,12 +160,12 @@ module RedmineDmsf wf = issue.saved_dmsf_links_wfs[l.id] if wf # Assign the workflow - revision.set_workflow(wf.id, 'assign') - revision.assign_workflow(wf.id) + revision.set_workflow wf.id, 'assign' + revision.assign_workflow wf.id # Start the workflow - revision.set_workflow(wf.id, 'start') + revision.set_workflow wf.id, 'start' if revision.save - wf.notify_users(issue.project, revision, context[:controller]) + wf.notify_users issue.project, revision, context[:controller] begin file.lock! rescue DmsfLockError => e diff --git a/lib/redmine_dmsf/hooks/helpers/search_helper_hooks.rb b/lib/redmine_dmsf/hooks/helpers/search_helper_hooks.rb index 125da5c9..5d5e072b 100644 --- a/lib/redmine_dmsf/hooks/helpers/search_helper_hooks.rb +++ b/lib/redmine_dmsf/hooks/helpers/search_helper_hooks.rb @@ -28,8 +28,8 @@ module RedmineDmsf def helper_easy_extensions_search_helper_patch(context={}) case context[:entity].event_type when 'dmsf-file', 'dmsf-folder' - str = context[:controller].send(:render_to_string, :partial => 'search/container', - :locals => { :object => context[:entity] }) + str = context[:controller].send(:render_to_string, partial: 'search/container', + locals: { object: context[:entity] }) if str html = +'

' if context[:entity].dmsf_folder_id diff --git a/lib/redmine_dmsf/hooks/views/base_view_hooks.rb b/lib/redmine_dmsf/hooks/views/base_view_hooks.rb index f8426014..6044456e 100644 --- a/lib/redmine_dmsf/hooks/views/base_view_hooks.rb +++ b/lib/redmine_dmsf/hooks/views/base_view_hooks.rb @@ -26,11 +26,11 @@ module RedmineDmsf def view_layouts_base_html_head(context={}) return if defined?(EasyExtensions) - "\n".html_safe + stylesheet_link_tag('redmine_dmsf.css', :plugin => :redmine_dmsf) + - "\n".html_safe + stylesheet_link_tag('select2.min.css', :plugin => :redmine_dmsf) + - "\n".html_safe + javascript_include_tag('select2.min.js', :plugin => :redmine_dmsf, defer: true) + - "\n".html_safe + javascript_include_tag('redmine_dmsf.js', :plugin => :redmine_dmsf, defer: true) + - "\n".html_safe + javascript_include_tag('attachments_dmsf.js', :plugin => :redmine_dmsf, defer: true) + "\n".html_safe + stylesheet_link_tag('redmine_dmsf.css', plugin: :redmine_dmsf) + + "\n".html_safe + stylesheet_link_tag('select2.min.css', plugin: :redmine_dmsf) + + "\n".html_safe + javascript_include_tag('select2.min.js', plugin: :redmine_dmsf, defer: true) + + "\n".html_safe + javascript_include_tag('redmine_dmsf.js', plugin: :redmine_dmsf, defer: true) + + "\n".html_safe + javascript_include_tag('attachments_dmsf.js', plugin: :redmine_dmsf, defer: true) end def easy_extensions_javascripts_hook(context={}) diff --git a/lib/redmine_dmsf/hooks/views/issue_view_hooks.rb b/lib/redmine_dmsf/hooks/views/issue_view_hooks.rb index 73971f33..14497aca 100644 --- a/lib/redmine_dmsf/hooks/views/issue_view_hooks.rb +++ b/lib/redmine_dmsf/hooks/views/issue_view_hooks.rb @@ -136,8 +136,8 @@ module RedmineDmsf links = get_links(container) if links.present? html = controller.send(:render_to_string, - { :partial => 'dmsf_files/thumbnails', - :locals => { :links => links, :thumbnails => Setting.thumbnails_enabled?, :link_to => false } }) + { partial: 'dmsf_files/thumbnails', + locals: { links: links, thumbnails: Setting.thumbnails_enabled?, link_to: false } }) html.html_safe end end @@ -156,8 +156,8 @@ module RedmineDmsf html << "" end html << context[:controller].send(:render_to_string, - { :partial => 'dmsf_upload/form', - :locals => { :container => container, :multiple => true, :description => description, :awf => true }}) + { partial: 'dmsf_upload/form', + locals: { container: container, multiple: true, description: description, awf: true }}) html << '' html << (description ? '

' : '') html.html_safe @@ -172,8 +172,8 @@ module RedmineDmsf if defined?(EasyExtensions) attachment_rows(links, container, controller) else - controller.send(:render_to_string, {:partial => 'dmsf_files/links', - :locals => {:links => links, :thumbnails => Setting.thumbnails_enabled?}}) + controller.send :render_to_string, + { partial: 'dmsf_files/links', locals: { links: links, thumbnails: Setting.thumbnails_enabled?}} end end end @@ -200,12 +200,12 @@ module RedmineDmsf if show_checkboxes html << '' end - file_view_url = url_for({:controller => :dmsf_files, :action => 'view', :id => dmsf_file}) + file_view_url = url_for({ controller: :dmsf_files, action: 'view', id: dmsf_file}) # Title, size html << '' html << '' html diff --git a/lib/redmine_dmsf/hooks/views/my_account_view_hooks.rb b/lib/redmine_dmsf/hooks/views/my_account_view_hooks.rb deleted file mode 100644 index ec666730..00000000 --- a/lib/redmine_dmsf/hooks/views/my_account_view_hooks.rb +++ /dev/null @@ -1,41 +0,0 @@ -# encoding: utf-8 -# -# Redmine plugin for Document Management System "Features" -# -# Copyright © 2011-20 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 -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -module RedmineDmsf - module Hooks - include Redmine::Hook - - class MyAccountViewHook < Redmine::Hook::ViewListener - - render_on :view_users_bulk_edit, :partial => 'hooks/redmine_dmsf/view_users_bulk_edit' - - def view_my_account_preferences(context={}) - if context.is_a?(Hash) && context[:user] - context[:controller].send( - :render_to_string, { - :partial => 'hooks/redmine_dmsf/view_my_account', - :locals => context - }).html_safe - end - end - - end - end -end \ No newline at end of file diff --git a/lib/redmine_dmsf/hooks/views/search_view_hooks.rb b/lib/redmine_dmsf/hooks/views/search_view_hooks.rb index 80bc798d..f0b80375 100644 --- a/lib/redmine_dmsf/hooks/views/search_view_hooks.rb +++ b/lib/redmine_dmsf/hooks/views/search_view_hooks.rb @@ -23,8 +23,8 @@ module RedmineDmsf def view_search_index_container(context={}) if context[:object].is_a?(DmsfFile) || context[:object].is_a?(DmsfFolder) - str = context[:controller].send(:render_to_string, :partial => 'search/container', - :locals => { :object => context[:object] }) + str = context[:controller].send(:render_to_string, partial: 'search/container', + locals: { object: context[:object] }) if str " #{str} /" end diff --git a/lib/redmine_dmsf/hooks/views/view_projects_form_hook.rb b/lib/redmine_dmsf/hooks/views/view_projects_form_hook.rb index 7eac746c..22a920cc 100644 --- a/lib/redmine_dmsf/hooks/views/view_projects_form_hook.rb +++ b/lib/redmine_dmsf/hooks/views/view_projects_form_hook.rb @@ -22,11 +22,10 @@ module RedmineDmsf include Redmine::I18n def view_projects_form(context={}) - context[:controller].send(:render_to_string, { - :partial => 'hooks/redmine_dmsf/view_projects_form', - :locals => context - }) - + context[:controller].send :render_to_string, { + partial: 'hooks/redmine_dmsf/view_projects_form', + locals: context + } end end diff --git a/lib/redmine_dmsf/macros.rb b/lib/redmine_dmsf/macros.rb index f656432b..3e31d8f7 100644 --- a/lib/redmine_dmsf/macros.rb +++ b/lib/redmine_dmsf/macros.rb @@ -37,15 +37,15 @@ Redmine::WikiFormatting::Macros.register do end end if User.current && User.current.allowed_to?(:view_dmsf_files, file.project, { id: file.id }) - file_view_url = url_for(:controller => :dmsf_files, :action => 'view', :id => file, :download => args[2]) + file_view_url = url_for(controller: :dmsf_files, action: 'view', id: file, download: args[2]) title = args[1] ? args[1] : file.title title.gsub!(/\A"|"\z/,'') # Remove apostrophes title.gsub!(/\A'|'\z/,'') title = file.title if title.empty? return link_to(h(title), file_view_url, - :target => '_blank', - :title => h(revision.tooltip), + target: '_blank', + title: h(revision.tooltip), 'data-downloadurl' => "#{file.last_revision.detect_content_type}:#{h(file.name)}:#{file_view_url}") else raise l(:notice_not_authorized) @@ -67,7 +67,7 @@ Redmine::WikiFormatting::Macros.register do title.gsub!(/\A'|'\z/,'') title = folder.title if title.empty? return link_to h(title), - dmsf_folder_url(folder.project, :folder_id => folder) + dmsf_folder_url(folder.project, folder_id: folder) else raise l(:notice_not_authorized) end @@ -82,7 +82,7 @@ Redmine::WikiFormatting::Macros.register do raise ArgumentError if args.length < 1 # Requires file id file = DmsfFile.visible.find args[0].strip if User.current && User.current.allowed_to?(:view_dmsf_files, file.project) - return link_to(h(args[1] ? args[1] : file.title), dmsf_file_path(:id => file)) + return link_to(h(args[1] ? args[1] : file.title), dmsf_file_path(id: file)) else raise l(:notice_not_authorized) end @@ -163,15 +163,15 @@ Redmine::WikiFormatting::Macros.register do raise l(:notice_not_authorized) end raise 'Not supported image format' unless file.image? - url = url_for(:controller => :dmsf_files, :action => 'view', :id => file) + url = url_for(controller: :dmsf_files, action: 'view', id: file) if size && size.include?('%') - image_tag(url, :alt => file.title, :width => size, :height => size) + image_tag url, alt: file.title, width: size, height: size elsif height - image_tag(url, :alt => file.title, :width => 'auto', :height => height) + image_tag url, alt: file.title, width: 'auto', height: height elsif width - image_tag(url, :alt => file.title, :width => width, :height => 'auto') + image_tag url, alt: file.title, width: width, height: 'auto' else - image_tag(url, :alt => file.title, :size => size) + image_tag url, alt: file.title, size: size end else raise "Document ID #{file_id} not found" @@ -197,21 +197,21 @@ Redmine::WikiFormatting::Macros.register do raise l(:notice_not_authorized) end raise 'Not supported image format' unless file.image? - url = url_for(:controller => :dmsf_files, :action => 'view', :id => file) - file_view_url = url_for(:controller => :dmsf_files, :action => 'view', :id => file, :download => args[2]) + url = url_for(controller: :dmsf_files, action: 'view', id: file) + file_view_url = url_for(controller: :dmsf_files, action: 'view', id: file, download: args[2]) if size - img = image_tag(url, :alt => file.title, :size => size) + img = image_tag(url, alt: file.title, size: size) elsif height - img = image_tag(url, :alt => file.title, :width => 'auto', :height => height) + img = image_tag(url, alt: file.title, width: 'auto', height: height) elsif width - img = image_tag(url, :alt => file.title, :width => width, :height => 'auto') + img = image_tag(url, alt: file.title, width: width, height: 'auto') else - img = image_tag(url, :alt => file.title, :width => 'auto', :height => 200) + img = image_tag(url, alt: file.title, width: 'auto', height: 200) end - link_to(img, - file_view_url, :target => '_blank', - :title => h(file.last_revision.try(:tooltip)), - 'data-downloadurl' => "#{file.last_revision.detect_content_type}:#{h(file.name)}:#{file_view_url}") + link_to img, + file_view_url, target: '_blank', + title: h(file.last_revision.try(:tooltip)), + 'data-downloadurl' => "#{file.last_revision.detect_content_type}:#{h(file.name)}:#{file_view_url}" else raise "Document ID #{file_id} not found" end diff --git a/lib/redmine_dmsf/patches/easy_crm_case_patch.rb b/lib/redmine_dmsf/patches/easy_crm_case_patch.rb index dce60753..98581d26 100644 --- a/lib/redmine_dmsf/patches/easy_crm_case_patch.rb +++ b/lib/redmine_dmsf/patches/easy_crm_case_patch.rb @@ -163,9 +163,9 @@ module RedmineDmsf init_journal(User.current) key = (added_or_removed == :removed ? :old_value : :value) current_journal.details << JournalDetail.new( - :property => 'dmsf_file', - :prop_key => dmsf_file.id, - key => dmsf_file.title + property: 'dmsf_file', + prop_key: dmsf_file.id, + key: dmsf_file.title ) current_journal.save end diff --git a/lib/redmine_dmsf/patches/issue_patch.rb b/lib/redmine_dmsf/patches/issue_patch.rb index 493fc3b8..dff65bd5 100644 --- a/lib/redmine_dmsf/patches/issue_patch.rb +++ b/lib/redmine_dmsf/patches/issue_patch.rb @@ -166,9 +166,9 @@ module RedmineDmsf init_journal(User.current) key = (added_or_removed == :removed ? :old_value : :value) current_journal.details << JournalDetail.new( - :property => 'dmsf_file', - :prop_key => dmsf_file.id, - key => dmsf_file.title + property: 'dmsf_file', + prop_key: dmsf_file.id, + key: dmsf_file.title ) current_journal.save end diff --git a/lib/redmine_dmsf/patches/project_patch.rb b/lib/redmine_dmsf/patches/project_patch.rb index 22019e11..6dc0195e 100644 --- a/lib/redmine_dmsf/patches/project_patch.rb +++ b/lib/redmine_dmsf/patches/project_patch.rb @@ -47,22 +47,22 @@ module RedmineDmsf def self.prepended(base) base.class_eval do has_many :dmsf_files, -> { where(dmsf_folder_id: nil).order(:name) }, - :class_name => 'DmsfFile', :foreign_key => 'project_id', :dependent => :destroy - has_many :dmsf_folders, ->{ where(:dmsf_folder_id => nil).order(:title) }, - :class_name => 'DmsfFolder', :foreign_key => 'project_id', :dependent => :destroy - has_many :dmsf_workflows, :dependent => :destroy + class_name: 'DmsfFile', foreign_key: 'project_id', dependent: :destroy + has_many :dmsf_folders, ->{ where(dmsf_folder_id: nil).order(:title) }, + class_name: 'DmsfFolder', foreign_key: 'project_id', dependent: :destroy + has_many :dmsf_workflows, dependent: :destroy has_many :folder_links, -> { where dmsf_folder_id: nil, target_type: 'DmsfFolder' }, - :class_name => 'DmsfLink', :foreign_key => 'project_id', :dependent => :destroy + class_name: 'DmsfLink', foreign_key: 'project_id', dependent: :destroy has_many :file_links, -> { where dmsf_folder_id: nil, target_type: 'DmsfFile' }, - :class_name => 'DmsfLink', :foreign_key => 'project_id', :dependent => :destroy + class_name: 'DmsfLink', foreign_key: 'project_id', dependent: :destroy has_many :url_links, -> { where dmsf_folder_id: nil, target_type: 'DmsfUrl' }, - :class_name => 'DmsfLink', :foreign_key => 'project_id', :dependent => :destroy + class_name: 'DmsfLink', foreign_key: 'project_id', dependent: :destroy has_many :dmsf_links, -> { where dmsf_folder_id: nil }, - :class_name => 'DmsfLink', :foreign_key => 'project_id', :dependent => :destroy + class_name: 'DmsfLink', foreign_key: 'project_id', dependent: :destroy before_save :set_default_dmsf_notification - validates_length_of :dmsf_description, :maximum => 65535 + validates_length_of :dmsf_description, maximum: 65535 const_set(:ATTACHABLE_DMS_AND_ATTACHMENTS, 1) const_set(:ATTACHABLE_ATTACHMENTS, 2) @@ -82,7 +82,7 @@ module RedmineDmsf DmsfLink.where(project_id: id, target_type: %(DmsfFile DmsfUrl)).all.size folder_count = DmsfFolder.where(project_id: id).all.size + DmsfLink.where(project_id: id, target_type: 'DmsfFolder').all.size - { :files => file_count, :folders => folder_count } + { files: file_count, folders: folder_count } end # Simple yet effective approach to copying things diff --git a/lib/redmine_dmsf/patches/queries_helper_patch.rb b/lib/redmine_dmsf/patches/queries_helper_patch.rb index 721bfa48..bce028df 100644 --- a/lib/redmine_dmsf/patches/queries_helper_patch.rb +++ b/lib/redmine_dmsf/patches/queries_helper_patch.rb @@ -70,7 +70,7 @@ module RedmineDmsf if item.deleted && (item.deleted > 0) tag = content_tag('span', value, class: 'icon icon-folder') else - tag = "".html_safe + + tag = "".html_safe + link_to(h(value), dmsf_folder_path(id: item.project_id, folder_id: item.id), class: 'icon icon-folder', @@ -116,7 +116,7 @@ module RedmineDmsf h(value) end when :size - number_to_human_size(value) + number_to_human_size value when :workflow if value if item.workflow_id && (!(item.deleted && (item.deleted > 0))) @@ -137,6 +137,19 @@ module RedmineDmsf end end + def csv_value(column, object, value) + case column.name + when :size + ActiveSupport::NumberHelper.number_to_human_size value + when :workflow + DmsfWorkflow.workflow_str(value.to_i) + when :author + "#{object.firstname} #{object.lastname}" + else + super column, object, value + end + end + end end end diff --git a/lib/redmine_dmsf/patches/role_patch.rb b/lib/redmine_dmsf/patches/role_patch.rb index 9da055c2..0a008b7a 100644 --- a/lib/redmine_dmsf/patches/role_patch.rb +++ b/lib/redmine_dmsf/patches/role_patch.rb @@ -35,8 +35,7 @@ module RedmineDmsf def remove_dmsf_references return if self.id.nil? substitute = Role.anonymous - DmsfFolderPermission.where(:object_id => self.id, :object_type => 'Role').update_all( - :object_id => substitute.id) + DmsfFolderPermission.where(object_id: self.id, object_type: 'Role').update_all object_id: substitute.id end end diff --git a/lib/redmine_dmsf/patches/user_preference_patch.rb b/lib/redmine_dmsf/patches/user_preference_patch.rb index 294ca212..a1d7e186 100644 --- a/lib/redmine_dmsf/patches/user_preference_patch.rb +++ b/lib/redmine_dmsf/patches/user_preference_patch.rb @@ -28,18 +28,10 @@ module RedmineDmsf def self.included(base) base.class_eval do - safe_attributes 'dmsf_tree_view', 'dmsf_attachments_upload_choice' if self.included_modules.include?(Redmine::SafeAttributes) + safe_attributes 'dmsf_attachments_upload_choice' if self.included_modules.include?(Redmine::SafeAttributes) end end - def dmsf_tree_view - self[:dmsf_tree_view] || '1' - end - - def dmsf_tree_view=(value) - self[:dmsf_tree_view] = value - end - def dmsf_attachments_upload_choice self[:dmsf_attachments_upload_choice] || 'DMSF' end diff --git a/lib/redmine_dmsf/webdav/dmsf_resource.rb b/lib/redmine_dmsf/webdav/dmsf_resource.rb index 0c0f5e59..30e42935 100644 --- a/lib/redmine_dmsf/webdav/dmsf_resource.rb +++ b/lib/redmine_dmsf/webdav/dmsf_resource.rb @@ -221,7 +221,7 @@ module RedmineDmsf # Behavioural differences between collection and single entity # TODO: Support overwrite between both types of entity, and implement better checking def move(dest, overwrite) - dest = @__proxy.class.new(dest, @request, @response, @options.merge(:user => @user)) + dest = @__proxy.class.new(dest, @request, @response, @options.merge(user: @user)) # All of this should carry across the ResourceProxy frontend, we ensure this to # prevent unexpected errors resource = dest.is_a?(ResourceProxy) ? dest.resource : dest @@ -333,7 +333,7 @@ module RedmineDmsf # Behavioural differences between collection and single entity # TODO: Support overwrite between both types of entity, and an integrative copy where destination exists for collections def copy(dest, overwrite, depth) - dest = @__proxy.class.new(dest, @request, @response, @options.merge(:user => @user)) + dest = @__proxy.class.new(dest, @request, @response, @options.merge(user: @user)) # All of this should carry across the ResourceProxy frontend, we ensure this to # prevent unexpected errors if dest.is_a?(ResourceProxy) diff --git a/lib/tasks/dmsf_convert_documents.rake b/lib/tasks/dmsf_convert_documents.rake index 648ac790..130ac78e 100644 --- a/lib/tasks/dmsf_convert_documents.rake +++ b/lib/tasks/dmsf_convert_documents.rake @@ -69,11 +69,11 @@ class DmsfConvertDocuments folder = DmsfFolder.new folder.project = project - attachment = document.attachments.reorder(:created_on => :asc).first + attachment = document.attachments.reorder(created_on: :asc).first if attachment folder.user = attachment.author else - folder.user = User.active.where(:admin => true).first + folder.user = User.active.where(admin: true).first end folder.title = document.title @@ -159,7 +159,7 @@ class DmsfConvertDocuments revision.disk_filename = revision.new_storage_filename unless dry - FileUtils.cp(attachment.diskfile, revision.disk_file(false)) + FileUtils.cp attachment.diskfile, revision.disk_file(false) revision.size = File.size(revision.disk_file(false)) end diff --git a/lib/tasks/dmsf_create_digests.rake b/lib/tasks/dmsf_create_digests.rake index cc941eab..97eb6336 100644 --- a/lib/tasks/dmsf_create_digests.rake +++ b/lib/tasks/dmsf_create_digests.rake @@ -48,7 +48,7 @@ class DmsfDigest end def create_digests - revisions = DmsfFileRevision.where(['digest IS NULL OR length(digest) < ?', @force_sha256 ? 64 : 32]).all + revisions = DmsfFileRevision.where(['digest IS NULL OR length(digest) < ?', @force_sha256 ? 64 : 32]) count = revisions.count n = 0 revisions.each_with_index do |rev, i| diff --git a/lib/tasks/dmsf_maintenance.rake b/lib/tasks/dmsf_maintenance.rake index 06e92c8c..72e53ef5 100644 --- a/lib/tasks/dmsf_maintenance.rake +++ b/lib/tasks/dmsf_maintenance.rake @@ -91,7 +91,7 @@ class DmsfMaintenance puts "\n#{@files_to_delete.count} files havn't got a coresponding revision and can be deleted." puts "#{number_to_human_size(size)} can be released.\n\n" # Links - size = DmsfLink.where(:project_id => -1).count + size = DmsfLink.where(project_id: -1).count puts "#{size} links can be deleted.\n\n" # Documents puts "#{@documents_to_delete.size} corrupted documents.\n\n" @@ -107,8 +107,8 @@ class DmsfMaintenance puts "\n#{@files_to_delete.count} files hadn't got a coresponding revision and have been be deleted." puts "#{number_to_human_size(size)} has been released\n\n" # Links - size = DmsfLink.where(:project_id => -1).count - DmsfLink.where(:project_id => -1).delete_all + size = DmsfLink.where(project_id: -1).count + DmsfLink.where(project_id: -1).delete_all puts "#{size} links have been deleted.\n\n" end @@ -117,7 +117,7 @@ class DmsfMaintenance def check_file(file) name = Pathname.new(file).basename.to_s if name =~ /^\d+_\d+_.*/ - n = DmsfFileRevision.where(:disk_filename => name).count + n = DmsfFileRevision.where(disk_filename: name).count unless n > 0 @files_to_delete << file puts "\t#{file}\t#{number_to_human_size(File.size(file))}" diff --git a/test/functional/dmsf_controller_test.rb b/test/functional/dmsf_controller_test.rb index 5d55bd88..35b7f12c 100644 --- a/test/functional/dmsf_controller_test.rb +++ b/test/functional/dmsf_controller_test.rb @@ -79,7 +79,7 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase def test_edit_folder_forbidden # Missing permissions - get :edit, :params => {:id => @project, :folder_id => @folder1} + get :edit, params: { id: @project, folder_id: @folder1 } assert_response :forbidden end @@ -112,21 +112,21 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase def test_trash_forbidden # Missing permissions - get :trash, :params => {:id => @project} + get :trash, params: { id: @project } assert_response :forbidden end def test_trash_allowed # Permissions OK @role.add_permission! :file_delete - get :trash, :params => {:id => @project} + get :trash, params: { id: @project } assert_response :success - assert_select 'h2', { :text => l(:link_trash_bin) } + assert_select 'h2', { text: l(:link_trash_bin) } end def test_delete_forbidden # Missing permissions - get :delete, :params => {:id => @project, :folder_id => @folder1.id, :commit => false} + get :delete, params: { id: @project, folder_id: @folder1.id, commit: false } assert_response :forbidden end @@ -159,30 +159,30 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase # Missing permissions @folder4.deleted = 1 @folder4.save - get :restore, :params => {:id => @project, :folder_id => @folder4.id} + get :restore, params: { id: @project, folder_id: @folder4.id } assert_response :forbidden end def test_restore_ok # Permissions OK - @request.env['HTTP_REFERER'] = trash_dmsf_path(:id => @project.id) + @request.env['HTTP_REFERER'] = trash_dmsf_path(id: @project.id) @role.add_permission! :folder_manipulation @folder1.deleted = 1 @folder1.save - get :restore, :params => {:id => @project, :folder_id => @folder1.id} + get :restore, params: { id: @project, folder_id: @folder1.id } assert_response :redirect end def test_delete_entries_forbidden # Missing permissions - 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}"]} + 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 :forbidden end def test_delete_not_empty # Permissions OK but the folder is not empty - @request.env['HTTP_REFERER'] = dmsf_folder_path(:id => @project.id) + @request.env['HTTP_REFERER'] = dmsf_folder_path(id: @project.id) @role.add_permission! :folder_manipulation @role.add_permission! :view_dmsf_files get :entries_operation, params: { id: @project, delete_entries: 'Delete', @@ -193,7 +193,7 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase def test_delete_entries_ok # Permissions OK - @request.env['HTTP_REFERER'] = dmsf_folder_path(:id => @project.id) + @request.env['HTTP_REFERER'] = dmsf_folder_path(id: @project.id) @role.add_permission! :view_dmsf_files @role.add_permission! :folder_manipulation @role.add_permission! :file_delete @@ -207,7 +207,7 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase def test_restore_entries # Restore @role.add_permission! :view_dmsf_files - @request.env['HTTP_REFERER'] = trash_dmsf_path(:id => @project.id) + @request.env['HTTP_REFERER'] = trash_dmsf_path(id: @project.id) flash[:error] = nil get :entries_operation, params: { id: @project, restore_entries: 'Restore', ids: ["file-#{@file1.id}", "file-link-#{@file_link2.id}"]} @@ -223,28 +223,10 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase assert_select 'tr.dmsf_tree' end - def test_show_tag - @role.add_permission! :view_dmsf_files - @role.add_permission! :view_dmsf_folders - get :show, params: { id: @project.id, custom_field_id: 21, custom_value: 'Technical documentation' } - assert_response :success - assert_select 'tr.dmsf_tree', count: 0 - end - - def test_show_tree_view - @role.add_permission! :view_dmsf_files - @role.add_permission! :view_dmsf_folders - @manager.pref.dmsf_tree_view = '0' - @manager.preference.save - get :show, params: { id: @project.id } - assert_response :success - assert_select 'tr.dmsf_tree', count: 0 - end - def test_show_csv @role.add_permission! :view_dmsf_files @role.add_permission! :view_dmsf_folders - get :show, :params => {id: @project.id, format: 'csv', :settings => { dmsf_columns: %w(id title) }} + get :show, params: { id: @project.id, format: 'csv' } assert_response :success assert @response.content_type.match?(/^text\/csv/) end @@ -253,19 +235,19 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase @role.add_permission! :view_dmsf_files @role.add_permission! :view_dmsf_folders # project1 X project2.folder3 - get :show, :params => {:id => @project.id, :folder_id => @folder3.id} + get :show, params: { id: @project.id, folder_id: @folder3.id } assert_response :not_found end def test_new_forbidden @role.remove_permission! :folder_manipulation - get :new, :params => {:id => @project, :parent_id => nil} + get :new, params: { id: @project, parent_id: nil } assert_response :forbidden end def test_new @role.add_permission! :folder_manipulation - get :new, :params => {:id => @project, :parent_id => nil} + get :new, params: { id: @project, parent_id: nil } assert_response :success end @@ -280,7 +262,7 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase Setting.plugin_redmine_dmsf['dmsf_documents_email_from'] = 'karel.picman@kontron.com' @role.add_permission! :view_dmsf_files @role.add_permission! :email_documents - get :entries_operation, :params => {:id => @project, :email_entries => 'Email', :ids => ["file-#{@file1.id}"]} + get :entries_operation, params: { id: @project, email_entries: 'Email', ids: ["file-#{@file1.id}"]} assert_response :success assert_select "input:match('value', ?)", Setting.plugin_redmine_dmsf['dmsf_documents_email_from'] end @@ -289,7 +271,7 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase Setting.plugin_redmine_dmsf['dmsf_documents_email_reply_to'] = 'karel.picman@kontron.com' @role.add_permission! :view_dmsf_files @role.add_permission! :email_documents - get :entries_operation, :params => {:id => @project, :email_entries => 'Email', :ids => ["file-#{@file1.id}"]} + get :entries_operation, params: { id: @project, email_entries: 'Email', ids: ["file-#{@file1.id}"]} assert_response :success assert_select "input:match('value', ?)", Setting.plugin_redmine_dmsf['dmsf_documents_email_reply_to'] end @@ -298,7 +280,7 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase Setting.plugin_redmine_dmsf['dmsf_documents_email_links_only'] = '1' @role.add_permission! :view_dmsf_files @role.add_permission! :email_documents - get :entries_operation, :params => {:id => @project, :email_entries => 'Email', :ids => ["file-#{@file1.id}"]} + get :entries_operation, params: { id: @project, email_entries: 'Email', ids: ["file-#{@file1.id}"]} assert_response :success assert_select "input:match('value', ?)", Setting.plugin_redmine_dmsf['dmsf_documents_email_links_only'] end @@ -318,35 +300,35 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase end def test_add_email_forbidden - get :add_email, :params => {id: @project.id}, :xhr => true + get :add_email, params: { id: @project.id }, xhr: true assert_response :forbidden end def test_add_email @role.add_permission! :view_dmsf_files - get :add_email, :params => {id: @project.id}, :xhr => true + get :add_email, params: { id: @project.id }, xhr: true assert_response :success end def test_append_email_forbidden - post :append_email, :params => {:id => @project, :user_ids => @project.members.collect{ |m| m.user.id }, :format => 'js'} + post :append_email, params: { id: @project, user_ids: @project.members.collect{ |m| m.user.id }, format: 'js'} assert_response :forbidden end def test_append_email @role.add_permission! :view_dmsf_files - post :append_email, :params => {:id => @project, :user_ids => @project.members.collect{ |m| m.user.id }, :format => 'js'} + post :append_email, params: { id: @project, user_ids: @project.members.collect{ |m| m.user.id }, format: 'js'} assert_response :success end def test_autocomplete_for_user_forbidden - get :autocomplete_for_user, :params => {id: @project.id}, :xhr => true + get :autocomplete_for_user, params: { id: @project.id }, xhr: true assert_response :forbidden end def test_autocomplete_for_user @role.add_permission! :view_dmsf_files - get :autocomplete_for_user, :params => {id: @project}, :xhr => true + get :autocomplete_for_user, params: { id: @project }, xhr: true assert_response :success end @@ -354,24 +336,19 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase @role.add_permission! :folder_manipulation @role.add_permission! :view_dmsf_folders assert_difference 'DmsfFolder.count', +1 do - post :create, :params => {:id => @project.id, :dmsf_folder => { - :title => 'New folder', - :description => 'Unit tests' - }} + post :create, params: { id: @project.id, dmsf_folder: { title: 'New folder', description: 'Unit tests' } } end - assert_redirected_to dmsf_folder_path(:id => @project, :folder_id => nil) + assert_redirected_to dmsf_folder_path(id: @project, folder_id: nil) end def test_create_folder @role.add_permission! :folder_manipulation @role.add_permission! :view_dmsf_folders assert_difference 'DmsfFolder.count', +1 do - post :create, :params => {:id => @project.id, :parent_id => @folder1.id, :dmsf_folder => { - :title => 'New folder', - :description => 'Unit tests' - }} + post :create, params: { id: @project.id, parent_id: @folder1.id, + dmsf_folder: { title: 'New folder', description: 'Unit tests' } } end - assert_redirected_to dmsf_folder_path(:id => @project, :folder_id => @folder1) + assert_redirected_to dmsf_folder_path(id: @project, folder_id: @folder1) end end \ No newline at end of file diff --git a/test/functional/dmsf_files_controller_test.rb b/test/functional/dmsf_files_controller_test.rb index baf7b135..3591d296 100644 --- a/test/functional/dmsf_files_controller_test.rb +++ b/test/functional/dmsf_files_controller_test.rb @@ -58,32 +58,32 @@ class DmsfFilesControllerTest < RedmineDmsf::Test::TestCase def test_show_file_ok # Permissions OK @role.add_permission! :view_dmsf_files - get :show, :params => {:id => @file.id} + get :show, params: { id: @file.id } assert_response :success end def test_show_file_forbidden # Missing permissions - get :show, :params => {:id => @file.id} + get :show, params: { id: @file.id } assert_response :forbidden end def test_view_file_ok # Permissions OK @role.add_permission! :view_dmsf_files - get :view, :params => {:id => @file.id} + get :view, params: { id: @file.id } assert_response :success end def test_view_file_forbidden # Missing permissions - get :view, :params => {:id => @file.id} + get :view, params: { id: @file.id } assert_response :forbidden end def delete_forbidden # Missing permissions - delete @file, :params => {:commit => false} + delete @file, params: { commit: false } assert_response :forbidden end @@ -106,12 +106,12 @@ class DmsfFilesControllerTest < RedmineDmsf::Test::TestCase def test_obsolete_revision_ok @role.add_permission! :file_manipulation - get :obsolete_revision, :params => {:id => @file.last_revision.id} - assert_redirected_to :action => 'show', :id => @file + get :obsolete_revision, params: { id: @file.last_revision.id } + assert_redirected_to action: 'show', id: @file end def test_obsolete_revision_missing_permissions - get :obsolete_revision, :params => {:id => @file.last_revision.id} + get :obsolete_revision, params: { id: @file.last_revision.id } assert :forbiden end diff --git a/test/functional/dmsf_files_copy_controller_test.rb b/test/functional/dmsf_files_copy_controller_test.rb index 23696922..9729c0cb 100644 --- a/test/functional/dmsf_files_copy_controller_test.rb +++ b/test/functional/dmsf_files_copy_controller_test.rb @@ -73,127 +73,127 @@ class DmsfFilesCopyControllerTest < RedmineDmsf::Test::TestCase def test_authorize_admin @request.session[:user_id] = @user_admin.id - get :new, :params => {:id => @file1.id} + get :new, params: { id: @file1.id } assert_response :success assert_template 'new' end def test_authorize_non_member @request.session[:user_id] = @user_non_member.id - get :new, :params => {:id => @file1.id} + get :new, params: { id: @file1.id } assert_response :forbidden end def test_authorize_member_no_module @project1.disable_module!(:dmsf) - get :new, :params => {:id => @file1.id} + get :new, params: { id: @file1.id } assert_response :forbidden end def test_authorize_forbidden @role_manager.remove_permission! :file_manipulation - get :new, :params => {:id => @file1.id} + get :new, params: { id: @file1.id } assert_response :forbidden end def test_target_folder - get :new, :params => {:id => @file1.id, :target_folder_id => @folder1.id} + get :new, params: { id: @file1.id, target_folder_id: @folder1.id } assert_response :success assert_template 'new' end def test_target_folder_forbidden @role_manager.remove_permission! :view_dmsf_folders - get :new, :params => {:id => @file1.id, :target_folder_id => @folder1.id} + get :new, params: { id: @file1.id, target_folder_id: @folder1.id } assert_response :not_found end def test_target_project - get :new, :params => {:id => @file1.id, :target_project_id => @project1.id} + get :new, params: { id: @file1.id, target_project_id: @project1.id } assert_response :success assert_template 'new' end def test_new - get :new, :params => {:id => @file1.id} + get :new, params: { id: @file1.id } assert_response :success assert_template 'new' end def test_copy - post :copy, :params => {:id => @file1.id, :target_project_id => @project1.id, :target_folder_id => @folder1.id} + post :copy, params: { id: @file1.id, target_project_id: @project1.id, target_folder_id: @folder1.id } assert_response :redirect assert_nil flash[:error] 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} + 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_redirected_to :action => 'new', :target_project_id => @file1.project.id, :target_folder_id => @file1.dmsf_folder + assert_redirected_to action: 'new', target_project_id: @file1.project.id, target_folder_id: @file1.dmsf_folder end def test_copy_to_locked_folder @folder1.lock! - post :copy, :params => {:id => @file1.id, :target_project_id => @file1.project.id, :target_folder_id => @folder1.id} + post :copy, params: { id: @file1.id, target_project_id: @file1.project.id, target_folder_id: @folder1.id } assert_response :forbidden end def test_copy_to_dmsf_not_enabled - post :copy, :params => {:id => @file1.id, :target_project_id => @project5.id, :target_folder_id => nil} + post :copy, params: { id: @file1.id, target_project_id: @project5.id, target_folder_id: nil } assert_response :forbidden end def test_copy_to_dmsf_enabled @project5.enable_module!(:dmsf) - post :copy, :params => {:id => @file1.id, :target_project_id => @project5.id, :target_folder_id => nil} + post :copy, params: { id: @file1.id, target_project_id: @project5.id, target_folder_id: nil } assert_response :redirect assert_nil flash[:error] end def test_copy_to_as_non_member - post :copy, :params => {:id => @file1.id, :target_project_id => @project2.id, :target_folder_id => nil} + post :copy, params: { id: @file1.id, target_project_id: @project2.id, target_folder_id: nil } assert_response :forbidden end def test_move - post :move, :params => {:id => @file1.id, :target_project_id => @project1.id, :target_folder_id => @folder1.id} + post :move, params: { id: @file1.id, target_project_id: @project1.id, target_folder_id: @folder1.id } assert_response :redirect assert_nil flash[:error] 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} + 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_redirected_to :action => 'new', :target_project_id => @file1.project.id, :target_folder_id => @file1.dmsf_folder + assert_redirected_to action: 'new', target_project_id: @file1.project.id, target_folder_id: @file1.dmsf_folder end def test_move_to_locked @file1.lock! - post :move, :params => {:id => @file1.id, :target_project_id => @file1.project.id, :target_folder_id => @folder1.id} + 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] end def test_move_to_locked_folder @folder1.lock! - post :move, :params => {:id => @file1.id, :target_project_id => @file1.project.id, :target_folder_id => @folder1.id} + post :move, params: { id: @file1.id, target_project_id: @file1.project.id, target_folder_id: @folder1.id } assert_response :forbidden end def test_move_to_dmsf_not_enabled - post :move, :params => {:id => @file1.id, :target_project_id => @project5.id, :target_folder_id => nil} + post :move, params: { id: @file1.id, target_project_id: @project5.id, target_folder_id: nil } assert_response :forbidden end def test_move_to_dmsf_enabled - @project5.enable_module!(:dmsf) - post :move, :params => {:id => @file1.id, :target_project_id => @project5.id, :target_folder_id => nil} + @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] end def test_move_to_as_non_member - post :move, :params => {:id => @file1.id, :target_project_id => @project2.id, :target_folder_id => nil} + post :move, params: { id: @file1.id, target_project_id: @project2.id, target_folder_id: nil } assert_response :forbidden end diff --git a/test/functional/dmsf_folder_permissions_controller_test.rb b/test/functional/dmsf_folder_permissions_controller_test.rb index 971c1959..88f0c075 100644 --- a/test/functional/dmsf_folder_permissions_controller_test.rb +++ b/test/functional/dmsf_folder_permissions_controller_test.rb @@ -47,21 +47,21 @@ class DmsfFolderPermissionsControllerTest < RedmineDmsf::Test::TestCase end def test_new - get :new, params: { project_id: @project1, dmsf_folder_id: @folder7, format: 'js'}, xhr: true + get :new, params: { project_id: @project1, dmsf_folder_id: @folder7, format: 'js' }, xhr: true assert_response :success assert_template 'new' assert_equal 'text/javascript', response.content_type end def test_autocomplete_for_user - get :autocomplete_for_user, params: { project_id: @project1, dmsf_folder_id: @folder7, q: 'smi', format: 'js'}, + get :autocomplete_for_user, params: { project_id: @project1, dmsf_folder_id: @folder7, q: 'smi', format: 'js' }, xhr: true assert_response :success assert_include 'John Smith', response.body end def test_append - get :new, params: { project_id: @project1, dmsf_folder_id: @folder7, user_ids: [@manager.id], format: 'js'}, + get :new, params: { project_id: @project1, dmsf_folder_id: @folder7, user_ids: [@manager.id], format: 'js' }, xhr: true assert_response :success assert_template 'new' diff --git a/test/functional/dmsf_folders_copy_controller_test.rb b/test/functional/dmsf_folders_copy_controller_test.rb index 87b517f2..bb665663 100644 --- a/test/functional/dmsf_folders_copy_controller_test.rb +++ b/test/functional/dmsf_folders_copy_controller_test.rb @@ -38,7 +38,7 @@ class DmsfFoldersCopyControllerTest < RedmineDmsf::Test::TestCase @user_admin = User.find 1 @user_member = User.find 2 @user_non_member = User.find 3 - @role_manager = Role.where(:name => 'Manager').first + @role_manager = Role.where(name: 'Manager').first User.current = nil @request.session[:user_id] = @user_member.id # John Smith - manager @dmsf_storage_directory = Setting.plugin_redmine_dmsf['dmsf_storage_directory'] @@ -74,55 +74,55 @@ class DmsfFoldersCopyControllerTest < RedmineDmsf::Test::TestCase def test_authorize_admin @request.session[:user_id] = @user_admin.id - get :new, :params => {:id => @folder1.id} + get :new, params: { id: @folder1.id } assert_response :success assert_template 'new' end def test_authorize_non_member @request.session[:user_id] = @user_non_member.id - get :new, :params => {:id => @folder1.id} + get :new, params: { id: @folder1.id } assert_response :forbidden end def test_authorize_member_no_module @project1.disable_module!(:dmsf) - get :new, :params => {:id => @folder1.id} + get :new, params: { id: @folder1.id } assert_response :forbidden end def test_authorize_forbidden @role_manager.remove_permission! :folder_manipulation - get :new, :params => {:id => @folder1.id} + get :new, params: { id: @folder1.id } assert_response :forbidden end def test_target_folder - get :new, :params => {:id => @folder1.id, :target_folder_id => @folder2.id} + get :new, params: { id: @folder1.id, target_folder_id: @folder2.id } assert_response :success assert_template 'new' end def test_target_folder_forbidden @role_manager.remove_permission! :view_dmsf_folders - get :new, :params => {:id => @folder1.id, :target_folder_id => @folder2.id} + get :new, params: { id: @folder1.id, target_folder_id: @folder2.id } assert_response :forbidden end def test_target_project - get :new, :params => {:id => @folder1.id, :target_project_id => @project1.id} + get :new, params: { id: @folder1.id, target_project_id: @project1.id } assert_response :success assert_template 'new' end def test_new - get :new, :params => {:id => @folder1.id} + get :new, params: { id: @folder1.id } assert_response :success assert_template 'new' end def test_copy - post :copy, :params => {:id => @folder1.id, :target_project_id => @project1.id, :target_folder_id => @folder6.id} + post :copy, params: { id: @folder1.id, target_project_id: @project1.id, target_folder_id: @folder6.id } assert_response :redirect assert_nil flash[:error] end @@ -131,77 +131,76 @@ class DmsfFoldersCopyControllerTest < RedmineDmsf::Test::TestCase @request.session[:user_id] = @user_admin.id @project2.enable_module!(:dmsf) assert_equal @project1.id, @folder1.project_id - post :copy, :params => {:id => @folder1.id, :target_project_id => @project2.id} + post :copy, params: { id: @folder1.id, target_project_id: @project2.id } assert_response :redirect assert_nil flash[:error] end def test_copy_the_same_target - post :copy, :params => {:id => @folder1.id, :target_project_id => @folder1.project.id, :target_folder_id => @folder1.dmsf_folder} + 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_redirected_to :action => 'new', :target_project_id => @folder1.project.id, - :target_folder_id => @folder1.dmsf_folder + assert_redirected_to action: 'new', target_project_id: @folder1.project.id, target_folder_id: @folder1.dmsf_folder end def test_copy_to_locked_folder - post :copy, :params => {:id => @folder1.id, :target_project_id => @folder1.project.id, :target_folder_id => @folder2.id} + post :copy, params: { id: @folder1.id, target_project_id: @folder1.project.id, target_folder_id: @folder2.id } assert_response :forbidden end def test_copy_to_dmsf_not_enabled - post :copy, :params => {:id => @folder1.id, :target_project_id => @project5.id, :target_folder_id => nil} + post :copy, params: { id: @folder1.id, target_project_id: @project5.id, target_folder_id: nil } assert_response :forbidden end def test_copy_to_dmsf_enabled @project5.enable_module!(:dmsf) - post :copy, :params => {:id => @folder1.id, :target_project_id => @project5.id, :target_folder_id => nil} + post :copy, params: { id: @folder1.id, target_project_id: @project5.id, target_folder_id: nil } assert_response :redirect assert_nil flash[:error] end def test_copy_to_as_non_member - post :copy, :params => {:id => @folder1.id, :target_project_id => @project2.id, :target_folder_id => nil} + post :copy, params: { id: @folder1.id, target_project_id: @project2.id, target_folder_id: nil } assert_response :forbidden end def test_move - post :move, :params => {:id => @folder1.id, :target_project_id => @project1.id, :target_folder_id => @folder6.id} + post :move, params: { id: @folder1.id, target_project_id: @project1.id, target_folder_id: @folder6.id } assert_response :redirect assert_nil flash[:error] 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} + 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_redirected_to :action => 'new', :target_project_id => @folder1.project.id, :target_folder_id => @folder1.dmsf_folder + assert_redirected_to action: 'new', target_project_id: @folder1.project.id, target_folder_id: @folder1.dmsf_folder end def test_move_to_locked @folder1.lock! - post :move, :params => {:id => @folder1.id, :target_project_id => @folder1.project.id, :target_folder_id => @folder2.id} + post :move, params: { id: @folder1.id, target_project_id: @folder1.project.id, target_folder_id: @folder2.id } assert_response :forbidden end def test_move_to_locked_folder - post :move, :params => {:id => @folder1.id, :target_project_id => @folder2.project.id, :target_folder_id => @folder2.id} + post :move, params: { id: @folder1.id, target_project_id: @folder2.project.id, target_folder_id: @folder2.id } assert_response :forbidden end def test_move_to_dmsf_not_enabled - post :move, :params => {:id => @folder1.id, :target_project_id => @project5.id, :target_folder_id => nil} + post :move, params: { id: @folder1.id, target_project_id: @project5.id, target_folder_id: nil } assert_response :forbidden end def test_move_to_dmsf_enabled @project5.enable_module!(:dmsf) - post :move, :params => {:id => @folder1.id, :target_project_id => @project5.id, :target_folder_id => nil} + post :move, params: { id: @folder1.id, target_project_id: @project5.id, target_folder_id: nil } assert_response :redirect assert_nil flash[:error] end def test_move_to_as_non_member - post :move, :params => {:id => @folder1.id, :target_project_id => @project2.id, :target_folder_id => nil} + post :move, params: { id: @folder1.id, target_project_id: @project2.id, target_folder_id: nil } assert_response :forbidden end @@ -209,7 +208,7 @@ class DmsfFoldersCopyControllerTest < RedmineDmsf::Test::TestCase @request.session[:user_id] = @user_admin.id @project2.enable_module!(:dmsf) assert_equal @project1.id, @folder1.project_id - post :move, :params => {:id => @folder1.id, :target_project_id => @project2.id} + post :move, params: { id: @folder1.id, target_project_id: @project2.id } assert_response :redirect assert_nil flash[:error] end diff --git a/test/functional/dmsf_links_controller_test.rb b/test/functional/dmsf_links_controller_test.rb index 19af82c0..dacda952 100644 --- a/test/functional/dmsf_links_controller_test.rb +++ b/test/functional/dmsf_links_controller_test.rb @@ -74,27 +74,27 @@ class DmsfLinksControllerTest < RedmineDmsf::Test::TestCase def test_authorize_admin @request.session[:user_id] = @user_admin.id - get :new, :params => {:project_id => @project1.id} + get :new, params: { project_id: @project1.id } assert_response :success assert_template 'new' end def test_authorize_non_member @request.session[:user_id] = @user_non_member.id - get :new, :params => {:project_id => @project2.id} + get :new, params: { project_id: @project2.id } assert_response :forbidden end def test_authorize_member_ok @request.session[:user_id] = @user_member.id - get :new, :params => {:project_id => @project1.id} + get :new, params: { project_id: @project1.id } assert_response :success end def test_authorize_member_no_module # Without the module @project1.disable_module!(:dmsf) - get :new, :params => {:project_id => @project1.id} + get :new, params: { project_id: @project1.id } assert_response :forbidden end @@ -102,152 +102,152 @@ class DmsfLinksControllerTest < RedmineDmsf::Test::TestCase # Without permissions @project1.enable_module!(:dmsf) @role_manager.remove_permission! :file_manipulation - get :new, :params => {:project_id => @project1.id} + get :new, params: { project_id: @project1.id } assert_response :forbidden end def test_new - get :new, :params => {:project_id => @project1.id, :type => 'link_to'} + get :new, params: { project_id: @project1.id, type: 'link_to'} assert_response :success - assert_select 'label', { :text => l(:label_target_project) } + assert_select 'label', { text: l(:label_target_project) } end def test_new_fast_links_enabled - member = Member.where(:user_id => @user_member.id, :project_id => @project1.id).first + member = Member.where(user_id: @user_member.id, project_id: @project1.id).first assert member member.update_attribute :dmsf_fast_links, true - get :new, :params => {:project_id => @project1.id, :type => 'link_to'} + get :new, params: { project_id: @project1.id, type: 'link_to'} assert_response :success - assert_select 'label', { :count => 0, :text => l(:label_target_project) } + assert_select 'label', { count: 0, text: l(:label_target_project) } end def test_create_file_link_from_f1 # 1. File link in a folder from another folder assert_difference 'DmsfLink.count', +1 do - post :create, :params => {:dmsf_link => { - :project_id => @project1.id, - :target_project_id => @project2.id, - :dmsf_folder_id => @folder1.id, - :target_file_id => @file6.id, - :target_folder_id => @folder3.id, - :name => 'file_link', - :type => 'link_from' + post :create, params: { dmsf_link: { + project_id: @project1.id, + target_project_id: @project2.id, + dmsf_folder_id: @folder1.id, + target_file_id: @file6.id, + target_folder_id: @folder3.id, + name: 'file_link', + type: 'link_from' }} end - assert_redirected_to dmsf_folder_path(:id => @project1.id, :folder_id => @folder1.id) + assert_redirected_to dmsf_folder_path(id: @project1.id, folder_id: @folder1.id) end def test_create_file_link_from_f2 # 2. File link in a folder from another root folder assert_difference 'DmsfLink.count', +1 do - post :create, :params => {:dmsf_link => { - :project_id => @project1.id, - :dmsf_folder_id => @folder1.id, - :target_project_id => @project2.id, - :target_file_id => @file2.id, - :target_folder_id => 'Documents', - :name => 'file_link', - :type => 'link_from' + post :create, params: { dmsf_link: { + project_id: @project1.id, + dmsf_folder_id: @folder1.id, + target_project_id: @project2.id, + target_file_id: @file2.id, + target_folder_id: 'Documents', + name: 'file_link', + type: 'link_from' }} end - assert_redirected_to dmsf_folder_path(:id => @project1.id, :folder_id => @folder1.id) + assert_redirected_to dmsf_folder_path(id: @project1.id, folder_id: @folder1.id) end def test_create_file_link_from_f3 # 3. File link in a root folder from another folder assert_difference 'DmsfLink.count', +1 do - post :create, :params => {:dmsf_link => { - :project_id => @project1.id, - :target_project_id => @project2.id, - :target_file_id => @file6.id, - :target_folder_id => @folder3.id, - :name => 'file_link', - :type => 'link_from' + post :create, params: { dmsf_link: { + project_id: @project1.id, + target_project_id: @project2.id, + target_file_id: @file6.id, + target_folder_id: @folder3.id, + name: 'file_link', + type: 'link_from' }} end - assert_redirected_to dmsf_folder_path(:id => @project1.id) + assert_redirected_to dmsf_folder_path(id: @project1.id) end def test_create_file_link_from_f4 # 4. File link in a root folder from another root folder assert_difference 'DmsfLink.count', +1 do - post :create, :params => {:dmsf_link => { - :project_id => @project1.id, - :target_project_id => @project2.id, - :target_file_id => @file2.id, - :name => 'file_link', - :type => 'link_from' + post :create, params: { dmsf_link: { + project_id: @project1.id, + target_project_id: @project2.id, + target_file_id: @file2.id, + name: 'file_link', + type: 'link_from' }} end - assert_redirected_to dmsf_folder_path(:id => @project1.id) + assert_redirected_to dmsf_folder_path(id: @project1.id) end def test_create_folder_link_from_d1 # 1. Folder link in a folder from another folder assert_difference 'DmsfLink.count', +1 do - post :create, :params => {:dmsf_link => { - :project_id => @project1.id, - :dmsf_folder_id => @folder1.id, - :target_project_id => @project2.id, - :target_folder_id => @folder3.id, - :name => 'folder_link', - :type => 'link_from' + post :create, params: { dmsf_link: { + project_id: @project1.id, + dmsf_folder_id: @folder1.id, + target_project_id: @project2.id, + target_folder_id: @folder3.id, + name: 'folder_link', + type: 'link_from' }} end - assert_redirected_to dmsf_folder_path(:id => @project1.id, :folder_id => @folder1.id) + assert_redirected_to dmsf_folder_path(id: @project1.id, folder_id: @folder1.id) end def test_create_folder_link_from_d2 # 2. Folder link in a folder from another root folder assert_difference 'DmsfLink.count', +1 do - post :create, :params => {:dmsf_link => { - :project_id => @project1.id, - :dmsf_folder_id => @folder1.id, - :target_project_id => @project2.id, - :name => 'folder_link', - :type => 'link_from' + post :create, params: { dmsf_link: { + project_id: @project1.id, + dmsf_folder_id: @folder1.id, + target_project_id: @project2.id, + name: 'folder_link', + type: 'link_from' }} end - assert_redirected_to dmsf_folder_path(:id => @project1.id, :folder_id => @folder1.id) + assert_redirected_to dmsf_folder_path(id: @project1.id, folder_id: @folder1.id) end def test_create_folder_link_from_d3 # 3. Folder link in a root folder from another folder assert_difference 'DmsfLink.count', +1 do - post :create, :params => {:dmsf_link => { - :project_id => @project1.id, - :target_project_id => @project2.id, - :target_folder_id => @folder3.id, - :name => 'folder_link', - :type => 'link_from' + post :create, params: { dmsf_link: { + project_id: @project1.id, + target_project_id: @project2.id, + target_folder_id: @folder3.id, + name: 'folder_link', + type: 'link_from' }} end - assert_redirected_to dmsf_folder_path(:id => @project1.id) + assert_redirected_to dmsf_folder_path(id: @project1.id) end def test_create_folder_link_from_d4 # 4. Folder link in a root folder from another root folder assert_difference 'DmsfLink.count', +1 do - post :create, :params => {:dmsf_link => { - :project_id => @project1.id, - :target_project_id => @project2.id, - :name => 'folder_link', - :type => 'link_from' + post :create, params: { dmsf_link: { + project_id: @project1.id, + target_project_id: @project2.id, + name: 'folder_link', + type: 'link_from' }} end - assert_redirected_to dmsf_folder_path(:id => @project1.id) + assert_redirected_to dmsf_folder_path(id: @project1.id) end def test_create_file_link_to_f1 # 1. File link to a root folder from another folder assert_difference 'DmsfLink.count', +1 do - post :create, :params => {:dmsf_link => { - :project_id => @project1.id, - :dmsf_file_id => @file1.id, - :target_project_id => @project2.id, - :target_folder_id => @folder3.id, - :name => 'file_link', - :type => 'link_to' + post :create, params: { dmsf_link: { + project_id: @project1.id, + dmsf_file_id: @file1.id, + target_project_id: @project2.id, + target_folder_id: @folder3.id, + name: 'file_link', + type: 'link_to' }} end assert_redirected_to dmsf_file_path(@file1) @@ -256,14 +256,14 @@ class DmsfLinksControllerTest < RedmineDmsf::Test::TestCase def test_create_file_link_to_f2 # 2. File link to a folder from another folder assert_difference 'DmsfLink.count', +1 do - post :create, :params => {:dmsf_link => { - :project_id => @project2.id, - :dmsf_folder_id => @folder3.id, - :target_project_id => @project1.id, - :target_folder_id => @folder1.id, - :dmsf_file_id => @file6.id, - :name => 'file_link', - :type => 'link_to' + post :create, params: { dmsf_link: { + project_id: @project2.id, + dmsf_folder_id: @folder3.id, + target_project_id: @project1.id, + target_folder_id: @folder1.id, + dmsf_file_id: @file6.id, + name: 'file_link', + type: 'link_to' }} end assert_redirected_to dmsf_file_path(@file6) @@ -272,12 +272,12 @@ class DmsfLinksControllerTest < RedmineDmsf::Test::TestCase def test_create_file_link_to_f3 # 3. File link to a root folder from another root folder assert_difference 'DmsfLink.count', +1 do - post :create, :params => {:dmsf_link => { - :project_id => @project2.id, - :target_project_id => @project1.id, - :dmsf_file_id => @file6.id, - :name => 'file_link', - :type => 'link_to' + post :create, params: { dmsf_link: { + project_id: @project2.id, + target_project_id: @project1.id, + dmsf_file_id: @file6.id, + name: 'file_link', + type: 'link_to' }} end assert_redirected_to dmsf_file_path(@file6) @@ -286,13 +286,13 @@ class DmsfLinksControllerTest < RedmineDmsf::Test::TestCase def test_create_file_link_to_f4 # 4. File link to a folder from another root folder assert_difference 'DmsfLink.count', +1 do - post :create, :params => {:dmsf_link => { - :project_id => @project2.id, - :dmsf_folder_id => @folder3.id, - :target_project_id => @project1.id, - :dmsf_file_id => @file6.id, - :name => 'file_link', - :type => 'link_to' + post :create, params: { dmsf_link: { + project_id: @project2.id, + dmsf_folder_id: @folder3.id, + target_project_id: @project1.id, + dmsf_file_id: @file6.id, + name: 'file_link', + type: 'link_to' }} end assert_redirected_to dmsf_file_path(@file6) @@ -300,66 +300,66 @@ class DmsfLinksControllerTest < RedmineDmsf::Test::TestCase def test_create_external_link_from assert_difference 'DmsfLink.count', +1 do - post :create, :params => {:dmsf_link => { - :project_id => @project1.id, - :target_project_id => @project1.id, - :name => 'file_link', - :external_link => 'true', - :type => 'link_from' + post :create, params: { dmsf_link: { + project_id: @project1.id, + target_project_id: @project1.id, + name: 'file_link', + external_link: 'true', + type: 'link_from' }} end - assert_redirected_to dmsf_folder_path(:id => @project1.id) + assert_redirected_to dmsf_folder_path(id: @project1.id) end def test_create_folder_link_to_f1 # 1. Folder link to a root folder assert_difference 'DmsfLink.count', +1 do - post :create, :params => {:dmsf_link => { - :project_id => @project1.id, - :dmsf_folder_id => @folder1.id, - :target_project_id => @project2.id, - :name => 'folder_link', - :type => 'link_to' + post :create, params: { dmsf_link: { + project_id: @project1.id, + dmsf_folder_id: @folder1.id, + target_project_id: @project2.id, + name: 'folder_link', + type: 'link_to' }} end - assert_redirected_to edit_dmsf_path(:id => @project1.id, :folder_id => @folder1.id) + assert_redirected_to edit_dmsf_path(id: @project1.id, folder_id: @folder1.id) end def test_create_folder_link_to_f2 # 2. Folder link to a folder assert_difference 'DmsfLink.count', +1 do - post :create, :params => {:dmsf_link => { - :project_id => @project1.id, - :dmsf_folder_id => @folder1.id, - :target_project_id => @project2.id, - :target_folder_id => @folder3.id, - :name => 'folder_link', - :type => 'link_to' + post :create, params: { dmsf_link: { + project_id: @project1.id, + dmsf_folder_id: @folder1.id, + target_project_id: @project2.id, + target_folder_id: @folder3.id, + name: 'folder_link', + type: 'link_to' }} end - assert_redirected_to edit_dmsf_path(:id => @project1.id, :folder_id => @folder1.id) + assert_redirected_to edit_dmsf_path(id: @project1.id, folder_id: @folder1.id) end def test_destroy assert_difference 'DmsfLink.visible.count', -1 do - delete :destroy, :params => {:project_id => @project1.id, :id => @file_link.id} + delete :destroy, params: { project_id: @project1.id, id: @file_link.id } end - assert_redirected_to dmsf_folder_path(:id => @project1.id, :folder_id => @folder1.id) + assert_redirected_to dmsf_folder_path(id: @project1.id, folder_id: @folder1.id) end def test_restore_forbidden # Missing permissions - @request.env['HTTP_REFERER'] = trash_dmsf_path(:id => @project1.id) + @request.env['HTTP_REFERER'] = trash_dmsf_path(id: @project1.id) @role_manager.remove_permission! :file_manipulation - get :restore, :params => {:project_id => @project1.id, :id => @file_link.id} + get :restore, params: { project_id: @project1.id, id: @file_link.id } assert_response :forbidden end 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.id) @role_manager.add_permission! :file_manipulation - get :restore, :params => {:project_id => @project1.id, :id => @file_link.id} + get :restore, params: { project_id: @project1.id, id: @file_link.id } assert_response :redirect end diff --git a/test/functional/dmsf_public_urls_controller_test.rb b/test/functional/dmsf_public_urls_controller_test.rb index 5f5d2e1a..a084430e 100644 --- a/test/functional/dmsf_public_urls_controller_test.rb +++ b/test/functional/dmsf_public_urls_controller_test.rb @@ -36,17 +36,17 @@ class DmsfPublicUrlsControllerTest < RedmineDmsf::Test::TestCase end def test_show_valid_url - get :show, :params => {:token => 'd8d33e21914a433b280fdc94450ee212'} + get :show, params: { token: 'd8d33e21914a433b280fdc94450ee212' } assert_response :success end def test_show_url_width_invalid_token - get :show, :params => {:token => 'f8d33e21914a433b280fdc94450ee212'} + get :show, params: { token: 'f8d33e21914a433b280fdc94450ee212' } assert_response :not_found end def test_show_url_that_has_expired - get :show, :params => {:token => 'e8d33e21914a433b280fdc94450ee212'} + get :show, params: { token: 'e8d33e21914a433b280fdc94450ee212' } assert_response :not_found end diff --git a/test/functional/dmsf_state_controller_test.rb b/test/functional/dmsf_state_controller_test.rb index 1760dd42..f7e0b34a 100644 --- a/test/functional/dmsf_state_controller_test.rb +++ b/test/functional/dmsf_state_controller_test.rb @@ -48,9 +48,8 @@ class DmsfStateControllerTest < RedmineDmsf::Test::TestCase # Member @request.session[:user_id] = @user_member.id @role_manager.add_permission! :user_preferences - post :user_pref_save, :params => {:id => @project.id, :email_notify => 1, - :title_format => '%t_%v'} - assert_redirected_to settings_project_path(@project, :tab => 'dmsf') + post :user_pref_save, params: { id: @project.id, email_notify: 1, title_format: '%t_%v' } + assert_redirected_to settings_project_path(@project, tab: 'dmsf') assert_not_nil flash[:notice] assert_equal flash[:notice], l(:notice_your_preferences_were_saved) end @@ -58,8 +57,7 @@ class DmsfStateControllerTest < RedmineDmsf::Test::TestCase def test_user_pref_save_member_forbidden # Member @request.session[:user_id] = @user_member.id - post :user_pref_save, :params => {:id => @project.id, :email_notify => 1, - :title_format => '%t_%v'} + post :user_pref_save, params: { id: @project.id, email_notify: 1, title_format: '%t_%v' } assert_response :forbidden end @@ -67,8 +65,7 @@ class DmsfStateControllerTest < RedmineDmsf::Test::TestCase # Non Member @request.session[:user_id] = @user_non_member.id @role_manager.add_permission! :user_preferences - post :user_pref_save, :params => {:id => @project.id, :email_notify => 1, - :title_format => '%t_%v'} + post :user_pref_save, params: { id: @project.id, email_notify: 1, title_format: '%t_%v' } assert_response :forbidden end @@ -76,9 +73,8 @@ class DmsfStateControllerTest < RedmineDmsf::Test::TestCase # Admin - non member @request.session[:user_id] = @user_admin.id @role_manager.add_permission! :user_preferences - post :user_pref_save, :params => {:id => @project.id, :email_notify => 1, - :title_format => '%t_%v'} - assert_redirected_to settings_project_path(@project, :tab => 'dmsf') + post :user_pref_save, params: { id: @project.id, email_notify: 1, title_format: '%t_%v' } + assert_redirected_to settings_project_path(@project, tab: 'dmsf') assert_not_nil flash[:warning] assert_equal flash[:warning], l(:user_is_not_project_member) end diff --git a/test/functional/dmsf_workflow_controller_test.rb b/test/functional/dmsf_workflow_controller_test.rb index 673dc43f..243f0c83 100644 --- a/test/functional/dmsf_workflow_controller_test.rb +++ b/test/functional/dmsf_workflow_controller_test.rb @@ -50,7 +50,7 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase @revision2 = DmsfFileRevision.find 2 @file1 = DmsfFile.find 1 @file2 = DmsfFile.find 2 - @request.env['HTTP_REFERER'] = dmsf_folder_path(:id => @project1.id) + @request.env['HTTP_REFERER'] = dmsf_folder_path(id: @project1.id) User.current = nil @request.session[:user_id] = @user_member.id end @@ -86,7 +86,7 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase def test_authorize_member # Non member @request.session[:user_id] = @user_non_member.id - get :index, :params => {:project_id => @project1.id} + get :index, params: { project_id: @project1.id } assert_response :forbidden end @@ -98,7 +98,7 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase def test_authorize_projects # Project - get :index, :params => {:project_id => @project1.id} + get :index, params: { project_id: @project1.id } assert_response :success assert_template 'index' end @@ -106,23 +106,23 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase def test_authorize_manage_workflows_forbidden # Without permissions @role_manager.remove_permission! :manage_workflows - get :index, :params => {:project_id => @project1.id} + get :index, params: { project_id: @project1.id } assert_response :forbidden end def test_authorization_file_approval_ok @role_manager.add_permission! :file_approval @revision2.dmsf_workflow_id = @wf1.id - get :start, :params => {:id => @revision2.dmsf_workflow_id, - :dmsf_file_revision_id => @revision2.id} + get :start, params: { id: @revision2.dmsf_workflow_id, + dmsf_file_revision_id: @revision2.id } assert_response :redirect end def test_authorization_file_approval_forbidden @role_manager.remove_permission! :file_approval @revision2.dmsf_workflow_id = @wf1.id - get :start, :params => {:id => @revision2.dmsf_workflow_id, - :dmsf_file_revision_id => @revision2.id} + get :start, params: { id: @revision2.dmsf_workflow_id, + dmsf_file_revision_id: @revision2.id } assert_response :forbidden end @@ -130,7 +130,7 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase # Without the module @role_manager.add_permission! :file_manipulation @project1.disable_module!(:dmsf) - get :index, :params => {:project_id => @project1.id} + get :index, params: { project_id: @project1.id } assert_response :forbidden end @@ -142,61 +142,61 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase end def test_index_project - get :index, :params => {:project_id => @project1.id} + get :index, params: { project_id: @project1.id } assert_response :success assert_template 'index' end def test_new - get :new, :params => {:project_id => @project1.id} + get :new, params: { project_id: @project1.id } assert_response :success assert_template 'new' end def test_lock - put :update, :params => {:id => @wf1.id, :dmsf_workflow => { :status => DmsfWorkflow::STATUS_LOCKED }} + put :update, params: { id: @wf1.id, dmsf_workflow: { status: DmsfWorkflow::STATUS_LOCKED }} @wf1.reload assert @wf1.locked?, "#{@wf1.name} status is #{@wf1.status}" end def test_unlock @request.session[:user_id] = @user_admin.id - put :update, :params => {:id => @wf3.id, :dmsf_workflow => { :status => DmsfWorkflow::STATUS_ACTIVE }} + put :update, params: { id: @wf3.id, dmsf_workflow: { status: DmsfWorkflow::STATUS_ACTIVE }} @wf3.reload assert @wf3.active?, "#{@wf3.name} status is #{@wf3.status}" end def test_show - get :show, :params => {:id => @wf1.id} + get :show, params: { id: @wf1.id } assert_response :success assert_template 'show' end def test_create assert_difference 'DmsfWorkflow.count', +1 do - post :create, :params => {:dmsf_workflow => {:name => 'wf4', :project_id => @project1.id}} + post :create, params: { dmsf_workflow: { name: 'wf4', project_id: @project1.id } } end - assert_redirected_to settings_project_path(@project1, :tab => 'dmsf_workflow') + assert_redirected_to settings_project_path(@project1, tab: 'dmsf_workflow') end def test_update - put :update, :params => {:id => @wf1.id, :dmsf_workflow => {:name => 'wf1a'}} + put :update, params: { id: @wf1.id, dmsf_workflow: { name: 'wf1a' } } @wf1.reload assert_equal 'wf1a', @wf1.name end def test_destroy assert_difference 'DmsfWorkflow.count', -1 do - delete :destroy, :params => {:id => @wf1.id} + delete :destroy, params: { id: @wf1.id } end - assert_redirected_to settings_project_path(@project1, :tab => 'dmsf_workflow') - assert_equal 0, DmsfWorkflowStep.where(:dmsf_workflow_id => @wf1.id).all.count + assert_redirected_to settings_project_path(@project1, tab: 'dmsf_workflow') + assert_equal 0, DmsfWorkflowStep.where(dmsf_workflow_id: @wf1.id).all.count end def test_add_step assert_difference 'DmsfWorkflowStep.count', +1 do - post :add_step, :params => {:commit => l(:dmsf_or), :step => 1, :name => '1st step', :id => @wf1.id, - :user_ids => [@user_non_member.id]} + post :add_step, params: { commit: l(:dmsf_or), step: 1, name: '1st step', id: @wf1.id, + user_ids: [@user_non_member.id] } end assert_response :success ws = DmsfWorkflowStep.order(id: :desc).first @@ -208,17 +208,17 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase end def test_remove_step - n = DmsfWorkflowStep.where(:dmsf_workflow_id => @wf1.id, :step => 1).count + n = DmsfWorkflowStep.where(dmsf_workflow_id: @wf1.id, step: 1).count assert_difference 'DmsfWorkflowStep.count', -n do - delete :remove_step, :params => {:step => @wfs1.id, :id => @wf1.id} + delete :remove_step, params: {step: @wfs1.id, id: @wf1.id } end assert_response :redirect - ws = DmsfWorkflowStep.where(:dmsf_workflow_id => @wf1.id).order(:id =>:asc).first + ws = DmsfWorkflowStep.where(dmsf_workflow_id: @wf1.id).order(id: :asc).first assert_equal 1, ws.step end def test_reorder_steps_to_lower - put :reorder_steps, :params => {:step => 1, :id => @wf1.id, :dmsf_workflow => {:position => 2}} + put :reorder_steps, params: { step: 1, id: @wf1.id, dmsf_workflow: { position: 2 } } assert_response :success @wfs1.reload @wfs2.reload @@ -233,7 +233,7 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase end def test_reorder_steps_to_lowest - put :reorder_steps, :params => {:step => 1, :id => @wf1.id, :dmsf_workflow => {:position => 3}} + put :reorder_steps, params: { step: 1, id: @wf1.id, dmsf_workflow: { position: 3 } } assert_response :success @wfs1.reload @wfs2.reload @@ -248,7 +248,7 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase end def test_reorder_steps_to_higher - put :reorder_steps, :params => {:step => 3, :id => @wf1.id, :dmsf_workflow => {:position => 2}} + put :reorder_steps, params: { step: 3, id: @wf1.id, dmsf_workflow: { position: 2 } } assert_response :success @wfs1.reload @wfs2.reload @@ -263,7 +263,7 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase end def test_reorder_steps_to_highest - put :reorder_steps, :params => {:step => 3, :id => @wf1.id, :dmsf_workflow => {:position => '1'}} + put :reorder_steps, params: { step: 3, id: @wf1.id, dmsf_workflow: { position: '1' } } assert_response :success @wfs1.reload @wfs2.reload @@ -279,43 +279,43 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase def test_action_approve post( - :new_action, :params => { - :commit => l(:button_submit), - :id => @wf1.id, - :dmsf_workflow_step_assignment_id => @wfsa2.id, - :dmsf_file_revision_id => @revision1.id, - :step_action => DmsfWorkflowStepAction::ACTION_APPROVE, - :user_id => nil, - :note => ''}) - assert_redirected_to dmsf_folder_path(:id => @project1.id) + :new_action, params: { + commit: l(:button_submit), + id: @wf1.id, + dmsf_workflow_step_assignment_id: @wfsa2.id, + dmsf_file_revision_id: @revision1.id, + step_action: DmsfWorkflowStepAction::ACTION_APPROVE, + user_id: nil, + note: ''}) + assert_redirected_to dmsf_folder_path(id: @project1.id) assert DmsfWorkflowStepAction.where( - :dmsf_workflow_step_assignment_id => @wfsa2.id, - :action => DmsfWorkflowStepAction::ACTION_APPROVE).first + dmsf_workflow_step_assignment_id: @wfsa2.id, + action: DmsfWorkflowStepAction::ACTION_APPROVE).first end def test_action_reject post( - :new_action, :params => { - :commit => l(:button_submit), - :id => @wf1.id, - :dmsf_workflow_step_assignment_id => @wfsa2.id, - :dmsf_file_revision_id => @revision2.id, - :step_action => DmsfWorkflowStepAction::ACTION_REJECT, - :note => 'Rejected because...'}) + :new_action, params: { + commit: l(:button_submit), + id: @wf1.id, + dmsf_workflow_step_assignment_id: @wfsa2.id, + dmsf_file_revision_id: @revision2.id, + step_action: DmsfWorkflowStepAction::ACTION_REJECT, + note: 'Rejected because...'}) assert_response :redirect assert DmsfWorkflowStepAction.where( - :dmsf_workflow_step_assignment_id => @wfsa2.id, - :action => DmsfWorkflowStepAction::ACTION_REJECT).first + dmsf_workflow_step_assignment_id: @wfsa2.id, + action: DmsfWorkflowStepAction::ACTION_REJECT).first end def test_action get( - :action, :xhr => true, :params => { - :project_id => @project1.id, - :id => @wf1.id, - :dmsf_workflow_step_assignment_id => @wfsa2.id, - :dmsf_file_revision_id => @revision2.id, - :title => l(:title_waiting_for_approval)}) + :action, xhr: true, params: { + project_id: @project1.id, + id: @wf1.id, + dmsf_workflow_step_assignment_id: @wfsa2.id, + dmsf_file_revision_id: @revision2.id, + title: l(:title_waiting_for_approval)}) assert_response :success assert_match(/ajax-modal/, response.body) assert_template 'action' @@ -323,28 +323,28 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase def test_new_action_delegate post( - :new_action, :params => { - :commit => l(:button_submit), - :id => @wf1.id, - :dmsf_workflow_step_assignment_id => @wfsa2.id, - :dmsf_file_revision_id => @revision2.id, - :step_action => @user_admin.id * 10, - :note => 'Delegated because...'}) - assert_redirected_to dmsf_folder_path(:id => @project1.id) + :new_action, params: { + commit: l(:button_submit), + id: @wf1.id, + dmsf_workflow_step_assignment_id: @wfsa2.id, + dmsf_file_revision_id: @revision2.id, + step_action: @user_admin.id * 10, + note: 'Delegated because...'}) + assert_redirected_to dmsf_folder_path(id: @project1.id) assert DmsfWorkflowStepAction.where( - :dmsf_workflow_step_assignment_id => @wfsa2.id, - :action => DmsfWorkflowStepAction::ACTION_DELEGATE).first + dmsf_workflow_step_assignment_id: @wfsa2.id, + action: DmsfWorkflowStepAction::ACTION_DELEGATE).first @wfsa2.reload assert_equal @wfsa2.user_id, @user_admin.id end def test_assign get( - :assign, :xhr => true, :params => { - :project_id => @project1.id, - :id => @wf1.id, - :dmsf_file_revision_id => @revision1.id, - :title => l(:label_dmsf_wokflow_action_assign)}) + :assign, xhr: true, params: { + project_id: @project1.id, + id: @wf1.id, + dmsf_file_revision_id: @revision1.id, + title: l(:label_dmsf_wokflow_action_assign)}) assert_response :success assert_match(/ajax-modal/, response.body) assert_template 'assign' @@ -352,24 +352,24 @@ 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) + get :start, params: { id: @revision2.dmsf_workflow_id, dmsf_file_revision_id: @revision2.id } + assert_redirected_to dmsf_folder_path(id: @project1.id) end def test_assignment post( - :assignment, :params => { - :commit => l(:button_submit), - :id => @wf1.id, - :dmsf_workflow_id => @wf1.id, - :dmsf_file_revision_id => @revision2.id, - :action => 'assignment', - :project_id => @project1.id}) + :assignment, params: { + commit: l(:button_submit), + id: @wf1.id, + dmsf_workflow_id: @wf1.id, + dmsf_file_revision_id: @revision2.id, + action: 'assignment', + project_id: @project1.id }) assert_response :redirect end def test_update_step_name - put :update_step, :params => {id: @wf1.id, step: @wfs2.step, dmsf_workflow: { step_name: 'new_name'}} + put :update_step, params: {id: @wf1.id, step: @wfs2.step, dmsf_workflow: { step_name: 'new_name' } } assert_response :redirect # All steps in the same step must be renamed @wfs2.reload @@ -382,22 +382,22 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase end def test_update_step_operators - put :update_step, :params => { - :id => @wf1, - :step => '1', - :operator_step => { @wfs1.id.to_s => DmsfWorkflowStep::OPERATOR_OR.to_s }, - :assignee => { @wfs1.id.to_s => @wfs1.user_id.to_s }} + put :update_step, params: { + id: @wf1, + step: '1', + operator_step: { @wfs1.id.to_s => DmsfWorkflowStep::OPERATOR_OR.to_s }, + assignee: { @wfs1.id.to_s => @wfs1.user_id.to_s }} assert_response :redirect @wfs1.reload assert_equal @wfs1.operator, DmsfWorkflowStep::OPERATOR_OR end def test_update_step_assignee - put :update_step, :params => { - :id => @wf1, - :step => '1', - :operator_step => { @wfs1.id.to_s => DmsfWorkflowStep::OPERATOR_OR.to_s }, - :assignee => { @wfs1.id.to_s => @user_non_member.id.to_s }} + put :update_step, params: { + id: @wf1, + step: '1', + operator_step: { @wfs1.id.to_s => DmsfWorkflowStep::OPERATOR_OR.to_s }, + assignee: { @wfs1.id.to_s => @user_non_member.id.to_s }} assert_response :redirect @wfs1.reload assert_equal @user_non_member.id, @wfs1.user_id @@ -406,7 +406,7 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase def test_delete_step name = @wfs2.name assert_difference 'DmsfWorkflowStep.count', -1 do - delete :delete_step, :params => {:id => @wf1, :step => @wfs2.id} + delete :delete_step, params: { id: @wf1, step: @wfs2.id } end @wfs3.reload assert_equal @wfs3.name, name diff --git a/test/functional/issues_controller_test.rb b/test/functional/issues_controller_test.rb index 1b5f1489..b7ffde5d 100644 --- a/test/functional/issues_controller_test.rb +++ b/test/functional/issues_controller_test.rb @@ -68,8 +68,8 @@ class IssuesControllerTest < RedmineDmsf::Test::TestCase main_system_folder = @issue1.main_system_folder assert main_system_folder assert_equal @project1.id, main_system_folder.project_id - put :update, :params => {id: @issue1.id, issue: { project_id: @project2.id, tracker_id: '1', priority_id: '6', - category_id: '3' }} + put :update, params: { id: @issue1.id, issue: { project_id: @project2.id, tracker_id: '1', priority_id: '6', + category_id: '3' } } assert_redirected_to action: 'show', id: @issue1.id @issue1.reload assert_equal @project2.id, @issue1.project.id diff --git a/test/functional/my_controller_test.rb b/test/functional/my_controller_test.rb index 07c02a63..cc978ac7 100644 --- a/test/functional/my_controller_test.rb +++ b/test/functional/my_controller_test.rb @@ -46,7 +46,7 @@ class MyControllerTest < RedmineDmsf::Test::TestCase assert_response :success unless defined?(EasyExtensions) assert_select 'div#list-top' do - assert_select 'h3', { :text => "#{l(:open_approvals)} (1)" } + assert_select 'h3', { text: "#{l(:open_approvals)} (1)" } end end end @@ -58,7 +58,7 @@ class MyControllerTest < RedmineDmsf::Test::TestCase assert_response :success unless defined?(EasyExtensions) assert_select 'div#list-top' do - assert_select 'h3', { :text => "#{l(:open_approvals)} (0)" } + assert_select 'h3', { text: "#{l(:open_approvals)} (0)" } end end end @@ -70,7 +70,7 @@ class MyControllerTest < RedmineDmsf::Test::TestCase assert_response :success unless defined?(EasyExtensions) assert_select 'div#list-top' do - assert_select 'h3', { :text => "#{l(:locked_documents)} (0/1)" } + assert_select 'h3', { text: "#{l(:locked_documents)} (0/1)" } end end end diff --git a/test/integration/rest_api/dmsf_file_api_test.rb b/test/integration/rest_api/dmsf_file_api_test.rb index 33d3da1b..6d15f13b 100644 --- a/test/integration/rest_api/dmsf_file_api_test.rb +++ b/test/integration/rest_api/dmsf_file_api_test.rb @@ -133,7 +133,7 @@ class DmsfFileApiTest < RedmineDmsf::Test::IntegrationTest def test_upload_document @role.add_permission! :file_manipulation #curl --data-binary "@cat.gif" -H "Content-Type: application/octet-stream" -X POST -u ${1}:${2} http://localhost:3000/projects/12/dmsf/upload.xml?filename=cat.gif - post "/projects/#{@project1.id}/dmsf/upload.xml?filename=test.txt&key=#{@token.value}", :params => 'File content', :headers => {"CONTENT_TYPE" => 'application/octet-stream'} + post "/projects/#{@project1.id}/dmsf/upload.xml?filename=test.txt&key=#{@token.value}", params: 'File content', headers: { "CONTENT_TYPE" => 'application/octet-stream' } assert_response :created assert_equal 'application/xml', response.content_type # @@ -158,7 +158,7 @@ class DmsfFileApiTest < RedmineDmsf::Test::IntegrationTest } assert_difference 'DmsfFileRevision.count', +1 do - post "/projects/#{@project1.id}/dmsf/commit.xml?key=#{@token.value}", :params => payload, :headers => {"CONTENT_TYPE" => 'application/xml'} + post "/projects/#{@project1.id}/dmsf/commit.xml?key=#{@token.value}", params: payload, headers: { 'CONTENT_TYPE' => 'application/xml' } end # # @@ -167,7 +167,7 @@ class DmsfFileApiTest < RedmineDmsf::Test::IntegrationTest # test.txt # # # - assert_select 'dmsf_files > file > name', :text => 'test.txt' + assert_select 'dmsf_files > file > name', text: 'test.txt' assert_response :success revision = DmsfFileRevision.order(:created_at).last assert revision && revision.size > 0 @@ -176,7 +176,7 @@ class DmsfFileApiTest < RedmineDmsf::Test::IntegrationTest def test_delete_file @role.add_permission! :file_delete # curl -v -H "Content-Type: application/xml" -X DELETE -u ${1}:${2} http://localhost:3000/dmsf/files/196118.xml - delete "/dmsf/files/#{@file1.id}.xml?key=#{@token.value}", :headers => {'CONTENT_TYPE' => 'application/xml'} + delete "/dmsf/files/#{@file1.id}.xml?key=#{@token.value}", headers: { 'CONTENT_TYPE' => 'application/xml' } assert_response :success @file1.reload assert_equal DmsfFile::STATUS_DELETED, @file1.deleted @@ -184,16 +184,16 @@ class DmsfFileApiTest < RedmineDmsf::Test::IntegrationTest end def test_delete_file_no_permissions - token = Token.create!(:user => @jsmith, :action => 'api') + token = Token.create!(user: @jsmith, action: 'api') # curl -v -H "Content-Type: application/xml" -X DELETE -u ${1}:${2} http://localhost:3000/dmsf/files/196118.xml - delete "/dmsf/files/#{@file1.id}.xml?key=#{token.value}", :headers => {'CONTENT_TYPE' => 'application/xml'} + delete "/dmsf/files/#{@file1.id}.xml?key=#{token.value}", headers: { 'CONTENT_TYPE' => 'application/xml' } assert_response :forbidden end def test_delete_folder_commit_yes @role.add_permission! :file_delete # curl -v -H "Content-Type: application/xml" -X DELETE -u ${1}:${2} http://localhost:3000/dmsf/files/196118.xml&commit=yes - delete "/dmsf/files/#{@file1.id}.xml?key=#{@token.value}&commit=yes", :headers => {'CONTENT_TYPE' => 'application/xml'} + delete "/dmsf/files/#{@file1.id}.xml?key=#{@token.value}&commit=yes", headers: { 'CONTENT_TYPE' => 'application/xml' } assert_response :success assert_nil DmsfFile.find_by(id: @file1.id) end @@ -203,13 +203,13 @@ class DmsfFileApiTest < RedmineDmsf::Test::IntegrationTest User.current = @admin @file1.lock! # curl -v -H "Content-Type: application/xml" -X DELETE -u ${1}:${2} http://localhost:3000/dmsf/files/196118.xml - delete "/dmsf/files/#{@file1.id}.xml?key=#{@token.value}", :headers => {'CONTENT_TYPE' => 'application/xml'} + delete "/dmsf/files/#{@file1.id}.xml?key=#{@token.value}", headers: { 'CONTENT_TYPE' => 'application/xml' } assert_response 422 # # # Locked by Admin # - assert_select 'errors > error', :text => l(:title_locked_by_user, user: @admin.name) + assert_select 'errors > error', text: l(:title_locked_by_user, user: @admin.name) @file1.reload assert_equal DmsfFile::STATUS_ACTIVE, @file1.deleted end diff --git a/test/integration/rest_api/dmsf_folder_api_test.rb b/test/integration/rest_api/dmsf_folder_api_test.rb index 76e075d5..7844e6ce 100644 --- a/test/integration/rest_api/dmsf_folder_api_test.rb +++ b/test/integration/rest_api/dmsf_folder_api_test.rb @@ -64,87 +64,52 @@ class DmsfFolderApiTest < RedmineDmsf::Test::IntegrationTest def test_list_folder @role.add_permission! :view_dmsf_folders - token = Token.create!(:user => @jsmith, :action => 'api') + token = Token.create!(user: @jsmith, action: 'api') #curl -v -H "Content-Type: application/xml" -X GET -u ${1}:${2} http://localhost:3000/dmsf/files/17216.xml get "/projects/#{@project1.identifier}/dmsf.xml?key=#{token.value}" assert_response :success assert_equal 'application/xml', @response.content_type # - # - # - # + # + # + # # 1 - # folder1 - # - # - # 6 - # folder6 - # - # - # 7 - # folder7 - # - # - # - # - # 9 - # myfile.txt - # - # - # 8 - # test.pdf - # - # - # 1 - # test.txt - # - # - # 10 - # zero.txt - # - # - # - # + # folder1 + # folder + # + # ... + # # - assert_select 'dmsf > dmsf_folders > folder > id', :text => @folder1.id.to_s - assert_select 'dmsf > dmsf_folders > folder > title', :text => @folder1.title.to_s - assert_select 'dmsf > dmsf_files > file > id', :text => @file1.id.to_s - assert_select 'dmsf > dmsf_files > file > name', :text => @file1.name.to_s + assert_select 'dmsf > dmsf_nodes > node > id', text: @folder1.id.to_s + assert_select 'dmsf > dmsf_nodes > node > title', text: @folder1.title + assert_select 'dmsf > dmsf_nodes > node > type', text: 'folder' end def test_list_folder_limit_and_offset @role.add_permission! :view_dmsf_folders - token = Token.create!(:user => @jsmith, :action => 'api') + token = Token.create!(user: @jsmith, action: 'api') #curl -v -H "Content-Type: application/xml" -X GET -u ${1}:${2} "http://localhost:3000/dmsf/files/17216.xml?limit=1&offset=1" get "/projects/#{@project1.identifier}/dmsf.xml?key=#{token.value}&limit=1&offset=2" assert_response :success assert_equal 'application/xml', @response.content_type # # - # - # - # 7 + # + # + # 7 # folder7 - # - # - # - # - # 1 - # test.txt - # - # - # - # + # folder + # + # # - assert_select 'dmsf > dmsf_folders', :count => 1 - assert_select 'dmsf > dmsf_folders > folder > id', :text => @folder7.id.to_s - assert_select 'dmsf > dmsf_folders > folder > title', :text => @folder7.title.to_s - assert_select 'dmsf > dmsf_files', :count => 1 + assert_select 'dmsf > dmsf_nodes', count: 1 + assert_select 'dmsf > dmsf_nodes > node > id', text: @folder7.id.to_s + assert_select 'dmsf > dmsf_nodes > node > title', text: @folder7.title end def test_create_folder @role.add_permission! :folder_manipulation - token = Token.create!(:user => @jsmith, :action => 'api') + token = Token.create!(user: @jsmith, action: 'api') #curl -v -H "Content-Type: application/xml" -X POST --data "@folder.xml" -u ${1}:${2} http://localhost:3000/projects/12/dmsf/create.xml payload = %{ @@ -152,19 +117,19 @@ class DmsfFolderApiTest < RedmineDmsf::Test::IntegrationTest A folder created via REST API } - post "/projects/#{@project1.identifier}/dmsf/create.xml?key=#{token.value}", :params => payload, :headers => {'CONTENT_TYPE' => 'application/xml'} + post "/projects/#{@project1.identifier}/dmsf/create.xml?key=#{token.value}", params: payload, headers: { 'CONTENT_TYPE' => 'application/xml' } assert_response :success # # # 8 # rest_api # - assert_select 'dmsf_folder > title', :text => 'rest_api' + assert_select 'dmsf_folder > title', text: 'rest_api' end def test_find_folder_by_title @role.add_permission! :view_dmsf_folders - token = Token.create!(:user => @jsmith, :action => 'api') + token = Token.create!(user: @jsmith, action: 'api') # curl -v -H "Content-Type: application/json" -X GET -H "X-Redmine-API-Key: USERS_API_KEY" http://localhost:3000/projects/1/dmsf.json?folder_title=Updated%20title get "/projects/#{@project1.identifier}/dmsf.xml?key=#{token.value}&folder_title=#{@folder1.title}" assert_response :success @@ -186,13 +151,13 @@ class DmsfFolderApiTest < RedmineDmsf::Test::IntegrationTest # folder1 # # - assert_select 'dmsf > found_folder > id', :text => @folder1.id.to_s - assert_select 'dmsf > found_folder > title', :text => @folder1.title + assert_select 'dmsf > found_folder > id', text: @folder1.id.to_s + assert_select 'dmsf > found_folder > title', text: @folder1.title end def test_find_folder_by_title_not_found @role.add_permission! :view_dmsf_folders - token = Token.create!(:user => @jsmith, :action => 'api') + token = Token.create!(user: @jsmith, action: 'api') # curl -v -H "Content-Type: application/json" -X GET -H "X-Redmine-API-Key: USERS_API_KEY" http://localhost:3000/projects/1/dmsf.json?folder_title=Updated%20title get "/projects/#{@project1.identifier}/dmsf.xml?key=#{token.value}&folder_title=xxx" assert_response :not_found @@ -200,7 +165,7 @@ class DmsfFolderApiTest < RedmineDmsf::Test::IntegrationTest def test_find_folder_by_id @role.add_permission! :view_dmsf_folders - token = Token.create!(:user => @jsmith, :action => 'api') + token = Token.create!(user: @jsmith, action: 'api') # curl -v -H "Content-Type: application/json" -X GET -H "X-Redmine-API-Key: USERS_API_KE" http://localhost:3000/projects/1/dmsf.json?folder_id=3 get "/projects/#{@project1.identifier}/dmsf.xml?key=#{token.value}&folder_id=#{@folder1.id}" assert_response :success @@ -222,13 +187,13 @@ class DmsfFolderApiTest < RedmineDmsf::Test::IntegrationTest # folder1 # # - assert_select 'dmsf > found_folder > id', :text => @folder1.id.to_s - assert_select 'dmsf > found_folder > title', :text => @folder1.title + assert_select 'dmsf > found_folder > id', text: @folder1.id.to_s + assert_select 'dmsf > found_folder > title', text: @folder1.title end def test_find_folder_by_id_not_found @role.add_permission! :view_dmsf_folders - token = Token.create!(:user => @jsmith, :action => 'api') + token = Token.create!(user: @jsmith, action: 'api') # curl -v -H "Content-Type: application/json" -X GET -H "X-Redmine-API-Key: USERS_API_KE" http://localhost:3000/projects/1/dmsf.json?folder_id=3 get "/projects/#{@project1.identifier}/dmsf.xml?key=#{token.value}&folder_id=none" assert_response :not_found @@ -236,14 +201,14 @@ class DmsfFolderApiTest < RedmineDmsf::Test::IntegrationTest def test_update_folder @role.add_permission! :folder_manipulation - token = Token.create!(:user => @jsmith, :action => 'api') + token = Token.create!(user: @jsmith, action: 'api') #curl -v -H "Content-Type: application/json" -X POST --data "@update-folder-payload.json" -H "X-Redmine-API-Key: USERS_API_KEY" http://localhost:3000//projects/#{project_id}/dmsf/save.json payload = %{ rest_api A folder updated via REST API } - post "/projects/#{@project1.identifier}/dmsf/save.xml?folder_id=1&key=#{token.value}", :params => payload, :headers => {'CONTENT_TYPE' => 'application/xml'} + post "/projects/#{@project1.identifier}/dmsf/save.xml?folder_id=1&key=#{token.value}", params: payload, headers: { 'CONTENT_TYPE' => 'application/xml' } assert_response :success # # @@ -251,15 +216,15 @@ class DmsfFolderApiTest < RedmineDmsf::Test::IntegrationTest # rest_api # A folder updated via REST API # - assert_select 'dmsf_folder > title', :text => 'rest_api' + assert_select 'dmsf_folder > title', text: 'rest_api' end def test_delete_folder @role.add_permission! :folder_manipulation - token = Token.create!(:user => @jsmith, :action => 'api') + token = Token.create!(user: @jsmith, action: 'api') # curl -v -H "Content-Type: application/xml" -X DELETE -u ${1}:${2} http://localhost:3000/projects/1/dmsf/delete.xml?folder_id=3 delete "/projects/#{@project1.identifier}/dmsf/delete.xml?key=#{token.value}&folder_id=#{@folder1.id}", - :headers => {'CONTENT_TYPE' => 'application/xml'} + headers: { 'CONTENT_TYPE' => 'application/xml' } assert_response :success @folder1.reload assert_equal DmsfFolder::STATUS_DELETED, @folder1.deleted @@ -267,20 +232,20 @@ class DmsfFolderApiTest < RedmineDmsf::Test::IntegrationTest end def test_delete_folder_no_permission - token = Token.create!(:user => @jsmith, :action => 'api') + token = Token.create!(user: @jsmith, action: 'api') # curl -v -H "Content-Type: application/xml" -X DELETE -u ${1}:${2} http://localhost:3000/projects/1/dmsf/delete.xml?folder_id=3 delete "/projects/#{@project1.identifier}/dmsf/delete.xml?key=#{token.value}&folder_id=#{@folder1.id}", - :headers => {'CONTENT_TYPE' => 'application/xml'} + headers: {'CONTENT_TYPE' => 'application/xml'} assert_response :forbidden end def test_delete_folder_commit_yes @role.add_permission! :folder_manipulation assert !@folder1.locked? - token = Token.create!(:user => @jsmith, :action => 'api') + token = Token.create!(user: @jsmith, action: 'api') # curl -v -H "Content-Type: application/xml" -X DELETE -u ${1}:${2} http://localhost:3000/projects/1/dmsf/delete.xml?folder_id=3 delete "/projects/#{@project1.identifier}/dmsf/delete.xml?key=#{token.value}&folder_id=#{@folder1.id}&commit=yes", - :headers => {'CONTENT_TYPE' => 'application/xml'} + headers: { CONTENT_TYPE: 'application/xml' } assert_response :success assert_nil DmsfFolder.find_by(id: @folder1.id) end @@ -289,16 +254,16 @@ class DmsfFolderApiTest < RedmineDmsf::Test::IntegrationTest @role.add_permission! :folder_manipulation User.current = @admin @folder1.lock! - token = Token.create!(:user => @jsmith, :action => 'api') + token = Token.create!(user: @jsmith, action: 'api') # curl -v -H "Content-Type: application/xml" -X DELETE -u ${1}:${2} http://localhost:3000/projects/1/dmsf/delete.xml?folder_id=3 delete "/projects/#{@project1.identifier}/dmsf/delete.xml?key=#{token.value}&folder_id=#{@folder1.id}", - :headers => {'CONTENT_TYPE' => 'application/xml'} + headers: { 'CONTENT_TYPE' => 'application/xml' } assert_response 422 # # # Folder is locked # - assert_select 'errors > error', :text => l(:error_folder_is_locked) + assert_select 'errors > error', text: l(:error_folder_is_locked) @folder1.reload assert_equal DmsfFolder::STATUS_ACTIVE, @folder1.deleted end diff --git a/test/integration/rest_api/dmsf_link_api_test.rb b/test/integration/rest_api/dmsf_link_api_test.rb index 6c419977..9605f31e 100644 --- a/test/integration/rest_api/dmsf_link_api_test.rb +++ b/test/integration/rest_api/dmsf_link_api_test.rb @@ -46,7 +46,7 @@ class DmsfLinkApiTest < RedmineDmsf::Test::IntegrationTest def test_create_link @role.add_permission! :file_manipulation - token = Token.create!(:user => @jsmith, :action => 'api') + token = Token.create!(user: @jsmith, action: 'api') name = 'REST API link test' # curl -v -H "Content-Type: application/xml" -X POST --data "@link.xml" -H "X-Redmine-API-Key: USERS_API_KEY" http://localhost:3000/dmsf_links.xml payload = %{ @@ -60,14 +60,14 @@ class DmsfLinkApiTest < RedmineDmsf::Test::IntegrationTest #{name} } - post "/dmsf_links.xml?key=#{token.value}", :params => payload, :headers => {'CONTENT_TYPE' => 'application/xml'} + post "/dmsf_links.xml?key=#{token.value}", params: payload, headers: { 'CONTENT_TYPE' => 'application/xml' } assert_response :success # # # 1243 # test # - assert_select 'dmsf_link > title', :text => name - assert_equal 1, DmsfLink.where(:name => name, :project_id => @project1.id).count + assert_select 'dmsf_link > title', text: name + assert_equal 1, DmsfLink.where(name: name, project_id: @project1.id).count end end \ No newline at end of file diff --git a/test/integration/webdav/dmsf_webdav_delete_test.rb b/test/integration/webdav/dmsf_webdav_delete_test.rb index cdf2734e..14e4c8e4 100644 --- a/test/integration/webdav/dmsf_webdav_delete_test.rb +++ b/test/integration/webdav/dmsf_webdav_delete_test.rb @@ -84,51 +84,51 @@ class DmsfWebdavDeleteTest < RedmineDmsf::Test::IntegrationTest end def test_failed_authentication_global - delete '/dmsf/webdav', :params => nil, :headers => credentials('admin', 'badpassword') + delete '/dmsf/webdav', params: nil, headers: credentials('admin', 'badpassword') assert_response :unauthorized end def test_failed_authentication - delete "/dmsf/webdav/#{@project1.identifier}", :params => nil, :headers => credentials('admin', 'badpassword') + delete "/dmsf/webdav/#{@project1.identifier}", params: nil, headers: credentials('admin', 'badpassword') assert_response :unauthorized end def test_root_folder - delete '/dmsf/webdav', :params => nil, :headers => @admin + delete '/dmsf/webdav', params: nil, headers: @admin assert_response :not_implemented end def test_delete_not_empty_folder - put "/dmsf/webdav/#{@project1.identifier}/#{@folder1.title}", :params => nil, :headers => @admin + put "/dmsf/webdav/#{@project1.identifier}/#{@folder1.title}", params: nil, headers: @admin assert_response :forbidden end def test_not_existed_project - delete '/dmsf/webdav/not_a_project/file.txt', :params => nil, :headers => @admin + delete '/dmsf/webdav/not_a_project/file.txt', params: nil, headers: @admin assert_response :not_found end def test_dmsf_not_enabled @project1.disable_module! :dmsf - delete "/dmsf/webdav/#{@project1.identifier}/test.txt", :params => nil, :headers => @jsmith + delete "/dmsf/webdav/#{@project1.identifier}/test.txt", params: nil, headers: @jsmith assert_response :not_found # Item does not exist, as project is not enabled. end def test_delete_when_ro Setting.plugin_redmine_dmsf['dmsf_webdav_strategy'] = 'WEBDAV_READ_ONLY' - delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", :params => nil, :headers => @admin + delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", params: nil, headers: @admin assert_response :bad_gateway # Item does not exist, as project is not enabled. end def test_unlocked_file - delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", :params => nil, :headers => @admin + delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", params: nil, headers: @admin assert_response :no_content @file1.reload assert @file1.deleted?, "File #{@file1.name} hasn't been deleted" end def test_unathorized_user - delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", :params => nil, :headers => @jsmith + delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", params: nil, headers: @jsmith assert_response :not_found # Without folder_view permission, he will not even be aware of its existence. @file1.reload assert !@file1.deleted?, "File #{@file1.name} is expected to exist" @@ -136,7 +136,7 @@ class DmsfWebdavDeleteTest < RedmineDmsf::Test::IntegrationTest def test_unathorized_user_forbidden @role.add_permission! :view_dmsf_folders - delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", :params => nil, :headers => @jsmith + delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", params: nil, headers: @jsmith assert_response :forbidden # Now jsmith's role has view_folder rights, however they do not hold file manipulation rights. @file1.reload assert !@file1.deleted?, "File #{@file1.name} is expected to exist" @@ -144,7 +144,7 @@ class DmsfWebdavDeleteTest < RedmineDmsf::Test::IntegrationTest def test_view_folder_not_allowed @role.add_permission! :file_manipulation - delete "/dmsf/webdav/#{@project1.identifier}/#{@folder1.title}", :params => nil, :headers => @jsmith + delete "/dmsf/webdav/#{@project1.identifier}/#{@folder1.title}", params: nil, headers: @jsmith assert_response :not_found # Without folder_view permission, he will not even be aware of its existence. @folder1.reload assert !@folder1.deleted?, "Folder #{@folder1.title} is expected to exist" @@ -152,14 +152,14 @@ class DmsfWebdavDeleteTest < RedmineDmsf::Test::IntegrationTest def test_folder_manipulation_not_allowed @role.add_permission! :view_dmsf_folders - delete "/dmsf/webdav/#{@project1.identifier}/#{@folder1.title}", :params => nil, :headers => @jsmith + delete "/dmsf/webdav/#{@project1.identifier}/#{@folder1.title}", params: nil, headers: @jsmith assert_response :forbidden # Without manipulation permission, action is forbidden. @folder1.reload assert !@folder1.deleted?, "Foler #{@folder1.title} is expected to exist" end def test_folder_delete_by_admin - delete "/dmsf/webdav/#{@project1.identifier}/#{@folder6.title}", :params => nil, :headers => @admin + delete "/dmsf/webdav/#{@project1.identifier}/#{@folder6.title}", params: nil, headers: @admin assert_response :success @folder6.reload assert @folder6.deleted?, "Folder #{@folder1.title} is not expected to exist" @@ -168,7 +168,7 @@ class DmsfWebdavDeleteTest < RedmineDmsf::Test::IntegrationTest def test_folder_delete_by_user @role.add_permission! :view_dmsf_folders @role.add_permission! :folder_manipulation - delete "/dmsf/webdav/#{@project1.identifier}/#{@folder6.title}", :params => nil, :headers => @jsmith + delete "/dmsf/webdav/#{@project1.identifier}/#{@folder6.title}", params: nil, headers: @jsmith assert_response :success @folder6.reload assert @folder6.deleted?, "Folder #{@folder1.title} is not expected to exist" @@ -178,17 +178,17 @@ class DmsfWebdavDeleteTest < RedmineDmsf::Test::IntegrationTest Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true @role.add_permission! :view_dmsf_folders @role.add_permission! :folder_manipulation - delete "/dmsf/webdav/#{@project1.identifier}/#{@folder6.title}", :params => nil, :headers => @jsmith + delete "/dmsf/webdav/#{@project1.identifier}/#{@folder6.title}", params: nil, headers: @jsmith assert_response :not_found p1name_uri = Addressable::URI.escape(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)) - delete "/dmsf/webdav/#{p1name_uri}/#{@folder6.title}", :params => nil, :headers => @jsmith + delete "/dmsf/webdav/#{p1name_uri}/#{@folder6.title}", params: nil, headers: @jsmith assert_response :success @folder6.reload assert @folder6.deleted?, "Folder #{@folder1.title} is not expected to exist" end def test_file_delete_by_administrator - delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", :params => nil, :headers => @admin + delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", params: nil, headers: @admin assert_response :success @file1.reload assert @file1.deleted?, "File #{@file1.name} is not expected to exist" @@ -197,7 +197,7 @@ class DmsfWebdavDeleteTest < RedmineDmsf::Test::IntegrationTest def test_file_delete_by_user @role.add_permission! :view_dmsf_folders @role.add_permission! :file_delete - delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", :params => nil, :headers => @jsmith + delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", params: nil, headers: @jsmith assert_response :success @file1.reload assert @file1.deleted?, "File #{@file1.name} is not expected to exist" @@ -207,10 +207,10 @@ class DmsfWebdavDeleteTest < RedmineDmsf::Test::IntegrationTest Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true @role.add_permission! :view_dmsf_folders @role.add_permission! :file_delete - delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", :params => nil, :headers => @jsmith + delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", params: nil, headers: @jsmith assert_response :not_found p1name_uri = Addressable::URI.escape(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)) - delete "/dmsf/webdav/#{p1name_uri}/#{@file1.name}", :params => nil, :headers => @jsmith + delete "/dmsf/webdav/#{p1name_uri}/#{@file1.name}", params: nil, headers: @jsmith assert_response :success @file1.reload assert @file1.deleted?, "File #{@file1.name} is not expected to exist" @@ -219,7 +219,7 @@ class DmsfWebdavDeleteTest < RedmineDmsf::Test::IntegrationTest def test_folder_delete_fragments @role.add_permission! :view_dmsf_folders @role.add_permission! :folder_manipulation - delete "/dmsf/webdav/#{@project1.identifier}/#{@folder6.title}/#frament=HTTP/1.1", :params => nil, :headers => @jsmith + delete "/dmsf/webdav/#{@project1.identifier}/#{@folder6.title}/#frament=HTTP/1.1", params: nil, headers: @jsmith assert_response :bad_request end @@ -227,7 +227,7 @@ class DmsfWebdavDeleteTest < RedmineDmsf::Test::IntegrationTest @role.add_permission! :view_dmsf_folders @role.add_permission! :folder_manipulation @folder6.lock! - delete "/dmsf/webdav/#{@project1.identifier}/#{@folder6.title}", :params => nil, :headers => @jsmith + delete "/dmsf/webdav/#{@project1.identifier}/#{@folder6.title}", params: nil, headers: @jsmith assert_response :locked @folder6.reload assert !@folder6.deleted?, "Folder #{@folder6.title} is expected to exist" @@ -237,7 +237,7 @@ class DmsfWebdavDeleteTest < RedmineDmsf::Test::IntegrationTest @role.add_permission! :view_dmsf_folders @role.add_permission! :file_delete @file1.lock! - delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", :params => nil, :headers => @jsmith + delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", params: nil, headers: @jsmith assert_response :locked @file1.reload assert !@file1.deleted?, "File #{@file1.name} is expected to exist" @@ -246,7 +246,7 @@ class DmsfWebdavDeleteTest < RedmineDmsf::Test::IntegrationTest def test_non_versioned_file @role.add_permission! :view_dmsf_folders @role.add_permission! :file_delete - delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", :params => nil, :headers => @jsmith + delete "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", params: nil, headers: @jsmith assert_response :success # The file should be destroyed assert_nil DmsfFile.visible.find_by(id: @file1.id) diff --git a/test/integration/webdav/dmsf_webdav_get_test.rb b/test/integration/webdav/dmsf_webdav_get_test.rb index 3d40ff3d..bc57cd81 100644 --- a/test/integration/webdav/dmsf_webdav_get_test.rb +++ b/test/integration/webdav/dmsf_webdav_get_test.rb @@ -64,108 +64,108 @@ class DmsfWebdavGetTest < RedmineDmsf::Test::IntegrationTest assert_kind_of Role, @role end - #def test_should_deny_anonymous - # get '/dmsf/webdav' - # assert_response :unauthorized - #end - # - #def test_should_deny_failed_authentication - # get '/dmsf/webdav', params: nil, headers: credentials('admin', 'badpassword') - # assert_response :unauthorized - #end - # - #def test_should_permit_authenticated_user - # get '/dmsf/webdav', params: nil, headers: @admin - # assert_response :success - #end - # - #def test_should_list_dmsf_enabled_project - # get '/dmsf/webdav', params: nil, headers: @admin - # assert_response :success - # assert !response.body.match(@project1.identifier).nil?, - # "Expected to find project #{@project1.identifier} in return data" - # Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true - # project1_uri = RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1) - # get '/dmsf/webdav', params: nil, headers: @admin - # assert_response :success - # assert_no_match @project1.identifier, response.body - # assert_match project1_uri, response.body - #end - # - #def test_should_not_list_non_dmsf_enabled_project - # get '/dmsf/webdav', params: nil, headers: @jsmith - # assert_response :success - # assert response.body.match(@project2.identifier).nil?, - # "Unexpected find of project #{@project2.identifier} in return data" - #end - # - #def test_should_return_status_404_when_project_does_not_exist - # @project1.enable_module! :dmsf # Flag module enabled - # get '/dmsf/webdav/project_does_not_exist', params: nil, headers: @jsmith - # assert_response :not_found - #end - # - #def test_should_return_status_404_when_dmsf_not_enabled - # get "/dmsf/webdav/#{@project2.identifier}", params: nil, headers: @jsmith - # assert_response :not_found - #end - # - #def test_download_file_from_dmsf_enabled_project - # get "/dmsf/webdav/#{@project1.identifier}/test.txt", params: nil, headers: @admin - # assert_response :success - # Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true - # project1_uri = Addressable::URI.escape(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)) - # get "/dmsf/webdav/#{@project1.identifier}/test.txt", params: nil, headers: @admin - # assert_response :not_found - # get "/dmsf/webdav/#{project1_uri}/test.txt", params: nil, headers: @admin - # assert_response :success - #end + def test_should_deny_anonymous + get '/dmsf/webdav' + assert_response :unauthorized + end + + def test_should_deny_failed_authentication + get '/dmsf/webdav', params: nil, headers: credentials('admin', 'badpassword') + assert_response :unauthorized + end + + def test_should_permit_authenticated_user + get '/dmsf/webdav', params: nil, headers: @admin + assert_response :success + end + + def test_should_list_dmsf_enabled_project + get '/dmsf/webdav', params: nil, headers: @admin + assert_response :success + assert !response.body.match(@project1.identifier).nil?, + "Expected to find project #{@project1.identifier} in return data" + Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true + project1_uri = RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1) + get '/dmsf/webdav', params: nil, headers: @admin + assert_response :success + assert_no_match @project1.identifier, response.body + assert_match project1_uri, response.body + end + + def test_should_not_list_non_dmsf_enabled_project + get '/dmsf/webdav', params: nil, headers: @jsmith + assert_response :success + assert response.body.match(@project2.identifier).nil?, + "Unexpected find of project #{@project2.identifier} in return data" + end + + def test_should_return_status_404_when_project_does_not_exist + @project1.enable_module! :dmsf # Flag module enabled + get '/dmsf/webdav/project_does_not_exist', params: nil, headers: @jsmith + assert_response :not_found + end + + def test_should_return_status_404_when_dmsf_not_enabled + get "/dmsf/webdav/#{@project2.identifier}", params: nil, headers: @jsmith + assert_response :not_found + end + + def test_download_file_from_dmsf_enabled_project + get "/dmsf/webdav/#{@project1.identifier}/test.txt", params: nil, headers: @admin + assert_response :success + Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true + project1_uri = Addressable::URI.escape(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)) + get "/dmsf/webdav/#{@project1.identifier}/test.txt", params: nil, headers: @admin + assert_response :not_found + get "/dmsf/webdav/#{project1_uri}/test.txt", params: nil, headers: @admin + assert_response :success + end def test_should_list_dmsf_contents_within_project get "/dmsf/webdav/#{@project1.identifier}", params: nil, headers: @admin assert_response :success - #folder = DmsfFolder.find_by(id: 1) - #assert_not_nil folder - #assert response.body.match(folder.title), - # "Expected to find #{folder.title} in return data" - #file = DmsfFile.find_by(id: 1) - #assert_not_nil file - #assert response.body.match(file.name), - # "Expected to find #{file.name} in return data" + folder = DmsfFolder.find_by(id: 1) + assert_not_nil folder + assert response.body.match(folder.title), + "Expected to find #{folder.title} in return data" + file = DmsfFile.find_by(id: 1) + assert_not_nil file + assert response.body.match(file.name), + "Expected to find #{file.name} in return data" end - #def test_user_assigned_to_project_dmsf_module_not_enabled - # get "/dmsf/webdav/#{@project1.identifier}", params: nil, headers: @jsmith - # assert_response :not_found - #end - # - #def test_user_assigned_to_project_folder_forbidden - # @project2.enable_module! :dmsf # Flag module enabled - # get "/dmsf/webdav/#{@project2.identifier}", params: nil, headers: @jsmith - # assert_response :not_found - #end - # - #def test_user_assigned_to_project_folder_ok - # @project1.enable_module! :dmsf # Flag module enabled - # @role.add_permission! :view_dmsf_folders - # @role.add_permission! :view_dmsf_files - # get "/dmsf/webdav/#{@project1.identifier}", params: nil, headers: @jsmith - # assert_response :success - #end - # - #def test_user_assigned_to_project_file_forbidden - # @project1.enable_module! :dmsf # Flag module enabled - # @role.add_permission! :view_dmsf_folders - # get "/dmsf/webdav/#{@project1.identifier}/test.txt", params: nil, headers: @jsmith - # assert_response :forbidden - #end - # - #def test_user_assigned_to_project_file_ok - # @project1.enable_module! :dmsf # Flag module enabled - # @role.add_permission! :view_dmsf_folders - # @role.add_permission! :view_dmsf_files - # get "/dmsf/webdav/#{@project1.identifier}/test.txt", params: nil, headers: @jsmith - # assert_response :success - #end + def test_user_assigned_to_project_dmsf_module_not_enabled + get "/dmsf/webdav/#{@project1.identifier}", params: nil, headers: @jsmith + assert_response :not_found + end + + def test_user_assigned_to_project_folder_forbidden + @project2.enable_module! :dmsf # Flag module enabled + get "/dmsf/webdav/#{@project2.identifier}", params: nil, headers: @jsmith + assert_response :not_found + end + + def test_user_assigned_to_project_folder_ok + @project1.enable_module! :dmsf # Flag module enabled + @role.add_permission! :view_dmsf_folders + @role.add_permission! :view_dmsf_files + get "/dmsf/webdav/#{@project1.identifier}", params: nil, headers: @jsmith + assert_response :success + end + + def test_user_assigned_to_project_file_forbidden + @project1.enable_module! :dmsf # Flag module enabled + @role.add_permission! :view_dmsf_folders + get "/dmsf/webdav/#{@project1.identifier}/test.txt", params: nil, headers: @jsmith + assert_response :forbidden + end + + def test_user_assigned_to_project_file_ok + @project1.enable_module! :dmsf # Flag module enabled + @role.add_permission! :view_dmsf_folders + @role.add_permission! :view_dmsf_files + get "/dmsf/webdav/#{@project1.identifier}/test.txt", params: nil, headers: @jsmith + assert_response :success + end end diff --git a/test/integration/webdav/dmsf_webdav_head_test.rb b/test/integration/webdav/dmsf_webdav_head_test.rb index 509ac398..8a6bea2d 100644 --- a/test/integration/webdav/dmsf_webdav_head_test.rb +++ b/test/integration/webdav/dmsf_webdav_head_test.rb @@ -72,13 +72,13 @@ class DmsfWebdavHeadTest < RedmineDmsf::Test::IntegrationTest end def test_head_responds_with_authentication - head "/dmsf/webdav/#{@project1.identifier}", :params => nil, :headers => @admin + head "/dmsf/webdav/#{@project1.identifier}", params: nil, headers: @admin assert_response :success check_headers_exist Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true - head "/dmsf/webdav/#{@project1.identifier}", :params => nil, :headers => @admin + head "/dmsf/webdav/#{@project1.identifier}", params: nil, headers: @admin assert_response :not_found - head "/dmsf/webdav/#{@project1_uri}", :params => nil, :headers => @admin + head "/dmsf/webdav/#{@project1_uri}", params: nil, headers: @admin assert_response :success end @@ -88,48 +88,48 @@ class DmsfWebdavHeadTest < RedmineDmsf::Test::IntegrationTest # (but may include an etag, so there is an allowance for a 1 in 2 failure rate on (optionally) required # headers) def test_head_responds_to_file - head "/dmsf/webdav/#{@project1.identifier}/test.txt", :params => nil, :headers => @admin + head "/dmsf/webdav/#{@project1.identifier}/test.txt", params: nil, headers: @admin assert_response :success check_headers_exist # Note it'll allow 1 out of the 3 expected to fail Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true - head "/dmsf/webdav/#{@project1.identifier}/test.txt", :params => nil, :headers => @admin + head "/dmsf/webdav/#{@project1.identifier}/test.txt", params: nil, headers: @admin assert_response :not_found - head "/dmsf/webdav/#{@project1_uri}/test.txt", :params => nil, :headers => @admin + head "/dmsf/webdav/#{@project1_uri}/test.txt", params: nil, headers: @admin assert_response :success end def test_head_responds_to_file_anonymous_other_user_agent - head "/dmsf/webdav/#{@project1.identifier}/test.txt", :params => nil, :headers => {:HTTP_USER_AGENT => 'Other'} + head "/dmsf/webdav/#{@project1.identifier}/test.txt", params: nil, headers: { HTTP_USER_AGENT: 'Other' } assert_response :unauthorized check_headers_dont_exist end def test_head_fails_when_file_not_found - head "/dmsf/webdav/#{@project1.identifier}/not_here.txt", :params => nil, :headers => @admin + head "/dmsf/webdav/#{@project1.identifier}/not_here.txt", params: nil, headers: @admin assert_response :not_found check_headers_dont_exist end def test_head_fails_when_file_not_found_anonymous_other_user_agent - head "/dmsf/webdav/#{@project1.identifier}/not_here.txt", :params => nil, :headers => {:HTTP_USER_AGENT => 'Other'} + head "/dmsf/webdav/#{@project1.identifier}/not_here.txt", params: nil, headers: { HTTP_USER_AGENT: 'Other' } assert_response :unauthorized check_headers_dont_exist end def test_head_fails_when_folder_not_found - head '/dmsf/webdav/folder_not_here', :params => nil, :headers => @admin + head '/dmsf/webdav/folder_not_here', params: nil, headers: @admin assert_response :not_found check_headers_dont_exist end def test_head_fails_when_folder_not_found_anonymous_other_user_agent - head '/dmsf/webdav/folder_not_here', :params => nil, :headers => {:HTTP_USER_AGENT => 'Other'} + head '/dmsf/webdav/folder_not_here', params: nil, headers: { HTTP_USER_AGENT: 'Other' } assert_response :unauthorized check_headers_dont_exist end def test_head_fails_when_project_is_not_enabled_for_dmsf - head "/dmsf/webdav/#{@project2.identifier}/test.txt", :params => nil, :headers => @jsmith + head "/dmsf/webdav/#{@project2.identifier}/test.txt", params: nil, headers: @jsmith assert_response :not_found check_headers_dont_exist end @@ -140,9 +140,9 @@ class DmsfWebdavHeadTest < RedmineDmsf::Test::IntegrationTest assert !(response.headers.nil? || response.headers.empty?), 'Head returned without headers' # Headers exist? values = {} - values[:etag] = { :optional => true, :content => response.headers['Etag'] } + values[:etag] = { optional: true, content: response.headers['Etag'] } values[:content_type] = response.headers['Content-Type'] - values[:last_modified] = { :optional => true, :content => response.headers['Last-Modified'] } + values[:last_modified] = { optional: true, content: response.headers['Last-Modified'] } single_optional = false values.each do |key,val| if val.is_a?(Hash) diff --git a/test/integration/webdav/dmsf_webdav_lock_test.rb b/test/integration/webdav/dmsf_webdav_lock_test.rb index 726949f5..c5bc9436 100644 --- a/test/integration/webdav/dmsf_webdav_lock_test.rb +++ b/test/integration/webdav/dmsf_webdav_lock_test.rb @@ -67,7 +67,7 @@ class DmsfWebdavMoveTest < RedmineDmsf::Test::IntegrationTest jsmith }, - :headers => @jsmith.merge!({ HTTP_DEPTH: 'infinity', HTTP_TIMEOUT: 'Infinite' }) + headers: @jsmith.merge!({ HTTP_DEPTH: 'infinity', HTTP_TIMEOUT: 'Infinite' }) assert_response :locked end @@ -122,8 +122,8 @@ class DmsfWebdavMoveTest < RedmineDmsf::Test::IntegrationTest travel_to refresh_time do # Refresh lock process :lock, "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", - :params => nil, - :headers => @jsmith.merge!({ HTTP_DEPTH: 'infinity', HTTP_TIMEOUT: 'Infinite', HTTP_IF: locktoken }) + params: nil, + headers: @jsmith.merge!({ HTTP_DEPTH: 'infinity', HTTP_TIMEOUT: 'Infinite', HTTP_IF: locktoken }) assert_response :success # 1.week = 7*24*3600=604800 seconds assert_match 'Second-604800', response.body diff --git a/test/integration/webdav/dmsf_webdav_mkcol_test.rb b/test/integration/webdav/dmsf_webdav_mkcol_test.rb index b24adf63..4de62f08 100644 --- a/test/integration/webdav/dmsf_webdav_mkcol_test.rb +++ b/test/integration/webdav/dmsf_webdav_mkcol_test.rb @@ -72,23 +72,23 @@ class DmsfWebdavMkcolTest < RedmineDmsf::Test::IntegrationTest end def test_mkcol_fails_to_create_folder_at_root_level - process :mkcol, '/dmsf/webdav/test1', :params => nil, :headers => @admin + process :mkcol, '/dmsf/webdav/test1', params: nil, headers: @admin assert_response :method_not_allowed end def test_should_not_succeed_on_a_non_existant_project - process :mkcol, '/dmsf/webdav/project_doesnt_exist/test1', :params => nil, :headers => @admin + process :mkcol, '/dmsf/webdav/project_doesnt_exist/test1', params: nil, headers: @admin assert_response :not_found end def test_should_not_succed_on_a_non_dmsf_enabled_project - process :mkcol, "/dmsf/webdav/#{@project1.identifier}/folder", :params => nil, :headers => @jsmith + process :mkcol, "/dmsf/webdav/#{@project1.identifier}/folder", params: nil, headers: @jsmith assert_response :forbidden end def test_should_not_create_folder_without_permissions @project1.enable_module! :dmsf # Flag module enabled - process :mkcol, "/dmsf/webdav/#{@project1.identifier}/folder", :params => nil, :headers => @jsmith + process :mkcol, "/dmsf/webdav/#{@project1.identifier}/folder", params: nil, headers: @jsmith assert_response :forbidden end @@ -97,26 +97,26 @@ class DmsfWebdavMkcolTest < RedmineDmsf::Test::IntegrationTest @role.add_permission! :folder_manipulation @role.add_permission! :view_dmsf_folders process :mkcol, - "/dmsf/webdav/#{@project1.identifier}/#{@folder6.title}", :params => nil, :headers => @jsmith + "/dmsf/webdav/#{@project1.identifier}/#{@folder6.title}", params: nil, headers: @jsmith assert_response :method_not_allowed end def test_should_fail_to_create_folder_for_user_without_rights @project1.enable_module! :dmsf # Flag module enabled - process :mkcol, "/dmsf/webdav/#{@project1.identifier}/test1", :params => nil, :headers => @jsmith + process :mkcol, "/dmsf/webdav/#{@project1.identifier}/test1", params: nil, headers: @jsmith assert_response :forbidden end def test_should_create_folder_for_non_admin_user_with_rights @project1.enable_module! :dmsf @role.add_permission! :folder_manipulation - process :mkcol, "/dmsf/webdav/#{@project1.identifier}/test1", :params => nil, :headers => @jsmith + process :mkcol, "/dmsf/webdav/#{@project1.identifier}/test1", params: nil, headers: @jsmith assert_response :success # Created Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true project1_uri = Addressable::URI.escape(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)) - process :mkcol, "/dmsf/webdav/#{@project1.identifier}/test2", :params => nil, :headers => @jsmith + process :mkcol, "/dmsf/webdav/#{@project1.identifier}/test2", params: nil, headers: @jsmith assert_response :not_found - process :mkcol, "/dmsf/webdav/#{project1_uri}/test3", :params => nil, :headers => @jsmith + process :mkcol, "/dmsf/webdav/#{project1_uri}/test3", params: nil, headers: @jsmith assert_response :success # Created end diff --git a/test/integration/webdav/dmsf_webdav_options_test.rb b/test/integration/webdav/dmsf_webdav_options_test.rb index c048dd23..9efa51b0 100644 --- a/test/integration/webdav/dmsf_webdav_options_test.rb +++ b/test/integration/webdav/dmsf_webdav_options_test.rb @@ -116,7 +116,7 @@ class DmsfWebdavOptionsTest < RedmineDmsf::Test::IntegrationTest end def test_authenticated_options_returns_expected_allow_header - process :options, "/dmsf/webdav/#{@project1.identifier}", :params => nil, :headers => @jsmith + process :options, "/dmsf/webdav/#{@project1.identifier}", params: nil, headers: @jsmith assert_response :success assert !(response.headers.nil? || response.headers.empty?), 'Response headers are empty' assert response.headers['Allow'], 'Allow header is empty or does not exist' @@ -125,14 +125,14 @@ class DmsfWebdavOptionsTest < RedmineDmsf::Test::IntegrationTest end def test_authenticated_options_returns_expected_dav_header - process :options, "/dmsf/webdav/#{@project1.identifier}", :params => nil, :headers => @jsmith + process :options, "/dmsf/webdav/#{@project1.identifier}", params: nil, headers: @jsmith assert_response :success assert !(response.headers.nil? || response.headers.empty?), 'Response headers are empty' assert response.headers['Dav'], 'Dav header is empty or does not exist' end def test_authenticated_options_returns_expected_ms_auth_via_header - process :options, "/dmsf/webdav/#{@project1.identifier}", :params => nil, :headers => @jsmith + process :options, "/dmsf/webdav/#{@project1.identifier}", params: nil, headers: @jsmith assert_response :success assert !(response.headers.nil? || response.headers.empty?), 'Response headers are empty' assert response.headers['Ms-Author-Via'], 'Ms-Author-Via header is empty or does not exist' @@ -140,40 +140,40 @@ class DmsfWebdavOptionsTest < RedmineDmsf::Test::IntegrationTest end def test_un_authenticated_options_for_msoffice_user_agent - process :options, "/dmsf/webdav/#{@project1.identifier}", :params => nil, :headers => {:HTTP_USER_AGENT => 'Microsoft Office Word 2014'} + process :options, "/dmsf/webdav/#{@project1.identifier}", params: nil, headers: { HTTP_USER_AGENT: 'Microsoft Office Word 2014' } assert_response :unauthorized end def test_authenticated_options_for_msoffice_user_agent - process :options, "/dmsf/webdav/#{@project1.identifier}", :params => nil, - :headers => @admin.merge!({:HTTP_USER_AGENT => 'Microsoft Office Word 2014'}) + process :options, "/dmsf/webdav/#{@project1.identifier}", params: nil, + headers: @admin.merge!({ HTTP_USER_AGENT: 'Microsoft Office Word 2014' }) assert_response :success end def test_un_authenticated_options_for_other_user_agent - process :options, "/dmsf/webdav/#{@project1.identifier}", :params => nil, :headers => {:HTTP_USER_AGENT => 'Other'} + process :options, "/dmsf/webdav/#{@project1.identifier}", params: nil, headers: { HTTP_USER_AGENT: 'Other' } assert_response :unauthorized end def test_authenticated_options_for_other_user_agent - process :options, "/dmsf/webdav/#{@project1.identifier}", :params => nil, :headers => @admin.merge!({:HTTP_USER_AGENT => 'Other'}) + process :options, "/dmsf/webdav/#{@project1.identifier}", params: nil, headers: @admin.merge!({ HTTP_USER_AGENT: 'Other' }) assert_response :success Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true project1_uri = Addressable::URI.escape(RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1)) - process :options, "/dmsf/webdav/#{@project1.identifier}", :params => nil, :headers => @admin.merge!({:HTTP_USER_AGENT => 'Other'}) + process :options, "/dmsf/webdav/#{@project1.identifier}", params: nil, headers: @admin.merge!({ HTTP_USER_AGENT: 'Other' }) assert_response :not_found - process :options, "/dmsf/webdav/#{project1_uri}", :params => nil, :headers => @admin.merge!({:HTTP_USER_AGENT => 'Other'}) + process :options, "/dmsf/webdav/#{project1_uri}", params: nil, headers: @admin.merge!({ HTTP_USER_AGENT: 'Other' }) assert_response :success end def test_authenticated_options_returns_404_for_non_dmsf_enabled_items @project2.disable_module! :dmsf - process :options, "/dmsf/webdav/#{@project2.identifier}", :params => nil, :headers => @jsmith + process :options, "/dmsf/webdav/#{@project2.identifier}", params: nil, headers: @jsmith assert_response :not_found end def test_authenticated_options_returns_404_for_not_found - process :options, '/dmsf/webdav/does-not-exist', :params => nil, :headers => @jsmith + process :options, '/dmsf/webdav/does-not-exist', params: nil, headers: @jsmith assert_response :not_found end diff --git a/test/integration/webdav/dmsf_webdav_post_test.rb b/test/integration/webdav/dmsf_webdav_post_test.rb index de5743e5..b1bf6f2f 100644 --- a/test/integration/webdav/dmsf_webdav_post_test.rb +++ b/test/integration/webdav/dmsf_webdav_post_test.rb @@ -44,7 +44,7 @@ class DmsfWebdavPostTest < RedmineDmsf::Test::IntegrationTest # Test post is not implemented def test_post_not_implemented - post '/dmsf/webdav/', :params => nil, :headers => @admin + post '/dmsf/webdav/', params: nil, headers: @admin assert_response :not_implemented end diff --git a/test/integration/webdav/dmsf_webdav_propfind_test.rb b/test/integration/webdav/dmsf_webdav_propfind_test.rb index a4a58f63..cfe3631a 100644 --- a/test/integration/webdav/dmsf_webdav_propfind_test.rb +++ b/test/integration/webdav/dmsf_webdav_propfind_test.rb @@ -64,26 +64,26 @@ class DmsfWebdavPropfindTest < RedmineDmsf::Test::IntegrationTest end def test_propfind_denied_for_anonymous - process :propfind, '/dmsf/webdav/', :params => nil, :headers => {:HTTP_DEPTH => '0'} + process :propfind, '/dmsf/webdav/', params: nil, headers: { HTTP_DEPTH: '0' } assert_response :unauthorized end def test_propfind_depth0_on_root_for_non_member - process :propfind, '/dmsf/webdav/', :params => nil, :headers => @jsmith.merge!({:HTTP_DEPTH => '0'}) + process :propfind, '/dmsf/webdav/', params: nil, headers: @jsmith.merge!({ HTTP_DEPTH: '0' }) assert_response :multi_status assert response.body.include?('http://www.example.com:80/dmsf/webdav/') assert response.body.include?('/') end def test_propfind_depth1_on_root_for_non_member - process :propfind, '/dmsf/webdav/', :params => nil, :headers => @jsmith.merge!({:HTTP_DEPTH => '1'}) + process :propfind, '/dmsf/webdav/', params: nil, headers: @jsmith.merge!({ HTTP_DEPTH: '1' }) assert_response :multi_status assert response.body.include?('http://www.example.com:80/dmsf/webdav/') assert response.body.include?( '/') end def test_propfind_depth0_on_root_for_admin - process :propfind, '/dmsf/webdav/', :params => nil, :headers => @admin.merge!({:HTTP_DEPTH => '0'}) + process :propfind, '/dmsf/webdav/', params: nil, headers: @admin.merge!({ HTTP_DEPTH: '0' }) assert_response :multi_status assert response.body.include?('http://www.example.com:80/dmsf/webdav/') assert response.body.include?('/') @@ -91,7 +91,7 @@ class DmsfWebdavPropfindTest < RedmineDmsf::Test::IntegrationTest def test_propfind_depth1_on_root_for_admin_with_project_names Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true - process :propfind, '/dmsf/webdav/', :params => nil, :headers => @admin.merge!({:HTTP_DEPTH => '1'}) + process :propfind, '/dmsf/webdav/', params: nil, headers: @admin.merge!({ HTTP_DEPTH: '1'}) assert_response :multi_status assert response.body.include?('http://www.example.com:80/dmsf/webdav/') assert response.body.include?('/') @@ -104,12 +104,12 @@ class DmsfWebdavPropfindTest < RedmineDmsf::Test::IntegrationTest end def test_propfind_depth0_on_project1_for_non_member - process :propfind, "/dmsf/webdav/#{@project1.identifier}", :params => nil, :headers => @jsmith.merge!({:HTTP_DEPTH => '0'}) + process :propfind, "/dmsf/webdav/#{@project1.identifier}", params: nil, headers: @jsmith.merge!({ HTTP_DEPTH: '0' }) assert_response :not_found end def test_propfind_depth0_on_project1_for_admin - process :propfind, "/dmsf/webdav/#{@project1.identifier}", :params => nil, :headers => @admin.merge!({:HTTP_DEPTH => '0'}) + process :propfind, "/dmsf/webdav/#{@project1.identifier}", params: nil, headers: @admin.merge!({ HTTP_DEPTH: '0' }) assert_response :multi_status assert response.body.include?("http://www.example.com:80/dmsf/webdav/#{@project1.identifier}/") assert response.body.include?("#{@project1.identifier}") @@ -117,16 +117,16 @@ class DmsfWebdavPropfindTest < RedmineDmsf::Test::IntegrationTest def test_propfind_depth0_on_project1_for_admin_with_project_names Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true - process :propfind, "/dmsf/webdav/#{@project1.identifier}", :params => nil, :headers => @admin.merge!({:HTTP_DEPTH => '0'}) + process :propfind, "/dmsf/webdav/#{@project1.identifier}", params: nil, headers: @admin.merge!({ HTTP_DEPTH: '0' }) assert_response :not_found - process :propfind, "/dmsf/webdav/#{@project1_uri}", :params => nil, :headers => @admin.merge!({:HTTP_DEPTH => '0'}) + process :propfind, "/dmsf/webdav/#{@project1_uri}", params: nil, headers: @admin.merge!({ HTTP_DEPTH: '0' }) assert_response :multi_status assert response.body.include?("http://www.example.com:80/dmsf/webdav/#{@project1_uri}/") assert response.body.include?("#{@project1_name}") end def test_propfind_depth1_on_project1_for_admin - process :propfind, "/dmsf/webdav/#{@project1.identifier}", :params => nil, :headers => @admin.merge!({:HTTP_DEPTH => '1'}) + process :propfind, "/dmsf/webdav/#{@project1.identifier}", params: nil, headers: @admin.merge!({ HTTP_DEPTH: '1' }) assert_response :multi_status # Project assert response.body.include?("http://www.example.com:80/dmsf/webdav/#{@project1.identifier}/") @@ -147,9 +147,9 @@ class DmsfWebdavPropfindTest < RedmineDmsf::Test::IntegrationTest def test_propfind_depth1_on_project1_for_admin_with_project_names Setting.plugin_redmine_dmsf['dmsf_webdav_use_project_names'] = true - process :propfind, "/dmsf/webdav/#{@project1.identifier}", :params => nil, :headers => @admin.merge!({:HTTP_DEPTH => '1'}) + process :propfind, "/dmsf/webdav/#{@project1.identifier}", params: nil, headers: @admin.merge!({ HTTP_DEPTH: '1'}) assert_response :not_found - process :propfind, "/dmsf/webdav/#{@project1_uri}", :params => nil, :headers => @admin.merge!({:HTTP_DEPTH => '1'}) + process :propfind, "/dmsf/webdav/#{@project1_uri}", params: nil, headers: @admin.merge!({ HTTP_DEPTH: '1'}) assert_response :multi_status # Project assert response.body.include?("http://www.example.com:80/dmsf/webdav/#{@project1_uri}/") @@ -172,7 +172,7 @@ class DmsfWebdavPropfindTest < RedmineDmsf::Test::IntegrationTest @project1.save! project1_new_name = RedmineDmsf::Webdav::ProjectResource.create_project_name(@project1) project1_new_uri = Addressable::URI.escape(project1_new_name) - process :propfind, "/dmsf/webdav/#{project1_new_uri}", :params => nil, :headers => @admin.merge!({:HTTP_DEPTH => '1'}) + process :propfind, "/dmsf/webdav/#{project1_new_uri}", params: nil, headers: @admin.merge!({ HTTP_DEPTH: '1'}) assert_response :multi_status assert response.body.include?("http://www.example.com:80/dmsf/webdav/#{project1_new_uri}/") assert response.body.include?("#{project1_new_name}") diff --git a/test/unit/dmsf_folder_test.rb b/test/unit/dmsf_folder_test.rb index 38a2bf5a..9a599636 100644 --- a/test/unit/dmsf_folder_test.rb +++ b/test/unit/dmsf_folder_test.rb @@ -65,7 +65,7 @@ class DmsfFolderTest < RedmineDmsf::Test::UnitTest # The user has got permissions User.current = @developer # Hasn't got permissions for @folder7 - @folder7.dmsf_folder_permissions.where(:object_type => 'User').delete_all + @folder7.dmsf_folder_permissions.where(object_type: 'User').delete_all assert_equal 4, DmsfFolder.visible.where(project_id: 1).all.size # Anonymous user User.current = User.anonymous @@ -76,7 +76,7 @@ class DmsfFolderTest < RedmineDmsf::Test::UnitTest def test_permissions User.current = @developer assert DmsfFolder.permissions?(@folder7) - @folder7.dmsf_folder_permissions.where(:object_type => 'User').delete_all + @folder7.dmsf_folder_permissions.where(object_type: 'User').delete_all @folder7.reload assert !DmsfFolder.permissions?(@folder7) end
<%=l(:field_name)%> + <%= l(:field_name) %>
<%= @dmsf_workflow.dmsf_workflow_steps[index].name if index %>
" class="hol"> - <%= form_for(@dmsf_workflow, - :url => update_step_dmsf_workflow_path(step: index), - :method => :put, - :html => { id: "step-index-name-#{index}-form" }) do |f| %> + <%= form_for(@dmsf_workflow, url: update_step_dmsf_workflow_path(step: index), method: :put, + html: { id: "step-index-name-#{index}-form" }) do |f| %> <%= f.text_field(:step_name, value: @dmsf_workflow.dmsf_workflow_steps[index].name, id: "dmsf_workflow_step_name_#{index}") %>

- <%= submit_tag l(:button_change), :class => 'small' %> + <%= submit_tag l(:button_change), class: 'small' %> <%= link_to_function( l(:button_cancel), "$('#step-index-#{index}-name').show(); $('#step-index-#{index}-approvers').show(); $('#step-index-#{index}-name-form').hide(); $('#step-index-#{index}-approvers-form').hide();") @@ -83,10 +81,8 @@ <% end %>

" class="hol"> - <%= form_for(@dmsf_workflow, - :url => update_step_dmsf_workflow_path(step: index), - :method => :put, - :html => {:id => "step-index-operator-#{index}-form"}) do |_| %> + <%= form_for(@dmsf_workflow, url: update_step_dmsf_workflow_path(step: index), method: :put, + html: { id: "step-index-operator-#{index}-form"}) do |_| %>
<% stps.each do |step| %>
@@ -112,10 +108,9 @@ <% end %>

- <%= submit_tag l(:button_change), :class => 'small' %> - <%= link_to_function( - l(:button_cancel), - "$('#step-index-#{index}-name').show(); $('#step-index-#{index}-approvers').show(); $('#step-index-#{index}-name-form').hide(); $('#step-index-#{index}-approvers-form').hide();") + <%= submit_tag l(:button_change), class: 'small' %> + <%= link_to_function l(:button_cancel), + "$('#step-index-#{index}-name').show(); $('#step-index-#{index}-approvers').show(); $('#step-index-#{index}-name-form').hide(); $('#step-index-#{index}-approvers-form').hide();" %>

<% end %> @@ -125,8 +120,8 @@ <%= reorder_handle(@dmsf_workflow, url: url_for(action: 'edit', id: @dmsf_workflow, step: i) ) %> <%= link_to_function l(:button_edit), "$('#step-index-#{index}-name').hide(); $('#step-index-#{index}-approvers').hide(); $('#step-index-#{index}-name-form').show(); $('#step-index-#{index}-approvers-form').show();", - :class => 'icon icon-edit' %> - <%= delete_link edit_dmsf_workflow_path(@dmsf_workflow, step: i) %> + class: 'icon icon-edit' %> + <%= delete_link edit_dmsf_workflow_path @dmsf_workflow, step: i %>
- <%= link_to(h(folder.title), - {:controller => 'dmsf', :action => 'show', :id => folder.project, :folder_id => folder}, - :class => 'icon icon-folder') %> + <%= link_to h(folder.title), { controller: 'dmsf', action: 'show', id: folder.project, folder_id: folder}, + class: 'icon icon-folder' %> <% if folder.dmsf_folder %> - <%= link_to(h(folder.dmsf_folder.title), - {:controller => 'dmsf', :action => 'show', :id => folder.project, :folder_id => folder.dmsf_folder}) %> + <%= link_to h(folder.dmsf_folder.title), + { controller: 'dmsf', action: 'show', id: folder.project, folder_id: folder.dmsf_folder } %> <% else %> - <%= link_to(l(:link_documents), {:controller => 'dmsf', :action => 'show', :id=> folder.project }) %> + <%= link_to l(:link_documents), { controller: 'dmsf', action: 'show', id: folder.project } %> <% end %>
- <%= link_to(h(file.title), - {:controller => 'dmsf_files', :action => :show, :id => file }, - :class => "icon icon-file #{DmsfHelper.filetype_css(file.name)}") %> + <%= link_to h(file.title), { controller: 'dmsf_files', action: :show, id: file }, + class: "icon icon-file #{DmsfHelper.filetype_css(file.name)}" %> <% if file.dmsf_folder %> - <%= link_to(h(file.dmsf_folder.title), - {:controller => 'dmsf', :action => 'show', :id => file.project, :folder_id => file.dmsf_folder}) %> + <%= link_to h(file.dmsf_folder.title), + { controller: 'dmsf', action: 'show', id: file.project, folder_id: file.dmsf_folder } %> <% else %> - <%= link_to_if(file.project, l(:link_documents), {:controller => 'dmsf', :action => 'show', - :id=> file.project }) %> + <%= link_to_if file.project, l(:link_documents), + { controller: 'dmsf', action: 'show', id: file.project } %> <% end %>
<% if assignment.dmsf_workflow_step.dmsf_workflow %> - <%= link_to( - assignment.dmsf_file_revision.workflow_str(false), + <%= link_to assignment.dmsf_file_revision.workflow_str(false), log_dmsf_workflow_path( - :project_id => assignment.dmsf_file_revision.dmsf_file.project_id, - :id => assignment.dmsf_workflow_step.dmsf_workflow_id, - :dmsf_file_revision_id => assignment.dmsf_file_revision_id), - :title => assignment.dmsf_file_revision.workflow_tooltip, - :remote => true) %> + project_id: assignment.dmsf_file_revision.dmsf_file.project_id, + id: assignment.dmsf_workflow_step.dmsf_workflow_id, + dmsf_file_revision_id: assignment.dmsf_file_revision_id), + title: assignment.dmsf_file_revision.workflow_tooltip, + remote: true %> <% else %> <%= assignment.dmsf_file_revision.workflow_str(false) %> <% end %> <% if assignment.dmsf_file_revision && assignment.dmsf_file_revision.dmsf_file %> - <%= link_to(h(assignment.dmsf_file_revision.title), - {:controller => 'dmsf_files', :action => :show, :id => assignment.dmsf_file_revision.dmsf_file }) %> + <%= link_to h(assignment.dmsf_file_revision.title), + { controller: 'dmsf_files', action: :show, id: assignment.dmsf_file_revision.dmsf_file } %> <% end %> <% if assignment.dmsf_file_revision %> <% if assignment.dmsf_file_revision.dmsf_file.dmsf_folder %> - <%= link_to(h(assignment.dmsf_file_revision.dmsf_file.dmsf_folder.title), - {:controller => 'dmsf', :action => 'show', :id => assignment.dmsf_file_revision.dmsf_file.project, - :folder_id => assignment.dmsf_file_revision.dmsf_file.dmsf_folder}) %> + <%= link_to h(assignment.dmsf_file_revision.dmsf_file.dmsf_folder.title), + { controller: 'dmsf', action: 'show', id: assignment.dmsf_file_revision.dmsf_file.project, + folder_id: assignment.dmsf_file_revision.dmsf_file.dmsf_folder} %> <% elsif assignment.dmsf_file_revision.dmsf_file.project %> - <%= link_to(l(:link_documents), {:controller => 'dmsf', :action => 'show', - :id => assignment.dmsf_file_revision.dmsf_file.project }) %> + <%= link_to l(:link_documents), + { controller: 'dmsf', action: 'show', id: assignment.dmsf_file_revision.dmsf_file.project } %> <% end %> <% end %> - <%= render(:partial => 'dmsf_workflows/approval_workflow_button', - :locals => {:file => assignment.dmsf_file_revision.dmsf_file, - :file_approval_allowed => User.current.allowed_to?(:file_approval, + <%= render partial: 'dmsf_workflows/approval_workflow_button', + locals: { file: assignment.dmsf_file_revision.dmsf_file, + file_approval_allowed: User.current.allowed_to?(:file_approval, assignment.dmsf_file_revision.dmsf_file.project), - :workflows_available => nil, - :project => assignment.dmsf_file_revision.dmsf_file.project, - :wf => assignment.dmsf_workflow_step.dmsf_workflow, :dmsf_link_id => nil }) %> + workflows_available: nil, + project: assignment.dmsf_file_revision.dmsf_file.project, + wf: assignment.dmsf_workflow_step.dmsf_workflow, dmsf_link_id: nil } %>
' - html << link_to(h(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)), + html << link_to(h(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}") html << "(#{number_to_human_size(dmsf_file.last_revision.size)})" html << " - #{h(dmsf_file.description)}" unless dmsf_file.description.blank? @@ -218,23 +218,23 @@ module RedmineDmsf html << '' # Details if User.current.allowed_to? :file_manipulation, dmsf_file.project - html << link_to('', dmsf_file_path(:id => dmsf_file), - :title => l(:link_details, :title => h(dmsf_file.last_revision.title)), - :class => 'icon icon-edit') + html << link_to('', dmsf_file_path(id: dmsf_file), + title: l(:link_details, title: h(dmsf_file.last_revision.title)), + class: 'icon icon-edit') else html << '' end # Email - html << link_to('', entries_operations_dmsf_path(:id => dmsf_file.project, - :email_entries => 'email', :files => [dmsf_file.id]), :method => :post, - :title => l(:heading_send_documents_by_email), :class => 'icon icon-email-disabled') + html << link_to('', entries_operations_dmsf_path(id: dmsf_file.project, + email_entries: 'email', files: [dmsf_file.id]), method: :post, + title: l(:heading_send_documents_by_email), class: 'icon icon-email-disabled') # Lock if !dmsf_file.locked? - html << link_to('', lock_dmsf_files_path(:id => dmsf_file), - :title => l(:title_lock_file), :class => 'icon icon-lock') + html << link_to('', lock_dmsf_files_path(id: dmsf_file), + title: l(:title_lock_file), class: 'icon icon-lock') elsif dmsf_file.unlockable? && (!dmsf_file.locked_for_user? || User.current.allowed_to?(:force_file_unlock, dmsf_file.project)) - html << link_to('', unlock_dmsf_files_path(:id => dmsf_file), - :title => dmsf_file.get_locked_title, :class => 'icon icon-unlock') + html << link_to('', unlock_dmsf_files_path(id: dmsf_file), + title: dmsf_file.get_locked_title, class: 'icon icon-unlock') else html << "" end @@ -243,27 +243,27 @@ module RedmineDmsf else # Notifications if dmsf_file.notification - html << link_to('', notify_deactivate_dmsf_files_path(:id => dmsf_file), - :title => l(:title_notifications_active_deactivate), :class => 'icon icon-email') + html << link_to('', notify_deactivate_dmsf_files_path(id: dmsf_file), + title: l(:title_notifications_active_deactivate), class: 'icon icon-email') else - html << link_to('', notify_activate_dmsf_files_path(:id => dmsf_file), - :title => l(:title_notifications_not_active_activate), :class => 'icon icon-email-add') + html << link_to('', notify_activate_dmsf_files_path(id: dmsf_file), + title: l(:title_notifications_not_active_activate), class: 'icon icon-email-add') end # Delete if issue.attributes_editable? && User.current.allowed_to?(:file_delete, dmsf_file.project) html << link_to('', - link ? dmsf_link_path(link, :commit => 'yes') : dmsf_file_path(:id => dmsf_file, :commit => 'yes'), - :data => {:confirm => l(:text_are_you_sure)}, :method => :delete, :title => l(:button_delete), - :class => 'icon icon-del') + link ? dmsf_link_path(link, commit: 'yes') : dmsf_file_path(id: dmsf_file, commit: 'yes'), + data: { confirm: l(:text_are_you_sure) }, method: :delete, title: l(:button_delete), + class: 'icon icon-del') end end # Approval workflow wf = DmsfWorkflow.find_by(id: dmsf_file.last_revision.dmsf_workflow_id) if dmsf_file.last_revision.dmsf_workflow_id - html << controller.send(:render_to_string, {:partial => 'dmsf_workflows/approval_workflow_button', - :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 }}) + html << controller.send(:render_to_string, { partial: 'dmsf_workflows/approval_workflow_button', + 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 }}) html << '