Commit b592907d48f90dbae43fcfb1a96a30cebd14e243
1 parent
2b0420fa
Exists in
tasks_keep_filter_params
Added @params_tags property to create input hidden tags with filter params
Showing
3 changed files
with
25 additions
and
2 deletions
Show diff stats
app/controllers/my_profile/tasks_controller.rb
| @@ -18,6 +18,14 @@ class TasksController < MyProfileController | @@ -18,6 +18,14 @@ class TasksController < MyProfileController | ||
| 18 | @responsible_candidates = profile.members.by_role(profile.roles.reject {|r| !r.has_permission?('perform_task')}) if profile.organization? | 18 | @responsible_candidates = profile.members.by_role(profile.roles.reject {|r| !r.has_permission?('perform_task')}) if profile.organization? |
| 19 | 19 | ||
| 20 | @view_only = !current_person.has_permission?(:perform_task, profile) | 20 | @view_only = !current_person.has_permission?(:perform_task, profile) |
| 21 | + | ||
| 22 | + @params_tags = [] | ||
| 23 | + params.each do |key,value| | ||
| 24 | + if key =~ /filter_/ && value | ||
| 25 | + @params_tags << view_context.hidden_field_tag(key, value) | ||
| 26 | + end | ||
| 27 | + end | ||
| 28 | + | ||
| 21 | end | 29 | end |
| 22 | 30 | ||
| 23 | def processed | 31 | def processed |
app/views/tasks/index.html.erb
| @@ -46,6 +46,16 @@ | @@ -46,6 +46,16 @@ | ||
| 46 | </p> | 46 | </p> |
| 47 | <% else %> | 47 | <% else %> |
| 48 | <%= form_tag :action => 'close' do%> | 48 | <%= form_tag :action => 'close' do%> |
| 49 | + | ||
| 50 | + <% if !@params_tags.empty? %> | ||
| 51 | + <p> | ||
| 52 | + <% @params_tags.each do |hidden_tag| %> | ||
| 53 | + | ||
| 54 | + <%= hidden_tag %> | ||
| 55 | + <% end %> | ||
| 56 | + </p> | ||
| 57 | + <% end %> | ||
| 58 | + | ||
| 49 | <% button_bar(:class => 'task-actions') do %> | 59 | <% button_bar(:class => 'task-actions') do %> |
| 50 | <%# FiXME button(:edit, _('View my requests'), :action => 'list_requested') %> | 60 | <%# FiXME button(:edit, _('View my requests'), :action => 'list_requested') %> |
| 51 | <%# FIXME button('menu-mail', _('Send request'), :action => 'new') %> | 61 | <%# FIXME button('menu-mail', _('Send request'), :action => 'new') %> |
test/functional/tasks_controller_test.rb
| @@ -12,7 +12,7 @@ class TasksControllerTest < ActionController::TestCase | @@ -12,7 +12,7 @@ class TasksControllerTest < ActionController::TestCase | ||
| 12 | @request = ActionController::TestRequest.new | 12 | @request = ActionController::TestRequest.new |
| 13 | @response = ActionController::TestResponse.new | 13 | @response = ActionController::TestResponse.new |
| 14 | 14 | ||
| 15 | - self.profile = create_user('testuser').person | 15 | + self.profile = create_user('testuser', :email => 'testuser@email.com').person |
| 16 | @controller.stubs(:profile).returns(profile) | 16 | @controller.stubs(:profile).returns(profile) |
| 17 | login_as 'testuser' | 17 | login_as 'testuser' |
| 18 | end | 18 | end |
| @@ -77,7 +77,12 @@ class TasksControllerTest < ActionController::TestCase | @@ -77,7 +77,12 @@ class TasksControllerTest < ActionController::TestCase | ||
| 77 | end | 77 | end |
| 78 | 78 | ||
| 79 | should 'keep filters after close a task' do | 79 | should 'keep filters after close a task' do |
| 80 | - t = profile.tasks.build; t.save! | 80 | + requestor = User.create!(:login => 'john', :email => 'john@example.com', :password => 'test', :password_confirmation => 'test') |
| 81 | + c = Community.create!(:name => 'test comm', :identifier => 'test_comm', :moderated_articles => false) | ||
| 82 | + t = InviteMember.create!(:requestor => requestor.person, :target => profile, :spam => false, :community_id => c.id) | ||
| 83 | + | ||
| 84 | + get :index, :filter_type => t.type | ||
| 85 | + assert_tag_in_string(assigns(:params_tags).join(' '), :tag => 'input', :attributes => { :value => 'InviteMember' }) | ||
| 81 | 86 | ||
| 82 | post :close, :tasks => {t.id => {:decision => 'finish', :task => {}}}, :filter_type => t.type | 87 | post :close, :tasks => {t.id => {:decision => 'finish', :task => {}}}, :filter_type => t.type |
| 83 | assert_redirected_to :action => 'index', :filter_type => t.type | 88 | assert_redirected_to :action => 'index', :filter_type => t.type |