* 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:
parent
c164cfb0c2
commit
f9f5f3ae8a
@ -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")
|
||||
|
||||
@ -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?))) %>
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user