From 5d6ed07eb36701602ffc106a139f2abfe05ef407 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karel=20Pi=C4=8Dman?= Date: Tue, 4 Sep 2018 13:28:26 +0200 Subject: [PATCH] Fast links --- app/controllers/dmsf_links_controller.rb | 14 +++- app/controllers/dmsf_state_controller.rb | 1 + app/views/dmsf_links/_form.html.erb | 78 +++++++++++-------- app/views/dmsf_state/_user_pref.html.erb | 20 ++++- assets/stylesheets/redmine_dmsf.css | 6 +- config/locales/cs.yml | 4 + config/locales/de.yml | 4 + config/locales/en.yml | 4 + config/locales/es.yml | 4 + config/locales/fr.yml | 4 + config/locales/hu.yml | 4 + config/locales/it.yml | 4 + config/locales/ja.yml | 4 + config/locales/ko.yml | 4 + config/locales/nl.yml | 4 + config/locales/pl.yml | 4 + config/locales/pt-BR.yml | 4 + config/locales/ru.yml | 4 + config/locales/sl.yml | 4 + config/locales/zh-TW.yml | 4 + config/locales/zh.yml | 4 + db/migrate/20180903132101_fast_links.rb | 30 +++++++ .../patches/projects_helper_patch.rb | 7 +- 23 files changed, 175 insertions(+), 45 deletions(-) create mode 100644 db/migrate/20180903132101_fast_links.rb diff --git a/app/controllers/dmsf_links_controller.rb b/app/controllers/dmsf_links_controller.rb index 0df7edfd..d8656a18 100644 --- a/app/controllers/dmsf_links_controller.rb +++ b/app/controllers/dmsf_links_controller.rb @@ -46,12 +46,13 @@ class DmsfLinksController < ApplicationController def new @dmsf_link = DmsfLink.new + member = Member.find_by_project_id_and_user_id(params[:project_id], User.current.id) + @fast_links = member && member.dmsf_fast_links @dmsf_link.project_id = params[:project_id] @dmsf_link.dmsf_folder_id = params[:dmsf_folder_id] @dmsf_file_id = params[:dmsf_file_id] @type = params[:type] @dmsf_link.target_project_id = params[:project_id] - @dmsf_link.project_id = params[:project_id] @target_folder_id = params[:dmsf_folder_id].to_i if params[:dmsf_folder_id].present? if @type == 'link_to' if @dmsf_file_id @@ -115,9 +116,18 @@ class DmsfLinksController < ApplicationController end else # Link to - @dmsf_link.project_id = params[:dmsf_link][:target_project_id] @dmsf_link.dmsf_folder_id = DmsfLinksHelper.is_a_number?( params[:dmsf_link][:target_folder_id]) ? params[:dmsf_link][:target_folder_id].to_i : nil + if params[:dmsf_link][:target_project_id].present? + @dmsf_link.project_id = params[:dmsf_link][:target_project_id] + else + target_folder = DmsfFolder.find_by_id(params[:dmsf_link][:target_folder_id]) + unless target_folder + render_404 + return + end + @dmsf_link.project_id = target_folder.project_id + end @dmsf_link.target_project_id = params[:dmsf_link][:project_id] if params[:dmsf_link][:dmsf_file_id].present? @dmsf_link.target_id = params[:dmsf_link][:dmsf_file_id] diff --git a/app/controllers/dmsf_state_controller.rb b/app/controllers/dmsf_state_controller.rb index 1d634092..b42cc225 100644 --- a/app/controllers/dmsf_state_controller.rb +++ b/app/controllers/dmsf_state_controller.rb @@ -31,6 +31,7 @@ class DmsfStateController < ApplicationController if member member.dmsf_mail_notification = params[:email_notify] member.dmsf_title_format = params[:title_format] + member.dmsf_fast_links = params[:fast_links].present? if format_valid?(member.dmsf_title_format) && member.save flash[:notice] = l(:notice_your_preferences_were_saved) else diff --git a/app/views/dmsf_links/_form.html.erb b/app/views/dmsf_links/_form.html.erb index c8bcad34..ba263c6d 100644 --- a/app/views/dmsf_links/_form.html.erb +++ b/app/views/dmsf_links/_form.html.erb @@ -36,43 +36,53 @@ <%= radio_button_tag(:external_link, 'true', false) %> <%= l(:label_external) %>

<% end %> -