134 lines
5.2 KiB
Plaintext
134 lines
5.2 KiB
Plaintext
<%
|
|
# encoding: utf-8
|
|
#
|
|
# Redmine plugin for Document Management System "Features"
|
|
#
|
|
# Copyright (C) 2011-18 Karel Pičman <karel.picman@kontron.com>
|
|
#
|
|
# 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.
|
|
%>
|
|
|
|
<h3 class="title"><%= l(:title_create_link) %></h3>
|
|
|
|
<%= 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 %>
|
|
<div class="box tabular">
|
|
<% if (@type == 'link_from') && !@container %>
|
|
<p>
|
|
<%= radio_button_tag(:external_link, 'false', true) %> <%= l(:label_internal) %><br/>
|
|
<%= radio_button_tag(:external_link, 'true', false) %> <%= l(:label_external) %>
|
|
</p>
|
|
<% end %>
|
|
<div id="link_internal">
|
|
<p>
|
|
<% if @type == 'link_from' %>
|
|
<label for="dmsf_link[target_project_id]"><%= l(:label_source_project) %></label>
|
|
<% else %>
|
|
<label for="dmsf_link[target_project_id]"><%= l(:label_target_project) %></label>
|
|
<% end %>
|
|
<%= select_tag('dmsf_link[target_project_id]',
|
|
project_tree_options_for_select(DmsfFile.allowed_target_projects_on_copy,
|
|
:selected => @dmsf_link.target_project), :style => "width=100%") %>
|
|
<%= late_javascript_tag do %>
|
|
$('#dmsf_link_target_project_id').change(function(){
|
|
$.ajax({
|
|
url: '<%= autocomplete_for_project_dmsf_link_path(@project, :format => 'js') %>',
|
|
type: 'get',
|
|
data: $('#new_dmsf_link').serialize()
|
|
});
|
|
});
|
|
<% end %>
|
|
</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)) %>
|
|
<%= late_javascript_tag do %>
|
|
$('#dmsf_link_target_folder_id').change(function(){
|
|
$.ajax({
|
|
url: '<%= autocomplete_for_folder_dmsf_link_path(@project, :format => 'js') %>',
|
|
type: 'get',
|
|
data: $('#new_dmsf_link').serialize()
|
|
});
|
|
});
|
|
<% end %>
|
|
</p>
|
|
<% if @type == 'link_from' %>
|
|
<p>
|
|
<%= 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) %>
|
|
</p>
|
|
<% end %>
|
|
</div>
|
|
<% if (@type == 'link_from') && !@container %>
|
|
<div id="link_external" style="display: none">
|
|
<p>
|
|
<%= f.text_field :external_url, :required => false %>
|
|
</p>
|
|
</div>
|
|
<% end %>
|
|
<p>
|
|
<%= f.text_field :name, :required => true %>
|
|
</p>
|
|
</div>
|
|
<p>
|
|
<% if modal %>
|
|
<%= f.submit l(:button_create), :onclick => 'hideModal(this);' %>
|
|
<% else %>
|
|
<%= f.submit l(:button_create) %>
|
|
<% end %>
|
|
</p>
|
|
<% end %>
|
|
|
|
<%= late_javascript_tag do %>
|
|
<%# Select2 extension, TODO: in case of a modal window, select2 makes problems %>
|
|
<% unless modal %>
|
|
$('#dmsf_link_target_project_id').select2();
|
|
$('#dmsf_link_target_folder_id').select2();
|
|
$('#dmsf_link_target_file_id').select2();
|
|
<% end %>
|
|
<%# Suggest a link name when a file is selected %>
|
|
$('#dmsf_link_target_file_id').change(function () {
|
|
var linkName = $('#dmsf_link_name');
|
|
var name = linkName.val();
|
|
if(name == '') {
|
|
linkName.val($('#dmsf_link_target_file_id option:selected').text().replace(/\./g, ''));
|
|
}
|
|
});
|
|
<%# Internal/External link switch %>
|
|
$("input[name=external_link]:radio").change(function(){
|
|
$("#link_internal").toggle();
|
|
$("#link_external").toggle();
|
|
$("#dmsf_link_external_url").toggleClass('required', $(this).val());
|
|
var labelUrl = $('label[for="dmsf_link_external_url"]');
|
|
labelUrl.toggleClass('required', $(this).val());
|
|
if(labelUrl.find(".required").length == 0){
|
|
labelUrl.append('<span class="required"> *</span>');
|
|
}
|
|
});
|
|
<% end %>
|