refine-rails 2.9.1 → 2.9.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/stylesheets/index.css +5 -3
- data/app/assets/stylesheets/index.tailwind.css +5 -1
- data/app/controllers/refine/inline/criteria_controller.rb +6 -0
- data/app/models/refine/filter.rb +7 -2
- data/app/models/refine/inline/criteria/date_refinement.rb +14 -0
- data/app/models/refine/inline/criteria/input.rb +16 -2
- data/app/models/refine/inline/criterion.rb +2 -2
- data/app/views/refine/blueprints/_criterion.html.erb +1 -1
- data/app/views/refine/inline/criteria/_form_fields.html.erb +88 -17
- data/app/views/refine/inline/filters/_criterion.html.erb +0 -1
- data/app/views/refine/inline/inputs/_date_condition.html.erb +2 -2
- data/app/views/refine/inline/inputs/_date_condition_range.html.erb +2 -2
- data/app/views/refine/inline/inputs/_date_condition_single.html.erb +1 -1
- data/lib/refine/rails/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7291e0c87324f5ea5f6d9116e74b4996e873738a1a6f0cb192b5b4f3d6428482
|
4
|
+
data.tar.gz: 10d80a905ddc6ce6d3d0f9e3b1f6c0439bda1e93e0092866b36d184247ec4a6c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bd7d4016067808b0d9d32c3d7a564be9c3c35c15b39d1461a7ab01fef04ff44ed9dd65d03162209b339406103620a9b69f591e7d6be7a46d686b69dce74dd283
|
7
|
+
data.tar.gz: 660cd1e5bc02473e92d11d8155ea78591d572a288986c09be87ec355719e59476f6e7085eec63e8450817dbc67c680a97b5c9ba1b353c6cd6054404897e460c9
|
@@ -822,13 +822,11 @@
|
|
822
822
|
}
|
823
823
|
|
824
824
|
.refine-criterion-refinement-container {
|
825
|
-
width: 100
|
826
|
-
padding-top: 0.75rem
|
825
|
+
width: 100%
|
827
826
|
}
|
828
827
|
|
829
828
|
@media (min-width: 640px) {
|
830
829
|
.refine-criterion-refinement-container {
|
831
|
-
margin-right: 0.75rem;
|
832
830
|
width: auto;
|
833
831
|
flex-shrink: 0
|
834
832
|
}
|
@@ -1426,6 +1424,10 @@
|
|
1426
1424
|
padding: 0.5rem 0;
|
1427
1425
|
}
|
1428
1426
|
|
1427
|
+
.refine--refinement-input-container {
|
1428
|
+
margin: 0.5rem 0;
|
1429
|
+
}
|
1430
|
+
|
1429
1431
|
/* _date_condition.html.erb */
|
1430
1432
|
|
1431
1433
|
.refine--date-condition-days-text {
|
@@ -224,7 +224,7 @@
|
|
224
224
|
}
|
225
225
|
|
226
226
|
.refine-criterion-refinement-container {
|
227
|
-
@apply w-full
|
227
|
+
@apply w-full sm:w-auto sm:flex-shrink-0;
|
228
228
|
}
|
229
229
|
|
230
230
|
/* _delete_criterion.html.erb */
|
@@ -601,6 +601,10 @@
|
|
601
601
|
padding: 0.5rem 0;
|
602
602
|
}
|
603
603
|
|
604
|
+
.refine--refinement-input-container {
|
605
|
+
margin: 0.5rem 0;
|
606
|
+
}
|
607
|
+
|
604
608
|
|
605
609
|
/* _date_condition.html.erb */
|
606
610
|
.refine--date-condition-days-text {
|
data/app/models/refine/filter.rb
CHANGED
@@ -50,7 +50,6 @@ module Refine
|
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
53
|
-
# DEPRECATED use Refine::Filters::Criterion#human_readable instead
|
54
53
|
def human_readable_criterions
|
55
54
|
output = []
|
56
55
|
if blueprint.present?
|
@@ -58,7 +57,13 @@ module Refine
|
|
58
57
|
if criterion[:type] == "conjunction"
|
59
58
|
output << criterion[:word]
|
60
59
|
else
|
61
|
-
|
60
|
+
condition = get_condition_for_criterion(criterion)
|
61
|
+
text = condition.human_readable(criterion[:input])
|
62
|
+
if condition.has_date_refinement?
|
63
|
+
date_refinement_condition = condition.has_date_refinement?.call
|
64
|
+
text += date_refinement_condition.human_readable(criterion[:input][:date_refinement])
|
65
|
+
end
|
66
|
+
output << text
|
62
67
|
end
|
63
68
|
end
|
64
69
|
end
|
@@ -15,7 +15,8 @@ class Refine::Inline::Criteria::Input
|
|
15
15
|
:value,
|
16
16
|
:value1,
|
17
17
|
:value2,
|
18
|
-
:count_refinement
|
18
|
+
:count_refinement,
|
19
|
+
:date_refinement
|
19
20
|
|
20
21
|
def attributes
|
21
22
|
{
|
@@ -28,7 +29,8 @@ class Refine::Inline::Criteria::Input
|
|
28
29
|
value: value,
|
29
30
|
value1: value1,
|
30
31
|
value2: value2,
|
31
|
-
count_refinement_attributes: count_refinement_attributes.presence
|
32
|
+
count_refinement_attributes: count_refinement_attributes.presence,
|
33
|
+
date_refinement_attributes: date_refinement_attributes.presence
|
32
34
|
}.compact
|
33
35
|
end
|
34
36
|
|
@@ -44,6 +46,18 @@ class Refine::Inline::Criteria::Input
|
|
44
46
|
count_refinement.attributes = attrs.to_h
|
45
47
|
end
|
46
48
|
|
49
|
+
def date_refinement
|
50
|
+
@date_refinement ||= Refine::Inline::Criteria::DateRefinement.new
|
51
|
+
end
|
52
|
+
|
53
|
+
def date_refinement_attributes
|
54
|
+
date_refinement.attributes
|
55
|
+
end
|
56
|
+
|
57
|
+
def date_refinement_attributes=(attrs = {})
|
58
|
+
date_refinement.attributes = attrs.to_h
|
59
|
+
end
|
60
|
+
|
47
61
|
def selected=(value)
|
48
62
|
@selected = Array.wrap(value)
|
49
63
|
end
|
@@ -21,6 +21,7 @@ class Refine::Inline::Criterion
|
|
21
21
|
attrs[:input_attributes] = attrs.delete(:input)
|
22
22
|
if input_attrs = attrs[:input_attributes]
|
23
23
|
input_attrs[:count_refinement_attributes] = input_attrs.delete(:count_refinement)
|
24
|
+
input_attrs[:date_refinement_attributes] = input_attrs.delete(:date_refinement)
|
24
25
|
end
|
25
26
|
new(attrs)
|
26
27
|
end
|
@@ -93,6 +94,7 @@ class Refine::Inline::Criterion
|
|
93
94
|
result[:input] = result.delete(:input_attributes)
|
94
95
|
if input_attrs = result[:input]
|
95
96
|
input_attrs[:count_refinement] = input_attrs.delete(:count_refinement_attributes)
|
97
|
+
input_attrs[:date_refinement] = input_attrs.delete(:date_refinement_attributes)
|
96
98
|
end
|
97
99
|
result
|
98
100
|
end
|
@@ -121,8 +123,6 @@ class Refine::Inline::Criterion
|
|
121
123
|
end
|
122
124
|
|
123
125
|
def validate!
|
124
|
-
# TODO figure out how to validate inputs with count refinements
|
125
|
-
return if input.count_refinement.attributes.present?
|
126
126
|
errors.clear
|
127
127
|
begin
|
128
128
|
query_for_validate = refine_filter.initial_query || refine_filter.model.all
|
@@ -27,7 +27,7 @@
|
|
27
27
|
|
28
28
|
<div class="refine-criterion-refinement-container">
|
29
29
|
<%= render partial: 'refine/blueprints/clause_select', locals: {
|
30
|
-
meta: refinement[:meta], input_id: "input, #{refinement[:id]}", selected_clause: criterion.input.dig(
|
30
|
+
meta: refinement[:meta], input_id: "input, #{refinement[:id]}", selected_clause: criterion.input.dig(refinement[:id].to_sym, :clause) || {} } %>
|
31
31
|
</div>
|
32
32
|
|
33
33
|
<%= render partial: "refine/blueprints/clauses/#{refinement[:component].underscore}", locals: {
|
@@ -1,3 +1,18 @@
|
|
1
|
+
<%
|
2
|
+
condition = @criterion.condition
|
3
|
+
date_refinement_condition = condition.has_date_refinement? && condition.get_date_refinement_condition
|
4
|
+
count_refinement_condition = condition.has_count_refinement? && condition.get_count_refinement_condition
|
5
|
+
|
6
|
+
last_clause_select = if count_refinement_condition
|
7
|
+
:count
|
8
|
+
elsif date_refinement_condition
|
9
|
+
:date
|
10
|
+
else
|
11
|
+
:criterion
|
12
|
+
end
|
13
|
+
%>
|
14
|
+
|
15
|
+
|
1
16
|
<%= form.hidden_field :stable_id, form: form_id %>
|
2
17
|
<%= form.hidden_field :client_id, form: form_id %>
|
3
18
|
<%= form.hidden_field :condition_id, form: form_id %>
|
@@ -10,16 +25,66 @@
|
|
10
25
|
<%# Input Value %>
|
11
26
|
<% unless ['st', 'nst'].include? @criterion.input.clause %>
|
12
27
|
<%= render @criterion.input_partial, criterion: @criterion, form: form, input_fields: input_fields, form_id: form_id %>
|
28
|
+
<% if last_clause_select == :criterion %>
|
29
|
+
<div class="refine--separator"></div>
|
30
|
+
<% end %>
|
31
|
+
<% end %>
|
32
|
+
|
33
|
+
<%# Clause Select %>
|
34
|
+
<div class="refine--criterion-clause-container">
|
35
|
+
<%= input_fields.label :clause, t('.rule') %>
|
36
|
+
<%= input_fields.collection_select :clause,
|
37
|
+
@criterion.condition.approved_clauses,
|
38
|
+
:id,
|
39
|
+
:display,
|
40
|
+
{},
|
41
|
+
class: "refine--select refine--clause-select",
|
42
|
+
data: {action: "change->refine--criterion-form#refresh"},
|
43
|
+
form: form_id
|
44
|
+
%>
|
45
|
+
<% if last_clause_select == :criterion %>
|
46
|
+
<%= form.button t('global.buttons.apply'), class: "refine--apply-button", type: "submit", form: form_id %>
|
47
|
+
<% end %>
|
48
|
+
</div>
|
49
|
+
|
50
|
+
<%# Date Refinement %>
|
51
|
+
<% if @criterion.condition.has_date_refinement? %>
|
13
52
|
<div class="refine--separator"></div>
|
53
|
+
<label style="color: black;"><%= date_refinement_condition.display %></label>
|
54
|
+
<%= input_fields.fields :date_refinement_attributes, model: @criterion.input.date_refinement do |date_fields| %>
|
55
|
+
<div class="refine--refinement-input-container">
|
56
|
+
<% unless ['st', 'nst'].include? @criterion.input.date_refinement.clause %>
|
57
|
+
<%= render "refine/inline/inputs/date_condition", criterion: @criterion, form: form, input_fields: date_fields, form_id: form_id %>
|
58
|
+
<% end %>
|
59
|
+
|
60
|
+
</div>
|
61
|
+
|
62
|
+
<div class="refine--criterion-clause-container">
|
63
|
+
<%= date_fields.label :clause, t('.rule') %>
|
64
|
+
<%= date_fields.collection_select :clause,
|
65
|
+
date_refinement_condition.approved_clauses,
|
66
|
+
:id,
|
67
|
+
:display,
|
68
|
+
{},
|
69
|
+
class: "refine--select refine--clause-select",
|
70
|
+
data: {action: "change->refine--criterion-form#refresh"},
|
71
|
+
form: form_id
|
72
|
+
%>
|
73
|
+
<% if last_clause_select == :date %>
|
74
|
+
<%= form.button t('global.buttons.apply'), class: "refine--apply-button", type: "submit", form: form_id %>
|
75
|
+
<% end %>
|
76
|
+
</div>
|
77
|
+
<% end %>
|
78
|
+
|
14
79
|
<% end %>
|
15
80
|
|
16
81
|
<%# Count Refinement %>
|
17
|
-
<% if
|
82
|
+
<% if count_refinement_condition %>
|
18
83
|
<label style="color: black;"><%= @criterion.condition.get_count_refinement_condition.display %></label>
|
19
84
|
<%= input_fields.fields :count_refinement_attributes, model: @criterion.input.count_refinement do |count_fields| %>
|
20
85
|
<div class="refine--criterion-clause-container">
|
21
86
|
<%= count_fields.collection_select :clause,
|
22
|
-
|
87
|
+
count_refinement_condition.approved_clauses,
|
23
88
|
:id,
|
24
89
|
:display,
|
25
90
|
{},
|
@@ -29,28 +94,34 @@
|
|
29
94
|
</div>
|
30
95
|
|
31
96
|
<% unless ['st', 'nst'].include? @criterion.input.count_refinement.clause %>
|
32
|
-
<%= render "refine/inline/inputs/numeric_condition", input_fields: count_fields, form_id: form_id %>
|
97
|
+
<%= render "refine/inline/inputs/numeric_condition", criterion: @criterion, form: form, input_fields: count_fields, form_id: form_id %>
|
33
98
|
<% end %>
|
99
|
+
|
100
|
+
<div class="refine--criterion-clause-container">
|
101
|
+
<%= count.label :clause, t('.rule') %>
|
102
|
+
<%= count.collection_select :clause,
|
103
|
+
@criterion.condition.approved_clauses,
|
104
|
+
:id,
|
105
|
+
:display,
|
106
|
+
{},
|
107
|
+
class: "refine--select refine--clause-select",
|
108
|
+
data: {action: "change->refine--criterion-form#refresh"},
|
109
|
+
form: form_id
|
110
|
+
%>
|
111
|
+
<% if last_clause_select == :count %>
|
112
|
+
<%= form.button t('global.buttons.apply'), class: "refine--apply-button", type: "submit", form: form_id %>
|
113
|
+
<% end %>
|
114
|
+
</div>
|
115
|
+
|
116
|
+
|
117
|
+
|
34
118
|
<% end %>
|
35
119
|
|
36
120
|
<% end %>
|
37
121
|
|
38
122
|
|
39
123
|
|
40
|
-
|
41
|
-
<div class="refine--criterion-clause-container">
|
42
|
-
<%= input_fields.label :clause, t('.rule') %>
|
43
|
-
<%= input_fields.collection_select :clause,
|
44
|
-
@criterion.condition.approved_clauses,
|
45
|
-
:id,
|
46
|
-
:display,
|
47
|
-
{},
|
48
|
-
class: "refine--select refine--clause-select",
|
49
|
-
data: {action: "change->refine--criterion-form#refresh"},
|
50
|
-
form: form_id
|
51
|
-
%>
|
52
|
-
<%= form.button t('global.buttons.apply'), class: "refine--apply-button", type: "submit", form: form_id %>
|
53
|
-
</div>
|
124
|
+
|
54
125
|
|
55
126
|
|
56
127
|
<% end %>
|
@@ -1,6 +1,6 @@
|
|
1
|
-
<% if
|
1
|
+
<% if input_fields.object.clause.in? ["exct", "gt", "lt"] %>
|
2
2
|
<%= render "refine/inline/inputs/date_condition_days", input_fields: input_fields, criterion: criterion, form_id: form_id %>
|
3
|
-
<% elsif
|
3
|
+
<% elsif input_fields.object.clause == "btwn" %>
|
4
4
|
<%= render "refine/inline/inputs/date_condition_range", input_fields: input_fields, criterion: criterion, form_id: form_id %>
|
5
5
|
<% else %>
|
6
6
|
<%= render "refine/inline/inputs/date_condition_single", input_fields: input_fields, criterion: criterion, form_id: form_id %>
|
@@ -2,7 +2,7 @@
|
|
2
2
|
<%= render "refine/inline/inputs/date_picker",
|
3
3
|
input_fields: input_fields,
|
4
4
|
attribute: :date1,
|
5
|
-
value:
|
5
|
+
value: input_fields.object.date1,
|
6
6
|
label: "#{criterion.condition.display.downcase} (#{t('.min')})",
|
7
7
|
form_id: form_id
|
8
8
|
%>
|
@@ -13,7 +13,7 @@
|
|
13
13
|
<%= render "refine/inline/inputs/date_picker",
|
14
14
|
input_fields: input_fields,
|
15
15
|
attribute: :date2,
|
16
|
-
value:
|
16
|
+
value: input_fields.object.date2,
|
17
17
|
label: "#{criterion.condition.display.downcase} (#{t('.max')})",
|
18
18
|
form_id: form_id
|
19
19
|
%>
|
data/lib/refine/rails/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: refine-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.9.
|
4
|
+
version: 2.9.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Colleen Schnettler
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2024-01-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -101,6 +101,7 @@ files:
|
|
101
101
|
- app/models/refine/filters/builder.rb
|
102
102
|
- app/models/refine/filters/criterion.rb
|
103
103
|
- app/models/refine/filters/query.rb
|
104
|
+
- app/models/refine/inline/criteria/date_refinement.rb
|
104
105
|
- app/models/refine/inline/criteria/input.rb
|
105
106
|
- app/models/refine/inline/criteria/numeric_refinement.rb
|
106
107
|
- app/models/refine/inline/criteria/option.rb
|
@@ -197,7 +198,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
197
198
|
- !ruby/object:Gem::Version
|
198
199
|
version: '0'
|
199
200
|
requirements: []
|
200
|
-
rubygems_version: 3.
|
201
|
+
rubygems_version: 3.3.26
|
201
202
|
signing_key:
|
202
203
|
specification_version: 4
|
203
204
|
summary: Visual query builder for Rails
|