Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] main from solidusio:main #368

Merged
merged 24 commits into from
Oct 11, 2023
Merged

[pull] main from solidusio:main #368

merged 24 commits into from
Oct 11, 2023

Conversation

pull[bot]
Copy link

@pull pull bot commented Oct 10, 2023

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

rainerdema and others added 19 commits October 10, 2023 12:05
Removing "_or_order_promotions_promotion_code_value" from the `order_search_key`
preference.
This part of the search key was causing exceptions during pagination due
to missing columns in the SQLite database.
Specifically, the exception was :
"ActiveRecord::StatementInvalid (SQLite3::SQLException: no such column: order_promotions_spree_orders.promotion_code_id)".

Note: This bug fix will be evaluated in a separate PR.
The ransack search param can now be dynamically set through the `ui/table`
component with a default value of `:q`.
In this way, the search will be triggered if there is any change in
the form and all the other internal data actions can be removed.
Introduces a new Ransack filter component to dynamically generate advanced,
grouped query parameters.

Suppose you have a dropdown for: 'State', 'Variants', and 'Promotions',
And checkboxes for: 'state_eq', 'line_items_variant_id' and 'promotions_id'.

The component will dynamically create the following query parameters:
q[g][0][c][0][a][]: state
q[g][0][c][0][p]: eq
q[g][0][c][0][v][]: checkout
...
q[g][1][c][31][a][]: line_items_variant_id
q[g][1][c][31][p]: in
q[g][1][c][31][v][]: 2
...
q[g][2][c][42][a][]: promotions_id
q[g][2][c][42][p]: in
q[g][2][c][42][v][]: 8

This provides greater flexibility when configuring filters for the table component.

Usage in table component:

The `filters` method within the table component can be used to define the
attributes, predicates, and options for the dynamic filter.
This makes it convenient to set up intricate filters directly from the table
component's configuration.

For instance:
```
<%= render component('ui/table').new(
    ...
    filters: [
      {
        presentation: t('.filters.status'),
        combinator: 'or',
        attribute: "state",
        predicate: "eq",
        options: Spree::Order.state_machines[:state].states.map { |state| [state.value.titleize, state.value] }
      }
    ]
    ...
  ) %>
```
Sorts checkboxes based on their checked state, moving selected checkboxes to the top.
Improves user experience by making it easier to see active filters.
Implements a click-outside event with `stimulus-use` to automatically close
the filter details dropdown.
Adds a search input field inside the details dropdown whenever the number
of selections exceeds 6.
The search input allows for quick filtering of available options.
Uses URL query parameters to automatically check or uncheck checkboxes when
the component loads.
This is useful for sharing URLs with pre-applied filters.
Switched from using `stimulus-use` dispatch to explicit bubbling.
While using `stimulus-use`, targeting an upstream controller without
specifying the controller's name wasn't feasible in this context.
I've reverted to explicitly setting the event's bubbling property.
Enable functionality to allow users to toggle checkboxes by clicking
associated labels.
…ponent

[Admin] Add dynamic filters to `ui/table` component
Ensure that IDs generated for labels do not contain spaces, utilizing the
`parameterize` method.

This resolves an issue where labels were not clickable due to invalid characters
in corresponding IDs.
Don't show missing order shipment and payment states
elia and others added 4 commits October 11, 2023 10:34
Fix `/admin/product/new` in SolidusAdmin
…meterize-id-creation

[Admin] Ensure labels are clickable by parameterizing ids
Extract the table search field to a component
@pull pull bot merged commit afc630e into nebulab:main Oct 11, 2023
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants