Sha256: 95aa1a20d9376cdc137129ebe03aa745238e7707df4af49d32438fca96599e31

Contents?: true

Size: 1.34 KB

Versions: 10

Compression:

Stored size: 1.34 KB

Contents

module Netzke
  module FormPanelExtras
    module Interface
      def submit(params)
        params.delete(:authenticity_token)
        params.delete(:controller)
        params.delete(:action)

        klass = config[:data_class_name].constantize
        record = klass.find_by_id(params[:id])
        success = true

        if record.nil?
          record = klass.create(params)
        else
          params.each_pair do |k,v|
            begin
              record.send("#{k}=",v)
            rescue ArgumentError => exc
              flash :error => exc.message
              success = false
              break
            end
          end
        end
    
        if success && record.save
          {:data => [record.to_array(get_fields)], :success => true}
        else
          # flash eventual errors
          record.errors.each_full do |msg|
            flash :error => msg
          end
          {:success => false, :flash => @flash}
        end
      end

      def load(params)
        klass = config[:data_class_name].constantize
        case params[:neighbour]
        when "previous" then record = klass.previous(params[:id])
        when "next"     then record = klass.next(params[:id])
        else                 record = klass.find(params[:id])
        end
        {:data => [record && record.to_array(get_fields)]}
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
netzke-basepack-0.3.3 lib/netzke/form_panel_extras/interface.rb
netzke-basepack-0.3.5 lib/netzke/form_panel_extras/interface.rb
netzke-basepack-0.3.10 lib/netzke/form_panel_extras/interface.rb
netzke-basepack-0.3.3.1 lib/netzke/form_panel_extras/interface.rb
netzke-basepack-0.3.4 lib/netzke/form_panel_extras/interface.rb
netzke-basepack-0.3.6 lib/netzke/form_panel_extras/interface.rb
netzke-basepack-0.3.9.1 lib/netzke/form_panel_extras/interface.rb
netzke-basepack-0.3.9 lib/netzke/form_panel_extras/interface.rb
netzke-basepack-0.3.7 lib/netzke/form_panel_extras/interface.rb
netzke-basepack-0.3.8 lib/netzke/form_panel_extras/interface.rb