From 0249ae5f500063f4d08ff09a7071cb949a534316 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Sun, 6 Apr 2008 13:15:09 +0000 Subject: [PATCH] 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 --- app/controllers/users_controller.rb | 3 ++- app/helpers/users_helper.rb | 12 ++++++++++++ app/views/users/list.rhtml | 12 +----------- 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 @@ <%= image_tag('true.png') if user.admin? %> <%= format_time(user.created_on) %> <%= format_time(user.last_login_on) unless user.last_login_on.nil? %> - - - <% 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 -%> - - + <%= change_status_link(user) %> <% end -%>