Sha256: 864c930916d973f142d40035c8f75d01d1adc3bfdccd78dba1b91449c50d0b5d

Contents?: true

Size: 1.95 KB

Versions: 12

Compression:

Stored size: 1.95 KB

Contents

module Spree
  module Admin
    class OptionTypesController < ResourceController
      before_filter :load_product, :only => [:selected, :available, :remove]

      def available
        set_available_option_types
        render :layout => false
      end

      def selected
        @option_types = @product.option_types
      end

      def remove
        @product.option_types.delete(@option_type)
        @product.save
        flash.notice = I18n.t('notice_messages.option_type_removed')
        redirect_to selected_admin_product_option_types_url(@product)
      end

      def update_positions
        params[:positions].each do |id, index|
          OptionType.where(:id => id).update_all(:position => index)
        end
    
        respond_to do |format|
          format.html { redirect_to admin_product_variants_url(params[:product_id]) }
          format.js  { render :text => 'Ok' }
        end
      end

      # AJAX method for selecting an existing option type and associating with the current product
      def select
        @product = Product.find_by_param!(params[:product_id])
        @product.option_types << OptionType.find(params[:id])
        @product.reload
        @option_types = @product.option_types
        set_available_option_types
      end

      protected
    
        def location_after_save
          if @option_type.created_at == @option_type.updated_at
            edit_admin_option_type_url(@option_type)
          else
            admin_option_types_url
          end
        end


      private
        def load_product
          @product = Product.find_by_param!(params[:product_id])
        end
  
        def set_available_option_types
          @available_option_types = OptionType.all
          selected_option_types = []
          @product.options.each do |option|
            selected_option_types << option.option_type
          end
          @available_option_types.delete_if {|ot| selected_option_types.include? ot}
        end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
spree_core-1.0.7 app/controllers/spree/admin/option_types_controller.rb
spree_core-1.0.6 app/controllers/spree/admin/option_types_controller.rb
spree_core-1.0.4 app/controllers/spree/admin/option_types_controller.rb
spree_core-1.1.0.rc1 app/controllers/spree/admin/option_types_controller.rb
spree_core-1.0.3 app/controllers/spree/admin/option_types_controller.rb
spree_core-1.0.2 app/controllers/spree/admin/option_types_controller.rb
spree_core-1.0.1 app/controllers/spree/admin/option_types_controller.rb
spree_core-1.0.0 app/controllers/spree/admin/option_types_controller.rb
spree_core-1.0.0.rc4 app/controllers/spree/admin/option_types_controller.rb
spree_core-1.0.0.rc3 app/controllers/spree/admin/option_types_controller.rb
spree_core-1.0.0.rc2 app/controllers/spree/admin/option_types_controller.rb
spree_core-1.0.0.rc1 app/controllers/spree/admin/option_types_controller.rb