Commit Graph

110 Commits

Author SHA1 Message Date
Konrad
27a4202fa4 Merge pull request #12357 from mkllnk/fix-invoice-order
Fix: preserve order of invoices in bulk print
2024-04-11 12:47:14 +02:00
Maikel Linke
34fc6283b8 Remove unused code 2024-04-11 11:46:52 +10:00
David Cook
fd8be37a62 Use shared page controls on products screen
This has an auto submit and can potentially work with Turbo, like on the Orders screen.
2024-04-10 15:17:56 +01:00
David Cook
8696e05e66 Move index and bulk_update actions to good ol' HTTP requests
We've found that we just can't rely in StimulusReflex (and the underlying WebSockets stack) to guarantee a response to a request.
Because of this, there was intermittent issues when the server was overloaded with large requests, and the response never arrived, leaving an infinite loader, and a poor user wondering if anything was still happening.
2024-04-10 15:17:56 +01:00
Maikel Linke
b03bb30a8e Move ABN checks to the database 2024-04-10 17:02:18 +10:00
Maikel Linke
48b447500f Move selection of invoicable orders to database
It's more efficient and should allow for further optimisations.
2024-04-10 16:52:56 +10:00
Maikel Linke
16c877f7cb Fix: preserve order of invoices in bulk print 2024-04-10 14:51:55 +10:00
Gaetan Craig-Riou
678fa37df9 Fix duplication issue
When a product had mutiple variant assigned to the same category it
should only return the product one
2024-04-02 09:57:36 +11:00
Matt-Yorkley
fb09a7f1e6 Fix product filtering 2024-04-02 09:27:37 +11:00
David Cook
69df56ae76 Merge pull request #12247 from dacook/buu/broadcast-queue-12020
[BUU] Enqueue actions to perform at end of reflex
2024-03-18 11:38:21 +11:00
David Cook
63549b3dca Add comment
I still don't know why the morph method doesn't work in this context..
2024-03-18 11:17:15 +11:00
David Cook
8a84e0084f Enqueue cable_ready actions to perform at end of reflex
I think this resolves [this discussion](https://github.com/openfoodfoundation/openfoodnetwork/pull/11163#discussion_r1260531844)

I guess we just didn't know [how it works](https://docs.stimulusreflex.com/guide/cableready.html#order-of-operations) before..
2024-03-18 11:16:38 +11:00
Feruz Oripov
9d919938f3 Group Order && OrderCycle related services and specs 2024-03-16 19:07:08 +05:00
Mohamed ABDELLANI
64b42b1284 improve all_distributors_can_invoice? 2024-02-19 11:00:41 +01:00
Mohamed ABDELLANI
6e9089ad47 check ABN before bulk printing 2024-02-19 09:13:58 +01:00
David Cook
f72154e40c Add image create form
Re-using the edit image form, because they're basically the same.
2024-01-25 14:14:58 +11:00
Konrad
bed405794f Merge pull request #11762 from binarygit/send-shipment-email-optionally
send-shipment-email-optionally
2024-01-18 12:02:00 +01:00
David Cook
fa9deeb948 Remove unused method 2024-01-16 13:45:02 +11:00
David Cook
6479990f6d Show image update form in modal
It submits to the existing controller. I wanted to submit it with StimulusReflex, but it [doesn't support file uploads](https://docs.stimulusreflex.com/guide/working-with-forms.html#a-note-about-file-uploads). Perhaps we'll enhance this with javascript later.
2024-01-16 13:44:28 +11:00
binarygit
5b99c2666a Use cable_ready.replace instead of morphing after order is captured 2024-01-14 15:06:02 +05:45
binarygit
aa7a4fb5a2 Send shipment email by default 2024-01-14 15:06:02 +05:45
binarygit
5e45d3b877 send shipment email optionally from orders#edit page 2024-01-14 15:06:02 +05:45
binarygit
95a51159d7 send-shipment-email-optionally 2024-01-14 15:05:59 +05:45
Rachel Arnould
bd0a296100 Merge pull request #11846 from chahmedejaz/task/11068-delete-product-or-variant
[BUU] Add option to delete a product or variant
2024-01-08 13:17:29 +01:00
Maikel
63ce91d52a Merge pull request #11954 from mkllnk/delete-app
Enterprise user can remove Connected Apps
2024-01-03 11:17:26 +11:00
Ahmed Ejaz
0fd868b669 11068: update variant_scope method to inline 2023-12-28 17:06:21 +05:00
Ahmed Ejaz
6ed447b6ac 11068: code refactor
- Add single delete modal
  for product and variant each
2023-12-23 15:53:28 +05:00
Gaetan Craig-Riou
91e5227d80 Move to simple UserReflex 2023-12-22 13:20:14 +01:00
Gaetan Craig-Riou
d0ba881aa2 Move acepting of ToS change to a reflex
Spree::Admin::UserController is for super admin user only. Moving to a
reflex simplifies the code by getting rid of a new route and a new stimulus
controller
2023-12-22 13:20:14 +01:00
Ahmed Ejaz
dc78fa843a Update app/reflexes/products_reflex.rb
11068: remove overdefensive auth check

Co-authored-by: Maikel <maikel@email.org.au>
2023-12-22 02:24:28 +05:00
Ahmed Ejaz
24fd75a85d Update app/reflexes/products_reflex.rb
11068: remove overdefensive auth check

Co-authored-by: Maikel <maikel@email.org.au>
2023-12-22 02:21:53 +05:00
Ahmed Ejaz
f44476b9af 11068: code refactoring
- Make use of reflexes when deleting the product and variant
- Add reflex dataset param to confirm_modal_component
2023-12-20 12:54:54 +05:00
Ahmed Ejaz
9cf51f3453 11068: add success and failure messages 2023-12-20 12:54:54 +05:00
Ahmed Ejaz
1936adc82f 11068: fix lint issues 2023-12-20 12:54:54 +05:00
Ahmed Ejaz
26d102f66b 11068: update product/varaint delete actions 2023-12-20 12:54:54 +05:00
Ahmed Ejaz
05e7674805 #11068: add delete variant and product reflexes 2023-12-20 12:54:54 +05:00
Ahmed Ejaz
5d90993f21 11068, apply delete_modals partial 2023-12-20 12:54:54 +05:00
Maikel Linke
b33910d5b4 Disconnect Connected App as enterprise user
The app has to provide a webhook URL to be notified when the app is
disconnected. Once we have better token management, we would have a
unique token per app and could revoke it. But for now it's just a
request to disconnect the app.
2023-12-20 15:29:28 +11:00
Maikel Linke
35ca66cbb7 Respond fast by rendering only partial 2023-12-15 12:34:40 +11:00
Maikel Linke
1d7f96e965 Broadcast connected app to all user tabs 2023-12-15 12:34:40 +11:00
Maikel Linke
12e5a0d1e1 Query webhook to connect app 2023-12-15 11:50:04 +11:00
Maikel Linke
4eb273b06e Create ConnectedApp with a reflex
I would have like to use a standard form to submit to the reflex but the
whole enterprise settings tab is in a form already and HTML doesn't
allow nested forms. While it does still work in browsers, it would have
added much more HTML to set up a form with a hidden input field instead
of just one additional data attribute.

The whole page is rendered by the controller again but the reflex root
attribute ensures that only parts of this tab are replaced. Otherwise
unsaved data on other tabs could be replaced and the page actually
becomes blank because AngularJS doesn't play well with the morph.
2023-12-15 11:50:04 +11:00
David Cook
0f46da07b2 Render flashes along with table
It doesn't matter where the flash messages appear in the HTML (thanks to fixed positioning), so why not keep it simple and send them with the main response.

preventDefault in case we are inside a form, so the button doesn't submit it.
2023-12-06 15:13:15 +11:00
David Cook
54d61cd24d Don't show flashes until everything else is done.
Mario reported that it was showing before the loading spinner had gone.
Technically the loading spinner doesn't hide until after the reflex is finished, but hopefully this is close enough.
2023-12-06 10:12:17 +11:00
David Cook
6dc04c458c Show saving success message in flash
I don't know if this is the best way to do it with SR, but it works..
2023-12-06 10:12:17 +11:00
David Cook
eccfe96a5b Use form hash structure
The array format is generally fine, but to properly support checkboxes, we need this format with hash keys.
https://guides.rubyonrails.org/form_helpers.html#understanding-parameter-naming-conventions
2023-11-28 10:44:34 +11:00
Neal Chambers
69e7419a45 Safely autocorrect Style/NegatedIfElseCondition
Inspecting 1509 files
....................................................................................................................................................................................................................C........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................C.......................................................................................................................................................

Offenses:

app/mailers/spree/shipment_mailer.rb:15:25: C: [Corrected] Style/NegatedIfElseCondition: Invert the negated condition and swap the ternary branches.
      default_subject = !@delivery ? t('.picked_up_subject') : default_i18n_subject
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
spec/support/matchers/table_matchers.rb:34:5: C: [Corrected] Style/NegatedIfElseCondition: Invert the negated condition and swap the if-else branches.
    if rows.count != expected_table.count ...
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

1509 files inspected, 2 offenses detected, 2 offenses corrected
2023-11-10 09:13:57 +09:00
David Cook
f05d27b58b Show error message summary at top of form 2023-11-03 14:32:58 +11:00
David Cook
a0b64cb58a Remove unnecessary set_locale calls
The locale is now set in ApplicationReflex
2023-10-13 15:54:24 +02:00
David Cook
2915048afa Always set locale for reflexes
I considered using I18nHelper like we do in controllers, but that is for choosing a locale, which we don't need to do for reflexes.
2023-10-13 15:54:24 +02:00