Class: Spree::Admin::PromotionCustomDatesRulesController
- Inherits:
-
PromotionEventsRulesController
- Object
- ResourceController
- PromotionEventsRulesController
- Spree::Admin::PromotionCustomDatesRulesController
- Defined in:
- app/controllers/spree/admin/promotion_custom_dates_rules_controller.rb
Instance Method Summary collapse
-
#collection_url(_options = {}) ⇒ Object
override.
- #load_events ⇒ Object
-
#model_class ⇒ Object
override.
-
#permitted_resource_params ⇒ Object
override.
- #remove_custom_date ⇒ Object
Methods inherited from PromotionEventsRulesController
#beginning_of_year, #end_of_year, #ensure_year, #month_name, #object_name, #year
Instance Method Details
#collection_url(_options = {}) ⇒ Object
override
49 50 51 |
# File 'app/controllers/spree/admin/promotion_custom_dates_rules_controller.rb', line 49 def collection_url( = {}) edit_admin_promotion_custom_dates_rule_path(@promotion_rule.promotion_id, @promotion_rule.id) end |
#load_events ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'app/controllers/spree/admin/promotion_custom_dates_rules_controller.rb', line 18 def load_events @events = [] @promotion_rule.preferred_custom_dates&.each do |json| custom_date = JSON.parse(json) start_date = custom_date['start_date']&.to_date length = custom_date['length']&.to_i title = custom_date['title'] next unless start_date.present? && length.present? end_date = start_date + length.days - 1 @events << SpreeCmCommissioner::CalendarEvent.new( from_date: start_date, to_date: end_date, title: title, options: {} ) end end |
#model_class ⇒ Object
override
54 55 56 |
# File 'app/controllers/spree/admin/promotion_custom_dates_rules_controller.rb', line 54 def model_class SpreeCmCommissioner::Promotion::Rules::CustomDates end |
#permitted_resource_params ⇒ Object
override
41 42 43 44 45 46 |
# File 'app/controllers/spree/admin/promotion_custom_dates_rules_controller.rb', line 41 def permitted_resource_params preferred_custom_dates = @promotion_rule.preferred_custom_dates.presence || [] preferred_custom_dates << params.require(:new_custom_date).permit(:start_date, :length, :title).to_json { :preferred_custom_dates => preferred_custom_dates } end |
#remove_custom_date ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 |
# File 'app/controllers/spree/admin/promotion_custom_dates_rules_controller.rb', line 6 def remove_custom_date index = params['custom_date_index'].to_i @promotion_rule.preferred_custom_dates.delete_at(index) if index.present? flash[:success] = (@promotion_rule, :successfully_updated) if @promotion_rule.save # reload page respond_to do |format| format.js { render inline: 'location.reload();' } # rubocop:disable Rails/RenderInline end end |