]> source.dussan.org Git - redmine.git/commitdiff
Moved new group user to its own action GroupsController#new_users.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 16 Nov 2014 08:53:39 +0000 (08:53 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 16 Nov 2014 08:53:39 +0000 (08:53 +0000)
git-svn-id: http://svn.redmine.org/redmine/trunk@13602 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/groups_controller.rb
app/helpers/groups_helper.rb
app/views/groups/_new_users_form.html.erb [new file with mode: 0644]
app/views/groups/_new_users_modal.html.erb [new file with mode: 0644]
app/views/groups/_users.html.erb
app/views/groups/add_users.js.erb
app/views/groups/new_users.html.erb [new file with mode: 0644]
app/views/groups/new_users.js.erb [new file with mode: 0644]
config/routes.rb
test/functional/groups_controller_test.rb
test/integration/routing/groups_test.rb

index d67f0382b5ad981218e26128c4daa888072cd730..4a12b9b5b081fe37973de776df36982f6de826f9 100644 (file)
@@ -95,6 +95,9 @@ class GroupsController < ApplicationController
     end
   end
 
+  def new_users
+  end
+
   def add_users
     @users = User.where(:id => (params[:user_id] || params[:user_ids])).to_a
     @group.users << @users if request.post?
index 315be99fc9b4d156ce6e0d27276b6dc606c0edf5..4275f29a0a2f007eee8ce0c2dfa6e7967f005830 100644 (file)
@@ -32,7 +32,10 @@ module GroupsHelper
     principal_pages = Redmine::Pagination::Paginator.new principal_count, 100, params['page']
     principals = scope.offset(principal_pages.offset).limit(principal_pages.per_page).to_a
 
