diff --git a/nested_projects/app/helpers/projects_helper.rb b/nested_projects/app/helpers/projects_helper.rb index 566778734..2cf4cb750 100644 --- a/nested_projects/app/helpers/projects_helper.rb +++ b/nested_projects/app/helpers/projects_helper.rb @@ -34,8 +34,13 @@ module ProjectsHelper tabs.select {|tab| User.current.allowed_to?(tab[:action], @project)} end - def project_hierarchy_collection_for_select(projects) - projects.sort_by(&:lft).collect {|p| [('>' * p.level) + p.name.to_s, p.id]} + def parent_project_select_tag(project) + options = '' + project_tree(project.possible_parents) do |p, i| + selected = (project.parent == p) + options << "" + end + content_tag('select', options, :name => 'project[parent_id]') end # Renders a tree of projects as a nested set of unordered lists diff --git a/nested_projects/app/views/projects/_form.rhtml b/nested_projects/app/views/projects/_form.rhtml index 41f9b1859..a7cb2e0e4 100644 --- a/nested_projects/app/views/projects/_form.rhtml +++ b/nested_projects/app/views/projects/_form.rhtml @@ -5,7 +5,7 @@

<%= f.text_field :name, :required => true %>
<%= l(:text_caracters_maximum, 30) %>

<% if User.current.admin? && !@project.possible_parents.empty? %> -

<%= f.select :parent_id, project_hierarchy_collection_for_select(@project.possible_parents), { :include_blank => true } %>

+

<%= parent_project_select_tag(@project) %>

<% end %>

<%= f.text_area :description, :rows => 5, :class => 'wiki-edit' %>