mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-03-17 04:34:24 +00:00
Add new 'Checkout options' step to the edit order cycle form so people can attach shipping methods
This commit is contained in:
committed by
Filipe
parent
1e817af5aa
commit
855ec1a708
@@ -6,6 +6,8 @@
|
||||
= t("admin.order_cycles.wizard_progress.incoming")
|
||||
%li
|
||||
= t("admin.order_cycles.wizard_progress.outgoing")
|
||||
%li
|
||||
= t("admin.order_cycles.wizard_progress.checkout_options")
|
||||
- else
|
||||
%li{ class: "#{'current' if action_name == 'edit'}" }
|
||||
%a{ href: main_app.edit_admin_order_cycle_path(@order_cycle) }
|
||||
@@ -16,3 +18,6 @@
|
||||
%li{ class: "#{'current' if action_name == 'outgoing'}" }
|
||||
%a{ href: main_app.admin_order_cycle_outgoing_path(@order_cycle) }
|
||||
= t("admin.order_cycles.wizard_progress.outgoing")
|
||||
%li{ class: "#{'current' if action_name == 'checkout_options'}" }
|
||||
%a{ href: main_app.admin_order_cycle_checkout_options_path(@order_cycle) }
|
||||
= t("admin.order_cycles.wizard_progress.checkout_options")
|
||||
|
||||
83
app/views/admin/order_cycles/checkout_options.html.haml
Normal file
83
app/views/admin/order_cycles/checkout_options.html.haml
Normal file
@@ -0,0 +1,83 @@
|
||||
= render partial: "/admin/order_cycles/order_cycle_top_buttons"
|
||||
|
||||
- content_for :page_title do
|
||||
= t :edit_order_cycle
|
||||
|
||||
- shared_payment_methods = order_cycle_shared_payment_methods(@order_cycle)
|
||||
- shared_shipping_methods = order_cycle_shared_shipping_methods(@order_cycle)
|
||||
|
||||
= form_for [main_app, :admin, @order_cycle], html: { class: "order_cycle" } do |f|
|
||||
|
||||
= render 'wizard_progress'
|
||||
|
||||
%fieldset.no-border-bottom
|
||||
%legend{ align: 'center'}= t('.checkout_options')
|
||||
|
||||
%table.checkout-options
|
||||
%thead
|
||||
%tr
|
||||
%th= t('.distributor')
|
||||
%th= t('.shipping_methods')
|
||||
%th= t('.payment_methods')
|
||||
- @order_cycle.distributors.each do |distributor|
|
||||
- payment_methods = @order_cycle.attachable_payment_methods.where("distributor_id = ?", distributor.id).reject { |payment_method| shared_payment_methods.include?(payment_method) }
|
||||
- shipping_methods = @order_cycle.attachable_shipping_methods.where("distributor_id = ?", distributor.id).reject { |shipping_method| shared_shipping_methods.include?(shipping_method) }
|
||||
%tr
|
||||
%td= distributor.name
|
||||
%td
|
||||
- shipping_methods.each do |shipping_method|
|
||||
%p
|
||||
%label
|
||||
= check_box_tag "order_cycle[preferred_shipping_method_ids][]",
|
||||
shipping_method.id, @order_cycle.shipping_methods.include?(shipping_method),
|
||||
id: "order_cycle_preferred_shipping_method_ids_#{shipping_method.id}"
|
||||
= shipping_method.name
|
||||
- distributor.shipping_methods.backend.each do |shipping_method|
|
||||
%label.disabled
|
||||
= check_box_tag nil, nil, false, disabled: true
|
||||
= shipping_method.name
|
||||
= "(#{t('.back_end')})"
|
||||
- if shipping_methods.none? && distributor.shipping_methods.backend.none?
|
||||
%p.text-center
|
||||
= t('.no_shipping_methods')
|
||||
%td
|
||||
- if payment_methods.any?
|
||||
%ul
|
||||
- payment_methods.each do |payment_method|
|
||||
%li= payment_method.name
|
||||
- else
|
||||
%p.text-center
|
||||
= t('.no_payment_methods')
|
||||
- if shared_payment_methods.any? || shared_shipping_methods.any?
|
||||
%tr
|
||||
%td= t('.shared')
|
||||
%td
|
||||
- if shared_shipping_methods.any?
|
||||
= f.collection_check_boxes :shipping_method_ids, shared_shipping_methods, :id, :name do |input|
|
||||
- shared_shipping_method = input.object
|
||||
%p
|
||||
= input.check_box
|
||||
= input.label
|
||||
%p
|
||||
= "—<em>#{shared_shipping_method.distributors.where(id: @order_cycle.distributor_ids).map(&:name).join(", ")}</em>".html_safe
|
||||
%td
|
||||
- if shared_payment_methods.any?
|
||||
%ul
|
||||
- shared_payment_methods.each do |shared_payment_method|
|
||||
%li
|
||||
= shared_payment_method.name
|
||||
%p
|
||||
= "—<em>#{shared_payment_method.distributors.where(id: @order_cycle.distributor_ids).map(&:name).join(", ")}</em>".html_safe
|
||||
|
||||
%div#save-bar
|
||||
%div.container
|
||||
%div.seven.columns.alpha
|
||||
- if @order_cycle.errors.any?
|
||||
%h5#status-message.error
|
||||
= @order_cycle.errors.to_a.to_sentence
|
||||
%div.nine.columns.omega.text-right
|
||||
= hidden_field_tag :context, :checkout_options
|
||||
= f.submit t('.save'), class: "red", name: :save
|
||||
= f.submit t('.save_and_back_to_list'), class: "red", name: :save_and_back_to_list
|
||||
%a.button.cancel{ href: main_app.admin_order_cycles_path }
|
||||
= t('.cancel')
|
||||
@@ -10,7 +10,8 @@
|
||||
|
||||
%save-bar{ dirty: "order_cycle_form.$dirty", persist: "true" }
|
||||
%input.red{ type: "button", value: t('.save'), ng: { click: "submit($event, null)", disabled: "!order_cycle_form.$dirty || order_cycle_form.$invalid" } }
|
||||
%input.red{ type: "button", value: t('.save_and_back_to_list'), ng: { click: "submit($event, '#{main_app.admin_order_cycles_path}')", disabled: "!order_cycle_form.$dirty || order_cycle_form.$invalid" } }
|
||||
%input.red{ type: "button", value: t('.save_and_next'), ng: { click: "submit($event, '#{main_app.admin_order_cycle_checkout_options_path(@order_cycle)}')", disabled: "!order_cycle_form.$dirty || order_cycle_form.$invalid" } }
|
||||
%input{ type: "button", value: t('.next'), ng: { click: "cancel('#{main_app.admin_order_cycle_checkout_options_path(@order_cycle)}')", disabled: "order_cycle_form.$dirty" } }
|
||||
%input{ type: "button", ng: { value: "order_cycle_form.$dirty ? '#{t('.cancel')}' : '#{t('.back_to_list')}'", click: "cancel('#{main_app.admin_order_cycles_path}')" } }
|
||||
|
||||
%fieldset.no-border-bottom
|
||||
|
||||
Reference in New Issue
Block a user