1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| class ConfigurationsController < ApplicationController
# GET /configurations
# GET /configurations.xml
before_filter :require_user
filter_access_to :all
#filter_access_to :all, :attribute_check => true
def index
@configurations=Configuration.all
conditions = generate_conditions
data = @configurations.paginate(:page => params[:page], :per_page => params[:rows],:conditions => conditions, :order => generate_order)
respond_to do |format|
format.html
format.json do
columns = @configurations.column_names.select{ |col| col != '_id' }
render :json => data.to_jqgrid_json([:_id] + columns.map{ |name| name.to_sym },params[:page], params[:rows], @configurations.count(conditions))
end
end
end
def generate_order
sidx = '_id' if params[:sidx].nil?
sord = 'asc' if params[:sord].nil?
"#{params[:sidx]} #{params[:sord]}"
end
def generate_conditions
conditions = {}
if params[:_search] == 'true'
@configurations.keys.each do |key, value|
if params[key.to_sym].present?
if value.type == String
conditions[key.to_sym] = /#{params[key.to_sym]}/
elsif value.type == Time
selected_date = Date.parse(params[key.to_sym])
conditions[key.to_sym] = { '$gt' => selected_date.to_time, '$lt' => (selected_date + 1.day).to_time }
elsif value.type == Integer
conditions[key.to_sym] = params[key.to_sym].to_i
elsif value.type == Float
conditions[key.to_sym] = params[key.to_sym].to_f
elsif value.type == Boolean
bool = [true, 'true', 1, '1', 'T', 't'].include?(params[key.to_sym].downcase)
conditions[key.to_sym] = bool
end
end
end#fin do
end# fin if
conditions
end# fin generate_condition
def post_data
if params[:oper] == "del"
Configuration.find(params[:id]).destroy
else
configuration_params = { :code => params[:code], :bt => params[:bt], :name => params[:name],
:list_price => params[:list_price], :type_machine => params[:type_machine], :bwc => params[:bwc], :families => params[:families] }
if params[:id] == "_empty"
Configuration.create(configuration_params)
else
Configuration.find(params[:id]).update_attributes(configuration_params)
end
end
render :nothing => true
end
.... |
Partager