Commit Graph

195 Commits

Author SHA1 Message Date
Jean-Baptiste Bellet
ddfc60c85e Don't use events, but call the loading controller itself 2023-07-19 14:58:39 +02:00
Jean-Baptiste Bellet
38d0af8ec0 Simplify: don't need to pass through the js controller
Use the reflex itself

+ Don't need to create a method that will be called only in the connect

+ Simply code by adding only two lifecycle methods

Actually it seems that all reflex related to products controller should show/hide loading
2023-07-19 14:58:39 +02:00
Jean-Baptiste Bellet
643897abb2 Add search functionnality 2023-07-19 14:58:39 +02:00
Jean-Baptiste Bellet
0fd4d892d9 This is now unused: through the js controller only at startup 2023-07-19 14:58:39 +02:00
Jean-Baptiste Bellet
61d1f30e04 Rename productsV3 to products: avoid upper|lower case issues
This is causing some issues, misunderstandings around case.

Therefore, directly use the Reflex, and lifecycle methods `beforeFetch` and `afterFetch` are called, even if we use the Reflex (and not the js controller methods). This is pretty handy.

+ adds some id to pagination element (https://docs.stimulusreflex.com/guide/reflexes.html#declaring-a-reflex-in-html-with-data-attributes)

Global documentation: https://docs.stimulusreflex.com/guide/reflexes.html
2023-07-19 14:58:39 +02:00
Jean-Baptiste Bellet
574adb88d2 Add a per page component
This is still a WIP.
2023-07-19 14:58:39 +02:00
Jean-Baptiste Bellet
0b83dc088d Separation of concerns: use a loading controller
Two different events can be used: `show-loading` and `hide-loading`.

I'm not 100% sure this is the right way to go, but let's try!
2023-07-19 14:58:39 +02:00
Jean-Baptiste Bellet
5aebbe4102 use beforeFetch and afterFetch lifecycle methods
+ Move outside `Admin` module the reflex

Therefore, this reflex should be _equivalent_ to its javascript controller: `ProductsV3` (relation is made through names)

Remove unwanted line

Actually call StimulusJS controller instead of calling the reflex itself

In order to have this "showLoading", "hideLoading" behavior.

It seems to be possible to directly use the Reflex itself (use `data-reflex` instead of `data-action`) but I can't make it work: the `stimulus-controller:after` event is never broadcasted/catched (but `stimulus-controller:before` yes...)

Documentation:
https://docs.stimulusreflex.com/guide/reflexes.html#understanding-stimulusreflex-controllers
https://docs.stimulusreflex.com/guide/lifecycle.html#generic-life-cycle-methods

Maybe @dacook if you want to have a look...
2023-07-19 14:58:39 +02:00
David Cook
d03b88cf83 Rename variables
To make it clear they are arrays
2023-07-11 10:48:52 +02:00
Jean-Baptiste Bellet
0fdf7876a6 Instanciate instance variable + use spread operator to be more concise
and efficient ;)
2023-07-11 10:48:52 +02:00
Jean-Baptiste Bellet
7084c53f38 Do not display menu is the dropdown is 'disabled'
ie. classList contains `disabled`
2023-07-11 10:48:52 +02:00
Jean-Baptiste Bellet
02aea989be Add on_click_outside behavior on dropdown_controller
"It's a Surprise Tool That Will Help Us Later"
2023-07-11 10:48:52 +02:00
Jean-Baptiste Bellet
d78af187e0 Allow dropdown controller to toggle more than one class
"It's a Surprise Tool That Will Help Us Later"
2023-07-11 10:48:51 +02:00
David Cook
05a22b80bc Merge pull request #11123 from dacook/buu-products-table
[admin_style_v3] Products table with variants
2023-07-06 09:37:31 +10:00
Filipe
97f131e556 Merge pull request #11089 from jibees/11049-invoices-actions-dropdown-menu-disappears-after-creating-the-first-invoice
[Invoices] Actions dropdown menu disappears after creating the first invoice
2023-06-29 16:23:35 +01:00
David Cook
809c15b197 Load products page with reflex
We will add the products in the next commit.
2023-06-28 09:59:57 +10:00
Maikel
a7915b8089 Merge pull request #10849 from mkllnk/report-cable
Show "loading" screen for background reports and display when ready
2023-06-26 10:25:48 +10:00
Jean-Baptiste Bellet
7421691506 Creates a dropdown controller with its specs 2023-06-21 10:29:47 +02:00
Jean-Baptiste Bellet
74fd1814e4 Create a trixeditor controller and broadcast a change event on form
Therefore, AngularJS can set form as dirty

+ add associated spec
2023-06-09 08:03:17 +02:00
Matt-Yorkley
524d1f0264 Switch to tighter Channel scoping...
This is not a normal pattern for setting up ActionCable channels, so it might need some notes. It ensures the broadcasts from the ReportJob are unique not just to the user session but also to the specific tab in the user's browser. Otherwise if the user has two different report pages open in separate tabs with the same session, the broadcast would overwrite the #report-table element in both of them.
2023-06-09 14:44:53 +10:00
Filipe
12159edaca Merge pull request #10833 from Matt-Yorkley/order-angular
Remove Angular from admin orders index page
2023-06-01 13:57:39 +01:00
Jean-Baptiste Bellet
916b2313ab Some links does not include _panel suffix. Add if needed.
Yep. Sounds like a hack.

