Commit Graph

1678 Commits

Author SHA1 Message Date
David Cook
00f6d01738 Remove errored variants
I found another case.
2024-05-14 11:27:04 +10:00
David Cook
da77994a89 Ignore disconnected form elements
When elements are removed from the DOM, they remain in the recordElements array. But we can simply ignore them.
We have to wait until after rails-nested-form:remove is completed before toggleFormChanged.

hmm It would be even better to remove them from the array..
2024-05-14 11:26:40 +10:00
David Cook
b45df8a723 Use built-in feature to delete new record row
I looked at the source code and found that we were missing one detail: data-new-record.
https://github.com/stimulus-components/stimulus-rails-nested-form/blob/master/src/index.ts#L32-L35

It's documented here, but it's easy to miss: https://www.stimulus-components.com/docs/stimulus-rails-nested-form/
2024-05-14 11:25:52 +10:00
cyrillefr
808f1c65f2 Requested changes on Delete Button missing
- Styling(in red) for the remove button/link in view

- A remove method to the bulk_form controller
    - removes elements from the Dom
    - removes changed elements from the binded Array in controller
    - so that menu that indicates changes disappear and blured elements
    - resume to non blurring state

- Added the corresponding specs
    - test with one, two variants
    - test with two different products
2024-05-14 11:25:22 +10:00
cyrillefr
36f3e4af02 Requested changes on Delete button missing
- cleaned haml/html
2024-05-14 11:25:22 +10:00
cyrillefr
9b10b73a65 Delete Button missing before saving variant
- used the remove option of stimulus-components/rails-nested-form lib
 - add the Remove option in the menu
 - the corresponding spec
 - the locale
2024-05-14 11:25:22 +10:00
Ahmed Ejaz
b5fe19cb7d 11058: add specs 2024-05-10 02:52:57 +05:00
Ahmed Ejaz
86f88792c2 11058: add sortable products by name 2024-05-08 12:56:41 +05:00
Ahmed Ejaz
7e555b4fcb Update app/views/admin/products_v3/_product_row.html.haml
Co-authored-by: David Cook <david@redcliffs.net>
2024-05-07 14:59:14 +02:00
Ahmed Ejaz
15ee4f6619 11060: add specs 2024-05-07 14:59:14 +02:00
Ahmed Ejaz
c12d6ab7f0 11060: revert 33b947be00563b67ca36475f277ceceaf8c68378 2024-05-07 14:59:14 +02:00
Ahmed Ejaz
aad48b4670 11060 - use SearchableDropdownComponent for categories or tax categories 2024-05-07 14:59:14 +02:00
Ahmed Ejaz
f6efd47af2 11060 - use SearchableDropdownComponent for producer names 2024-05-07 14:59:14 +02:00
Ahmed Ejaz
b577a81f48 11060 - add tax category field 2024-05-07 14:59:14 +02:00
Ahmed Ejaz
5050c2e02b 11060 - remove producer name from variant 2024-05-07 14:59:14 +02:00
Ahmed Ejaz
4360ddde03 11060 - add variant categories dropdown 2024-05-07 14:59:14 +02:00
Ahmed Ejaz
ec4b920f8b 11060 - implement scenario 1 2024-05-07 14:59:14 +02:00
Ahmed Ejaz
2fdaa8b9ec 11060 - implement the scenario 2 and 3 2024-05-07 14:59:14 +02:00
Konrad
8e7f4ff908 Merge pull request #12333 from chahmedejaz/bugfix/12294-wrong-tax-category-display
[BUU] Fix Wrong Tax Category Display
2024-04-20 11:42:05 +02:00
David Cook
a2255e62d4 Revert "Use POST for action that creates data,"
I'm not happy about it, but we need it to be a standard link to make it work. I assume it's because BulkFormController.preventLeavingChangedForm() isn't smart enough.

This reverts commit 91f0a80189.
2024-04-17 17:36:05 +10:00
David Cook
11541c9270 Disable turbo for those links
Now we can warn that "Changes that you made might not be saved"
2024-04-17 17:35:17 +10:00
David Cook
8f9d8b5fb8 Revert "Prevent frame navigations when form is changed"
It was too hacky and had issues. Let's just disable Turbo for those links for now.

This reverts commit 1d1169b478.
2024-04-17 17:26:49 +10:00
David Cook
91f0a80189 Use POST for action that creates data,
duh.

Turbo cleverly pre-fetches GET requests to save loading time. But that resulted in dozens of unwanted clones.
Attack of the clones!!!

