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