filterrific 5.2.0 → 5.2.3
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 +5 -5
- data/CHANGELOG.md +15 -0
- data/README.md +7 -7
- 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 +24 -9
- data/doc/scratchpad.md +3 -1
- data/lib/filterrific/action_view_extension.rb +4 -3
- data/lib/filterrific/param_set.rb +2 -2
- data/lib/filterrific/version.rb +1 -1
- data/lib/filterrific.rb +2 -2
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 67e7935ca4ceb8fce5778b36879ee941aef8105f23e8a211d070eb6c8cc2cd82
|
4
|
+
data.tar.gz: 5285cb9d2f1c18988f00a82b51733cccbbef67fe02f9f673754a3c2387117c56
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 797e8e2c763a3949277f1fd1e1bd2521adbac190175286331c59dd7cba17636c41ffeb6dda91325cb45bfe97c497934124b8a92c9d3ebd625a8744068337d6e5
|
7
|
+
data.tar.gz: 4272dfb90de22d22e494a9d1d800daec913ba1a64a3f7e3c399ee6e91de11aa4b82e569ad2dbd9c75f9da9b71a88860046333a6c19cc39a2e8a711da92d88a4b
|
data/CHANGELOG.md
CHANGED
@@ -7,6 +7,21 @@ 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.3] - Mar. 18, 2022
|
11
|
+
|
12
|
+
* Added support for Rails 7
|
13
|
+
|
14
|
+
## [5.2.2] - Jul. 11, 2021
|
15
|
+
|
16
|
+
* Fixed Ruby 2.7 deprecated warning when trying to regex match an Integer.
|
17
|
+
* Added ability to pass custom url parameter instead of default :filterrific.
|
18
|
+
* Added basic Aria attrs to spinner for accessibility.
|
19
|
+
* Improved concurrent ajax requests: Abort prior request when new ones are triggered.
|
20
|
+
|
21
|
+
## [5.2.1] - Aug. 5, 2019
|
22
|
+
|
23
|
+
* Fixed issue where uncommitted code was pushed to rubygems and broke array filters.
|
24
|
+
|
10
25
|
## [5.2.0] - Jul. 21, 2019
|
11
26
|
|
12
27
|
* Make Filterrific master branch compatible with Rails 5 and 6.
|
data/README.md
CHANGED
@@ -39,13 +39,13 @@ to find out more!
|
|
39
39
|
|
40
40
|
Every commit to Filterrific is automatically tested against the following scenarios:
|
41
41
|
|
42
|
-
|Filterrific version | Rails version
|
43
|
-
|
44
|
-
| 5.x | Rails 5.x, 6.x | MRI 2.0.0, 2.1.7, 2.2.3, 2.3.1 | mysql2, postgresql |[](https://travis-ci.org/jhund/filterrific_demo)|
|
45
|
-
| 4.x | Rails 4.x
|
46
|
-
| 3.x | Rails 3.2
|
47
|
-
| 2.x | Rails 3.2
|
48
|
-
| 1.x | < 3.2
|
42
|
+
|Filterrific version | Rails version | Ruby environments | Database adapters | Build status |
|
43
|
+
|--------------------|---------------------|--------------------------------|------------------------------------|--------------|
|
44
|
+
| 5.x | Rails 5.x, 6.x, 7.x | MRI 2.0.0, 2.1.7, 2.2.3, 2.3.1 | mysql2, postgresql |[](https://travis-ci.org/jhund/filterrific_demo)|
|
45
|
+
| 4.x | Rails 4.x | MRI 2.0.0, 2.1.7, 2.2.3, 2.3.1 | mysql, mysql2, postgresql, sqlite3 |[](https://travis-ci.org/jhund/filterrific_demo)|
|
46
|
+
| 3.x | Rails 3.2 | MRI 2.0.0, 2.1.7 | mysql, mysql2, postgresql, sqlite3 | Not tested|
|
47
|
+
| 2.x | Rails 3.2 | MRI 1.9.3 | mysql, mysql2, postgresql, sqlite3 | Not tested|
|
48
|
+
| 1.x | < 3.2 | MRI <= 1.9.3 | mysql, mysql2, postgresql, sqlite3 | Not tested|
|
49
49
|
|
50
50
|
### Guidelines for submitting issues
|
51
51
|
|
@@ -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
@@ -5,7 +5,6 @@ I use the gem-release gem
|
|
5
5
|
For more info see: https://github.com/svenfuchs/gem-release#usage
|
6
6
|
|
7
7
|
|
8
|
-
|
9
8
|
## Steps for an update
|
10
9
|
|
11
10
|
1. Update code and commit it.
|
@@ -15,17 +14,33 @@ For more info see: https://github.com/svenfuchs/gem-release#usage
|
|
15
14
|
* `gem bump --version major` # 0.0.1 -> 1.0.0
|
16
15
|
* `gem bump --version minor` # 0.0.1 -> 0.1.0
|
17
16
|
* `gem bump --version patch` # 0.0.1 -> 0.0.2
|
18
|
-
4.
|
17
|
+
4. Make sure there are no uncommitted changes! They will be pushed to rubygems.
|
18
|
+
5. Release it.
|
19
19
|
* `gem release`
|
20
|
-
|
20
|
+
6. Create a git tag and push to origin.
|
21
21
|
`gem tag`
|
22
22
|
|
23
23
|
|
24
|
-
|
25
24
|
## How to run specs
|
26
25
|
|
27
|
-
`bundle exec rake`
|
26
|
+
`bundle exec rake` in the filterrific repo
|
27
|
+
|
28
|
+
|
29
|
+
## How to support a new major Rails version
|
30
|
+
|
31
|
+
Follow these steps when starting support for a new Rails major version:
|
32
|
+
|
33
|
+
* In `filterrific`
|
34
|
+
* Archive the current major rails version into a new branch off of master, e.g., when starting to support Rails 6, create a new branch for `5.x` from current master. This will be the branch used for ongoing 5.x support, and all new development for Rails 6 will happen in the `master` branch.
|
35
|
+
* Make all changes required to support a new version of Rails.
|
36
|
+
* Release the first `filterrific` version for Rails 6: `6.0.0`.
|
28
37
|
|
38
|
+
* In `filterrific_demo`
|
39
|
+
* Following the same example for Rails 6:
|
40
|
+
* Make sure that the `5.x` branch is up-to-date with master, and with current filterrific.
|
41
|
+
* Create a new `6.x` branch. In that branch create a brand new rails app using a current version of Rails 6.
|
42
|
+
* Make sure that the app works with the relevant version of `filterrific`.
|
43
|
+
* Deploy demo app to heroku.
|
29
44
|
|
30
45
|
|
31
46
|
## Travis CI
|
@@ -37,8 +52,8 @@ a branch for each minor version of Rails that is tested and supported.
|
|
37
52
|
Sequence of a release:
|
38
53
|
|
39
54
|
* finish updates in filterrific
|
40
|
-
*
|
41
|
-
*
|
55
|
+
* update filterrific_demo Gemfile to refer to local filterrific via path: "../filterrific"
|
56
|
+
* start the app and exercise it (currently there are no automated tests)
|
57
|
+
* when everything works as expected, release filterrific (see above for steps)
|
42
58
|
* after new filterrific is released, add new release version to each branch in
|
43
|
-
filterrific_demo
|
44
|
-
new filterrific release.
|
59
|
+
filterrific_demo.
|
data/doc/scratchpad.md
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
# Filterrific scratchpad
|
2
2
|
|
3
|
+
## 2021 Initiative
|
4
|
+
|
3
5
|
## TODO
|
4
6
|
|
5
|
-
*
|
7
|
+
* 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
8
|
|
7
9
|
## Travis
|
8
10
|
|
@@ -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),
|
@@ -96,12 +96,12 @@ module Filterrific
|
|
96
96
|
fp[key] = val.call
|
97
97
|
when val.is_a?(Array)
|
98
98
|
# type cast integers in the array
|
99
|
-
fp[key] = fp[key].map { |e| e =~ integer_detector_regex ? e.to_i : e }
|
99
|
+
fp[key] = fp[key].map { |e| e =~ integer_detector_regex ? e.to_i : e }
|
100
100
|
when val.is_a?(Hash)
|
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
data/lib/filterrific.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
|
3
|
-
if ![5,6].include?(Rails::VERSION::MAJOR)
|
4
|
-
raise "\n\nThis version of Filterrific only works with Rails 5 and
|
3
|
+
if ![5,6,7].include?(Rails::VERSION::MAJOR)
|
4
|
+
raise "\n\nThis version of Filterrific only works with Rails 5, 6 and 7.\nPlease see the Filterrific README for the correct version of Filterrific to use with your version of Rails!\n\n"
|
5
5
|
end
|
6
6
|
|
7
7
|
require 'filterrific/version'
|
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.3
|
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: 2022-03-18 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
|
@@ -65,8 +66,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
65
66
|
- !ruby/object:Gem::Version
|
66
67
|
version: '0'
|
67
68
|
requirements: []
|
68
|
-
|
69
|
-
rubygems_version: 2.6.14
|
69
|
+
rubygems_version: 3.1.6
|
70
70
|
signing_key:
|
71
71
|
specification_version: 4
|
72
72
|
summary: A Rails engine plugin for filtering ActiveRecord lists.
|