Commit b592907d48f90dbae43fcfb1a96a30cebd14e243

Authored by Michel Felipe
1 parent 2b0420fa

Added @params_tags property to create input hidden tags with filter params

app/controllers/my_profile/tasks_controller.rb
... ... @@ -18,6 +18,14 @@ class TasksController < MyProfileController
18 18 @responsible_candidates = profile.members.by_role(profile.roles.reject {|r| !r.has_permission?('perform_task')}) if profile.organization?
19 19  
20 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 29 end
22 30  
23 31 def processed
... ...
app/views/tasks/index.html.erb
... ... @@ -46,6 +46,16 @@
46 46 </p>
47 47 <% else %>
48 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 59 <% button_bar(:class => 'task-actions') do %>
50 60 <%# FiXME button(:edit, _('View my requests'), :action => 'list_requested') %>
51 61 <%# FIXME button('menu-mail', _('Send request'), :action => 'new') %>
... ...
test/functional/tasks_controller_test.rb
... ... @@ -12,7 +12,7 @@ class TasksControllerTest &lt; ActionController::TestCase
12 12 @request = ActionController::TestRequest.new
13 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 16 @controller.stubs(:profile).returns(profile)
17 17 login_as 'testuser'
18 18 end
... ... @@ -77,7 +77,12 @@ class TasksControllerTest &lt; ActionController::TestCase
77 77 end
78 78  
79 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 87 post :close, :tasks => {t.id => {:decision => 'finish', :task => {}}}, :filter_type => t.type
83 88 assert_redirected_to :action => 'index', :filter_type => t.type
... ...