Ack to this series.
----- Original Message -----
From: tsedovic(a)redhat.com
To: aeolus-devel(a)lists.fedorahosted.org
Sent: Tuesday, 25 January, 2011 1:20:02 PM
Subject: [PATCH conductor 1/2] Search Roles for models and controllers
From: Tomas Sedovic <tsedovic(a)redhat.com>
---
src/app/controllers/admin/roles_controller.rb | 23 ++++++++++++++++++++---
src/app/models/role.rb | 4 ++++
2 files changed, 24 insertions(+), 3 deletions(-)
diff --git a/src/app/controllers/admin/roles_controller.rb
b/src/app/controllers/admin/roles_controller.rb
index 70f0097..971c599 100644
--- a/src/app/controllers/admin/roles_controller.rb
+++ b/src/app/controllers/admin/roles_controller.rb
@@ -1,6 +1,20 @@
class Admin::RolesController < ApplicationController
before_filter :require_user
- before_filter :load_roles, :only => [:index, :show]
+ before_filter :load_roles, :only => [:show]
+ before_filter :load_params_and_headers, :only => [:index]
+
+ def index
+ @search_term = params[:q]
+ if @search_term.blank?
+ load_roles
+ return
+ end
+
+ search = Role.search() do
+ keywords(params[:q])
+ end
+ @roles = search.results
+ end
def create
@role = Role.new(params[:role])
@@ -59,15 +73,18 @@ class Admin::RolesController < ApplicationController
protected
- def load_roles
+ def load_params_and_headers
@header = [
{ :name => "Role name", :sort_attr => :name }
]
+ @url_params = params.clone
+ end
+
+ def load_roles
@roles = Role.paginate(:all,
:page => params[:page] || 1,
:order => (params[:order_field] || 'name') +' '+
(params[:order_dir] || 'asc')
)
- @url_params = params.clone
end
end
diff --git a/src/app/models/role.rb b/src/app/models/role.rb
index db4a9ac..b932544 100644
--- a/src/app/models/role.rb
+++ b/src/app/models/role.rb
@@ -17,7 +17,11 @@
# MA 02110-1301, USA. A copy of the GNU General Public License is
# also available at
http://www.gnu.org/copyleft/gpl.html.
+require 'sunspot_rails'
class Role < ActiveRecord::Base
+ searchable do
+ text :name, :as => :code_substring
+ end
has_many :permissions
has_and_belongs_to_many :privileges, :uniq => true
--
1.7.3.4
_______________________________________________
aeolus-devel mailing list
aeolus-devel(a)lists.fedorahosted.org
https://fedorahosted.org/mailman/listinfo/aeolus-devel