sn_filterable 1.1.0 → 1.2.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c1b9cd4e29b1ae510d91132581e2bbd2f161ce990fc1e7ec6608d6f7bdb1b41c
4
- data.tar.gz: 88eca5cf836c294bfb9853dc8bf321d63d7896115e6bdafc35faa8218c66f726
3
+ metadata.gz: 4336044ac4cbb8ec562c2b2dba9476223cd93044830290c7bca832e806710583
4
+ data.tar.gz: c664cc00c442d9638d4d648942b8a3a22fa4f56f4f8b0a624926d3458f2f52f4
5
5
  SHA512:
6
- metadata.gz: d0ac7e1edc645cb96066facb446d424237abfb064c2143863a97cc88dbc758483f62be811403728fb0b14e3436a654877bbedcc9783c0b59e27a30b9c7b3c09b
7
- data.tar.gz: 39991b7cfacb996f545bb0aae07a4f18a6c316ca65f884b78b2b5fe7f4082c8cab0bf6cabe208aafa870392f9be09d8a2c1b5c0dbefac70ede1d4986b97daed8
6
+ metadata.gz: 2f58e96ceb91c84632ccd441cdf7b5343a9a726fc016ce462ee65cb63edd53a4eda740f46589abf4a677fb20e1908020dae6eded35841105da6c097492c7b46d
7
+ data.tar.gz: 2b795ac02cfa49ec8ed72bdee4d8d3bb74d941e4555fbb93539a238801126e7f5c3d1a4240b2abf70bd1d473df1edda3bd84aa1615b89c12e502476c7f0afba2
data/README.md CHANGED
@@ -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
@@ -7,6 +7,9 @@
7
7
  "data-turbo-frame": @frame_id,
8
8
  "class": "relative",
9
9
  "@submit": "filtersLoading = true" do %>
10
+ <% @extra_params.each do |k, v| %>
11
+ <%= content_tag :input, "", class: "hidden", type: "hidden", value: v, name: k %>
12
+ <% end %>
10
13
  <div class="absolute w-full h-full pointer-events-none">
11
14
  <div class="absolute flex flex-col sm:grid sm:grid-cols-3 gap-4 w-full pointer-events-none">
12
15
  <div class="sm:hidden h-14"></div>
@@ -24,7 +24,8 @@ module SnFilterable
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
+ # @param [Hash] extra_params Optional, allows for custom form values to be supplied. Useful if you need to retain non-filterable query params
28
+ def initialize(frame_id:, filtered:, filters:, url: nil, search_filter_name: nil, show_sidebar: true, update_url_on_submit: true, extra_params: {})
28
29
  @frame_id = frame_id
29
30
  @filtered = filtered
30
31
  @filters = filters
@@ -32,6 +33,7 @@ module SnFilterable
32
33
  @search_filter_name = search_filter_name
33
34
  @show_sidebar = show_sidebar
34
35
  @update_url_on_submit = update_url_on_submit
36
+ @extra_params = extra_params
35
37
  end
36
38
 
37
39
  def search_field
@@ -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)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SnFilterable
4
- VERSION = "1.1.0"
4
+ VERSION = "1.2.0"
5
5
  end
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.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
- - Chase McDougall
7
+ - IBM Skills Network
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-01-04 00:00:00.000000000 Z
11
+ date: 2024-02-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: heroicon
@@ -237,7 +237,7 @@ dependencies:
237
237
  description: This gem adds a ViewComponent powered filtering component for searching
238
238
  and filtering your PostgreSQL data.
239
239
  email:
240
- - chasemcdougall@hotmail.com
240
+ - Skills.Network@ibm.com
241
241
  executables: []
242
242
  extensions: []
243
243
  extra_rdoc_files: []
@@ -280,14 +280,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
280
280
  requirements:
281
281
  - - ">="
282
282
  - !ruby/object:Gem::Version
283
- version: 2.7.0
283
+ version: 3.2.0
284
284
  required_rubygems_version: !ruby/object:Gem::Requirement
285
285
  requirements:
286
286
  - - ">="
287
287
  - !ruby/object:Gem::Version
288
288
  version: '0'
289
289
  requirements: []
290
- rubygems_version: 3.4.1
290
+ rubygems_version: 3.5.3
291
291
  signing_key:
292
292
  specification_version: 4
293
293
  summary: Skills Network - Item filtering component