Add first stimulus controllers to display elements

1. Introduce a stimulus toggle_controller

 - controller: { "data-controller": "toggle" }
 - action: { "data-action": "toggle#toggle" }
 - show or not: { "data-toggle-show":  true || false  }
- targets: { "data-toggle-target": "content", style: "display: none" }
Display payment method price

2. States are populated via a new dependant_select_controller by stimulus.
Usage:

 - controller : { "data-controller": "dependant-select", "data-dependant-select-options-value": [ [1: ["option", "for", "1"], [2: ["option", "for", "2"] ] }
 - target (on the populating target):  { "data-dependant-select-target": "select" }
 - source and action (on the input that leads the dependant select): {"data-dependant-select-target": "source", "data-action": "dependant-select#handleSelectChange"}
Some improvements on readability

3. Populate ShippingMethod description thanks to "shippingmethod_controller"


+
 - Add countries and states
This commit is contained in:
Jean-Baptiste Bellet
2021-07-26 10:43:27 +02:00
parent 200ced62fb
commit 151a6fd16b
5 changed files with 96 additions and 31 deletions

View File

@@ -6,6 +6,7 @@ class SplitCheckoutController < ::BaseController
layout 'darkswarm'
include OrderStockCheck
include Spree::BaseHelper
helper 'terms_and_conditions'
helper 'checkout'
@@ -19,7 +20,7 @@ class SplitCheckoutController < ::BaseController
prepend_before_action :require_order_cycle
prepend_before_action :require_distributor_chosen
before_action :load_order, :load_shipping_methods
before_action :load_order, :load_shipping_methods, :load_countries
before_action :ensure_order_not_completed
before_action :ensure_checkout_allowed
@@ -95,6 +96,11 @@ class SplitCheckoutController < ::BaseController
@shipping_methods = Spree::ShippingMethod.for_distributor(@order.distributor).order(:name)
end
def load_countries
@countries = available_countries.map { |c| [c.name, c.id] }
@countries_with_states = available_countries.map { |c| [c.id, c.states.map { |s| [s.name, s.id] }] }
end
def load_order
@order = current_order