Add an External Link type
This can be used for linking to documents that are not maintained by the system.
This commit is contained in:
parent
9bd4890c32
commit
00c0044d5a
@ -85,12 +85,26 @@ class DmsfController < ApplicationController
|
||||
DmsfLink.where(:project_id => @project.id, :target_type => DmsfFile.model_name).visible.each do |l|
|
||||
r = l.target_file.last_revision
|
||||
if r
|
||||
r.custom_field_values.each do |v|
|
||||
r.custom_field_values.each do |v|
|
||||
if v.custom_field_id == params[:custom_field_id].to_i
|
||||
if v.custom_field.compare_values?(v.value, params[:custom_value])
|
||||
@file_links << l
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@url_links = []
|
||||
DmsfLink.where(:project_id => @project.id, :target_type => 'DmsfUrl').visible.each do |l|
|
||||
r = l.target_file.last_revision
|
||||
if r
|
||||
r.custom_field_values.each do |v|
|
||||
if v.custom_field_id == params[:custom_field_id].to_i
|
||||
if v.custom_field.compare_values?(v.value, params[:custom_value])
|
||||
@file_links << l
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -100,6 +114,7 @@ class DmsfController < ApplicationController
|
||||
@files = @project.dmsf_files.visible
|
||||
@dir_links = @project.folder_links.visible
|
||||
@file_links = @project.file_links.visible
|
||||
@url_links = @project.url_links.visible
|
||||
end
|
||||
@locked_for_user = false
|
||||
else
|
||||
@ -107,6 +122,7 @@ class DmsfController < ApplicationController
|
||||
@files = @folder.files.visible
|
||||
@dir_links = @folder.folder_links.visible
|
||||
@file_links = @folder.file_links.visible
|
||||
@url_links = @folder.url_links.visible
|
||||
@locked_for_user = @folder.locked_for_user?
|
||||
end
|
||||
|
||||
@ -117,7 +133,8 @@ class DmsfController < ApplicationController
|
||||
@trash_enabled = DmsfFolder.deleted.where(:project_id => @project.id).any? ||
|
||||
DmsfFile.deleted.where(:project_id => @project.id).any? ||
|
||||
DmsfLink.deleted.where(:project_id => @project.id, :target_type => DmsfFolder.model_name).any? ||
|
||||
DmsfLink.deleted.where(:project_id => @project.id, :target_type => DmsfFile.model_name).any?
|
||||
DmsfLink.deleted.where(:project_id => @project.id, :target_type => DmsfFile.model_name).any? ||
|
||||
DmsfLink.deleted.where(:project_id => @project.id, :target_type => 'DmsfUrl').any?
|
||||
end
|
||||
|
||||
def trash
|
||||
@ -128,6 +145,7 @@ class DmsfController < ApplicationController
|
||||
@files = DmsfFile.deleted.where(:project_id => @project.id)
|
||||
@dir_links = DmsfLink.deleted.where(:project_id => @project.id, :target_type => DmsfFolder.model_name)
|
||||
@file_links = DmsfLink.deleted.where(:project_id => @project.id, :target_type => DmsfFile.model_name)
|
||||
@url_links = DmsfLink.deleted.where(:project_id => @project.id, :target_type => 'DmsfUrl')
|
||||
end
|
||||
|
||||
def download_email_entries
|
||||
|
||||
@ -29,9 +29,10 @@ class DmsfLinksController < ApplicationController
|
||||
|
||||
if params[:dmsf_link].present?
|
||||
# Reload
|
||||
@dmsf_link.dmsf_folder_id = params[:dmsf_link][:dmsf_folder_id]
|
||||
@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')
|
||||
@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'
|
||||
@ -68,6 +69,7 @@ class DmsfLinksController < ApplicationController
|
||||
@dmsf_link.dmsf_folder_id = params[:dmsf_folder_id]
|
||||
@dmsf_file_id = params[:dmsf_file_id]
|
||||
@type = params[:type]
|
||||
@link_external = false
|
||||
@dmsf_link.target_project_id = params[:project_id]
|
||||
@target_folder_id = params[:dmsf_folder_id].to_i if params[:dmsf_folder_id].present?
|
||||
if @type == 'link_to'
|
||||
@ -86,13 +88,18 @@ class DmsfLinksController < ApplicationController
|
||||
|
||||
def create
|
||||
@dmsf_link = DmsfLink.new
|
||||
@dmsf_link.user = User.current
|
||||
|
||||
if params[:dmsf_link][:type] == 'link_from'
|
||||
# Link from
|
||||
@dmsf_link.project_id = params[:dmsf_link][:project_id]
|
||||
@dmsf_link.dmsf_folder_id = params[:dmsf_link][:dmsf_folder_id]
|
||||
@dmsf_link.target_project_id = params[:dmsf_link][:target_project_id]
|
||||
if params[:dmsf_link][:target_file_id].present?
|
||||
@link_external = (params[:external_link] == 'true')
|
||||
@dmsf_link.external_url = params[:dmsf_link][:external_url]
|
||||
if (@link_external)
|
||||
@dmsf_link.target_type = 'DmsfUrl'
|
||||
elsif params[:dmsf_link][:target_file_id].present?
|
||||
@dmsf_link.target_id = params[:dmsf_link][:target_file_id]
|
||||
@dmsf_link.target_type = DmsfFile.model_name
|
||||
else
|
||||
@ -116,7 +123,11 @@ class DmsfLinksController < ApplicationController
|
||||
@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
|
||||
@dmsf_link.target_project_id = params[:dmsf_link][:project_id]
|
||||
if params[:dmsf_link][:dmsf_file_id].present?
|
||||
@link_external = (params[:external_link] == 'true')
|
||||
@dmsf_link.external_url = params[:dmsf_link][:external_url]
|
||||
if (@link_external)
|
||||
@dmsf_link.target_type = 'DmsfUrl'
|
||||
elsif params[:dmsf_link][:dmsf_file_id].present?
|
||||
@dmsf_link.target_id = params[:dmsf_link][:dmsf_file_id]
|
||||
@dmsf_link.target_type = DmsfFile.model_name
|
||||
else
|
||||
@ -143,12 +154,24 @@ class DmsfLinksController < ApplicationController
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def destroy
|
||||
if @dmsf_link.delete
|
||||
flash[:notice] = l(:notice_successful_delete)
|
||||
|
||||
def destroy
|
||||
begin
|
||||
if @dmsf_link
|
||||
commit = params[:commit] == 'yes'
|
||||
if @dmsf_link.delete(commit)
|
||||
flash[:notice] = l(:notice_successful_delete)
|
||||
else
|
||||
@dmsf_link.errors.each do |e, msg|
|
||||
flash[:error] = msg
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
rescue Exception => e
|
||||
errors[:base] << e.message
|
||||
return false
|
||||
end
|
||||
|
||||
redirect_to :back
|
||||
end
|
||||
|
||||
|
||||
@ -37,7 +37,9 @@ class DmsfFolder < ActiveRecord::Base
|
||||
has_many :folder_links, :class_name => 'DmsfLink', :foreign_key => 'dmsf_folder_id',
|
||||
:conditions => {:target_type => DmsfFolder.model_name}, :dependent => :destroy
|
||||
has_many :file_links, :class_name => 'DmsfLink', :foreign_key => 'dmsf_folder_id',
|
||||
:conditions => {:target_type => DmsfFile.model_name}, :dependent => :destroy
|
||||
:conditions => {:target_type => DmsfFile.model_name}, :dependent => :destroy
|
||||
has_many :url_links, :class_name => 'DmsfLink', :foreign_key => 'dmsf_folder_id',
|
||||
:conditions => {:target_type => 'DmsfUrl'}, :dependent => :destroy
|
||||
has_many :referenced_links, :class_name => 'DmsfLink', :foreign_key => 'target_id',
|
||||
:conditions => {:target_type => DmsfFolder.model_name}, :dependent => :destroy
|
||||
has_many :locks, :class_name => 'DmsfLock', :foreign_key => 'entity_id',
|
||||
@ -243,6 +245,10 @@ class DmsfFolder < ActiveRecord::Base
|
||||
self.file_links.visible.each do |l|
|
||||
l.copy_to project, new_folder
|
||||
end
|
||||
|
||||
self.url_links.visible.each do |l|
|
||||
l.copy_to project, new_folder
|
||||
end
|
||||
|
||||
return new_folder
|
||||
end
|
||||
@ -304,6 +310,9 @@ class DmsfFolder < ActiveRecord::Base
|
||||
file_links.each do |file_link|
|
||||
last_update = file_link.updated_at if file_link.updated_at > last_update
|
||||
end
|
||||
url_links.each do |url_link|
|
||||
last_update = url_link.updated_at if url_link.updated_at > last_update
|
||||
end
|
||||
last_update
|
||||
end
|
||||
|
||||
|
||||
@ -22,9 +22,9 @@ 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 :user
|
||||
|
||||
validates :name, :presence => true
|
||||
validates :target_id, :presence => true
|
||||
validates_length_of :name, :maximum => 255
|
||||
|
||||
scope :visible, where(:deleted => false)
|
||||
@ -95,6 +95,7 @@ class DmsfLink < ActiveRecord::Base
|
||||
:target_id => self.target_id,
|
||||
:target_type => self.target_type,
|
||||
:name => self.name,
|
||||
:external_url => self.external_url,
|
||||
:project_id => project.id,
|
||||
:dmsf_folder_id => folder ? folder.id : nil)
|
||||
link.save
|
||||
|
||||
59
app/views/dmsf/_url.html.erb
Normal file
59
app/views/dmsf/_url.html.erb
Normal file
@ -0,0 +1,59 @@
|
||||
<%#=
|
||||
# Redmine plugin for Document Management System "Features"
|
||||
#
|
||||
# Copyright (C) 2011-14 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.
|
||||
%>
|
||||
|
||||
<td class="check"></td>
|
||||
<td class="title">
|
||||
<%= link_to(h(title),
|
||||
link.external_url,
|
||||
:target => "_blank",
|
||||
:class => 'icon icon-link') %>
|
||||
<div class="filename" title="<%= l(:label_target_folder)%>"><%= link.external_url %></div>
|
||||
</td>
|
||||
<td class="size"></td>
|
||||
<td class="modified"><%= format_time(link.updated_at) %></td>
|
||||
<td class="version"></td>
|
||||
<td class="workflow"></td>
|
||||
<td class="author"><%= h(link.user) %></td>
|
||||
<td class="actions">
|
||||
<% if @file_manipulation_allowed %>
|
||||
<div class="right_icon_box">
|
||||
<% if @file_manipulation_allowed %>
|
||||
<span class="icon"></span>
|
||||
<span class="icon"></span>
|
||||
<span class="icon icon-margin-left"></span>
|
||||
<%= link_to('',
|
||||
dmsf_link_path(link),
|
||||
:data => {:confirm => l(:text_are_you_sure)},
|
||||
:method => :delete,
|
||||
:title => l(:title_delete),
|
||||
:class => 'icon icon-del') %>
|
||||
<% else %>
|
||||
<span class="icon"></span>
|
||||
<span class="icon"></span>
|
||||
<span class="icon icon-margin-left"></span>
|
||||
<span class="icon"></span>
|
||||
<% end %>
|
||||
</div>
|
||||
<% end %>
|
||||
</td>
|
||||
<td class="hidden">1</td>
|
||||
<td class="hidden"></td>
|
||||
<td class="hidden"></td>
|
||||
<td class="hidden"></td>
|
||||
53
app/views/dmsf/_url_trash.html.erb
Normal file
53
app/views/dmsf/_url_trash.html.erb
Normal file
@ -0,0 +1,53 @@
|
||||
<%#=
|
||||
# Redmine plugin for Document Management System "Features"
|
||||
#
|
||||
# Copyright (C) 2011-14 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.
|
||||
%>
|
||||
|
||||
<td class="check"></td>
|
||||
<td class="title">
|
||||
<%= link_to(h(title),
|
||||
link.external_url,
|
||||
:target => "_blank",
|
||||
:class => 'icon icon-link') %>
|
||||
<div class="filename" title="<%= l(:label_target_folder)%>"><%= link.external_url %></div>
|
||||
</td>
|
||||
<td class="size"></td>
|
||||
<td class="modified"><%= format_time(link.updated_at) %></td>
|
||||
<td class="version"></td>
|
||||
<td class="workflow"></td>
|
||||
<td class="author"><%= h(link.user) %></td>
|
||||
<td class="actions">
|
||||
<% if @file_manipulation_allowed %>
|
||||
<div class="right_icon_box">
|
||||
<%= link_to('',
|
||||
restore_dmsf_link_path(:id => link),
|
||||
:title => l(:title_restore),
|
||||
:class => 'icon icon-dmsf-restore') %>
|
||||
<%= link_to('',
|
||||
dmsf_link_path(:id => link, :commit => 'yes'),
|
||||
:data => {:confirm => l(:text_are_you_sure)},
|
||||
:method => :delete,
|
||||
:title => l(:title_delete),
|
||||
:class => 'icon icon-dmsf-rev-delete') %>
|
||||
</div>
|
||||
<% end %>
|
||||
</td>
|
||||
<td class="hidden">1</td>
|
||||
<td class="hidden"></td>
|
||||
<td class="hidden"></td>
|
||||
<td class="hidden"></td>
|
||||
@ -181,20 +181,31 @@
|
||||
</tr>
|
||||
<% end %>
|
||||
<% @file_links.each do |link| %>
|
||||
<% unless link.target_file.last_revision %>
|
||||
<% Rails.logger.error "Error: dmsf_file id #{link.target_id} has no revision!" %>
|
||||
<% next %>
|
||||
<% end %>
|
||||
<tr class="gray">
|
||||
<%= render(:partial => 'file', :locals => {
|
||||
:project => link.target_project,
|
||||
:file => link.target_file,
|
||||
:link => link,
|
||||
:id => link.id,
|
||||
:name => 'file_links[]',
|
||||
:title => link.name }) %>
|
||||
</tr>
|
||||
<% end %>
|
||||
<% unless link.target_file.last_revision %>
|
||||
<% Rails.logger.error "Error: dmsf_file id #{link.target_id} has no revision!" %>
|
||||
<% next %>
|
||||
<% end %>
|
||||
<tr class="gray">
|
||||
<%= render(:partial => 'file', :locals => {
|
||||
:project => link.target_project,
|
||||
:file => link.target_file,
|
||||
:link => link,
|
||||
:id => link.id,
|
||||
:name => 'file_links[]',
|
||||
:title => link.name }) %>
|
||||
</tr>
|
||||
<% end %>
|
||||
<% @url_links.each do |link| %>
|
||||
<tr class="gray">
|
||||
<%= render(:partial => 'url', :locals => {
|
||||
:project => link.target_project,
|
||||
:file => link.target_file,
|
||||
:link => link,
|
||||
:id => link.id,
|
||||
:name => 'file_links[]',
|
||||
:title => link.name }) %>
|
||||
</tr>
|
||||
<% end %>
|
||||
</tbody>
|
||||
</table>
|
||||
<% end %>
|
||||
|
||||
@ -117,6 +117,17 @@
|
||||
:title => link.name }) %>
|
||||
</tr>
|
||||
<% end %>
|
||||
<% @url_links.each do |link| %>
|
||||
<tr class="gray">
|
||||
<%= render(:partial => 'url_trash', :locals => {
|
||||
:project => link.target_project,
|
||||
:file => link.target_file,
|
||||
:link => link,
|
||||
:id => link.id,
|
||||
:name => 'url_links[]',
|
||||
:title => link.name }) %>
|
||||
</tr>
|
||||
<% end %>
|
||||
</tbody>
|
||||
</table>
|
||||
<% end %>
|
||||
|
||||
@ -24,6 +24,7 @@
|
||||
<% if @dmsf_file_id %>
|
||||
<% file = DmsfFile.find_by_id @dmsf_file_id%>
|
||||
<% title = file.title if file %>
|
||||
<% title = file.title if file %>
|
||||
<% end %>
|
||||
|
||||
<%= render(:partial => '/dmsf/path', :locals => {:folder => @dmsf_link.folder, :filename => title}) %>
|
||||
@ -34,40 +35,51 @@
|
||||
<%= 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 %>
|
||||
<div class="box dmsf_detail">
|
||||
<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 %>
|
||||
<% folder = DmsfFolder.find_by_id @target_folder_id %>
|
||||
<% files = folder.files.visible if folder %>
|
||||
<% else %>
|
||||
<% files = @dmsf_link.target_project.dmsf_files.visible if @dmsf_link.target_project %>
|
||||
<div class="box dmsf_detail">
|
||||
<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>
|
||||
<% if @type == 'link_from' %>
|
||||
<p>
|
||||
<% if @target_folder_id %>
|
||||
<% folder = DmsfFolder.find_by_id @target_folder_id %>
|
||||
<% files = folder.files.visible if folder %>
|
||||
<% else %>
|
||||
<% files = @dmsf_link.target_project.dmsf_files.visible if @dmsf_link.target_project %>
|
||||
<% end %>
|
||||
<%= f.select(:target_file_id,
|
||||
options_for_select(DmsfFolder.file_list(files), @target_file_id)) %>
|
||||
</p>
|
||||
<% end %>
|
||||
<%= f.select(:target_file_id,
|
||||
options_for_select(DmsfFolder.file_list(files), @target_file_id)) %>
|
||||
</p>
|
||||
<% end %>
|
||||
<p>
|
||||
<p>
|
||||
</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>
|
||||
<%= 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>
|
||||
@ -85,4 +97,8 @@
|
||||
$('#dmsf_link_target_file_id').change(function () {
|
||||
$('#content').load("<%= url_for(:action => 'new', :project_id => @project.id) %>", $('#new_dmsf_link').serialize());
|
||||
});
|
||||
$("input[name=external_link]:radio").change(function(){
|
||||
$("#link_internal").toggle();
|
||||
$("#link_external").toggle();
|
||||
});
|
||||
</script>
|
||||
@ -286,6 +286,7 @@ cs:
|
||||
field_target_file: Zdrojový soubor
|
||||
title_download_entries: Historie stahování
|
||||
label_link_name: Název odkazu
|
||||
label_link_external_url: URL
|
||||
label_target_folder: Cílový adresář
|
||||
label_source_folder: Zdrojový adresář
|
||||
label_target_project: Cílový projekt
|
||||
|
||||
@ -283,6 +283,7 @@ de:
|
||||
field_target_file: Quelldatei
|
||||
title_download_entries: Download entries
|
||||
label_link_name: Name der Verknüpfung
|
||||
label_link_external_url: URL
|
||||
label_target_folder: Zielordner
|
||||
label_source_folder: Quellordner
|
||||
label_target_project: Zielprojekt
|
||||
|
||||
@ -283,7 +283,9 @@ en:
|
||||
label_notifications_off: Notifications off
|
||||
field_target_file: Source file
|
||||
title_download_entries: Download entries
|
||||
|
||||
label_link_name: Link name
|
||||
label_link_external_url: URL
|
||||
label_target_folder: Target folder
|
||||
label_source_folder: Source folder
|
||||
label_target_project: Target project
|
||||
|
||||
@ -286,6 +286,7 @@ es:
|
||||
field_target_file: Source file
|
||||
title_download_entries: Download entries
|
||||
label_link_name: Link name
|
||||
label_link_external_url: URL
|
||||
label_target_folder: Target folder
|
||||
label_source_folder: Source folder
|
||||
label_target_project: Target project
|
||||
|
||||
@ -286,6 +286,7 @@ fr:
|
||||
field_target_file: Fichier source
|
||||
title_download_entries: Historique des téléchargements
|
||||
label_link_name: Nom du lien
|
||||
label_link_external_url: Adresse Internet
|
||||
label_target_folder: Dossier cible
|
||||
label_source_folder: Dossier source
|
||||
label_target_project: Projet cible
|
||||
|
||||
@ -286,6 +286,7 @@ ja:
|
||||
field_target_file: Source file
|
||||
title_download_entries: Download entries
|
||||
label_link_name: Link name
|
||||
label_link_external_url: URL
|
||||
label_target_folder: Target folder
|
||||
label_source_folder: Source folder
|
||||
label_target_project: Target project
|
||||
|
||||
@ -286,6 +286,7 @@ pl:
|
||||
field_target_file: Plik źródłowy
|
||||
title_download_entries: Pobrane
|
||||
label_link_name: Nazwa odnośnika
|
||||
label_link_external_url: URL
|
||||
label_target_folder: Folder docelowy
|
||||
label_source_folder: Folder źródłowy
|
||||
label_target_project: Projekt docelowy
|
||||
|
||||
@ -286,6 +286,7 @@ ru:
|
||||
field_target_file: Source file
|
||||
title_download_entries: Download entries
|
||||
label_link_name: Link name
|
||||
label_link_external_url: URL
|
||||
label_target_folder: Target folder
|
||||
label_source_folder: Source folder
|
||||
label_target_project: Target project
|
||||
|
||||
@ -286,6 +286,7 @@ sl:
|
||||
field_target_file: Source file
|
||||
title_download_entries: Download entries
|
||||
label_link_name: Link name
|
||||
label_link_external_url: URL
|
||||
label_target_folder: Target folder
|
||||
label_source_folder: Source folder
|
||||
label_target_project: Target project
|
||||
|
||||
@ -288,6 +288,7 @@
|
||||
field_target_file: Source file
|
||||
title_download_entries: Download entries
|
||||
label_link_name: Link name
|
||||
label_link_external_url: URL
|
||||
label_target_folder: Target folder
|
||||
label_source_folder: Source folder
|
||||
label_target_project: Target project
|
||||
|
||||
@ -286,6 +286,7 @@ zh:
|
||||
field_target_file: Source file
|
||||
title_download_entries: Download entries
|
||||
label_link_name: Link name
|
||||
label_link_external_url: URL
|
||||
label_target_folder: Target folder
|
||||
label_source_folder: Source folder
|
||||
label_target_project: Target project
|
||||
|
||||
@ -77,7 +77,14 @@ RedmineApp::Application.routes.draw do
|
||||
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'
|
||||
|
||||
|
||||
#
|
||||
# url controller
|
||||
# /dmsf/links/<file id>
|
||||
##
|
||||
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 => ''
|
||||
|
||||
15
db/migrate/20150130052716_add_external.rb
Normal file
15
db/migrate/20150130052716_add_external.rb
Normal file
@ -0,0 +1,15 @@
|
||||
class AddExternal < ActiveRecord::Migration
|
||||
def up
|
||||
change_column :dmsf_links, :target_id, :integer, :null => true
|
||||
|
||||
add_column :dmsf_links, :external_url, :string, :null => true
|
||||
add_column :dmsf_links, :user_id, :integer
|
||||
end
|
||||
|
||||
def down
|
||||
change_column :dmsf_links, :target_id, :integer, :null => false
|
||||
|
||||
remove_column :dmsf_links, :external_url
|
||||
remove_column :dmsf_links, :user_id
|
||||
end
|
||||
end
|
||||
9
db/migrate/20150202010301_add_user_to_links.rb
Normal file
9
db/migrate/20150202010301_add_user_to_links.rb
Normal file
@ -0,0 +1,9 @@
|
||||
class AddUserToLinks < ActiveRecord::Migration
|
||||
def up
|
||||
add_column :dmsf_links, :user_id, :integer
|
||||
end
|
||||
|
||||
def down
|
||||
remove_column :dmsf_links, :user_id
|
||||
end
|
||||
end
|
||||
@ -42,7 +42,10 @@ module RedmineDmsf
|
||||
:dependent => :destroy
|
||||
has_many :file_links, :class_name => 'DmsfLink', :foreign_key => 'project_id',
|
||||
:conditions => { :dmsf_folder_id => nil, :target_type => 'DmsfFile' },
|
||||
:dependent => :destroy
|
||||
:dependent => :destroy
|
||||
has_many :url_links, :class_name => 'DmsfLink', :foreign_key => 'project_id',
|
||||
:conditions => { :dmsf_folder_id => nil, :target_type => 'DmsfUrl' },
|
||||
:dependent => :destroy
|
||||
end
|
||||
end
|
||||
|
||||
@ -89,6 +92,9 @@ module RedmineDmsf
|
||||
project.file_links.visible.each do |l|
|
||||
l.copy_to(self, nil)
|
||||
end
|
||||
project.url_links.visible.each do |l|
|
||||
l.copy_to(self, nil)
|
||||
end
|
||||
end
|
||||
|
||||
def copy_approval_workflows(project)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user