From 57d16928cb0cb121081138fbe5a7fa569ae18c3e Mon Sep 17 00:00:00 2001 From: Karel Picman Date: Wed, 12 Mar 2014 08:10:27 +0100 Subject: [PATCH] #183 Links copying --- app/models/dmsf_folder.rb | 14 +++++++++++--- app/models/dmsf_link.rb | 14 +++++++++++++- app/views/dmsf_files/show.html.erb | 1 - test/unit/dmsf_links_test.rb | 22 ++++++++++++++++++++++ 4 files changed, 46 insertions(+), 5 deletions(-) diff --git a/app/models/dmsf_folder.rb b/app/models/dmsf_folder.rb index c138ca7b..3c25fdd0 100644 --- a/app/models/dmsf_folder.rb +++ b/app/models/dmsf_folder.rb @@ -202,11 +202,19 @@ class DmsfFolder < ActiveRecord::Base return new_folder unless new_folder.save self.files.visible.each do |f| - f.copy_to(project, new_folder) + f.copy_to project, new_folder end - self.subfolders.each do |s| - s.copy_to(project, new_folder) + self.subfolders.visible.each do |s| + s.copy_to project, new_folder + end + + self.folder_links.visible.each do |l| + l.copy_to project, new_folder + end + + self.file_links.visible.each do |l| + l.copy_to project, new_folder end return new_folder diff --git a/app/models/dmsf_link.rb b/app/models/dmsf_link.rb index ba4c8105..37d9e0b3 100644 --- a/app/models/dmsf_link.rb +++ b/app/models/dmsf_link.rb @@ -84,5 +84,17 @@ class DmsfLink < ActiveRecord::Base end path end + + def copy_to(project, folder) + link = DmsfLink.new( + :target_project_id => self.target_project_id, + :target_id => self.target_id, + :target_type => self.target_type, + :name => self.name, + :project_id => project.id, + :dmsf_folder_id => folder.id) + link.save + link + end -end +end \ No newline at end of file diff --git a/app/views/dmsf_files/show.html.erb b/app/views/dmsf_files/show.html.erb index 46087c0f..e08c774c 100644 --- a/app/views/dmsf_files/show.html.erb +++ b/app/views/dmsf_files/show.html.erb @@ -63,7 +63,6 @@ <%= error_messages_for('file') %> <%= error_messages_for('revision') %> <%= render(:partial => 'file_new_revision') if User.current.allowed_to?(:file_manipulation, @file.project) %> -<%#= form_tag('', :id => 'entries_form') %>

<%= l(:heading_revisions) %>

<% @file.revisions.visible[@revision_pages.offset,@revision_pages.per_page].each do |revision| %> diff --git a/test/unit/dmsf_links_test.rb b/test/unit/dmsf_links_test.rb index d3665737..1dc7af34 100644 --- a/test/unit/dmsf_links_test.rb +++ b/test/unit/dmsf_links_test.rb @@ -144,6 +144,28 @@ class DmsfLinksTest < RedmineDmsf::Test::UnitTest @folder_link.target_folder.dmsf_path_str end + def test_copy_to + # File link + file_link_copy = @file_link.copy_to @folder2.project, @folder2 + assert_not_nil file_link_copy + assert_equal file_link_copy.target_project_id, @file_link.target_project_id + assert_equal file_link_copy.target_id, @file_link.target_id + assert_equal file_link_copy.target_type, @file_link.target_type + assert_equal file_link_copy.name, @file_link.name + assert_equal file_link_copy.project_id, @folder2.project.id + assert_equal file_link_copy.dmsf_folder_id, @folder2.id + + # Folder link + folder_link_copy = @folder_link.copy_to @folder2.project, @folder2 + assert_not_nil folder_link_copy + assert_equal folder_link_copy.target_project_id, @folder_link.target_project_id + assert_equal folder_link_copy.target_id, @folder_link.target_id + assert_equal folder_link_copy.target_type, @folder_link.target_type + assert_equal folder_link_copy.name, @folder_link.name + assert_equal folder_link_copy.project_id, @folder2.project.id + assert_equal folder_link_copy.dmsf_folder_id, @folder2.id + end + def test_destroy @folder_link.destroy assert_nil DmsfLink.find_by_id 1