sn_filterable 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
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