diff --git a/app/controllers/dmsf_links_controller.rb b/app/controllers/dmsf_links_controller.rb index 0f01a615..55d8c263 100644 --- a/app/controllers/dmsf_links_controller.rb +++ b/app/controllers/dmsf_links_controller.rb @@ -36,7 +36,7 @@ class DmsfLinksController < ApplicationController @dmsf_link.dmsf_folder_id = params[:dmsf_link][:dmsf_folder_id] # TODO: Add stuff in here for external links so that if error occurs, repopulate the same @dmsf_file_id = params[:dmsf_link][:dmsf_file_id] @type = params[:dmsf_link][:type] - @link_external = (params[:external_link] == 'true') + @link_external = (@type == 'link_from') && (params[:external_link] == 'true') @dmsf_link.target_project_id = params[:dmsf_link][:target_project_id] @target_folder_id = params[:dmsf_link][:target_folder_id].to_i if params[:reload].blank? && DmsfLinksHelper.is_a_number?(params[:dmsf_link][:target_folder_id]) if @type == 'link_to' diff --git a/app/models/dmsf_link.rb b/app/models/dmsf_link.rb index eec236bd..0e7f9e36 100644 --- a/app/models/dmsf_link.rb +++ b/app/models/dmsf_link.rb @@ -1,3 +1,5 @@ +# encode: utf-8 +# # Redmine plugin for Document Management System "Features" # # Copyright (C) 2011-15 Karel Pičman @@ -18,6 +20,7 @@ class DmsfLink < ActiveRecord::Base unloadable + include ActiveModel::Validations belongs_to :project belongs_to :dmsf_folder @@ -26,6 +29,16 @@ class DmsfLink < ActiveRecord::Base validates :name, :presence => true validates_length_of :name, :maximum => 255 + validates_length_of :external_url, :maximum => 255 + validate :validate_url + + def validate_url + begin + URI.parse self.external_url + rescue URI::InvalidURIError + errors.add :external_url, :invalid + end + end if (Redmine::VERSION::MAJOR >= 3) scope :visible, -> { where(deleted: false) } diff --git a/app/views/dmsf_links/_form.html.erb b/app/views/dmsf_links/_form.html.erb index b87c51e1..666a842a 100644 --- a/app/views/dmsf_links/_form.html.erb +++ b/app/views/dmsf_links/_form.html.erb @@ -1,6 +1,6 @@ <%# Redmine plugin for Document Management System "Features" # -# Copyright (C) 2011-14 Karel Pičman +# Copyright (C) 2011-15 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 @@ -16,15 +16,14 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.%> -<% html_title(l(:dmsf)) %> +<% html_title l(:dmsf) %>
<% if @dmsf_file_id %> <% file = DmsfFile.find_by_id @dmsf_file_id%> - <% title = file.title if file %> - <% title = file.title if file %> + <% title = file.title if file %> <% end %> <%= render(:partial => '/dmsf/path', :locals => {:folder => @dmsf_link.folder, :filename => title}) %> @@ -36,31 +35,33 @@ <%= f.hidden_field :type, :value => @type %> <%= f.hidden_field :dmsf_file_id, :value => @dmsf_file_id %>
+ <% if @type == 'link_from' %>

- <%= radio_button_tag(:external_link,'false',@link_external == false) %> Internal
- <%= radio_button_tag(:external_link,'true',@link_external) %> External -

- <%= label_tag('dmsf_link[name]', l(:label_link_name), :class => 'required') %> <%= text_field_tag 'dmsf_link[name]', @dmsf_link.name, :size => 40, :maxlength => 255 %>

