External URL links improvements
This commit is contained in:
parent
0881cd661c
commit
fde9b16bd4
@ -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'
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
# encode: utf-8
|
||||
#
|
||||
# Redmine plugin for Document Management System "Features"
|
||||
#
|
||||
# Copyright (C) 2011-15 Karel Pičman <karel.picman@kontron.com>
|
||||
@ -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) }
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<%# Redmine plugin for Document Management System "Features"
|
||||
#
|
||||
# Copyright (C) 2011-14 Karel Pičman <karel.picman@lbcfree.net>
|
||||
# Copyright (C) 2011-15 Karel Pičman <karel.picman@lbcfree.net>
|
||||
#
|
||||
# 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) %>
|
||||
|
||||
<div class="contextual">
|
||||
</div>
|
||||
|
||||
<% 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 %>
|
||||
<div class="box dmsf_detail">
|
||||
<% if @type == 'link_from' %>
|
||||
<p>
|
||||
<%= radio_button_tag(:external_link,'false',@link_external == false) %> Internal</br>
|
||||
<%= radio_button_tag(:external_link,'true',@link_external) %> External
|
||||
</p>
|
||||
<div id="link_internal" style="<%= @link_external ? 'display:none' : '' %>">
|
||||
<p>
|
||||
<% if @type == 'link_from' %>
|
||||
<%= label_tag('dmsf_link[target_project_id]', l(:label_source_project), :class => 'required') %>
|
||||
<% else %>
|
||||
<%= label_tag('dmsf_link[target_project_id]', l(:label_target_project), :class => 'required') %>
|
||||
<% end %>
|
||||
<%= select_tag('dmsf_link[target_project_id]',
|
||||
project_tree_options_for_select(DmsfFile.allowed_target_projects_on_copy,
|
||||
:selected => @dmsf_link.target_project)) %>
|
||||
</p>
|
||||
<p>
|
||||
<% if @type == 'link_from' %>
|
||||
<%= label_tag('dmsf_link[target_folder_id]', l(:label_source_folder)) %>
|
||||
<% else %>
|
||||
<%= label_tag('dmsf_link[target_folder_id]', l(:label_target_folder)) %>
|
||||
<% end %>
|
||||
<%= select_tag('dmsf_link[target_folder_id]',
|
||||
folder_tree_options_for_select(DmsfFolder.directory_tree(@dmsf_link.target_project),
|
||||
:selected => @target_folder_id)) %>
|
||||
</p>
|
||||
<%= radio_button_tag(:external_link, 'false', @link_external == false) %> <%= l(:label_internal) %></br>
|
||||
<%= radio_button_tag(:external_link, 'true', @link_external) %> <%= l(:label_external) %>
|
||||
</p>
|
||||
<% end %>
|
||||
<div id="link_internal" style="<%= @link_external ? 'display:none' : '' %>">
|
||||
<p>
|
||||
<% if @type == 'link_from' %>
|
||||
<%= label_tag('dmsf_link[target_project_id]', l(:label_source_project), :class => 'required') %>
|
||||
<% else %>
|
||||
<%= label_tag('dmsf_link[target_project_id]', l(:label_target_project), :class => 'required') %>
|
||||
<% end %>
|
||||
<%= select_tag('dmsf_link[target_project_id]',
|
||||
project_tree_options_for_select(DmsfFile.allowed_target_projects_on_copy,
|
||||
:selected => @dmsf_link.target_project)) %>
|
||||
</p>
|
||||
<p>
|
||||
<% if @type == 'link_from' %>
|
||||
<%= label_tag('dmsf_link[target_folder_id]', l(:label_source_folder)) %>
|
||||
<% else %>
|
||||
<%= label_tag('dmsf_link[target_folder_id]', l(:label_target_folder)) %>
|
||||
<% end %>
|
||||
<%= select_tag('dmsf_link[target_folder_id]',
|
||||
folder_tree_options_for_select(DmsfFolder.directory_tree(@dmsf_link.target_project),
|
||||
:selected => @target_folder_id)) %>
|
||||
</p>
|
||||
<% if @type == 'link_from' %>
|
||||
<p>
|
||||
<% if @target_folder_id %>
|
||||
@ -74,12 +75,11 @@
|
||||
</p>
|
||||
<% end %>
|
||||
<p>
|
||||
</div>
|
||||
|
||||
<div id="link_external" style="<%= @link_external ? '' : 'display:none' %>">
|
||||
</div>
|
||||
<div id="link_external" style="<%= @link_external ? '' : 'display:none' %>">
|
||||
<%= label_tag('dmsf_link[external_url]', l(:label_link_external_url), :class => 'required') %>
|
||||
<%= text_field_tag 'dmsf_link[external_url]', @dmsf_link.external_url, :size => 40, :maxlength => 255 %>
|
||||
</div>
|
||||
</div>
|
||||
<%= label_tag('dmsf_link[name]', l(:label_link_name), :class => 'required') %>
|
||||
<%= text_field_tag 'dmsf_link[name]', @dmsf_link.name, :size => 40, :maxlength => 255 %>
|
||||
</p>
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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é"
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user