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,9 +7,9 @@ class MembershipsController < MyProfileController
7 ra = profile.role_assignments.find_by_role_id(role.id) 7 ra = profile.role_assignments.find_by_role_id(role.id)
8 ra.present? && ra.resource_type == 'Profile' 8 ra.present? && ra.resource_type == 'Profile'
9 end 9 end
10 - @filter = params[:filter_type].blank? ? nil : params[:filter_type] 10 + @filter = params[:filter_type].to_i
11 begin 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 rescue ActiveRecord::RecordNotFound 13 rescue ActiveRecord::RecordNotFound
14 @memberships = [] 14 @memberships = []
15 end 15 end
app/views/memberships/index.html.erb
@@ -8,11 +8,12 @@ @@ -8,11 +8,12 @@
8 <%= button :back, _('Go back'), :controller => 'profile_editor' %> 8 <%= button :back, _('Go back'), :controller => 'profile_editor' %>
9 <% end %> 9 <% end %>
10 10
11 -<% type_collection = [[nil, _('All')]] %> 11 +<% type_collection = [[0, _('All')]] %>
12 <% type_collection += @roles.sort_by {|role| role.id}.map{|r| ["#{r.id}", r.name]} %> 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 <p> 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 </p> 17 </p>
17 18
18 <% if @memberships.empty? %> 19 <% if @memberships.empty? %>
public/javascripts/memberships_filter.js 0 → 100644
@@ -0,0 +1,6 @@ @@ -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 +});