Sha256: b39746cee560fc6debd23ea145b7b20fc9cbd3dd68d1d3684780eaac3a755bad

Contents?: true

Size: 1.73 KB

Versions: 3

Compression:

Stored size: 1.73 KB

Contents

module Spree
  module Admin
    class LineItemsController < Spree::Admin::BaseController
      layout nil, :only => [:create, :destroy, :update]

      before_filter :load_order
      before_filter :load_line_item, :only => [:destroy, :update]

      respond_to :html, :js

      def create
        variant = Variant.find(params[:line_item][:variant_id])
        @line_item = @order.add_variant(variant, params[:line_item][:quantity].to_i)

        if @order.save
          respond_with(@line_item) do |format|
            format.html { render :partial => 'spree/admin/orders/form', :locals => { :order => @order.reload } }
          end
        else
          respond_with(@line_item) do |format|
            format.js { render :action => 'create', :locals => { :order => @order.reload } }
          end
        end
      end

      def destroy
        @line_item.destroy
        respond_with(@line_item) do |format|
          format.html { redirect_to edit_admin_order_path(@order) }
          format.js { @order.reload }
        end
      end

      def update
        if @line_item.update_attributes(params[:line_item])
          respond_with(@line_item) do |format|
            format.html { render :partial => 'spree/admin/orders/form', :locals => { :order => @order.reload } }
          end
        else
          respond_with(@line_item) do |format|
            format.html { render :partial => 'spree/admin/orders/form', :locals => { :order => @order.reload } }
          end
        end
      end

      private

        def load_order
          @order = Order.find_by_number!(params[:order_id])
          authorize! action, @order
        end

        def load_line_item
          @line_item = @order.line_items.find(params[:id])
        end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
spree_core-1.3.5 app/controllers/spree/admin/line_items_controller.rb
spree_core-1.3.4 app/controllers/spree/admin/line_items_controller.rb
spree_core-1.3.3 app/controllers/spree/admin/line_items_controller.rb