Commit Graph

862 Commits

Author SHA1 Message Date
David Cook
97d13597b0 Fix intermittent bug
Dunno why, but this recently started occuring for me in dev and test. Browser update?
2024-04-10 15:17:56 +01:00
David Cook
15790d3d8e Only register event listeners when needed
Otherwise there could be over 200 listeners on a page.
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
David Cook
dadabcf8ad Prettify 2024-04-10 15:17:56 +01:00
David Cook
d904c2a494 Don't warn when submitting form 2024-04-10 15:17:56 +01:00
David Cook
b9b2c876cc Ensure value always shows
Even thought it's not valid (you can't save items with an empty name), it's disconcerting when the value suddenly disappears from view.
2024-03-27 20:20:20 +11:00
David Cook
99121943a7 Fix bug
I missed a bit in a refactor, and it wasn't covered by the spec.
2024-03-27 20:20:20 +11:00
David Cook
b2881bb169 Add JS specs
Converted using  https://www.codeconvert.ai/coffeescript-to-javascript-converter
With plenty of manual fixes required too..
2024-03-27 20:20:20 +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
d238fc0cad TODO: optimise and fix bug 2024-03-27 20:20:20 +11:00
David Cook
4ddb2ff1e9 Generate unit display with OptionValueNamer 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
9beaf0a0c2 Use textContent FTW
Oh look, the test works better now too.
2024-03-27 17:35:09 +11:00
David Cook
6291cce5d1 Fix style for empty popout button
There's still an odd 1px height change on hover that I can't track down. I think it would be better to just give new variants a default of 1 (blank is not valid anyway).
2024-03-27 17:35:09 +11:00
David Cook
e589605e3c Rename popout style classes 2024-03-27 17:35:08 +11:00
David Cook
e110cd1145 Fix popout to focus first _visible_ field 2024-03-27 14:34:31 +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
e94fddb0f8 Style label in popout
And tweaked global style as per design.
And cleanup unused classes.
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
f13f2cfa2f Move values to variables
I didn't end up using these, but it's probably worth keeping for consistency.
2024-03-27 14:34:31 +11:00
David Cook
a5741a1ca8 Sync hidden variant unit fields
This will be necessary for managing the 'display as' state.
..or is it?
2024-03-27 14:34:19 +11:00
David Cook
51404f4d66 chore(deps): update rails-nested-form from fork to v5.0.0
We were using our own fork, while waiting for a new feature to be merged. It's now been released, albeit with a modification. The gem has changed it's name too.
2024-03-25 11:00:51 +11:00
David Cook
794f92d9f5 Add placeholder file with comments
I was surprised to find there's a channel defined by our app code, because it's not defined in the standard place.
2024-03-19 15:06:23 +11:00
David Cook
29d3b34776 Increase dropdown height 2024-03-06 17:12:15 +11:00
David Cook
8612f7baab Only add extra padding on alignment edge
Saves a few precious pixels on the other edge.
2024-03-06 14:10:54 +11:00
David Cook
e770f10f2b Tomselect has minimum width 2024-03-06 14:10:54 +11:00
David Cook
cbcf388acc Ensure gap between fields wrapped over a line 2024-03-06 14:10:51 +11:00
David Cook
38766f5256 Show variant_unit_name for 'items' 2024-03-06 13:41:22 +11:00
David Cook
e52b8daf50 Refactor: DRY 2024-03-06 13:41:22 +11:00
David Cook
bfd6319cf2 Mark tom-select as changed
Thankfully I was able to use basic DOM features, so there's no coupling of the logic with tom-select.

It wasn't going to be simple to get tom-select to listen for the 'changed' class on the original select, so I found a simple solution with a CSS sibling selector instead.
2024-03-06 13:41:22 +11:00
David Cook
af748158aa Hide chevron until hover to allow a bit more space for text 2024-03-06 13:41:22 +11:00
David Cook
864b876a9a Add tom-select with naked style
The rem units are converted to em to make the padding relative to the chevron size. This means different font sizes will Just Work.
2024-03-06 13:41:22 +11:00
David Cook
8f0e9c9f5c Remove unnecessary selector
I can't see any reason that fieldsets, which are containers, should share styles with inputs. Maybe font styles, but everything looks fine still.
2024-03-06 13:01:44 +11:00
David Cook
958288b223 Move input styles to form stylesheet
A better way to arrange it, and as a bonus it makes the selectors simpler, yay!
2024-03-06 13:01:44 +11:00
David Cook
5cfac3d2c7 Add comments 2024-02-29 10:10:57 +11:00
cyrillefr
f62b32a3b9 Requested changes after review
- modified css to increase clicking area
  - modified spec to more straightfoward and more user oriented link
2024-02-28 08:15:34 +01:00
cyrillefr
884d6f15ff Replace a divs controller by an html details one
- checked_controller close details element on checkboxes
  - dropdown_controller.js is to rebuild controller from many divs
    to be hidden and visible to an html detail elmnt one
  - details html element styling
2024-02-25 16:43:57 +01:00
Konrad
2477a63f36 Merge pull request #12103 from basilawwad/selecting-OC-should-redirect-to-shop
Modify default hash tabs controller to redirect users to shopping panel when an OC is selected.
2024-02-19 21:51:19 +01:00
basilawwad
08111f9a2c added shop target and activateshoppanel function
Remove Pending Message

Update shopping_spec.rb

Update shopping_spec.rb
2024-02-16 09:27:21 +03:00
David Cook
915a5ce66b Listen for changes on added fields
Finally, we can add new variants!

Requires updated stimulus-rails-nested-form
2024-02-16 08:51:49 +11:00
David Cook
3706b6d1da Make actions target optional
This is to make testing simpler, but it is strictly optional anyway.
2024-02-15 17:32:08 +11:00
David Cook
765ee0ed78 refactor js 2024-02-15 17:32:08 +11:00
David Cook
6e5154b922 add stimulus-rails-nested-form
The official instructions (https://www.stimulus-components.com/docs/stimulus-rails-nested-form) don't quite work, because of an issue with this component (https://stackoverflow.com/a/76715129). So we work around for now by using the umd file instead.
2024-02-15 17:32:08 +11:00
David Cook
7e186091ff Ensure un-changed field error state shows
When there is a required field that can't be empty. I knew these complex styles would come back to bite me.

◉ Best viewed with whitespace ignored
2024-02-15 10:36:45 +11:00
David Cook
c65771eac6 Add new 'naked' button
I couldn't think of a better name.
2024-02-15 10:36:45 +11:00
David Cook
50b325c944 Annotate and arrange scss 2024-02-15 10:36:45 +11:00
Konrad
8751cc37f3 Merge pull request #12126 from cyrillefr/Replace-remote_toggle_controller-with-generic-toggle_control_controller
Replace remote_toggle with method inside generic controller
2024-02-15 00:32:05 +01:00