I checked: even though this route predates the new products screen, it wasn't being used anywhere else. The old products screen uses the API instead.
2024-04-17 15:18:13 +10:00
David Cook
1d1169b478 Prevent frame navigations when form is changed
This is a hacky hack, filling a gap in Turbo.
2024-04-17 15:17:59 +10:00
David Cook
06f67488a9 Open links outside of frame by default
This page is big enough and it's hard to see how everything works. So links work like links by default (eg edit and clone). Other links and forms are special, and will reload only the frame: this is now explicit in the code.
2024-04-17 15:17:59 +10:00
David Cook
1abb068a00 Enable morphing?
I can't really prove if this is working, but it seems to be rendering slightly faster.
2024-04-17 15:17:59 +10:00
David Cook
508ebab75b Add loading spinner to turbo frame
That was surprisingly easy. Note that it's still shared with SR.

It hides a bit early though: when the web response returns, but before the DOM has been rendered. Something to optimise in the future.
2024-04-17 15:17:59 +10:00
David Cook
6c9a47854a Submit forms with Turbo Frame
Now the filters, pagination and product forms submit and load within the frame, and work perfectly, yay!

It's still building the whole page on the server.. I think we need Turbo Streams if we want to send back just a partial.
2024-04-17 15:17:59 +10:00
David Cook
9d6ef2f730 Avoid style issues with Turbo
But the filter dropdowns still get duplicated. So weird..
2024-04-17 15:17:59 +10:00
David Cook
f17b0d176b Enable Turbo Drive on products page
Forms now load without a full page rebuild.
This is not really faster, but a bit smoother because it avoids a full page render in the browser. The default Turbo loading indicator is shown (blue line at top).

But the bulk_update form breaks... hmm
On to the next level!
2024-04-17 15:17:59 +10:00
David Cook
72ce3a01a9 Ensure search terms and filters are retained when saving 2024-04-17 15:17:59 +10:00
David Cook
c4b7b76e64 Avoid pagination when editing errored products 2024-04-10 15:17:56 +01: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
0fc3d39106 Ensure pagination is retained when saving or discarding
But we have more work to do.
2024-04-10 15:17:56 +01:00
David Cook
2c71f7f1ed Discard changes by reloading the page
Now there's a popup asking to confirm, which I think is worth keeping!
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
Ahmed Ejaz
0887f0676f 12294 - Fix Wrong Tax Category Display
- Only display the tax_category name if the tax_category_id is present
- tax_category is overriden in the variant model
- if tax category is not present, then return the default tax category
2024-04-04 06:06:23 +05:00
Gaetan Craig-Riou
484c037c38 Fix duplication coming from a rebase error 2024-04-02 10:18:47 +11:00
Gaetan Craig-Riou
8c05838080 Move the category to the variant row 2024-04-02 09:57:36 +11:00
Matt-Yorkley
a55931c081 Reinstate sorting by arbitrary list of product categories 2024-04-02 09:42:43 +11:00
Matt-Yorkley
d4dd3cc708 Update products v3 table 2024-04-02 09:27:36 +11:00
David Cook
924701e161 Load available units from system config
I'm not sure what's the best way to load data into javascript.. this works.
2024-03-27 20:20:20 +11:00
David Cook
1d8ed67b0b Handle unit scale changes
As discussed, this is the desired behaviour. The current screen appears to do this, but fails to save the changes.
2024-03-27 20:20:20 +11:00
David Cook
cf31d09ad8 Prevent submitting empty value 2024-03-27 20:20:20 +11:00
David Cook
49226ffdbc Extract unit_value and unit_description values
Copied from display_as.js.coffee (ofn.admin.ofnDisplayAs.variantUnitProperties).
2024-03-27 20:20:20 +11:00
David Cook
c98956bf5a Add variant controller
This will manage the various unit fields. Maybe it should have a more specific name.
2024-03-27 20:20:16 +11:00
David Cook
e589605e3c Rename popout style classes 2024-03-27 17:35:08 +11:00
David Cook
26723194d5 Prevent popout from updating display value
Watch out, HAML will strip an attribute with boolean false, so we need to use a string. Or reconsider using false as a default value..

I wish Jest had the rspec concept of `let`.
2024-03-27 14:34:31 +11:00
David Cook
4f7d50ca4b Refactor CSS to reduce scope
We don't want the fields inside the popout to be naked, so need to be more specific.
2024-03-27 14:34:31 +11:00
David Cook
4a776233db Move fields into a popout 2024-03-27 14:34:31 +11:00