diff --git a/config/locales/cs.yml b/config/locales/cs.yml index c879a1fe..cc12a50e 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -296,13 +296,14 @@ cs: label_source_folder: Zdrojový adresář label_target_project: Cílový projekt label_source_project: Zdrojový projekt + label_external: Externí text_email_doc_updated_subject: "Dokumenty projektu %{project} aktualizovány" text_email_doc_updated: právě aktualizoval dokumenty projektu text_email_doc_follows: takto text_email_doc_deleted_subject: "Dokumenty projektu %{project} smazány" text_email_doc_deleted: právě smazal dokumety projektu - label_links_only: pouze odkazy + label_links_only: pouze odkazy label_display_notified_recipients: Zobrazit příjemce notifikací note_display_notified_recipients: Uživatel bude informován o příjemcích právě odeslané emailové notifikace. diff --git a/config/locales/de.yml b/config/locales/de.yml index 30b728d6..422750cb 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -293,13 +293,14 @@ de: label_source_folder: Quellordner label_target_project: Zielprojekt label_source_project: Quellprojekt + label_external: Außen text_email_doc_updated_subject: "Dokumente im Projekt %{project} wurden aktualisiert" text_email_doc_updated: hat folgende Dokumente bearbeitet text_email_doc_follows: wie folgt text_email_doc_deleted_subject: "Dokumente im Projekt %{project} wurden gelöscht" text_email_doc_deleted: hat folgende Dokumente gelöscht - label_links_only: nur Verknüpfungen + label_links_only: nur Verknüpfungen label_display_notified_recipients: Zeige benachrichtigte Empfänger note_display_notified_recipients: Der User wird über alle Empfänger der Emailbenachrichtigung informiert. diff --git a/config/locales/en.yml b/config/locales/en.yml index 19a3434a..4ec072d1 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -288,6 +288,7 @@ en: label_notifications_off: Notifications off field_target_file: Source file title_download_entries: Download entries + label_external: External label_link_name: Link name label_link_external_url: URL @@ -301,7 +302,7 @@ en: text_email_doc_follows: as follows text_email_doc_deleted_subject: "Documents of %{project} deleted" text_email_doc_deleted: has just deleted documents of - label_links_only: links only + label_links_only: links only label_display_notified_recipients: Display notified recipients note_display_notified_recipients: The user will be informed about all recipients of just sent the email notification. diff --git a/config/locales/es.yml b/config/locales/es.yml index 9fa80b20..b5e2f353 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -296,6 +296,7 @@ es: label_source_folder: Directorio fuente label_target_project: Proyecto destino label_source_project: Proyecto fuente + label_external: External text_email_doc_updated_subject: "Documentos de %{project} actualizados" text_email_doc_updated: acaba de actualizar los ducumentos de diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 4ac05dd8..1e551f06 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -293,13 +293,14 @@ fr: label_source_folder: Dossier source label_target_project: Projet cible label_source_project: Projet source + label_external: External text_email_doc_updated_subject: "Documents de %{project} mis à jour" text_email_doc_updated: a mis à jour des documents de text_email_doc_follows: comme suit text_email_doc_deleted_subject: "Documents de %{project} supprimés" text_email_doc_deleted: a supprimé des documents de - label_links_only: liens seulement + label_links_only: liens seulement label_display_notified_recipients: Afficher les destinataires notifiés note_display_notified_recipients: "L'utilisateur sera informé de tous les destinataires à qui un email de notifcation a été envoyé" diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 5734d738..244304f2 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -296,6 +296,7 @@ ja: label_source_folder: Source folder label_target_project: Target project label_source_project: Source project + label_external: External text_email_doc_updated_subject: "Documents of %{project} updated" text_email_doc_updated: has just actualized documents of diff --git a/config/locales/pl.yml b/config/locales/pl.yml index 561c1e74..b3b81f4e 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -296,6 +296,7 @@ pl: label_source_folder: Folder źródłowy label_target_project: Projekt docelowy label_source_project: Projekt źródłowy + label_external: External text_email_doc_updated_subject: "Dokumenty projektu %{project} zostały zaktualizowane" text_email_doc_updated: dokumenty zostały zaktualizowane diff --git a/config/locales/ru.yml b/config/locales/ru.yml index 401d134b..7cc0a83b 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -296,6 +296,7 @@ ru: label_source_folder: Source folder label_target_project: Target project label_source_project: Source project + label_external: External text_email_doc_updated_subject: "Documents of %{project} updated" text_email_doc_updated: has just actualized documents of diff --git a/config/locales/sl.yml b/config/locales/sl.yml index b660b240..31f40f3a 100644 --- a/config/locales/sl.yml +++ b/config/locales/sl.yml @@ -296,6 +296,7 @@ sl: label_source_folder: Source folder label_target_project: Target project label_source_project: Source project + label_external: External text_email_doc_updated_subject: "Documents of %{project} updated" text_email_doc_updated: has just actualized documents of diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index 0b184f01..06922d62 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -297,6 +297,7 @@ zh-TW: label_source_folder: Source folder label_target_project: Target project label_source_project: Source project + label_external: External text_email_doc_updated_subject: "Documents of %{project} updated" text_email_doc_updated: has just actualized documents of diff --git a/config/locales/zh.yml b/config/locales/zh.yml index e128eefb..38e4cd59 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -296,6 +296,7 @@ zh: label_source_folder: Source folder label_target_project: Target project label_source_project: Source project + label_external: External text_email_doc_updated_subject: "Documents of %{project} updated" text_email_doc_updated: has just actualized documents of