sn_filterable 1.0.1 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +29 -1
- data/app/components/sn_filterable/main_component.html.erb +1 -1
- data/app/components/sn_filterable/main_component.rb +3 -1
- data/lib/sn_filterable/engine.rb +0 -1
- data/lib/sn_filterable/filterable.rb +1 -2
- data/lib/sn_filterable/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4d4ca6d509892a2c953861a953127b8488669f6b8b5a4ffad77e18c70797961c
|
4
|
+
data.tar.gz: f395268a282728c7b7632a9638cc7ee325eca5de6e3c9ff46f346f897794cc85
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4dd00f9138cc3b36004a984e9285d339b2eab51e939ba45a8f0049e9a051b3b4d6970eee191a0b7954d1511f5f215b00591efc378da22920f18018c8c6ce1748
|
7
|
+
data.tar.gz: 23901c70d787118584e856012389a20440dc274768479057102e35bbcafa16ce6e1d035de49dac2390290f7af8183974ed5fe9d201cf38eb66cec572fb162c70
|
data/README.md
CHANGED
@@ -20,7 +20,7 @@ There are a couple key requirements for your app to be compatible with this gem:
|
|
20
20
|
Add this line to your application's Gemfile:
|
21
21
|
|
22
22
|
```ruby
|
23
|
-
gem "sn_filterable"
|
23
|
+
gem "sn_filterable"
|
24
24
|
```
|
25
25
|
|
26
26
|
And then execute:
|
@@ -53,6 +53,13 @@ en:
|
|
53
53
|
<%= SnFilterable.load_js %>
|
54
54
|
```
|
55
55
|
|
56
|
+
If your application does not allow for use of `.js.erb` files the JavaScript can be loaded by adding the following to your layout:
|
57
|
+
```javascript
|
58
|
+
<%= javascript_tag nonce: true do %>
|
59
|
+
<%= SnFilterable.load_js.html_safe %>
|
60
|
+
<% end %>
|
61
|
+
```
|
62
|
+
|
56
63
|
3. Configure your app's Tailwind to scan the gem
|
57
64
|
```javascript
|
58
65
|
// tailwind.config.js
|
@@ -190,8 +197,29 @@ Now the test suite can be run from the project root using
|
|
190
197
|
bundle exec rspec
|
191
198
|
```
|
192
199
|
|
200
|
+
### Using a Development Version
|
201
|
+
|
202
|
+
Your changes can be tested manually by making one of the following additions to an App's Gemfile:
|
203
|
+
|
204
|
+
For using a local version:
|
205
|
+
```ruby
|
206
|
+
gem "sn_filterable", path: "path/to/gem/sn_filterable"
|
207
|
+
```
|
208
|
+
|
209
|
+
For using a GitHub branch:
|
210
|
+
```ruby
|
211
|
+
gem "sn_filterable", git: "https://github.com/ibm-skills-network/sn_filterable.git", branch: "defaults_to_main"
|
212
|
+
```
|
213
|
+
|
214
|
+
|
193
215
|
## Contributing
|
194
216
|
|
217
|
+
Once you have made your updates to the codebase do the following to ensure a smooth merge:
|
218
|
+
|
219
|
+
1. Update `lib/sn_filterable/version.rb` to follow [Semantic Versioning](https://semver.org)
|
220
|
+
|
221
|
+
2. Run `bundle` to update the `Gemfile.lock` with your new version
|
222
|
+
|
195
223
|
Bug reports and pull requests are welcome on [GitHub](https://github.com/ibm-skills-network/sn_filterable).
|
196
224
|
|
197
225
|
## License
|
@@ -70,7 +70,7 @@
|
|
70
70
|
</div>
|
71
71
|
<% end %>
|
72
72
|
|
73
|
-
<%= turbo_frame_tag @frame_id, "data-turbo-action": "advance" do %>
|
73
|
+
<%= turbo_frame_tag @frame_id, "data-turbo-action": @update_url_on_submit ? "advance" : nil do %>
|
74
74
|
<%= content_tag :input, "", type: "hidden", name: "sort", value: @filtered.queries["sort"] if @filtered.queries["sort"].present? %>
|
75
75
|
<%= content_tag :input, "", type: "hidden", name: "order", value: @filtered.queries["order"] if @filtered.queries["order"].present? %>
|
76
76
|
|
@@ -23,13 +23,15 @@ module SnFilterable
|
|
23
23
|
# @param [String, nil] url Optional, the base URL of where the filters are displayed
|
24
24
|
# @param [String, nil] search_filter_name Optional, enable's and set's the search filter, specified by the filter's parameter name
|
25
25
|
# @param [Boolean] show_sidebar If true, will show the sidebar with the filters.
|
26
|
-
|
26
|
+
# @param [Boolean] update_url_on_submit If true, will update the URL in the user's browser on form submission.
|
27
|
+
def initialize(frame_id:, filtered:, filters:, url: nil, search_filter_name: nil, show_sidebar: true, update_url_on_submit: true)
|
27
28
|
@frame_id = frame_id
|
28
29
|
@filtered = filtered
|
29
30
|
@filters = filters
|
30
31
|
@url = url
|
31
32
|
@search_filter_name = search_filter_name
|
32
33
|
@show_sidebar = show_sidebar
|
34
|
+
@update_url_on_submit = update_url_on_submit
|
33
35
|
end
|
34
36
|
|
35
37
|
def search_field
|
data/lib/sn_filterable/engine.rb
CHANGED
@@ -33,9 +33,8 @@ module SnFilterable
|
|
33
33
|
filter_params = filter_params(params)
|
34
34
|
sort_params = sort_params(params)
|
35
35
|
other_params = other_params(params, items)
|
36
|
-
|
37
|
-
items = perform_filter(items, filter_params)
|
38
36
|
items, sort_name, reverse_order = perform_sort(items, sort_params, default_sort)
|
37
|
+
items = perform_filter(items, filter_params)
|
39
38
|
items = items.page(other_params[:page]).per(other_params[:per]) if pagination_enabled
|
40
39
|
|
41
40
|
Filtered.new(self, items, generate_url_queries(filter_params, sort_params, other_params), sort_name, reverse_order)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sn_filterable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chase McDougall
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-06-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: heroicon
|
@@ -287,7 +287,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
287
287
|
- !ruby/object:Gem::Version
|
288
288
|
version: '0'
|
289
289
|
requirements: []
|
290
|
-
rubygems_version: 3.4.
|
290
|
+
rubygems_version: 3.4.10
|
291
291
|
signing_key:
|
292
292
|
specification_version: 4
|
293
293
|
summary: Skills Network - Item filtering component
|