From c4bc0a7bbd5b5f0e7247373b1d3ee2f13271e201 Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Sun, 7 May 2023 14:03:51 +0100 Subject: [PATCH 01/38] Rename select-all-controller --- .../order_cycles/checkout_options.html.haml | 12 +++---- ...ll_controller.js => checked_controller.js} | 0 ...ler_test.js => checked_controller_test.js} | 34 +++++++++---------- 3 files changed, 23 insertions(+), 23 deletions(-) rename app/webpacker/controllers/{select_all_controller.js => checked_controller.js} (100%) rename spec/javascripts/stimulus/{select_all_controller_test.js => checked_controller_test.js} (75%) diff --git a/app/views/admin/order_cycles/checkout_options.html.haml b/app/views/admin/order_cycles/checkout_options.html.haml index 80d58be8c6..cc43c1323e 100644 --- a/app/views/admin/order_cycles/checkout_options.html.haml +++ b/app/views/admin/order_cycles/checkout_options.html.haml @@ -21,11 +21,11 @@ = hidden_field_tag "order_cycle[selected_distributor_shipping_method_ids][]", "" - @order_cycle.distributors.each do |distributor| - distributor_shipping_methods = @order_cycle.attachable_distributor_shipping_methods.where("distributor_id = ?", distributor.id).includes(:shipping_method) - %tr{ class: "distributor-#{distributor.id}-shipping-methods", "data-controller": "select-all" } + %tr{ class: "distributor-#{distributor.id}-shipping-methods", "data-controller": "checked" } %td.text-center - if distributor_shipping_methods.many? %label - = check_box_tag nil, nil, nil, { "data-action": "change->select-all#toggleAll", "data-select-all-target": "all" } + = check_box_tag nil, nil, nil, { "data-action": "change->checked#toggleAll", "data-checked-target": "all" } = t(".select_all") %td %em= distributor.name @@ -36,7 +36,7 @@ distributor_shipping_method.id, @order_cycle.distributor_shipping_methods.include?(distributor_shipping_method), id: "order_cycle_selected_distributor_shipping_method_ids_#{distributor_shipping_method.id}", - data: ({ "action" => "change->select-all#toggleCheckbox", "select-all-target" => "checkbox" } if distributor_shipping_method.shipping_method.frontend?) + data: ({ "action" => "change->checked#toggleCheckbox", "checked-target" => "checkbox" } if distributor_shipping_method.shipping_method.frontend?) = distributor_shipping_method.shipping_method.name - distributor.shipping_methods.backend.each do |shipping_method| %label.disabled @@ -52,11 +52,11 @@ = hidden_field_tag "order_cycle[selected_distributor_payment_method_ids][]", "" - @order_cycle.distributors.each do |distributor| - distributor_payment_methods = @order_cycle.attachable_distributor_payment_methods.where("distributor_id = ?", distributor.id).includes(:payment_method) - %tr{ class: "distributor-#{distributor.id}-payment-methods", "data-controller": "select-all" } + %tr{ class: "distributor-#{distributor.id}-payment-methods", "data-controller": "checked" } %td.text-center - if distributor_payment_methods.many? %label - = check_box_tag nil, nil, nil, { "data-action": "change->select-all#toggleAll", "data-select-all-target": "all" } + = check_box_tag nil, nil, nil, { "data-action": "change->checked#toggleAll", "data-checked-target": "all" } = t(".select_all") %td %em= distributor.name @@ -67,7 +67,7 @@ distributor_payment_method.id, @order_cycle.distributor_payment_methods.include?(distributor_payment_method), id: "order_cycle_selected_distributor_payment_method_ids_#{distributor_payment_method.id}", - data: ({ "action" => "change->select-all#toggleCheckbox", "select-all-target" => "checkbox" } if distributor_payment_method.payment_method.frontend?) + data: ({ "action" => "change->checked#toggleCheckbox", "checked-target" => "checkbox" } if distributor_payment_method.payment_method.frontend?) = distributor_payment_method.payment_method.name - distributor.payment_methods.inactive_or_backend.each do |payment_method| %label.disabled diff --git a/app/webpacker/controllers/select_all_controller.js b/app/webpacker/controllers/checked_controller.js similarity index 100% rename from app/webpacker/controllers/select_all_controller.js rename to app/webpacker/controllers/checked_controller.js diff --git a/spec/javascripts/stimulus/select_all_controller_test.js b/spec/javascripts/stimulus/checked_controller_test.js similarity index 75% rename from spec/javascripts/stimulus/select_all_controller_test.js rename to spec/javascripts/stimulus/checked_controller_test.js index f7a17b884f..772d519ea0 100644 --- a/spec/javascripts/stimulus/select_all_controller_test.js +++ b/spec/javascripts/stimulus/checked_controller_test.js @@ -3,32 +3,32 @@ */ import { Application } from "stimulus"; -import select_all_controller from "../../../app/webpacker/controllers/select_all_controller"; +import checked_controller from "../../../app/webpacker/controllers/checked_controller"; -describe("SelectAllController", () => { +describe("CheckedController", () => { beforeAll(() => { const application = Application.start(); - application.register("select-all", select_all_controller); + application.register("checked", checked_controller); }); beforeEach(() => { document.body.innerHTML = ` -
+
+ data-action="change->checked#toggleAll" + data-checked-target="all"> + data-action="change->checked#toggleCheckbox" + data-checked-target="checkbox"> + data-action="change->checked#toggleCheckbox" + data-checked-target="checkbox">
`; }); @@ -83,23 +83,23 @@ describe("SelectAllController", () => { describe("#connect", () => { beforeEach(() => { document.body.innerHTML = ` -
+
+ data-action="change->checked#toggleAll" + data-checked-target="all">
`; From f181b35a905bd63d4f536157acf817eb5dc4d3aa Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Sun, 7 May 2023 23:39:47 +0100 Subject: [PATCH 02/38] Add minimal admin js setup --- app/assets/javascripts/admin_minimal.js | 44 +++++++++++++++++++ app/views/spree/admin/orders/index.html.haml | 4 +- app/views/spree/admin/shared/_head.html.haml | 8 ++-- .../spree/admin/shared/_translations.html.erb | 3 ++ config/application.rb | 2 +- 5 files changed, 56 insertions(+), 5 deletions(-) create mode 100644 app/assets/javascripts/admin_minimal.js diff --git a/app/assets/javascripts/admin_minimal.js b/app/assets/javascripts/admin_minimal.js new file mode 100644 index 0000000000..d438957f34 --- /dev/null +++ b/app/assets/javascripts/admin_minimal.js @@ -0,0 +1,44 @@ +// This is a manifest file that'll be compiled into including all the files listed below. +// Add new JavaScript/Coffee code in separate files in this directory and they'll automatically +// be included in the compiled file accessible from http://example.com/assets/application.js +// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the +// the compiled file. +// + +//= require jquery2 +//= require admin/spree/spree-select2 +//= require admin/spree/handlebar_extensions + +//= require i18n/translations +//= require darkswarm/i18n.translate.js +//= require moment/min/moment.min.js +//= require moment/locale/ar.js +//= require moment/locale/ca.js +//= require moment/locale/de.js +//= require moment/locale/en-gb.js +//= require moment/locale/es.js +//= require moment/locale/fil.js +//= require moment/locale/fr.js +//= require moment/locale/it.js +//= require moment/locale/nb.js +//= require moment/locale/nl-be.js +//= require moment/locale/pt-br.js +//= require moment/locale/pt.js +//= require moment/locale/ru.js +//= require moment/locale/sv.js +//= require moment/locale/tr.js +//= require moment/locale/pl.js + +//= require js-big-decimal/dist/web/js-big-decimal.min.js + +window.angular = { module: function(noop){ return { value: function(){} } } } + +document.addEventListener("ajax:beforeSend", (event) => { + window.Turbo.navigator.adapter.progressBar.setValue(0) + window.Turbo.navigator.adapter.progressBar.show() +}) + +document.addEventListener("ajax:complete", (event) => { + window.Turbo.navigator.adapter.progressBar.setValue(100) + window.Turbo.navigator.adapter.progressBar.hide() +}) \ No newline at end of file diff --git a/app/views/spree/admin/orders/index.html.haml b/app/views/spree/admin/orders/index.html.haml index 33224c8957..5c55106a03 100644 --- a/app/views/spree/admin/orders/index.html.haml +++ b/app/views/spree/admin/orders/index.html.haml @@ -1,6 +1,8 @@ - content_for :page_title do = t('.listing_orders') +- content_for :minimal_js, true + - content_for :page_actions do %li = button_link_to t('.new_order'), spree.new_admin_order_url, icon: 'icon-plus', id: 'admin_new_order' @@ -42,7 +44,7 @@ %div.menu_item %span.name{ "data-controller": "modal-link", "data-action": "click->modal-link#open", "data-modal-link-target-value": "cancel_orders" } = t('.cancel_orders') - + = render partial: 'admin/shared/angular_per_page_controls', locals: { position: "right", model: "orders" } %table#listing_orders.index.responsive{width: "100%", 'ng-init' => 'initialise()', 'ng-show' => "!RequestMonitor.loading && orders.length > 0" } diff --git a/app/views/spree/admin/shared/_head.html.haml b/app/views/spree/admin/shared/_head.html.haml index 238052154e..ec9ea94fb5 100644 --- a/app/views/spree/admin/shared/_head.html.haml +++ b/app/views/spree/admin/shared/_head.html.haml @@ -3,8 +3,6 @@ = csrf_meta_tags = action_cable_meta_tag -= action_cable_meta_tag - %title - if content_for? :html_title = yield :html_title @@ -16,7 +14,11 @@ = stylesheet_pack_tag 'admin-styles', media: "screen, print" = render "layouts/bugsnag_js" -= javascript_include_tag 'admin/all' + +- if content_for? :minimal_js + = javascript_include_tag 'admin_minimal' +- else + = javascript_include_tag 'admin/all' = render "spree/admin/shared/translations" = render "spree/admin/shared/routes" diff --git a/app/views/spree/admin/shared/_translations.html.erb b/app/views/spree/admin/shared/_translations.html.erb index 97eae43d00..96183fd864 100644 --- a/app/views/spree/admin/shared/_translations.html.erb +++ b/app/views/spree/admin/shared/_translations.html.erb @@ -1,4 +1,7 @@