* work on folder moving

git-svn-id: http://redmine-dmsf.googlecode.com/svn/trunk/redmine_dmsf@61 5e329b0b-a2ee-ea63-e329-299493fc886d
This commit is contained in:
vit.jonas@gmail.com 2011-05-20 14:00:13 +00:00
parent ea9603077e
commit 2735594603
4 changed files with 35 additions and 17 deletions

View File

@ -51,21 +51,25 @@ module DmsfHelper
end
end
def self.directory_tree(project)
def self.directory_tree(project, current_folder = nil)
tree = [["Documents", nil]]
DmsfFolder.project_root_folders(project).each do |folder|
tree.push(["...#{folder.name}", folder.id])
directory_subtree(tree, folder, 2)
unless folder == current_folder
tree.push(["...#{folder.name}", folder.id])
directory_subtree(tree, folder, 2, current_folder)
end
end
return tree
end
private
def self.directory_subtree(tree, folder, level)
def self.directory_subtree(tree, folder, level, current_folder)
folder.subfolders.each do |subfolder|
tree.push(["#{"..." * level}#{subfolder.name}", subfolder.id])
directory_subtree(tree, subfolder, level + 1)
unless subfolder == current_folder
tree.push(["#{"..." * level}#{subfolder.name}", subfolder.id])
directory_subtree(tree, subfolder, level + 1)
end
end
end

View File

@ -30,7 +30,7 @@ form_for(:dmsf_file_revision, @revision, :url => {:action => "save_file", :id =>
</div>
<div class="splitcontentright">
<p>
<%= label_tag("", l(:label_filename) + ":") %>
<%= label_tag("", l(:label_file) + ":") %>
<%= f.select(:folder,
options_for_select(DmsfHelper.directory_tree(@project),
:selected => (@revision.folder.id unless @revision.folder.nil?))) %> /

View File

@ -78,8 +78,8 @@
</div>
<div class="splitcontentright">
<p>
<%= label_tag("", l(:label_filename) + ":") %>
<%= h(revision.name) %>
<%= label_tag("", l(:label_file) + ":") %>
<%= (h(revision.folder.dmsf_path_str) + " / ") unless revision.folder.nil? %><%= h(revision.name) %>
</p>
</div>
</div>

View File

@ -9,17 +9,31 @@
</h2>
<% form_for(:dmsf_folder, @folder, :url => {:action => create ? "create_folder" : "save_folder", :id => @project, :folder_id => @folder, :parent_id => @parent},
:html => {:method=>:post, :class => "tabular"}) do |f| %>
:html => {:method=>:post}) do |f| %>
<%= error_messages_for("folder") %>
<div class="box">
<p>
<%= label_tag("dmsf_folder_name", l(:label_title) + ":") %>
<%= f.text_field(:name, :size => "32", :required => true) %>
</p>
<p>
<div class="box dmsf_detail">
<div class="clear">
<div class="splitcontentleft">
<p>
<%= label_tag("dmsf_folder_name", l(:label_title) + ":") %>
<%= f.text_field(:name, :size => "32", :required => true) %>
</p>
</div>
<div class="splitcontentright">
<p>
<%= label_tag("", l(:label_folder) + ":") %>
<%= f.select(:folder,
options_for_select(DmsfHelper.directory_tree(@project),
:selected => (@folder.folder.id unless @folder.folder.nil?))) %>
</p>
</div>
</div>
<p class="no-ident">
<%= label_tag("dmsf_folder_description", l(:label_description) + ":") %>
<%= f.text_area(:description, :rows => 15, :class => "wiki-edit") %>
</p>
<div class="wiki data clear">
<%= f.text_area(:description, :rows => 15, :class => "wiki-edit") %>
</div>
</div>
<%= submit_tag(create ? l(:submit_create) : l(:submit_save)) %>
<% end %>