-    s = content_tag('div', principals_check_box_tags('user_ids[]', principals), :id => 'principals')
+    s = content_tag('div',
+      content_tag('div', principals_check_box_tags('user_ids[]', principals), :id => 'principals'),
+      :class => 'objects-selection'
+    )
 
     links = pagination_links_full(principal_pages, principal_count, :per_page_links => false) {|text, parameters, options|
       link_to text, autocomplete_for_user_group_path(group, parameters.merge(:q => params[:q], :format => 'js')), :remote => true
diff --git a/app/views/groups/_new_users_form.html.erb b/app/views/groups/_new_users_form.html.erb
new file mode 100644 (file)
index 0000000..5c33a96
--- /dev/null
@@ -0,0 +1,9 @@
+<fieldset class="box">
+  <legend><%= label_tag "user_search", l(:label_user_search) %></legend>
+  <p><%= text_field_tag 'user_search', nil %></p>
+  <%= javascript_tag "observeSearchfield('user_search', null, '#{ escape_javascript autocomplete_for_user_group_path(@group) }')" %>
+
+  <div id="users">
+    <%= render_principals_for_new_group_users(@group) %>
+  </div>
+</fieldset>
diff --git a/app/views/groups/_new_users_modal.html.erb b/app/views/groups/_new_users_modal.html.erb
new file mode 100644 (file)
index 0000000..eb2e985
--- /dev/null
@@ -0,0 +1,9 @@
+<h3 class="title"><%= l(:label_user_new) %></h3>
+
+<%= form_for(@group, :url => group_users_path(@group), :remote => true, :method => :post) do |f| %>
+  <%= render :partial => 'new_users_form' %>
+  <p class="buttons">
+    <%= submit_tag l(:button_add) %>
+    <%= submit_tag l(:button_cancel), :name => nil, :onclick => "hideModal(this);", :type => 'button' %>
+  </p>
+<% end %>
index 13f85c89440ac19858bf7320ea330605877677fe..391edf4d8a8dad4d5ccdcaec6581b56272a2f187 100644 (file)
@@ -1,4 +1,5 @@
-<div class="splitcontentleft">
+<p><%= link_to l(:label_user_new), new_group_users_path(@group), :remote => true, :class => "icon icon-add" %></p>
+
 <% if @group.users.any? %>
   <table class="list users">
     <thead><tr>
 <% else %>
   <p class="nodata"><%= l(:label_no_data) %></p>
 <% end %>
-</div>
-
-<div class="splitcontentright">
-  <%= form_for(@group, :remote => true, :url => group_users_path(@group),
-               :html => {:method => :post}) do |f| %>
-    <fieldset><legend><%=l(:label_user_new)%></legend>
-
-    <p><%= label_tag "user_search", l(:label_user_search) %><%= text_field_tag 'user_search', nil %></p>
-    <%= javascript_tag "observeSearchfield('user_search', null, '#{ escape_javascript autocomplete_for_user_group_path(@group) }')" %>
-
-    <div id="users">
-      <%= render_principals_for_new_group_users(@group) %>
-    </div>
-
-    <p><%= submit_tag l(:button_add) %></p>
-    </fieldset>
-  <% end %>
-</div>
index 460527b6c3c36cc90d23dda773372142cfeffb82..e4af93a04e6cee8f91b741721bdf55dc0eeba08f 100644 (file)
@@ -1,3 +1,4 @@
+hideModal();
 $('#tab-content-users').html('<%= escape_javascript(render :partial => 'groups/users') %>');
 <% @users.each do |user| %>
   $('#user-<%= user.id %>').effect("highlight");
diff --git a/app/views/groups/new_users.html.erb b/app/views/groups/new_users.html.erb
new file mode 100644 (file)
index 0000000..8875a83
--- /dev/null
@@ -0,0 +1,6 @@
+<h2><%= l(:label_user_new) %></h2>
+
+<%= form_for(@group, :url => group_users_path(@group), :method => :post) do |f| %>
+  <%= render :partial => 'new_users_form' %>
+  <p><%= submit_tag l(:button_add) %></p>
+<% end %>
diff --git a/app/views/groups/new_users.js.erb b/app/views/groups/new_users.js.erb
new file mode 100644 (file)
index 0000000..1775abe
--- /dev/null
@@ -0,0 +1,2 @@
+$('#ajax-modal').html('<%= escape_javascript(render :partial => 'groups/new_users_modal') %>');
+showModal('ajax-modal', '700px');
index f2ddba193210bcede6916bbe37a951c55a501ab6..5fe1cf71372003fb726fd854e3601975b08d579b 100644 (file)
@@ -274,8 +274,9 @@ Rails.application.routes.draw do
     end
   end
 
-  match 'groups/:id/users', :controller => 'groups', :action => 'add_users', :id => /\d+/, :via => :post, :as => 'group_users'
-  match 'groups/:id/users/:user_id', :controller => 'groups', :action => 'remove_user', :id => /\d+/, :via => :delete, :as => 'group_user'
+  get 'groups/:id/users/new', :to => 'groups#new_users', :id => /\d+/, :as => 'new_group_users'
+  post 'groups/:id/users', :to => 'groups#add_users', :id => /\d+/, :as => 'group_users'
+  delete 'groups/:id/users/:user_id', :to => 'groups#remove_user', :id => /\d+/, :as => 'group_user'
 
   resources :trackers, :except => :show do
     collection do
index 778b3f3cd5b6d3f4215df7e24d9201a28a7f27eb..f2fa5f04b74ef4c1535196988913ac1506d3cdd7 100644 (file)
@@ -113,6 +113,18 @@ class GroupsControllerTest < ActionController::TestCase
     assert_redirected_to '/groups'
   end
 
+  def test_new_users
+    get :new_users, :id => 10
+    assert_response :success
+    assert_template 'new_users'
+  end
+
+  def test_xhr_new_users
+    xhr :get, :new_users, :id => 10
+    assert_response :success
+    assert_equal 'text/javascript', response.content_type
+  end
+
   def test_add_users
     assert_difference 'Group.find(10).users.count', 2 do
       post :add_users, :id => 10, :user_ids => ['2', '3']
index ea6e737038125595d364de65b9106d6f71843448..4171a0e25b60428e5481dbbb733ef068dbd9beed 100644 (file)
@@ -78,6 +78,10 @@ class RoutingGroupsTest < ActionDispatch::IntegrationTest
   end
 
   def test_groups
+    assert_routing(
+        { :method => 'get', :path => "/groups/567/users/new" },
+        { :controller => 'groups', :action => 'new_users', :id => '567' }
+      )
     assert_routing(
         { :method => 'post', :path => "/groups/567/users" },
         { :controller => 'groups', :action => 'add_users', :id => '567' }