lib/netzke/basepack/grid_panel/services.rb in netzke-basepack-0.6.2 vs lib/netzke/basepack/grid_panel/services.rb in netzke-basepack-0.6.3
- old
+ new
@@ -36,13 +36,13 @@
endpoint :delete_data do |params|
if !config[:prohibit_delete]
record_ids = ActiveSupport::JSON.decode(params[:records])
data_class.destroy(record_ids)
on_data_changed
- {:feedback => "Deleted #{record_ids.size} record(s)", :load_store_data => get_data}
+ {:feedback => I18n.t('netzke.basepack.grid_panel.deleted_n_records', :n => record_ids.size), :load_store_data => get_data}
else
- {:feedback => "You don't have permissions to delete data"}
+ {:feedback => I18n.t('netzke.basepack.grid_panel.cannot_delete')}
end
end
endpoint :resize_column do |params|
raise "Called api_resize_column while not configured to do so" if config[:enable_column_resize] == false
@@ -75,11 +75,11 @@
# Returns choices for a column
endpoint :get_combobox_options do |params|
query = params[:query]
column = columns.detect{ |c| c[:name] == params[:column] }
- scope = column.to_options[:scope]
+ scope = column.to_options[:scope] || column.to_options[:editor].try(:fetch, :scope)
query = params[:query]
{:data => combobox_options_for_column(column, :query => query, :scope => scope, :record_id => params[:id])}
end
@@ -190,12 +190,12 @@
dir = params[:dir].downcase
# if a sorting scope is set, call the scope with the given direction
column = columns.detect { |c| c[:name] == params[:sort] }
if column.has_key?(:sorting_scope)
- relation = relation.send(column[:sorting_scope].to_sym, dir.to_sym)
- else
+ relation = relation.send(column[:sorting_scope].to_sym, dir.to_sym)
+ else
relation = if method.nil?
relation.order(assoc.to_sym.send(dir))
else
assoc = data_class.reflect_on_association(assoc.to_sym)
relation.order(assoc.klass.table_name.to_sym => method.to_sym.send(dir)).joins(assoc.name)
@@ -247,11 +247,10 @@
# Params:
# <tt>:operation</tt>: :update or :create
def process_data(data, operation)
success = true
- # mod_record_ids = []
mod_records = {}
if !config[:"prohibit_#{operation}"]
modified_records = 0
data.each do |record_hash|
id = record_hash.delete('id')
@@ -259,19 +258,23 @@
success = true
# merge with strong default attirbutes
record_hash.merge!(config[:strong_default_attrs]) if config[:strong_default_attrs]
- # process all attirubutes for this record
record_hash.each_pair do |k,v|
- begin
- record.send("#{k}=",v)
- rescue ArgumentError => exc
- flash :error => exc.message
- success = false
- break
- end
+ record.set_value_for_attribute(columns_hash[k.to_sym].nil? ? {:name => k} : columns_hash[k.to_sym], v)
end
+
+ # process all attirubutes for this record
+ #record_hash.each_pair do |k,v|
+ #begin
+ #record.send("#{k}=",v)
+ #rescue ArgumentError => exc
+ #flash :error => exc.message
+ #success = false
+ #break
+ #end
+ #end
# try to save
# modified_records += 1 if success && record.save
mod_records[id] = record.to_array(columns) if success && record.save
# mod_record_ids << id if success && record.save