Class: Spree::Admin::PromotionsController
- Inherits:
-
ResourceController
- Object
- BaseController
- BaseController
- ResourceController
- Spree::Admin::PromotionsController
- Includes:
- PromotionsBreadcrumbConcern
- Defined in:
- app/controllers/spree/admin/promotions_controller.rb
Instance Method Summary collapse
-
#clone ⇒ Object
POST /admin/promotions/:id/clone.
-
#select_options ⇒ Object
GET /admin/promotions/select_options.
Methods inherited from ResourceController
belongs_to, #create, #destroy, #edit, #index, #new, #update
Methods included from TableConcern
#apply_table_sort, #custom_sort_active?, #process_table_query_state, #table, #table_key, #table_registered?
Methods included from BreadcrumbConcern
#add_breadcrumb_icon_instance_var
Instance Method Details
#clone ⇒ Object
POST /admin/promotions/:id/clone
18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'app/controllers/spree/admin/promotions_controller.rb', line 18 def clone promotion = current_store.promotions.find_by_prefix_id!(params[:id]) duplicator = Spree::PromotionHandler::PromotionDuplicator.new(promotion) @new_promo = duplicator.duplicate if @new_promo.errors.empty? flash[:success] = Spree.t('promotion_cloned') redirect_to spree.admin_promotion_path(@new_promo) else flash[:error] = Spree.t('promotion_not_cloned', error: @new_promo.errors..to_sentence) redirect_to spree.admin_promotions_path end end |
#select_options ⇒ Object
GET /admin/promotions/select_options
9 10 11 12 13 14 15 |
# File 'app/controllers/spree/admin/promotions_controller.rb', line 9 def q = params[:q] ransack_params = q.is_a?(String) ? { name_i_cont: q } : q promotions = current_store.promotions.applied.accessible_by(current_ability).ransack(ransack_params).result.order(:name).limit(25) render json: promotions.pluck(:id, :name).map { |id, name| { id: id, name: name } } end |