glib-web 4.9.0 → 4.10.1
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/controllers/concerns/glib/json/new_dynamic_text.rb +0 -0
- data/app/controllers/concerns/glib/json/traversal.rb +4 -2
- data/app/controllers/glib/errors_controller.rb +7 -0
- data/app/helpers/glib/app_feature_support_helper.rb +0 -0
- data/app/helpers/glib/dynamic_texts_helper.rb +0 -0
- data/app/helpers/glib/json_ui/abstract_builder.rb +1 -1
- data/app/helpers/glib/json_ui/action_builder/sheets.rb +0 -0
- data/app/helpers/glib/json_ui/analytics_helper.rb +0 -0
- data/app/helpers/glib/json_ui/generic_builders.rb +0 -0
- data/app/helpers/glib/json_ui/view_builder/panels.rb +8 -7
- data/app/models/glib/active_storage/attachment.rb +0 -0
- data/app/models/glib/active_storage/blob.rb +0 -0
- data/app/models/glib/dynamic_text_record.rb +0 -0
- data/app/models/glib/text.rb +0 -0
- data/app/validators/email_typo_validator.rb +0 -0
- data/app/validators/email_validator.rb +0 -0
- data/app/validators/url_validator.rb +0 -0
- data/app/views/json_ui/garage/actions/dialogs_oauth_post.json.jbuilder +0 -0
- data/app/views/json_ui/garage/forms/_partial_update_execute.json.jbuilder +1 -1
- data/app/views/json_ui/garage/forms/bulk_edit_post.json.jbuilder +0 -0
- data/app/views/json_ui/garage/forms/checkboxes.json.jbuilder +3 -1
- data/app/views/json_ui/garage/forms/dynamic_select_data.json.jbuilder +0 -0
- data/app/views/json_ui/garage/forms/generic_post.json.jbuilder +0 -0
- data/app/views/json_ui/garage/forms/partial_update.json.jbuilder +3 -0
- data/app/views/json_ui/garage/forms/partial_update_response.json.jbuilder +4 -0
- data/app/views/json_ui/garage/forms/selects.json.jbuilder +21 -0
- data/app/views/json_ui/garage/forms/show_hide.json.jbuilder +79 -9
- data/app/views/json_ui/garage/forms/submission_flow.json.jbuilder +0 -0
- data/app/views/json_ui/garage/forms/submission_flow_post.json.jbuilder +0 -0
- data/app/views/json_ui/garage/forms/submission_indicator.json.jbuilder +0 -0
- data/app/views/json_ui/garage/forms/submission_indicator_post.json.jbuilder +0 -0
- data/app/views/json_ui/garage/forms/update_options.json.jbuilder +13 -0
- data/app/views/json_ui/garage/home/blank.json.jbuilder +0 -0
- data/app/views/json_ui/garage/home/slow.json.jbuilder +0 -0
- data/app/views/json_ui/garage/lists/autoload_all.json.jbuilder +0 -0
- data/app/views/json_ui/garage/lists/autoload_as_needed.json.jbuilder +0 -0
- data/app/views/json_ui/garage/lists/chat_ui.json.jbuilder +0 -0
- data/app/views/json_ui/garage/lists/fab.json.jbuilder +0 -0
- data/app/views/json_ui/garage/notifications/web_socket.json.jbuilder +0 -0
- data/app/views/json_ui/garage/pages/custom_style_class.json.jbuilder +0 -0
- data/app/views/json_ui/garage/pages/full_width.json.jbuilder +0 -0
- data/app/views/json_ui/garage/pages/full_width_height.json.jbuilder +0 -0
- data/app/views/json_ui/garage/pages/layout.json.jbuilder +0 -0
- data/app/views/json_ui/garage/pages/loading_indicator.json.jbuilder +0 -0
- data/app/views/json_ui/garage/pages/nested_scroll.json.jbuilder +0 -0
- data/app/views/json_ui/garage/pages/redirect_onload.json.jbuilder +0 -0
- data/app/views/json_ui/garage/panels/_styled.json.jbuilder +0 -0
- data/app/views/json_ui/garage/panels/card.json.jbuilder +0 -0
- data/app/views/json_ui/garage/panels/custom.json.jbuilder +0 -0
- data/app/views/json_ui/garage/panels/flow.json.jbuilder +22 -14
- data/app/views/json_ui/garage/panels/outlined.json.jbuilder +0 -0
- data/app/views/json_ui/garage/services/dynamic_text.json.jbuilder +0 -0
- data/app/views/json_ui/garage/services/image.json.jbuilder +0 -0
- data/app/views/json_ui/garage/services/index.json.jbuilder +0 -0
- data/app/views/json_ui/garage/tables/_autoload_section.json.jbuilder +0 -0
- data/app/views/json_ui/garage/tables/autoload_all.json.jbuilder +0 -0
- data/app/views/json_ui/garage/tables/autoload_as_needed.json.jbuilder +0 -0
- data/app/views/json_ui/garage/tables/export_import.json.jbuilder +0 -0
- data/app/views/json_ui/garage/tables/index.json.jbuilder +0 -0
- data/app/views/json_ui/garage/tables/panel_content.json.jbuilder +25 -57
- data/app/views/json_ui/garage/views/calendar_data.json.jbuilder +0 -0
- data/app/views/json_ui/garage/views/controls.json.jbuilder +1 -1
- data/app/views/json_ui/garage/views/map_data.json.jbuilder +0 -0
- data/app/views/json_ui/garage/views/multimedia.json.jbuilder +0 -0
- data/app/views/layouts/json_ui/no_custom.html.erb +0 -0
- data/config/routes.rb +1 -0
- data/lib/generators/glib/install_generator.rb +0 -0
- data/lib/generators/templates/20191017062519_create_texts.rb +0 -0
- data/lib/generators/templates/20191024063257_add_scope_to_texts.rb +0 -0
- data/lib/generators/templates/20191112095018_add_lang_to_texts.rb +0 -0
- data/lib/generators/templates/20191126071051_create_active_storage_tables.active_storage.rb +0 -0
- data/lib/generators/templates/database.yml +0 -0
- data/lib/generators/templates/dynamic_text.rb +0 -0
- data/lib/glib/dynamic_text/config.rb +0 -0
- data/lib/glib/dynamic_text.rb +0 -0
- data/lib/glib/json_crawler/action_crawler.rb +0 -0
- data/lib/glib/json_crawler/action_crawlers/action_http.rb +0 -0
- data/lib/glib/json_crawler/action_crawlers/dialogs_alert.rb +0 -0
- data/lib/glib/json_crawler/action_crawlers/menu.rb +0 -0
- data/lib/glib/json_crawler/action_crawlers/run_multiple.rb +0 -0
- data/lib/glib/json_crawler/action_crawlers/windows_open.rb +0 -0
- data/lib/glib/json_crawler/coverage.rb +0 -0
- data/lib/glib/value.rb +0 -0
- data/lib/glib/version.rb +0 -0
- 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: ddb48299bbf1685aed5b8fd994ca3ffc8eba555e097cc77dbd38cb7b48707e6c
|
|
4
|
+
data.tar.gz: 8569bc0e88d99f4dae7e1d2be733168e2ee7f0acd499e565a5fef0cca2a50ca9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 328b8d4f45b8cd8a0e99029f5edfe0e20469e860a27282cf26a7173a7538b8bfb2310ba8b877c53ac05ac963c395f32767c69e25f568a7c67db262ea58ccc144
|
|
7
|
+
data.tar.gz: 5f1b8c282c4c82aa77474304f584e22426188b04135af2387da8ee0099cc2eef85e527333966d439fa511aa14ef5a32d6bf3301d040ed9eb38e9f79066fe4991
|
|
File without changes
|
|
@@ -99,11 +99,13 @@ module Glib::Json::Traversal
|
|
|
99
99
|
end
|
|
100
100
|
|
|
101
101
|
def current_deferred_actions
|
|
102
|
-
|
|
102
|
+
# Add "|| []" because it broke on hz
|
|
103
|
+
@deferred_actions.last || []
|
|
103
104
|
end
|
|
104
105
|
|
|
105
106
|
def current_component_registry
|
|
106
|
-
|
|
107
|
+
# Add "|| {}" because it broke on hz
|
|
108
|
+
@component_registries.last || {}
|
|
107
109
|
end
|
|
108
110
|
|
|
109
111
|
def defer_action(action_crawler, target_id)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -494,6 +494,14 @@ class Glib::JsonUi::ViewBuilder
|
|
|
494
494
|
|
|
495
495
|
class Flow < View
|
|
496
496
|
hash :innerPadding, optional: [:top, :right, :bottom, :left, :x, :y]
|
|
497
|
+
|
|
498
|
+
hash :xxl, optional: [:gap, :padding]
|
|
499
|
+
hash :xl, optional: [:gap, :padding]
|
|
500
|
+
hash :lg, optional: [:gap, :padding]
|
|
501
|
+
hash :md, optional: [:gap, :padding]
|
|
502
|
+
hash :sm, optional: [:gap, :padding]
|
|
503
|
+
hash :xs, optional: [:gap, :padding]
|
|
504
|
+
|
|
497
505
|
views :childViews
|
|
498
506
|
|
|
499
507
|
required :innerPadding
|
|
@@ -564,13 +572,6 @@ class Glib::JsonUi::ViewBuilder
|
|
|
564
572
|
# end
|
|
565
573
|
end
|
|
566
574
|
|
|
567
|
-
class Pagination < View
|
|
568
|
-
int :length
|
|
569
|
-
int :value
|
|
570
|
-
action :onChange
|
|
571
|
-
string :paramNameForFieldName
|
|
572
|
-
end
|
|
573
|
-
|
|
574
575
|
module ModelPanel
|
|
575
576
|
attr_reader :model_name # See Panels::Form.field_name
|
|
576
577
|
attr_reader :assoc_order_index
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/app/models/glib/text.rb
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name = params[:name]
|
|
2
|
-
action.components_replace targetId: 'greeting',
|
|
2
|
+
action.components_replace targetId: 'greeting', newView: ->(update) do
|
|
3
3
|
update.panels_vertical childViews: ->(vertical) do
|
|
4
4
|
name = params[:name]
|
|
5
5
|
vertical.fields_hidden name: 'name', value: name
|
|
File without changes
|
|
@@ -35,7 +35,9 @@ page.scroll childViews: ->(scroll) do
|
|
|
35
35
|
form.spacer height: 20
|
|
36
36
|
form.h2 text: 'Check without group'
|
|
37
37
|
form.spacer height: 4
|
|
38
|
-
form.fields_check name: 'user[
|
|
38
|
+
form.fields_check name: 'user[choice][]', label: 'Choice 1', checkValue: 'choice_1'
|
|
39
|
+
form.fields_check name: 'user[choice][]', label: 'Choice 2', checkValue: 'choice_2'
|
|
40
|
+
|
|
39
41
|
|
|
40
42
|
form.spacer height: 20
|
|
41
43
|
form.button text: 'Submit', onClick: ->(action) { action.forms_submit }
|
|
File without changes
|
|
File without changes
|
|
@@ -38,6 +38,9 @@ page.scroll childViews: ->(scroll) do
|
|
|
38
38
|
vertical.button text: 'Update', onClick: ->(action) do
|
|
39
39
|
action.http_get url: json_ui_garage_url(path: 'forms/partial_update_response'), formData: { name: 'John' }, historyUrl: json_ui_garage_url(path: 'forms/partial_update', name: 'John')
|
|
40
40
|
end
|
|
41
|
+
vertical.button text: 'Update with retry', onClick: ->(action) do
|
|
42
|
+
action.http_get url: json_ui_garage_url(path: 'forms/partial_update_response', error: true)
|
|
43
|
+
end
|
|
41
44
|
vertical.spacer height: 18
|
|
42
45
|
end
|
|
43
46
|
|
|
@@ -129,6 +129,27 @@ page.form url: json_ui_garage_url(path: 'forms/generic_post'), method: 'post', p
|
|
|
129
129
|
value: ['ja', 'de'],
|
|
130
130
|
multiple: true
|
|
131
131
|
|
|
132
|
+
form.spacer height: 6
|
|
133
|
+
form.label text: 'Options from http/get'
|
|
134
|
+
form.spacer height: 6
|
|
135
|
+
|
|
136
|
+
form.fields_select \
|
|
137
|
+
name: 'user[animal_or_plant]',
|
|
138
|
+
width: 'matchParent',
|
|
139
|
+
label: 'Animal or Plant',
|
|
140
|
+
options: [{ text: 'Animal', value: 'animal' }, { text: 'Plant', value: 'plant' }],
|
|
141
|
+
value: 'animal',
|
|
142
|
+
onChangeAndLoad: ->(action) do
|
|
143
|
+
action.http_get url: json_ui_garage_url(path: 'forms/update_options')
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
form.fields_select \
|
|
147
|
+
id: 'options',
|
|
148
|
+
name: 'user[choose_animal_or_plant]',
|
|
149
|
+
width: 'matchParent',
|
|
150
|
+
label: 'Choose',
|
|
151
|
+
options: []
|
|
152
|
+
|
|
132
153
|
form.spacer height: 20
|
|
133
154
|
form.h2 text: 'Select fields with empty values'
|
|
134
155
|
form.spacer height: 6
|
|
@@ -93,6 +93,72 @@ page.form \
|
|
|
93
93
|
form.spacer height: 10
|
|
94
94
|
form.label id: 'label22', text: 'Is Checked22'
|
|
95
95
|
|
|
96
|
+
form.spacer height: 20
|
|
97
|
+
form.h1 text: 'Radio inside panels'
|
|
98
|
+
|
|
99
|
+
form.fields_radioGroup \
|
|
100
|
+
name: 'user[radio9]',
|
|
101
|
+
value: 'no',
|
|
102
|
+
width: 'matchParent',
|
|
103
|
+
onChangeAndLoad: ->(action) do
|
|
104
|
+
action.runMultiple childActions: ->(saction) do
|
|
105
|
+
saction.logics_set targetId: 'radiolabel1', conditionalData: {
|
|
106
|
+
displayed: {
|
|
107
|
+
"==": [
|
|
108
|
+
{
|
|
109
|
+
"var": 'user[radio9]'
|
|
110
|
+
},
|
|
111
|
+
'yes'
|
|
112
|
+
]
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
saction.logics_set targetId: 'radiolabel2', conditionalData: {
|
|
116
|
+
displayed: {
|
|
117
|
+
"==": [
|
|
118
|
+
{
|
|
119
|
+
"var": 'user[radio9]'
|
|
120
|
+
},
|
|
121
|
+
'no'
|
|
122
|
+
]
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
end
|
|
126
|
+
end,
|
|
127
|
+
childViews: ->(group) do
|
|
128
|
+
group.panels_responsive width: 'matchParent', childViews: ->(res) do
|
|
129
|
+
|
|
130
|
+
res.panels_column width: 'matchParent', lg: { cols: 4 }, childViews: ->(column) do
|
|
131
|
+
column.fields_radio\
|
|
132
|
+
width: 350,
|
|
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
|
|
137
|
+
end
|
|
138
|
+
res.panels_column width: 'matchParent', lg: { cols: 4 }, childViews: ->(column) do
|
|
139
|
+
column.fields_radio\
|
|
140
|
+
width: 350,
|
|
141
|
+
value: 'no', label: 'No',
|
|
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
|
|
146
|
+
end
|
|
147
|
+
res.panels_column width: 'matchParent', lg: { cols: 4 }, childViews: ->(column) do
|
|
148
|
+
column.fields_radio\
|
|
149
|
+
value: 'idk', label: 'Not Sure',
|
|
150
|
+
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'
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
end
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
form.spacer height: 10
|
|
159
|
+
form.label id: 'radiolabel1', text: 'Yes'
|
|
160
|
+
form.label id: 'radiolabel2', text: 'No'
|
|
161
|
+
|
|
96
162
|
form.spacer height: 20
|
|
97
163
|
form.h1 text: 'Radio Group'
|
|
98
164
|
form.fields_radioGroup \
|
|
@@ -123,15 +189,19 @@ page.form \
|
|
|
123
189
|
end
|
|
124
190
|
end,
|
|
125
191
|
childViews: ->(group) do
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
group.
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
192
|
+
# TODO: Fix a bug where if the fields_radio is wrapped in panels_horizontal,
|
|
193
|
+
# it cannot be selected.
|
|
194
|
+
group.panels_horizontal childViews: ->(horizontal) do
|
|
195
|
+
horizontal.fields_radio\
|
|
196
|
+
value: 'show', label: 'Show', icon: { template: 'featured', name: 'edit', size: 40, color: '#d1d1d1' }
|
|
197
|
+
horizontal.fields_radio\
|
|
198
|
+
value: 'hide', label: 'Hide',
|
|
199
|
+
image: { template: 'featured', url: 'https://cdn.pixabay.com/photo/2020/08/05/13/12/eco-5465432_1280.png', width: 80, height: 80 }
|
|
200
|
+
horizontal.fields_radio\
|
|
201
|
+
value: 'no', label: 'No',
|
|
202
|
+
image: { template: 'thumbnail', url: 'https://cdn.pixabay.com/photo/2020/08/05/13/12/eco-5465432_1280.png', width: 24, height: 24 }
|
|
203
|
+
horizontal.fields_radio value: '', label: 'Empty'
|
|
204
|
+
end
|
|
135
205
|
end
|
|
136
206
|
form.spacer height: 10
|
|
137
207
|
form.label id: 'label6', text: 'Chosen'
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
sleep 0.5
|
|
2
|
+
|
|
3
|
+
value = params.require(:user).to_unsafe_h['animal_or_plant']
|
|
4
|
+
options = {
|
|
5
|
+
'animal' => ['cat', 'dog', 'bird'].map { |v| { text: v.humanize, value: v } },
|
|
6
|
+
'plant' => ['herb', 'rice', 'vegetable'].map { |v| { text: v.humanize, value: v } }
|
|
7
|
+
}[value]
|
|
8
|
+
|
|
9
|
+
json_ui_response_with_view json do |action|
|
|
10
|
+
action.components_set targetId: 'options', data: {
|
|
11
|
+
options: options
|
|
12
|
+
}
|
|
13
|
+
end
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -5,11 +5,17 @@ render "#{@path_prefix}/nav_menu", json: json, page: page
|
|
|
5
5
|
|
|
6
6
|
page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
|
|
7
7
|
scroll.h1 text: 'Show/hide'
|
|
8
|
-
scroll.panels_flow
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
scroll.panels_flow\
|
|
9
|
+
sm: { gap: { y: 4, x: 6 }, padding: { all: 16 } },
|
|
10
|
+
md: { gap: { y: 8, x: 8 }, padding: { x: 30, y: 30 } },
|
|
11
|
+
xs: { gap: { y: 2, x: 2 }, padding: { left: 10, bottom: 8 } },
|
|
12
|
+
lg: { gap: { all: 32 } },
|
|
13
|
+
id: 'flow1', width: 300,
|
|
14
|
+
innerPadding: { top: 0 }, backgroundColor: '#b3bac2', childViews: ->(panel) do
|
|
15
|
+
panel.button text: '1'
|
|
16
|
+
panel.button text: '2'
|
|
17
|
+
panel.button text: '3'
|
|
18
|
+
end
|
|
13
19
|
scroll.button text: 'show', onClick: ->(action) do
|
|
14
20
|
action.components_set targetId: 'flow1', data: { displayed: true }
|
|
15
21
|
end
|
|
@@ -18,15 +24,17 @@ page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
|
|
|
18
24
|
end
|
|
19
25
|
|
|
20
26
|
scroll.h1 text: 'Basic'
|
|
21
|
-
scroll.panels_flow
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
scroll.panels_flow\
|
|
28
|
+
md: { padding: { all: 8 } },
|
|
29
|
+
width: 300, innerPadding: { top: 0 }, backgroundColor: '#b3bac2', childViews: ->(panel) do
|
|
30
|
+
panel.button text: '1'
|
|
31
|
+
panel.button text: '2'
|
|
32
|
+
panel.button text: '3'
|
|
33
|
+
panel.button text: '4'
|
|
34
|
+
panel.button text: '5'
|
|
35
|
+
panel.button text: '6'
|
|
36
|
+
panel.button text: '7'
|
|
37
|
+
end
|
|
30
38
|
|
|
31
39
|
scroll.label text: "\n"
|
|
32
40
|
scroll.h1 text: 'Spacers'
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -3,66 +3,34 @@ json.title 'Tables'
|
|
|
3
3
|
page = json_ui_page json
|
|
4
4
|
render "#{@path_prefix}/nav_menu", json: json, page: page
|
|
5
5
|
|
|
6
|
-
page.
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
check_ids = (0..2).map { |i| "item_#{i}" }
|
|
14
|
-
action.logics_set targetIds: check_ids, conditionalData: {
|
|
15
|
-
value: { 'var': 'check_all' }
|
|
16
|
-
}
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
header.label text: 'Vertical'
|
|
20
|
-
header.label text: 'Horizontal'
|
|
21
|
-
header.label text: 'Unordered List'
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
items = [1, 2, 3]
|
|
25
|
-
section.rows objects: items, builder: ->(row, item, index) do
|
|
26
|
-
row.default colStyles: [{ width: 200, backgroundColor: '#eeeeee' }], cellViews: ->(cell) do
|
|
27
|
-
cell.panels_horizontal childViews: ->(horizontal) do
|
|
28
|
-
horizontal.fields_check \
|
|
29
|
-
id: "item_#{index}",
|
|
30
|
-
name: 'user[items][]',
|
|
31
|
-
checkValue: index, # In the real-world, this is going to be the ID of a DB record.
|
|
32
|
-
onChange: ->(action) do
|
|
33
|
-
# TODO: Fix fields_check so it can support arrays
|
|
34
|
-
action.logics_set targetId: 'submit_button', conditionalData: {
|
|
35
|
-
text: {
|
|
36
|
-
'printf': [
|
|
37
|
-
'Submit {0} items',
|
|
38
|
-
{ 'countNonNull': [{ 'var': 'user[items]' }] }
|
|
39
|
-
]
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
end
|
|
43
|
-
end
|
|
6
|
+
page.table styleClass: 'table--grid', sections: [
|
|
7
|
+
->(section) do
|
|
8
|
+
section.header cellViews: ->(header) do
|
|
9
|
+
header.label text: 'Vertical'
|
|
10
|
+
header.label text: 'Horizontal'
|
|
11
|
+
header.label text: 'Unordered List'
|
|
12
|
+
end
|
|
44
13
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
14
|
+
items = [1, 2, 3]
|
|
15
|
+
section.rows objects: items, builder: ->(row, item, index) do
|
|
16
|
+
row.default colStyles: [{ width: 200, backgroundColor: '#eeeeee' }], cellViews: ->(cell) do
|
|
17
|
+
cell.panels_vertical childViews: ->(vertical) do
|
|
18
|
+
vertical.h3 text: "Title #{item}"
|
|
19
|
+
vertical.spacer height: 4
|
|
20
|
+
vertical.label text: "Subtitle #{item}"
|
|
21
|
+
end
|
|
50
22
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
23
|
+
cell.panels_horizontal childViews: ->(vertical) do
|
|
24
|
+
vertical.label text: "Left #{item}"
|
|
25
|
+
vertical.spacer width: 10
|
|
26
|
+
vertical.label text: "Right #{item}"
|
|
27
|
+
end
|
|
56
28
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
end
|
|
61
|
-
end
|
|
29
|
+
cell.panels_ul childViews: ->(ul) do
|
|
30
|
+
ul.label text: "Item A#{item}"
|
|
31
|
+
ul.label text: "Item B#{item}"
|
|
62
32
|
end
|
|
63
33
|
end
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
form.fields_submit id: 'submit_button', text: 'Submit'
|
|
34
|
+
end
|
|
67
35
|
end
|
|
68
|
-
|
|
36
|
+
]
|
|
File without changes
|
|
@@ -39,7 +39,7 @@ page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
|
|
|
39
39
|
dialog.body padding: glib_json_padding_body, childViews: ->(view) do
|
|
40
40
|
view.panels_responsive styleClass: 'popover-menu', width: 200, childViews: ->(res) do
|
|
41
41
|
res.label text: 'Item 1', styleClass: 'popover-menu-item', onClick: ->(saction) do
|
|
42
|
-
saction.
|
|
42
|
+
saction.windows_open url: 'http://localhost:3000/glib/json_ui_garage?path=pages%2Findex'
|
|
43
43
|
end
|
|
44
44
|
res.label text: 'Item 2', styleClass: 'popover-menu-item', onClick: ->(saction) do
|
|
45
45
|
saction.popovers_close key: 'menu'
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/config/routes.rb
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/lib/glib/dynamic_text.rb
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/lib/glib/value.rb
CHANGED
|
File without changes
|
data/lib/glib/version.rb
CHANGED
|
File without changes
|
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.10.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- ''
|
|
@@ -100,6 +100,7 @@ files:
|
|
|
100
100
|
- app/controllers/concerns/glib/json/traversal.rb
|
|
101
101
|
- app/controllers/concerns/glib/json/ui.rb
|
|
102
102
|
- app/controllers/concerns/glib/json/validation.rb
|
|
103
|
+
- app/controllers/glib/errors_controller.rb
|
|
103
104
|
- app/controllers/glib/glib_direct_uploads_controller.rb
|
|
104
105
|
- app/controllers/glib/home_controller.rb
|
|
105
106
|
- app/helpers/glib/app_feature_support_helper.rb
|
|
@@ -234,6 +235,7 @@ files:
|
|
|
234
235
|
- app/views/json_ui/garage/forms/submit_on_change.json.jbuilder
|
|
235
236
|
- app/views/json_ui/garage/forms/text_validation.json.jbuilder
|
|
236
237
|
- app/views/json_ui/garage/forms/timers.json.jbuilder
|
|
238
|
+
- app/views/json_ui/garage/forms/update_options.json.jbuilder
|
|
237
239
|
- app/views/json_ui/garage/home/blank.json.jbuilder
|
|
238
240
|
- app/views/json_ui/garage/home/index.json.jbuilder
|
|
239
241
|
- app/views/json_ui/garage/home/slow.json.jbuilder
|
|
@@ -386,8 +388,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
386
388
|
- !ruby/object:Gem::Version
|
|
387
389
|
version: '0'
|
|
388
390
|
requirements: []
|
|
389
|
-
|
|
390
|
-
rubygems_version: 2.7.6
|
|
391
|
+
rubygems_version: 3.4.6
|
|
391
392
|
signing_key:
|
|
392
393
|
specification_version: 4
|
|
393
394
|
summary: ''
|