recourse 2.0.2 → 3.0.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 +4 -4
- data/app/helpers/searchable_helper.rb +9 -7
- data/lib/recourse/searchable.rb +1 -10
- data/lib/recourse/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: '091131788570e0d656c7d18722d0ee4f8250407302b6837b05f00c80cedbe187'
|
|
4
|
+
data.tar.gz: 055b6fbf31f3709bd0f8cceea226a80d3b16449f19ec2dfb76702063f13e7173
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5e7e0c9f483521daa886026dd2249c4e66772afd4f2ce85a876f1b58e469f4b99c5796291cd26686f4207e192475c8ac4a28a5761a971efbc37df3740131ac09
|
|
7
|
+
data.tar.gz: f6f76dbfe6678da9edbf3e3994a0646ade63bacd2ef2b2d540730cd0f4a7748508f40334c77e98a9087ce4eab63099d6b59080b14c6ca32e4aec7a92bde5005e
|
|
@@ -5,7 +5,7 @@ module SearchableHelper
|
|
|
5
5
|
# @param [ApplicationRecord] model the model of each object returned by the search
|
|
6
6
|
def search_form(q:, model:, url: url_for(model))
|
|
7
7
|
search_form_for(q, search_form_params(url: url)) do |form|
|
|
8
|
-
safe_join [
|
|
8
|
+
safe_join [*filter_fields_for(form, model:), search_field_for(form, model:)].compact
|
|
9
9
|
end
|
|
10
10
|
end
|
|
11
11
|
|
|
@@ -16,14 +16,16 @@ module SearchableHelper
|
|
|
16
16
|
|
|
17
17
|
private
|
|
18
18
|
|
|
19
|
-
def
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
19
|
+
def filter_fields_for(form, model:)
|
|
20
|
+
selects = model.filter_fields.map do |method, options = {}|
|
|
21
|
+
choices = options.delete :choices
|
|
22
|
+
form.select method, choices, options, filter_field_params if choices
|
|
23
|
+
end
|
|
24
|
+
safe_join selects.compact
|
|
24
25
|
end
|
|
25
26
|
|
|
26
27
|
def search_field_for(form, model:)
|
|
28
|
+
return unless model.search_field
|
|
27
29
|
adorn = tag.svg width: 16, height: 16, viewBox: '0 0 16 16', xmlns: 'http://www.w3.org/2000/svg' do
|
|
28
30
|
tag.path d: 'M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001q.044.06.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1 1 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0'
|
|
29
31
|
end
|
|
@@ -33,7 +35,7 @@ private
|
|
|
33
35
|
|
|
34
36
|
def search_form_params(url:)
|
|
35
37
|
{
|
|
36
|
-
url: url, class: 'col-
|
|
38
|
+
url: url, class: 'col-6 d-flex pe-4', role: 'search',
|
|
37
39
|
data: { turbo_frame: :results, turbo_action: :advance },
|
|
38
40
|
}
|
|
39
41
|
end
|
data/lib/recourse/searchable.rb
CHANGED
|
@@ -26,16 +26,7 @@ module Recourse
|
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
# @note to be overriden by subclasses -- the name of the field to filter by.
|
|
29
|
-
def
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
# @note to be overriden by subclasses -- the prompt for the field to filter by.
|
|
33
|
-
def filter_prompt
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
# @note to be overriden by subclasses -- the values for the field to filter by.
|
|
37
|
-
def filter_choices
|
|
38
|
-
end
|
|
29
|
+
def filter_fields = {}
|
|
39
30
|
end
|
|
40
31
|
end
|
|
41
32
|
|
data/lib/recourse/version.rb
CHANGED