Commit bc1632a96697c2dfdb2d546428930eb169c48282

Authored by Daniela Feitosa
1 parent deb07e92

Fixed filtering of roles on memberships page

(ActionItem3235)
app/controllers/my_profile/memberships_controller.rb
... ... @@ -7,9 +7,9 @@ class MembershipsController < MyProfileController
7 7 ra = profile.role_assignments.find_by_role_id(role.id)
8 8 ra.present? && ra.resource_type == 'Profile'
9 9 end
10   - @filter = params[:filter_type].blank? ? nil : params[:filter_type]
  10 + @filter = params[:filter_type].to_i
11 11 begin
12   - @memberships = @filter.nil? ? profile.memberships : profile.memberships_by_role(environment.roles.find(@filter))
  12 + @memberships = @filter.zero? ? profile.memberships : profile.memberships_by_role(environment.roles.find(@filter))
13 13 rescue ActiveRecord::RecordNotFound
14 14 @memberships = []
15 15 end
... ...
app/views/memberships/index.html.erb
... ... @@ -8,11 +8,12 @@
8 8 <%= button :back, _('Go back'), :controller => 'profile_editor' %>
9 9 <% end %>
10 10  
11   -<% type_collection = [[nil, _('All')]] %>
  11 +<% type_collection = [[0, _('All')]] %>
12 12 <% type_collection += @roles.sort_by {|role| role.id}.map{|r| ["#{r.id}", r.name]} %>
13 13  
  14 +<%= javascript_include_tag "memberships_filter.js" %>
14 15 <p>
15   - <%= labelled_select(_('Filter')+': ', :filter_type, :first, :last, @filter, type_collection, :onchange => 'document.location.href = "?filter_type="+this.value')%>
  16 + <%= labelled_select(_('Filter')+': ', :filter_type, :first, :last, @filter, type_collection, :id => 'memberships_filter')%>
16 17 </p>
17 18  
18 19 <% if @memberships.empty? %>
... ...
public/javascripts/memberships_filter.js 0 → 100644
... ... @@ -0,0 +1,6 @@
  1 +jQuery(document).ready(function($){
  2 + $("#memberships_filter").change(function(){
  3 + var filter = $(this).find("option:selected").val();
  4 + redirect_to('?filter_type=' + filter);
  5 + });
  6 +});
... ...