* folder cycle validation

git-svn-id: http://redmine-dmsf.googlecode.com/svn/trunk/redmine_dmsf@66 5e329b0b-a2ee-ea63-e329-299493fc886d
This commit is contained in:
vit.jonas@gmail.com 2011-05-21 10:33:11 +00:00
parent c164cfb0c2
commit f9f5f3ae8a
10 changed files with 32 additions and 9 deletions

View File

@ -28,6 +28,21 @@ class DmsfFolder < ActiveRecord::Base
validates_presence_of :name
validates_uniqueness_of :name, :scope => [:dmsf_folder_id, :project_id]
validate :check_cycle
def check_cycle
folders = []
self.subfolders.each {|f| folders.push(f)}
folders.each do |folder|
if folder == self.folder
errors.add(:folder, l(:error_create_cycle_in_folder_dependency))
return false
end
folder.subfolders.each {|f| folders.push(f)}
end
return true
end
def self.project_root_folders(project)
find(:all, :conditions =>
["dmsf_folder_id is NULL and project_id = :project_id", {:project_id => project.id}], :order => "name ASC")

View File

@ -21,7 +21,7 @@
</div>
<div class="splitcontentright">
<p>
<%= label_tag("", l(:label_folder) + ":") %>
<%= label_tag("", l(:field_folder) + ":") %>
<%= f.select(:dmsf_folder_id,
options_for_select(DmsfFolder.directory_tree(@project, @folder),
:selected => @folder.nil? ? (@pathfolder.id unless @pathfolder.nil?) : (@folder.folder.id unless @folder.folder.nil?))) %>

View File

@ -136,5 +136,6 @@ cs:
:permission_file_approval: "File approval"
:permission_force_file_unlock: "Force file unlock"
:label_file: "File"
:label_folder: "Folder"
:field_folder: "Folder"
:error_create_cycle_in_folder_dependency: "create cycle in folder dependency"

View File

@ -132,5 +132,6 @@ de:
:permission_file_approval: "File approval"
:permission_force_file_unlock: "Force file unlock"
:label_file: "File"
:label_folder: "Folder"
:field_folder: "Folder"
:error_create_cycle_in_folder_dependency: "create cycle in folder dependency"

View File

@ -132,5 +132,6 @@ en-GB:
:permission_file_approval: "File approval"
:permission_force_file_unlock: "Force file unlock"
:label_file: "File"
:label_folder: "Folder"
:field_folder: "Folder"
:error_create_cycle_in_folder_dependency: "create cycle in folder dependency"

View File

@ -136,5 +136,6 @@ en:
:permission_file_approval: "File approval"
:permission_force_file_unlock: "Force file unlock"
:label_file: "File"
:label_folder: "Folder"
:field_folder: "Folder"
:error_create_cycle_in_folder_dependency: "create cycle in folder dependency"

View File

@ -134,5 +134,6 @@ es:
:permission_file_approval: "File approval"
:permission_force_file_unlock: "Force file unlock"
:label_file: "File"
:label_folder: "Folder"
:field_folder: "Folder"
:error_create_cycle_in_folder_dependency: "create cycle in folder dependency"

View File

@ -132,5 +132,6 @@ fr:
:permission_file_approval: "File approval"
:permission_force_file_unlock: "Force file unlock"
:label_file: "File"
:label_folder: "Folder"
:field_folder: "Folder"
:error_create_cycle_in_folder_dependency: "create cycle in folder dependency"

View File

@ -136,5 +136,6 @@ en:
:permission_file_approval: "File approval"
:permission_force_file_unlock: "Force file unlock"
:label_file: "File"
:label_folder: "Folder"
:field_folder: "Folder"
:error_create_cycle_in_folder_dependency: "create cycle in folder dependency"

View File

@ -132,5 +132,6 @@ ru:
:permission_file_approval: "File approval"
:permission_force_file_unlock: "Force file unlock"
:label_file: "File"
:label_folder: "Folder"
:field_folder: "Folder"
:error_create_cycle_in_folder_dependency: "create cycle in folder dependency"