From bc1632a96697c2dfdb2d546428930eb169c48282 Mon Sep 17 00:00:00 2001 From: Daniela Feitosa Date: Sun, 27 Jul 2014 03:06:09 +0000 Subject: [PATCH] Fixed filtering of roles on memberships page --- app/controllers/my_profile/memberships_controller.rb | 4 ++-- app/views/memberships/index.html.erb | 5 +++-- public/javascripts/memberships_filter.js | 6 ++++++ 3 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 public/javascripts/memberships_filter.js diff --git a/app/controllers/my_profile/memberships_controller.rb b/app/controllers/my_profile/memberships_controller.rb index 85928a3..56263b1 100644 --- a/app/controllers/my_profile/memberships_controller.rb +++ b/app/controllers/my_profile/memberships_controller.rb @@ -7,9 +7,9 @@ class MembershipsController < MyProfileController ra = profile.role_assignments.find_by_role_id(role.id) ra.present? && ra.resource_type == 'Profile' end - @filter = params[:filter_type].blank? ? nil : params[:filter_type] + @filter = params[:filter_type].to_i begin - @memberships = @filter.nil? ? profile.memberships : profile.memberships_by_role(environment.roles.find(@filter)) + @memberships = @filter.zero? ? profile.memberships : profile.memberships_by_role(environment.roles.find(@filter)) rescue ActiveRecord::RecordNotFound @memberships = [] end diff --git a/app/views/memberships/index.html.erb b/app/views/memberships/index.html.erb index 5ef3320..e54862f 100644 --- a/app/views/memberships/index.html.erb +++ b/app/views/memberships/index.html.erb @@ -8,11 +8,12 @@ <%= button :back, _('Go back'), :controller => 'profile_editor' %> <% end %> -<% type_collection = [[nil, _('All')]] %> +<% type_collection = [[0, _('All')]] %> <% type_collection += @roles.sort_by {|role| role.id}.map{|r| ["#{r.id}", r.name]} %> +<%= javascript_include_tag "memberships_filter.js" %>

- <%= labelled_select(_('Filter')+': ', :filter_type, :first, :last, @filter, type_collection, :onchange => 'document.location.href = "?filter_type="+this.value')%> + <%= labelled_select(_('Filter')+': ', :filter_type, :first, :last, @filter, type_collection, :id => 'memberships_filter')%>

<% if @memberships.empty? %> diff --git a/public/javascripts/memberships_filter.js b/public/javascripts/memberships_filter.js new file mode 100644 index 0000000..f70b61a --- /dev/null +++ b/public/javascripts/memberships_filter.js @@ -0,0 +1,6 @@ +jQuery(document).ready(function($){ + $("#memberships_filter").change(function(){ + var filter = $(this).find("option:selected").val(); + redirect_to('?filter_type=' + filter); + }); +}); -- libgit2 0.21.2