diff --git a/nested_projects/app/controllers/users_controller.rb b/nested_projects/app/controllers/users_controller.rb index e2ab510fb..a37af0510 100644 --- a/nested_projects/app/controllers/users_controller.rb +++ b/nested_projects/app/controllers/users_controller.rb @@ -83,7 +83,7 @@ class UsersController < ApplicationController end @auth_sources = AuthSource.find(:all) @roles = Role.find_all_givable - @projects = Project.find(:all, :order => 'name', :conditions => "status=#{Project::STATUS_ACTIVE}") - @user.projects + @projects = Project.active.find(:all, :order => 'lft') @membership ||= Member.new @memberships = @user.memberships end diff --git a/nested_projects/app/helpers/users_helper.rb b/nested_projects/app/helpers/users_helper.rb index 18a80ef20..b9e990d6e 100644 --- a/nested_projects/app/helpers/users_helper.rb +++ b/nested_projects/app/helpers/users_helper.rb @@ -25,9 +25,11 @@ module UsersHelper end # Options for the new membership projects combo-box - def projects_options_for_select(projects) + def options_for_membership_project_select(user, projects) options = content_tag('option', "--- #{l(:actionview_instancetag_blank_option)} ---") - options << project_tree_options_for_select(projects) + options << project_tree_options_for_select(projects) do |p| + {:disabled => (user.projects.include?(p))} + end options end diff --git a/nested_projects/app/views/users/_memberships.rhtml b/nested_projects/app/views/users/_memberships.rhtml index 94b49159e..d1657fb98 100644 --- a/nested_projects/app/views/users/_memberships.rhtml +++ b/nested_projects/app/views/users/_memberships.rhtml @@ -31,7 +31,7 @@


<% form_tag({ :action => 'edit_membership', :id => @user }) do %> -<%= select_tag 'membership[project_id]', projects_options_for_select(@projects) %> +<%= select_tag 'membership[project_id]', options_for_membership_project_select(@user, @projects) %> <%= l(:label_role) %>: <%= select_tag 'membership[role_id]', options_from_collection_for_select(@roles, "id", "name") %> <%= submit_tag l(:button_add) %>