glib-web 4.21.0 → 4.22.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/glib/json_ui/action_builder/fields.rb +2 -1
- data/app/views/json_ui/garage/forms/checkboxes.json.jbuilder +30 -10
- data/app/views/json_ui/garage/forms/conditional_value.json.jbuilder +1 -1
- data/app/views/json_ui/garage/forms/show_hide.json.jbuilder +3 -9
- data/app/views/json_ui/garage/test_page/_header.json.jbuilder +1 -1
- data/app/views/json_ui/garage/test_page/form_dynamic.json.jbuilder +6 -1
- data/app/views/json_ui/garage/test_page/selectable.json.jbuilder +84 -0
- data/lib/tasks/db.rake +2 -0
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 973660b5005d3ea4990845eeb17cbb853bc2e9545aef54659654e0c4955776a3
|
4
|
+
data.tar.gz: 8b5f8c01195733b5eadca70ff45b1b5d992ed2f6bf2c8f87818ac34a51e760bb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7980032e83ea3569932729997e50f57be9d4e6204590f81455f7d774911aafa68ce6302a91caa7913671b55d7645492aab7e4b58e278ec9bc10f39430359bff7
|
7
|
+
data.tar.gz: 8487bce20e4614df9099e751a210431340eb62cbea2b71a5bdd6c226b459a30172a20f46f0e645ee08225cb9b3cd6b5c1c33438b84b3f8a5c41a85b251585444
|
@@ -9,12 +9,13 @@ class Glib::JsonUi::ActionBuilder
|
|
9
9
|
action :onBlur
|
10
10
|
end
|
11
11
|
|
12
|
+
# deprecated, change to Clear at next major version release
|
12
13
|
class Reset < Action
|
13
14
|
string :targetId
|
14
15
|
action :onReset
|
15
16
|
end
|
16
17
|
|
17
|
-
# deprecated
|
18
|
+
# deprecated, delete at next major version release
|
18
19
|
class GetDynamicGroupEntryValues < Action
|
19
20
|
array :names
|
20
21
|
action :onGet
|
@@ -47,16 +47,16 @@ page.scroll childViews: ->(scroll) do
|
|
47
47
|
form.spacer height: 20
|
48
48
|
form.h2 text: 'Checkboxes with none_of_above'
|
49
49
|
form.fields_checkGroup \
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
50
|
+
valueForDisableAll: 'none_of_above',
|
51
|
+
name: 'user[favorite_fruits][]',
|
52
|
+
value: 'grape',
|
53
|
+
uncheckValue: 1,
|
54
|
+
childViews: ->(group) do
|
55
|
+
group.fields_check label: 'Grape', checkValue: 'grape'
|
56
|
+
group.fields_check label: 'Banana', checkValue: 'banana'
|
57
|
+
group.fields_check label: 'Durian', checkValue: 'durian'
|
58
|
+
group.fields_check label: 'I dont like fruits', checkValue: 'none_of_above'
|
59
|
+
end
|
60
60
|
|
61
61
|
form.spacer height: 20
|
62
62
|
form.h2 text: 'Check all with checkGroup'
|
@@ -100,6 +100,26 @@ page.scroll childViews: ->(scroll) do
|
|
100
100
|
form.fields_check id: 'check2', name: 'user[foo][]', label: 'Option 2', checkValue: true
|
101
101
|
form.fields_check id: 'check3', name: 'user[foo][]', label: 'Option 3', checkValue: true
|
102
102
|
|
103
|
+
form.spacer height: 20
|
104
|
+
form.h2 text: 'Custom panels checkgroup'
|
105
|
+
form.fields_checkGroup \
|
106
|
+
width: 'matchParent',
|
107
|
+
name: 'user[custom_panels][]',
|
108
|
+
uncheckValue: 'unchecked',
|
109
|
+
childViews: ->(group) do
|
110
|
+
group.panels_flow id: 'flow', xs: { gap: { all: 8 } }, backgroundColor: 'grey', width: 'matchParent', childViews: ->(flow) do
|
111
|
+
flow.fields_check checkValue: '1', label: 'Choice 1', onChange: ->(action) do
|
112
|
+
action.components_set targetId: 'flow', data: { backgroundColor: '#ff0000' }
|
113
|
+
end
|
114
|
+
flow.fields_check checkValue: '2', label: 'Choice 2', onChange: ->(action) do
|
115
|
+
action.components_set targetId: 'flow', data: { backgroundColor: '#00ff00' }
|
116
|
+
end
|
117
|
+
flow.fields_check checkValue: '3', label: 'Choice 3', onChange: ->(action) do
|
118
|
+
action.components_set targetId: 'flow', data: { backgroundColor: '#0000ff' }
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
103
123
|
form.spacer height: 20
|
104
124
|
form.button text: 'Submit', onClick: ->(action) { action.forms_submit }
|
105
125
|
end
|
@@ -30,7 +30,7 @@ page.form \
|
|
30
30
|
form.h2 text: 'Button Date'
|
31
31
|
form.label text: 'Plus 30 days'
|
32
32
|
form.spacer height: 6
|
33
|
-
form.fields_date
|
33
|
+
form.fields_date name: 'user[date_start1]', label: 'Add start date', value: '2024-12-12', min: '2024-11-1', max: '2024-12-31', template: { type: 'text' }, onChange: ->(action) do
|
34
34
|
action.logics_set targetId: 'date3', conditionalData: { value: { "sum_date": [{ "var": 'user[date_start1]' }, { value: 86400 * 30, format: 'date' }] } }
|
35
35
|
end
|
36
36
|
form.spacer height: 6
|
@@ -130,25 +130,19 @@ page.form \
|
|
130
130
|
column.fields_radio\
|
131
131
|
width: 'matchParent',
|
132
132
|
height: 'matchParent',
|
133
|
-
value: 'yes', label: 'Yes', icon: { template: 'featured', name: 'edit', size: 40, color: '#d1d1d1' }
|
134
|
-
onClick: ->(action) do
|
135
|
-
action.windows_openWeb url: 'http://www.google.com'
|
136
|
-
end
|
133
|
+
value: 'yes', label: 'Yes', icon: { template: 'featured', name: 'edit', size: 40, color: '#d1d1d1' }
|
137
134
|
end
|
138
135
|
res.panels_column width: 'matchParent', lg: { cols: 4, padding: { x: 10 } }, childViews: ->(column) do
|
139
136
|
column.fields_radio\
|
140
137
|
width: 'matchParent',
|
141
138
|
value: 'no', label: 'No (very very very very very very very very very very very long description)',
|
142
|
-
image: { template: 'featured', url: 'https://cdn.pixabay.com/photo/2020/08/05/13/12/eco-5465432_1280.png', width: 80, height: 80 }
|
143
|
-
onClick: ->(action) do
|
144
|
-
action.windows_openWeb url: 'http://www.google.com'
|
145
|
-
end
|
139
|
+
image: { template: 'featured', url: 'https://cdn.pixabay.com/photo/2020/08/05/13/12/eco-5465432_1280.png', width: 80, height: 80 }
|
146
140
|
end
|
147
141
|
res.panels_column width: 'matchParent', lg: { cols: 4 }, childViews: ->(column) do
|
148
142
|
column.fields_radio\
|
149
143
|
value: 'idk', label: 'Not Sure',
|
150
144
|
image: { template: 'thumbnail', url: 'https://cdn.pixabay.com/photo/2020/08/05/13/12/eco-5465432_1280.png', width: 24, height: 24 }
|
151
|
-
column.fields_radio value: '', label: 'Empty'
|
145
|
+
column.fields_radio value: 'empty', label: 'Empty'
|
152
146
|
end
|
153
147
|
|
154
148
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
navs = ['form', 'dialog', 'form_dynamic', 'auto_validate', 'multiupload', 'dirty_state', 'window']
|
1
|
+
navs = ['form', 'dialog', 'form_dynamic', 'auto_validate', 'multiupload', 'dirty_state', 'window', 'selectable']
|
2
2
|
|
3
3
|
view.panels_flow innerPadding: { bottom: 0 }, styleClass: 'align-right', width: 'matchParent', childViews: ->(res) do
|
4
4
|
navs.each_with_index do |nav, index|
|
@@ -37,7 +37,7 @@ page.body childViews: ->(body) do
|
|
37
37
|
template.fields_text width: 'matchParent', name: 'question', label: 'Question', placeholder: 'Question', styleClass: 'question'
|
38
38
|
|
39
39
|
form.panels_responsive id: 'responsive_{{entryIndex}}', childViews: ->(column) do
|
40
|
-
options = [:rating, :yes_no, :choices]
|
40
|
+
options = [:rating, :yes_no, :choices, :unspecified]
|
41
41
|
template.fields_select \
|
42
42
|
width: 'matchParent',
|
43
43
|
name: 'type',
|
@@ -51,6 +51,11 @@ page.body childViews: ->(body) do
|
|
51
51
|
multiple.fields_getValues fieldNames: { '{{entryPrefix}}[type]' => nil, '{{entryPrefix}}[question]' => nil }, onGet: ->(get) do
|
52
52
|
get.snackbars_alert paramName: 'message', fieldName: 'entry-{{entryIndex}}'
|
53
53
|
end
|
54
|
+
multiple.logics_run \
|
55
|
+
condition: { "==": [{ "var": '{{entryPrefix}}[type]' }, 'unspecified'] },
|
56
|
+
onTrue: ->(subaction) do
|
57
|
+
subaction.dialogs_alert message: 'Please select a valid type'
|
58
|
+
end
|
54
59
|
multiple.logics_set \
|
55
60
|
targetId: 'responsive_{{entryIndex}}', dataBuilder: ->(set) do
|
56
61
|
set.panels_responsive width: 'matchParent', accessory: ->(accessory) do
|
@@ -0,0 +1,84 @@
|
|
1
|
+
page = json_ui_page json
|
2
|
+
|
3
|
+
languages = {
|
4
|
+
'East Asia' => {
|
5
|
+
'zh' => 'Chinese',
|
6
|
+
'ja' => 'Japanese',
|
7
|
+
'ko' => 'Korean',
|
8
|
+
},
|
9
|
+
'Middle East' => {
|
10
|
+
'ar' => 'Arabic',
|
11
|
+
'hi' => 'Hindi',
|
12
|
+
},
|
13
|
+
'Europe' => {
|
14
|
+
'nl' => 'Dutch',
|
15
|
+
'en' => 'English',
|
16
|
+
'fr' => 'French',
|
17
|
+
'de' => 'German',
|
18
|
+
'it' => 'Italian',
|
19
|
+
'pt' => 'Portuguese',
|
20
|
+
'es' => 'Spanish',
|
21
|
+
},
|
22
|
+
'Eastern Europe' => {
|
23
|
+
'ru' => 'Russian',
|
24
|
+
}
|
25
|
+
}
|
26
|
+
options = []
|
27
|
+
languages.each do |group, sub|
|
28
|
+
options << { type: 'label', text: group }
|
29
|
+
options.concat(sub.map { |k, v| { value: k, text: v, subtitle: 'Country' } })
|
30
|
+
options << { type: 'divider' }
|
31
|
+
end
|
32
|
+
options << { text: 'None of above', value: 'none_of_above' }
|
33
|
+
|
34
|
+
page.body padding: glib_json_padding_body, childViews: ->(body) do
|
35
|
+
body.panels_form \
|
36
|
+
url: json_ui_garage_url(path: 'forms/generic_post'),
|
37
|
+
method: 'post',
|
38
|
+
onChange: ->(action) do
|
39
|
+
action.logics_set targetId: 'checker2', skipOnChange: true, conditionalData: {
|
40
|
+
value: { "==": [{ "countNonNull": [{ "var": 'user[foo][]' }] }, 3] },
|
41
|
+
indeterminate: { "<": [0, { "countNonNull": [{ "var": 'user[foo][]' }] }, 3] }
|
42
|
+
}
|
43
|
+
end,
|
44
|
+
width: 'matchParent',
|
45
|
+
childViews: ->(form) do
|
46
|
+
form.h2 text: 'Select prepend & none_of_above'
|
47
|
+
|
48
|
+
form.fields_select \
|
49
|
+
valueForDisableAll: 'none_of_above',
|
50
|
+
prependSelectAll: true,
|
51
|
+
name: 'user[cities2][]',
|
52
|
+
width: 'matchParent',
|
53
|
+
label: 'Cities',
|
54
|
+
options: options,
|
55
|
+
value: ['melbourne', 'sydney'],
|
56
|
+
multiple: true
|
57
|
+
|
58
|
+
form.spacer height: 8
|
59
|
+
|
60
|
+
form.h2 text: 'Checkboxes none_of_above'
|
61
|
+
form.fields_checkGroup \
|
62
|
+
valueForDisableAll: 'none_of_above',
|
63
|
+
name: 'user[favorite_fruits][]',
|
64
|
+
value: 'grape',
|
65
|
+
uncheckValue: 1,
|
66
|
+
childViews: ->(group) do
|
67
|
+
group.fields_check label: 'Grape', checkValue: 'grape'
|
68
|
+
group.fields_check label: 'Banana', checkValue: 'banana'
|
69
|
+
group.fields_check label: 'Durian', checkValue: 'durian'
|
70
|
+
group.fields_check label: 'I dont like fruits', checkValue: 'none_of_above'
|
71
|
+
end
|
72
|
+
|
73
|
+
form.h2 text: 'Check all'
|
74
|
+
form.fields_check name: 'check_all_1', id: 'checker2', label: 'check all', checkValue: true, onChange: ->(action) do
|
75
|
+
action.logics_set targetIds: ['check1', 'check2', 'check3'], conditionalData: { value: { "!!": [{ "var": 'check_all_1' }] } }
|
76
|
+
end
|
77
|
+
form.fields_check id: 'check1', name: 'user[foo][]', label: 'Option 1', checkValue: true
|
78
|
+
form.fields_check id: 'check2', name: 'user[foo][]', label: 'Option 2', checkValue: true
|
79
|
+
form.fields_check id: 'check3', name: 'user[foo][]', label: 'Option 3', checkValue: true
|
80
|
+
|
81
|
+
form.spacer height: 8
|
82
|
+
form.fields_submit text: 'Submit'
|
83
|
+
end
|
84
|
+
end
|
data/lib/tasks/db.rake
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: glib-web
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.22.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ''
|
@@ -325,6 +325,7 @@ files:
|
|
325
325
|
- app/views/json_ui/garage/test_page/form.json.jbuilder
|
326
326
|
- app/views/json_ui/garage/test_page/form_dynamic.json.jbuilder
|
327
327
|
- app/views/json_ui/garage/test_page/multiupload.json.jbuilder
|
328
|
+
- app/views/json_ui/garage/test_page/selectable.json.jbuilder
|
328
329
|
- app/views/json_ui/garage/test_page/window.json.jbuilder
|
329
330
|
- app/views/json_ui/garage/views/_chart_data.json.jbuilder
|
330
331
|
- app/views/json_ui/garage/views/banners.json.jbuilder
|