filterrific 5.2.1 → 5.2.2
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/CHANGELOG.md +7 -0
- data/app/assets/javascripts/filterrific/filterrific-jquery.js +7 -1
- data/doc/development_notes/javascript_handling.md +12 -0
- data/doc/development_notes/view_api.txt +4 -0
- data/doc/meta.md +4 -4
- data/doc/scratchpad.md +30 -0
- data/lib/filterrific/action_view_extension.rb +4 -3
- data/lib/filterrific/param_set.rb +1 -1
- data/lib/filterrific/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5226106f7944a5b6c08d8f568185d4e6fcf0c561
|
4
|
+
data.tar.gz: 2e4b24d697de15d10a5dddf6a7b444b5564950ed
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7829c794eb5e1a2e19a95cbb2e9651550f8c6cb5c123709a78c5fd5658c569a2c78963144f68b07cb30de9d28372ad3bfaf0087499a91f48f2e5c0597ed09d02
|
7
|
+
data.tar.gz: 4c7894ba6c9c1e9e5cde222bd69a088761dda82ccc01c0a1c12a1db4ed9e489b1f03b008bdc09dad8563355d95f138491cc17bd5c78174f1b9f6b46c3a4f0ec9
|
data/CHANGELOG.md
CHANGED
@@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|
7
7
|
|
8
8
|
Filterrific major versions match the Ruby on Rails major versions they work with.
|
9
9
|
|
10
|
+
## [5.2.2] - Jul. 11, 2021
|
11
|
+
|
12
|
+
* Fixed Ruby 2.7 deprecated warning when trying to regex match an Integer.
|
13
|
+
* Added ability to pass custom url parameter instead of default :filterrific.
|
14
|
+
* Added basic Aria attrs to spinner for accessibility.
|
15
|
+
* Improved concurrent ajax requests: Abort prior request when new ones are triggered.
|
16
|
+
|
10
17
|
## [5.2.1] - Aug. 5, 2019
|
11
18
|
|
12
19
|
* Fixed issue where uncommitted code was pushed to rubygems and broke array filters.
|
@@ -25,8 +25,14 @@ Filterrific.submitFilterForm = function(){
|
|
25
25
|
$(form).trigger('loadingFilterrificResults');
|
26
26
|
// turn on spinner
|
27
27
|
$('.filterrific_spinner').show();
|
28
|
+
|
29
|
+
// Abort previous ajax request
|
30
|
+
if (Filterrific.lastRequest && Filterrific.lastRequest.readyState != 4) {
|
31
|
+
Filterrific.lastRequest.abort();
|
32
|
+
}
|
33
|
+
|
28
34
|
// Submit ajax request
|
29
|
-
$.ajax({
|
35
|
+
Filterrific.lastRequest = $.ajax({
|
30
36
|
url: url,
|
31
37
|
data: form.serialize(),
|
32
38
|
type: 'GET',
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# Filterrific JS handling
|
2
|
+
|
3
|
+
Filterrific JS and assets can be used in a number of scenarios:
|
4
|
+
|
5
|
+
## Rails Sprockets (asset pipeline)
|
6
|
+
|
7
|
+
## Rails with webpacker
|
8
|
+
|
9
|
+
* https://www.reddit.com/r/rails/comments/d4o691/can_webpacker_pull_in_assets_from_a_rails_engine/
|
10
|
+
|
11
|
+
## No JS assets, just API mode
|
12
|
+
|
data/doc/meta.md
CHANGED
@@ -38,8 +38,8 @@ a branch for each minor version of Rails that is tested and supported.
|
|
38
38
|
Sequence of a release:
|
39
39
|
|
40
40
|
* finish updates in filterrific
|
41
|
-
*
|
42
|
-
*
|
41
|
+
* update filterrific_demo Gemfile to refer to local filterrific via path: "../filterrific"
|
42
|
+
* start the app and exercise it (currently there are no automated tests)
|
43
|
+
* when everything works as expected, release filterrific (see above for steps)
|
43
44
|
* after new filterrific is released, add new release version to each branch in
|
44
|
-
filterrific_demo
|
45
|
-
new filterrific release.
|
45
|
+
filterrific_demo.
|
data/doc/scratchpad.md
CHANGED
@@ -1,8 +1,38 @@
|
|
1
1
|
# Filterrific scratchpad
|
2
2
|
|
3
|
+
## 2021 Initiative
|
4
|
+
|
5
|
+
* Update for Rails 6
|
6
|
+
* Implement API only version (no frontend)
|
7
|
+
* Update scope docs to use AREL
|
8
|
+
* Implement/document various front end scenarios:
|
9
|
+
* React
|
10
|
+
* Stimulus
|
11
|
+
* jQuery
|
12
|
+
* sprockets/webpacker
|
13
|
+
* Thoughts: Support the rails defaults (webpacker or sprockets?) out of the box, batteries included. Document how to do everything else.
|
14
|
+
* Work through issues and pull requests
|
15
|
+
|
16
|
+
improve the filterrific frontend handling:
|
17
|
+
|
18
|
+
* Remove invocation of init, document for devs to do it manually
|
19
|
+
https://github.com/jhund/filterrific/issues/199
|
20
|
+
* Replace jquery with vanilla JS
|
21
|
+
* Provide filterrific API version
|
22
|
+
* Make compatible with Rails 6
|
23
|
+
* Remove jquery dependency, make it easier to use with webpacker, document how to do init
|
24
|
+
https://github.com/jhund/filterrific/issues/198
|
25
|
+
|
26
|
+
* Support the following js scenarios:
|
27
|
+
* Sprockets
|
28
|
+
* Webpacker
|
29
|
+
* API only (e.g., for React)
|
30
|
+
|
31
|
+
|
3
32
|
## TODO
|
4
33
|
|
5
34
|
* add check that no filter_name conflicts with existing methods on included ActiveRecord class (See https://github.com/jhund/filterrific/issues/17)
|
35
|
+
* Update SW architecture and documentation according to Osterhuis Philosophy of software architecture/design book (mark advanced controller options as such to keep interface to learn simple)
|
6
36
|
|
7
37
|
## Travis
|
8
38
|
|
@@ -27,7 +27,7 @@ module Filterrific
|
|
27
27
|
def render_filterrific_spinner
|
28
28
|
%(
|
29
29
|
<span class="filterrific_spinner" style="display:none;">
|
30
|
-
#{ image_tag('filterrific/filterrific-spinner.gif') }
|
30
|
+
#{ image_tag('filterrific/filterrific-spinner.gif', alt: '', role: 'presentation') }
|
31
31
|
</span>
|
32
32
|
).html_safe
|
33
33
|
end
|
@@ -74,6 +74,7 @@ module Filterrific
|
|
74
74
|
:label => sort_key.to_s.humanize,
|
75
75
|
:sorting_scope_name => :sorted_by,
|
76
76
|
:url_for_attrs => {},
|
77
|
+
:as => :filterrific
|
77
78
|
}.merge(opts)
|
78
79
|
opts.merge!(
|
79
80
|
:html_attrs => opts[:html_attrs].with_indifferent_access,
|
@@ -110,7 +111,7 @@ module Filterrific
|
|
110
111
|
new_filterrific_params = filterrific.to_hash
|
111
112
|
.with_indifferent_access
|
112
113
|
.merge(opts[:sorting_scope_name] => new_sorting)
|
113
|
-
url_for_attrs = opts[:url_for_attrs].merge(:
|
114
|
+
url_for_attrs = opts[:url_for_attrs].merge(opts[:as] => new_filterrific_params)
|
114
115
|
link_to(
|
115
116
|
safe_join([opts[:label], opts[:current_sort_direction_indicator]], ' '),
|
116
117
|
url_for(url_for_attrs),
|
@@ -133,7 +134,7 @@ module Filterrific
|
|
133
134
|
new_filterrific_params = filterrific.to_hash
|
134
135
|
.with_indifferent_access
|
135
136
|
.merge(opts[:sorting_scope_name] => new_sorting)
|
136
|
-
url_for_attrs = opts[:url_for_attrs].merge(:
|
137
|
+
url_for_attrs = opts[:url_for_attrs].merge(opts[:as] => new_filterrific_params)
|
137
138
|
link_to(
|
138
139
|
opts[:label],
|
139
140
|
url_for(url_for_attrs),
|
@@ -101,7 +101,7 @@ module Filterrific
|
|
101
101
|
# type cast Hash to OpenStruct so that nested params render correctly
|
102
102
|
# in the form
|
103
103
|
fp[key] = OpenStruct.new(fp[key])
|
104
|
-
when val =~ integer_detector_regex
|
104
|
+
when val.is_a?(String) && val =~ integer_detector_regex
|
105
105
|
# type cast integer
|
106
106
|
fp[key] = fp[key].to_i
|
107
107
|
end
|
data/lib/filterrific/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: filterrific
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.2.
|
4
|
+
version: 5.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jo Hund
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-07-12 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Filterrific is a Rails Engine plugin that makes it easy to filter, search,
|
14
14
|
and sort your ActiveRecord lists.
|
@@ -28,6 +28,7 @@ files:
|
|
28
28
|
- doc/Overview diagram.graffle/image1.tiff
|
29
29
|
- doc/development_notes/api_design.txt
|
30
30
|
- doc/development_notes/controller_api.txt
|
31
|
+
- doc/development_notes/javascript_handling.md
|
31
32
|
- doc/development_notes/model_api.rb
|
32
33
|
- doc/development_notes/view_api.txt
|
33
34
|
- doc/meta.md
|
@@ -66,7 +67,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
66
67
|
version: '0'
|
67
68
|
requirements: []
|
68
69
|
rubyforge_project:
|
69
|
-
rubygems_version: 2.6.14
|
70
|
+
rubygems_version: 2.6.14.3
|
70
71
|
signing_key:
|
71
72
|
specification_version: 4
|
72
73
|
summary: A Rails engine plugin for filtering ActiveRecord lists.
|