summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2008-04-06 13:15:09 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2008-04-06 13:15:09 +0000
commit0249ae5f500063f4d08ff09a7071cb949a534316 (patch)
tree2d544b6acb574468394dd462734b98d87bab890b
parentbeff2c54bc325e8a8f838d90aa122be823423114 (diff)
downloadredmine-0249ae5f500063f4d08ff09a7071cb949a534316.tar.gz
redmine-0249ae5f500063f4d08ff09a7071cb949a534316.zip
Preserve status filter and page number when using lock/unlock/activate links on the users list (closes #998).
git-svn-id: http://redmine.rubyforge.org/svn/trunk@1334 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/controllers/users_controller.rb3
-rw-r--r--app/helpers/users_helper.rb12
-rw-r--r--app/views/users/list.rhtml12
3 files changed, 15 insertions, 12 deletions
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index ceb70ab92..48fc6fade 100644
--- a/app/controllers/users_controller.rb
+++ b/app/controllers/users_controller.rb
@@ -83,7 +83,8 @@ class UsersController < ApplicationController
end
if @user.update_attributes(params[:user])
flash[:notice] = l(:notice_successful_update)
- redirect_to :action => 'list'
+ # Give a string to redirect_to otherwise it would use status param as the response code
+ redirect_to(url_for(:action => 'list', :status => params[:status], :page => params[:page]))
end
end
@auth_sources = AuthSource.find(:all)
diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb
index 7bd137161..250ed8ce8 100644
--- a/app/helpers/users_helper.rb
+++ b/app/helpers/users_helper.rb
@@ -22,4 +22,16 @@ module UsersHelper
[l(:status_registered), 2],
[l(:status_locked), 3]], selected)
end
+
+ def change_status_link(user)
+ url = {:action => 'edit', :id => user, :page => params[:page], :status => params[:status]}
+
+ if user.locked?
+ link_to l(:button_unlock), url.merge(:user => {:status => User::STATUS_ACTIVE}), :method => :post, :class => 'icon icon-unlock'
+ elsif user.registered?
+ link_to l(:button_activate), url.merge(:user => {:status => User::STATUS_ACTIVE}), :method => :post, :class => 'icon icon-unlock'
+ else
+ link_to l(:button_lock), url.merge(:user => {:status => User::STATUS_LOCKED}), :method => :post, :class => 'icon icon-lock'
+ end
+ end
end
diff --git a/app/views/users/list.rhtml b/app/views/users/list.rhtml
index e12aa3425..d89672d19 100644
--- a/app/views/users/list.rhtml
+++ b/app/views/users/list.rhtml
@@ -33,17 +33,7 @@
<td align="center"><%= image_tag('true.png') if user.admin? %></td>
<td class="created_on" align="center"><%= format_time(user.created_on) %></td>
<td class="last_login_on" align="center"><%= format_time(user.last_login_on) unless user.last_login_on.nil? %></td>
- <td>
- <small>
- <% if user.locked? -%>
- <%= link_to l(:button_unlock), {:action => 'edit', :id => user, :user => {:status => User::STATUS_ACTIVE}}, :method => :post, :class => 'icon icon-unlock' %>
- <% elsif user.registered? -%>
- <%= link_to l(:button_activate), {:action => 'edit', :id => user, :user => {:status => User::STATUS_ACTIVE}}, :method => :post, :class => 'icon icon-unlock' %>
- <% else -%>
- <%= link_to l(:button_lock), {:action => 'edit', :id => user, :user => {:status => User::STATUS_LOCKED}}, :method => :post, :class => 'icon icon-lock' %>
- <% end -%>
- </small>
- </td>
+ <td><small><%= change_status_link(user) %></small></td>
</tr>
<% end -%>
</tbody>