+ Use the right URL anchor with `_panel` in href for each tab

+ update specs
2023-05-25 09:19:51 +02:00
Jean-Baptiste Bellet
6b1d1ddbce On order cycle change, go to shop panel 2023-05-25 09:19:51 +02:00
Jean-Baptiste Bellet
a28a792642 Allow communication between controllers via event 2023-05-25 09:19:51 +02:00
Matt-Yorkley
d50ac4bf45 Reinstate dropdown-with-prepend 2023-05-21 00:15:32 +01:00
Matt-Yorkley
4ddde65a04 Reimplement saving and restoring submitted search filters between page loads 2023-05-21 00:15:32 +01:00
Matt-Yorkley
7d33e0f74d Allow programmatically refreshing flatpickr element via "flatpickr:change" event after changing the select's value externally 2023-05-21 00:15:32 +01:00
Matt-Yorkley
2ba2a826db Clean up event handlers on disconnect in Flatpickr controller 2023-05-21 00:15:32 +01:00
Matt-Yorkley
d64a9afece Replace angular ofn-with-tip directive on capture/ship buttons 2023-05-21 00:15:32 +01:00
Matt-Yorkley
310577c49d Close dropdown after selection with multiselect
This conforms with the previous select2 multiselect behaviour
2023-05-21 00:15:32 +01:00
Matt-Yorkley
bee46720f4 Combine bulk action controllers and pass reflex as an argument 2023-05-21 00:15:32 +01:00
Matt-Yorkley
5930d0c1f5 Make bulk actions more generic 2023-05-21 00:15:32 +01:00
Matt-Yorkley
55d9deb5bd Update order cancelling bulk action 2023-05-21 00:15:32 +01:00
Matt-Yorkley
134f1ab151 Replace angular bulkInvoiceCtrl 2023-05-21 00:15:32 +01:00
Matt-Yorkley
27290e5b57 Make modal controller creatable and destroyable 2023-05-21 00:15:32 +01:00
Matt-Yorkley
048df6230b Remove angular from admin orders index page 2023-05-21 00:15:32 +01:00
Matt-Yorkley
c4bc0a7bbd Rename select-all-controller 2023-05-20 19:47:41 +01:00
Gaetan Craig-Riou
0a249d7722 Fix ButtonEnableToggleController to remove hacky button disable
As per review comment, use data-disable-with="false" do prevent Rails
from automatically enabling the "Apply" button. We can then remove
the timeout hack.
2023-05-15 13:42:39 +10:00
Gaetan Craig-Riou
aa526a639c Checkout payment page, enable voucher "apply" button when code entered
The "apply" button is disabled by default. If left enabled, a customer
could try to apply an empty voucher, which results in system trying
to move to the order summary step, an unexpected behaviour!
We only enable the button when something is entered in the input.
2023-05-15 13:42:39 +10:00
Jean-Baptiste Bellet
3a1579104f Submit customer_id as params when updating customer details on order 2023-05-04 16:40:58 +02:00
Jean-Baptiste Bellet
470761da86 Add a simple CheckboxDisplay controller that show/hide content
depending on the checkbox state (checked or not)
2023-04-20 08:45:03 +02:00
Filipe
2f6b730ed4 Merge pull request #10614 from cillian/business-address-country-state-placeholders
Add placeholders to business address country and state select fields
2023-04-05 19:55:07 +01:00
Jean-Baptiste Bellet
65084422cb cable_ready is already imported in app/webpacker/controllers/index.js 2023-04-05 14:19:34 +10:00
Cillian O'Ruanaidh
89dac47aa6 Add placeholders to business address country and state select fields 2023-04-04 19:22:22 +01:00
Gaetan Craig-Riou
e1845dddac Fix TabsAndPanelsController now that #! are removed from url
This PR https://github.com/openfoodfoundation/openfoodnetwork/pull/9729
remove #! from url. But unfortunately, AngularJs rewrite "example.com#panel"
as "example.com#/panel" thus breaking the original implementation.
2023-03-28 13:39:29 +11:00
Gaetan Craig-Riou
094fc039e9 Update tabs_and_panels to display tab and panel based on the url anchor
For Vouchers, this means the voucher tab and panel are displayed when
you come back to entreprise edit screen from the new vourcher page
2023-03-28 13:39:29 +11:00
Rachel Arnould
75c3bf8b56 Merge pull request #9630 from binarygit/remove-angular-from-business-details
Remove angular from business details
2023-03-21 18:31:40 +01:00
binarygit
8f6fdf3e31 [Admin, Enterprise Settings] Remove Angular from Business Details tab 2023-03-08 10:26:05 +01:00
Jean-Baptiste Bellet
8926a3f08d Having a cleaner syntax a prefer using map() instead of forEach() 2023-02-27 14:30:59 +01:00
Jean-Baptiste Bellet
7a1a1286d2 Factorize two reflexes into one: BulkActionsInOrdersListReflex 2023-02-27 14:30:59 +01:00