@@ -0,0 +1,4 | |||||
|
1 | Element.update('tab-content-users', '<%= escape_javascript(render :partial => 'groups/users') %>'); | |||
|
2 | <% @users.each do |user| %> | |||
|
3 | new Effect.Highlight('user-<%= user.id %>'); | |||
|
4 | <% end %> |
@@ -0,0 +1,1 | |||||
|
1 | Element.update('tab-content-memberships', '<%= escape_javascript(render :partial => 'groups/memberships') %>'); |
@@ -0,0 +1,6 | |||||
|
1 | <% if @membership.valid? %> | |||
|
2 | Element.update('tab-content-memberships', '<%= escape_javascript(render :partial => 'groups/memberships') %>'); | |||
|
3 | new Effect.Highlight('member-<%= @membership.id %>'); | |||
|
4 | <% else %> | |||
|
5 | alert('<%= escape_javascript(l(:notice_failed_to_save_members, :errors => @membership.errors.full_messages.join(', '))) %>'); | |||
|
6 | <% end %> |
@@ -0,0 +1,1 | |||||
|
1 | Element.update('tab-content-users', '<%= escape_javascript(render :partial => 'groups/users') %>'); |
@@ -90,16 +90,11 class GroupsController < ApplicationController | |||||
90 | end |
|
90 | end | |
91 |
|
91 | |||
92 | def add_users |
|
92 | def add_users | |
93 | users = User.find_all_by_id(params[:user_id] || params[:user_ids]) |
|
93 | @users = User.find_all_by_id(params[:user_id] || params[:user_ids]) | |
94 | @group.users << users if request.post? |
|
94 | @group.users << @users if request.post? | |
95 | respond_to do |format| |
|
95 | respond_to do |format| | |
96 | format.html { redirect_to :controller => 'groups', :action => 'edit', :id => @group, :tab => 'users' } |
|
96 | format.html { redirect_to :controller => 'groups', :action => 'edit', :id => @group, :tab => 'users' } | |
97 |
format.js |
|
97 | format.js | |
98 | render(:update) {|page| |
|
|||
99 | page.replace_html "tab-content-users", :partial => 'groups/users' |
|
|||
100 | users.each {|user| page.visual_effect(:highlight, "user-#{user.id}") } |
|
|||
101 | } |
|
|||
102 | } |
|
|||
103 | format.api { render_api_ok } |
|
98 | format.api { render_api_ok } | |
104 | end |
|
99 | end | |
105 | end |
|
100 | end | |
@@ -108,7 +103,7 class GroupsController < ApplicationController | |||||
108 | @group.users.delete(User.find(params[:user_id])) if request.delete? |
|
103 | @group.users.delete(User.find(params[:user_id])) if request.delete? | |
109 | respond_to do |format| |
|
104 | respond_to do |format| | |
110 | format.html { redirect_to :controller => 'groups', :action => 'edit', :id => @group, :tab => 'users' } |
|
105 | format.html { redirect_to :controller => 'groups', :action => 'edit', :id => @group, :tab => 'users' } | |
111 | format.js { render(:update) {|page| page.replace_html "tab-content-users", :partial => 'groups/users'} } |
|
106 | format.js | |
112 | format.api { render_api_ok } |
|
107 | format.api { render_api_ok } | |
113 | end |
|
108 | end | |
114 | end |
|
109 | end | |
@@ -122,21 +117,8 class GroupsController < ApplicationController | |||||
122 | @membership = Member.edit_membership(params[:membership_id], params[:membership], @group) |
|
117 | @membership = Member.edit_membership(params[:membership_id], params[:membership], @group) | |
123 | @membership.save if request.post? |
|
118 | @membership.save if request.post? | |
124 | respond_to do |format| |
|
119 | respond_to do |format| | |
125 | if @membership.valid? |
|
120 | format.html { redirect_to :controller => 'groups', :action => 'edit', :id => @group, :tab => 'memberships' } | |
126 | format.html { redirect_to :controller => 'groups', :action => 'edit', :id => @group, :tab => 'memberships' } |
|
121 | format.js | |
127 | format.js { |
|
|||
128 | render(:update) {|page| |
|
|||
129 | page.replace_html "tab-content-memberships", :partial => 'groups/memberships' |
|
|||
130 | page.visual_effect(:highlight, "member-#{@membership.id}") |
|
|||
131 | } |
|
|||
132 | } |
|
|||
133 | else |
|
|||
134 | format.js { |
|
|||
135 | render(:update) {|page| |
|
|||
136 | page.alert(l(:notice_failed_to_save_members, :errors => @membership.errors.full_messages.join(', '))) |
|
|||
137 | } |
|
|||
138 | } |
|
|||
139 | end |
|
|||
140 | end |
|
122 | end | |
141 | end |
|
123 | end | |
142 |
|
124 | |||
@@ -144,7 +126,7 class GroupsController < ApplicationController | |||||
144 | Member.find(params[:membership_id]).destroy if request.post? |
|
126 | Member.find(params[:membership_id]).destroy if request.post? | |
145 | respond_to do |format| |
|
127 | respond_to do |format| | |
146 | format.html { redirect_to :controller => 'groups', :action => 'edit', :id => @group, :tab => 'memberships' } |
|
128 | format.html { redirect_to :controller => 'groups', :action => 'edit', :id => @group, :tab => 'memberships' } | |
147 | format.js { render(:update) {|page| page.replace_html "tab-content-memberships", :partial => 'groups/memberships'} } |
|
129 | format.js | |
148 | end |
|
130 | end | |
149 | end |
|
131 | end | |
150 |
|
132 |
@@ -113,8 +113,11 class GroupsControllerTest < ActionController::TestCase | |||||
113 | def test_xhr_add_users |
|
113 | def test_xhr_add_users | |
114 | assert_difference 'Group.find(10).users.count', 2 do |
|
114 | assert_difference 'Group.find(10).users.count', 2 do | |
115 | xhr :post, :add_users, :id => 10, :user_ids => ['2', '3'] |
|
115 | xhr :post, :add_users, :id => 10, :user_ids => ['2', '3'] | |
|
116 | assert_response :success | |||
|
117 | assert_template 'add_users' | |||
|
118 | assert_equal 'text/javascript', response.content_type | |||
116 | end |
|
119 | end | |
117 | assert_select_rjs :replace_html, 'tab-content-users' |
|
120 | assert_match /John Smith/, response.body | |
118 | end |
|
121 | end | |
119 |
|
122 | |||
120 | def test_remove_user |
|
123 | def test_remove_user | |
@@ -126,8 +129,10 class GroupsControllerTest < ActionController::TestCase | |||||
126 | def test_xhr_remove_user |
|
129 | def test_xhr_remove_user | |
127 | assert_difference 'Group.find(10).users.count', -1 do |
|
130 | assert_difference 'Group.find(10).users.count', -1 do | |
128 | xhr :delete, :remove_user, :id => 10, :user_id => '8' |
|
131 | xhr :delete, :remove_user, :id => 10, :user_id => '8' | |
|
132 | assert_response :success | |||
|
133 | assert_template 'remove_user' | |||
|
134 | assert_equal 'text/javascript', response.content_type | |||
129 | end |
|
135 | end | |
130 | assert_select_rjs :replace_html, 'tab-content-users' |
|
|||
131 | end |
|
136 | end | |
132 |
|
137 | |||
133 | def test_new_membership |
|
138 | def test_new_membership | |
@@ -139,15 +144,21 class GroupsControllerTest < ActionController::TestCase | |||||
139 | def test_xhr_new_membership |
|
144 | def test_xhr_new_membership | |
140 | assert_difference 'Group.find(10).members.count' do |
|
145 | assert_difference 'Group.find(10).members.count' do | |
141 | xhr :post, :edit_membership, :id => 10, :membership => { :project_id => 2, :role_ids => ['1', '2']} |
|
146 | xhr :post, :edit_membership, :id => 10, :membership => { :project_id => 2, :role_ids => ['1', '2']} | |
|
147 | assert_response :success | |||
|
148 | assert_template 'edit_membership' | |||
|
149 | assert_equal 'text/javascript', response.content_type | |||
142 | end |
|
150 | end | |
143 | assert_select_rjs :replace_html, 'tab-content-memberships' |
|
151 | assert_match /OnlineStore/, response.body | |
144 | end |
|
152 | end | |
145 |
|
153 | |||
146 | def test_xhr_new_membership_with_failure |
|
154 | def test_xhr_new_membership_with_failure | |
147 | assert_no_difference 'Group.find(10).members.count' do |
|
155 | assert_no_difference 'Group.find(10).members.count' do | |
148 | xhr :post, :edit_membership, :id => 10, :membership => { :project_id => 999, :role_ids => ['1', '2']} |
|
156 | xhr :post, :edit_membership, :id => 10, :membership => { :project_id => 999, :role_ids => ['1', '2']} | |
|
157 | assert_response :success | |||
|
158 | assert_template 'edit_membership' | |||
|
159 | assert_equal 'text/javascript', response.content_type | |||
149 | end |
|
160 | end | |
150 |
assert |
|
161 | assert_match /alert/, response.body, "Alert message not sent" | |
151 | end |
|
162 | end | |
152 |
|
163 | |||
153 | def test_edit_membership |
|
164 | def test_edit_membership | |
@@ -156,6 +167,15 class GroupsControllerTest < ActionController::TestCase | |||||
156 | end |
|
167 | end | |
157 | end |
|
168 | end | |
158 |
|
169 | |||
|
170 | def test_xhr_edit_membership | |||
|
171 | assert_no_difference 'Group.find(10).members.count' do | |||
|
172 | xhr :post, :edit_membership, :id => 10, :membership_id => 6, :membership => { :role_ids => ['1', '3']} | |||
|
173 | assert_response :success | |||
|
174 | assert_template 'edit_membership' | |||
|
175 | assert_equal 'text/javascript', response.content_type | |||
|
176 | end | |||
|
177 | end | |||
|
178 | ||||
159 | def test_destroy_membership |
|
179 | def test_destroy_membership | |
160 | assert_difference 'Group.find(10).members.count', -1 do |
|
180 | assert_difference 'Group.find(10).members.count', -1 do | |
161 | post :destroy_membership, :id => 10, :membership_id => 6 |
|
181 | post :destroy_membership, :id => 10, :membership_id => 6 | |
@@ -165,8 +185,10 class GroupsControllerTest < ActionController::TestCase | |||||
165 | def test_xhr_destroy_membership |
|
185 | def test_xhr_destroy_membership | |
166 | assert_difference 'Group.find(10).members.count', -1 do |
|
186 | assert_difference 'Group.find(10).members.count', -1 do | |
167 | xhr :post, :destroy_membership, :id => 10, :membership_id => 6 |
|
187 | xhr :post, :destroy_membership, :id => 10, :membership_id => 6 | |
|
188 | assert_response :success | |||
|
189 | assert_template 'destroy_membership' | |||
|
190 | assert_equal 'text/javascript', response.content_type | |||
168 | end |
|
191 | end | |
169 | assert_select_rjs :replace_html, 'tab-content-memberships' |
|
|||
170 | end |
|
192 | end | |
171 |
|
193 | |||
172 | def test_autocomplete_for_user |
|
194 | def test_autocomplete_for_user |
General Comments 0
You need to be logged in to leave comments.
Login now