glib-web 4.18.0 → 4.20.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/concerns/glib/json/new_dynamic_text.rb +0 -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/action_builder.rb +1 -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/list_builders.rb +5 -1
- data/app/helpers/glib/json_ui/table_builders.rb +1 -0
- data/app/helpers/glib/json_ui/view_builder/fields.rb +5 -2
- 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/bulk_edit_post.json.jbuilder +0 -0
- data/app/views/json_ui/garage/forms/conditional_value.json.jbuilder +2 -2
- data/app/views/json_ui/garage/forms/generic_post.json.jbuilder +0 -0
- data/app/views/json_ui/garage/forms/pickers.json.jbuilder +6 -4
- 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/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/outlined.json.jbuilder +0 -0
- data/app/views/json_ui/garage/panels/responsive.json.jbuilder +13 -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 +3 -0
- data/app/views/json_ui/garage/tables/pagination.json.jbuilder +50 -0
- data/app/views/json_ui/garage/test_page/_header.json.jbuilder +1 -1
- data/app/views/json_ui/garage/test_page/dirty_state.json.jbuilder +5 -0
- data/app/views/json_ui/garage/test_page/form_dynamic.json.jbuilder +110 -22
- data/app/views/json_ui/garage/test_page/window.json.jbuilder +17 -0
- data/app/views/json_ui/garage/views/calendar_data.json.jbuilder +0 -0
- 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/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 +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 68c288de9bf1bf340b92dfd31c6559da13ee0cb6030b907cbd6a86828c989313
|
4
|
+
data.tar.gz: 835b1a957ff4c0c72bff64bf9129219c1b806e2a1427bd043c36d1393c1c3c12
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ff195da76449fe7a87dfa795e5a7434da1b32692f4d7535e979558bd4b2869648ca27b522af95809a2a72950a77d735f0ec4bcdaf34bebdbd574e2ecc0497827
|
7
|
+
data.tar.gz: d5a35ec75ffe680c2f34483fab42c60ef2c2eaf02f8ce83b07080b24f9dd0a204c83565a293a971e79f18aa660b70b485b4d04d0a453efe425ca968b2c282fec
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -28,6 +28,9 @@ module Glib
|
|
28
28
|
end
|
29
29
|
|
30
30
|
class Standard < AbstractTemplate
|
31
|
+
badgeable
|
32
|
+
|
33
|
+
string :id
|
31
34
|
string :recordId
|
32
35
|
string :title
|
33
36
|
string :subtitle
|
@@ -36,7 +39,8 @@ module Glib
|
|
36
39
|
action :onClick
|
37
40
|
action :onLongPress
|
38
41
|
icon :icon
|
39
|
-
bool :avatar
|
42
|
+
# bool :avatar
|
43
|
+
hash :avatar, optional: [:url, :initials]
|
40
44
|
# action :onReorder
|
41
45
|
string :paramNameForFormData
|
42
46
|
string :paramNameForNewAbsoluteIndex
|
@@ -436,7 +436,8 @@ class Glib::JsonUi::ViewBuilder
|
|
436
436
|
date :max
|
437
437
|
string :type
|
438
438
|
bool :clearable
|
439
|
-
bool :buttonTemplate
|
439
|
+
bool :buttonTemplate # TODO: Remove
|
440
|
+
hash :template, required: [:type]
|
440
441
|
|
441
442
|
# Override
|
442
443
|
def value(value)
|
@@ -450,7 +451,9 @@ class Glib::JsonUi::ViewBuilder
|
|
450
451
|
date_time :min
|
451
452
|
date_time :max
|
452
453
|
bool :clearable
|
453
|
-
|
454
|
+
|
455
|
+
bool :buttonTemplate # TODO: Remove
|
456
|
+
hash :template, required: [:type]
|
454
457
|
end
|
455
458
|
|
456
459
|
class Location < AbstractField
|
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
|
File without changes
|
@@ -30,11 +30,11 @@ 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 name: 'user[date_start1]', label: 'Add start date', value: '2024-12-12',
|
33
|
+
form.fields_date width: 150, name: 'user[date_start1]', label: 'Add start date', value: '2024-12-12', 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
|
37
|
-
form.fields_date id: 'date3', name: 'user[date_end1]', label: 'End date',
|
37
|
+
form.fields_date id: 'date3', name: 'user[date_end1]', label: 'End date', template: { type: 'plain' }
|
38
38
|
|
39
39
|
|
40
40
|
form.spacer height: 20
|
File without changes
|
@@ -81,19 +81,21 @@ page.form \
|
|
81
81
|
end
|
82
82
|
|
83
83
|
form.spacer height: 8
|
84
|
-
form.
|
84
|
+
form.fields_datetime \
|
85
85
|
name: 'user[due_date]',
|
86
86
|
label: 'Add due date',
|
87
|
-
buttonTemplate: true,
|
88
87
|
min: '2024-11-01',
|
89
|
-
max: '2024-12-31'
|
88
|
+
max: '2024-12-31',
|
89
|
+
template: { type: 'plain' },
|
90
|
+
validation: { required: { message: 'Required' } }
|
90
91
|
form.spacer height: 8
|
91
92
|
|
92
93
|
form.spacer height: 8
|
93
94
|
form.fields_datetime \
|
94
95
|
name: 'user[due_date1]',
|
95
96
|
label: 'Add due datetime',
|
96
|
-
|
97
|
+
width: 200,
|
98
|
+
template: { type: 'text' }
|
97
99
|
form.spacer height: 8
|
98
100
|
|
99
101
|
form.spacer height: 20
|
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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -72,6 +72,19 @@ page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
|
|
72
72
|
end
|
73
73
|
end
|
74
74
|
|
75
|
+
scroll.spacer height: 32
|
76
|
+
scroll.hr color: '#F5F5F5', width: 'matchParent'
|
77
|
+
scroll.spacer height: 32
|
78
|
+
scroll.h2 text: 'mdAndDown (Hide true)'
|
79
|
+
scroll.spacer height: 16
|
80
|
+
scroll.panels_responsive width: 'matchParent', childViews: ->(res) do
|
81
|
+
12.times do |index|
|
82
|
+
res.panels_column lg: { cols: 1 }, mdAndDown: { hide: true }, styleClasses: ['card'], childViews: ->(col) do
|
83
|
+
col.p text: "Col #{index + 1}"
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
75
88
|
|
76
89
|
scroll.spacer height: 32
|
77
90
|
scroll.h4 text: 'With more than 12 columns'
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -14,6 +14,9 @@ page.list firstSection: ->(section) do
|
|
14
14
|
template.thumbnail title: 'Horizontal Scroll', onClick: ->(action) do
|
15
15
|
action.windows_open url: json_ui_garage_url(path: 'tables/horizontal_scroll')
|
16
16
|
end
|
17
|
+
template.thumbnail title: 'Pagination', onClick: ->(action) do
|
18
|
+
action.windows_open url: json_ui_garage_url(path: 'tables/pagination')
|
19
|
+
end
|
17
20
|
template.thumbnail title: 'Autoload as Needed', onClick: ->(action) do
|
18
21
|
action.windows_open url: json_ui_garage_url(path: 'tables/autoload_as_needed')
|
19
22
|
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
# column_indexes = (1..3)
|
2
|
+
|
3
|
+
json.title 'Tables'
|
4
|
+
|
5
|
+
page = json_ui_page json
|
6
|
+
render "#{@path_prefix}/nav_menu", json: json, page: page
|
7
|
+
|
8
|
+
per_page = 20
|
9
|
+
page_index = params[:page]&.to_i || 1
|
10
|
+
|
11
|
+
page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
|
12
|
+
scroll.panels_table firstSection: ->(section) do
|
13
|
+
section.header cellViews: ->(header) do
|
14
|
+
header.label text: "Name"
|
15
|
+
header.label text: "Status"
|
16
|
+
end
|
17
|
+
|
18
|
+
items = (1..per_page).map do |index|
|
19
|
+
(per_page * (page_index - 1)) + index
|
20
|
+
end
|
21
|
+
|
22
|
+
# raise "I1: #{items}"
|
23
|
+
|
24
|
+
section.rows objects: items, builder: ->(row, item, index) do
|
25
|
+
row.default colStyles: [{ width: 200, backgroundColor: '#eeeeee' }], cellViews: ->(cell) do
|
26
|
+
# column_indexes.each do |i|
|
27
|
+
# cell.label text: "Data #{item}"
|
28
|
+
# end
|
29
|
+
|
30
|
+
cell.label text: "Data #{item}"
|
31
|
+
if item % 6 == 0
|
32
|
+
cell.chip text: "Status #{item}", tooltip: {
|
33
|
+
text: "Explanation #{item}"
|
34
|
+
}
|
35
|
+
else
|
36
|
+
cell.label text: ''
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
scroll.panels_pagination \
|
43
|
+
width: 'matchParent',
|
44
|
+
styleClass: 'compact',
|
45
|
+
length: 5,
|
46
|
+
value: page_index,
|
47
|
+
onChange: ->(action) do
|
48
|
+
action.windows_open fieldName: 'page', url: json_ui_garage_current_url
|
49
|
+
end
|
50
|
+
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
navs = ['form', 'dialog', 'form_dynamic', 'auto_validate', 'multiupload', 'dirty_state']
|
1
|
+
navs = ['form', 'dialog', 'form_dynamic', 'auto_validate', 'multiupload', 'dirty_state', 'window']
|
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|
|
@@ -28,6 +28,11 @@ page.body childViews: ->(body) do
|
|
28
28
|
form.fields_check name: 'user[check][]', checkValue: 'choice2', label: 'choice2'
|
29
29
|
form.fields_check name: 'user[check][]', checkValue: 'choice2', label: 'choice3', value: 'choice2'
|
30
30
|
|
31
|
+
form.spacer height: 14
|
32
|
+
form.button text: 'navigate', onClick: ->(action) do
|
33
|
+
action.windows_open updateExisting: true, url: json_ui_garage_url(path: 'test_page/multiupload')
|
34
|
+
end
|
35
|
+
|
31
36
|
form.spacer height: 24
|
32
37
|
form.panels_split width: 'matchParent', content: ->(split) do
|
33
38
|
split.left childViews: ->(left) do
|
@@ -22,40 +22,128 @@ page.body childViews: ->(body) do
|
|
22
22
|
{ name: 'question', value: 'Quality of work' },
|
23
23
|
{ name: 'type', value: 'rating' },
|
24
24
|
{ name: 'enabled', value: '1' },
|
25
|
+
{ name: 'error_message', value: 'Wrong answer' }
|
25
26
|
],
|
26
27
|
[
|
27
28
|
{ name: 'question', value: 'Satisfied?' },
|
28
29
|
{ name: 'type', value: 'yes_no' },
|
30
|
+
{ name: 'error_message', value: 'Incompatible selection' }
|
29
31
|
]
|
30
32
|
]
|
31
|
-
|
32
|
-
form.fields_dynamicGroup width: 'matchParent', name: 'user[evaluation]', groupFieldProperties: properties, titlePrefix: 'Entry', content: ->(group) do
|
33
|
+
form.fields_dynamicGroup id: 'form_dynamic_group', width: 'matchParent', name: 'user[evaluation]', groupFieldProperties: properties, titlePrefix: 'Entry', content: ->(group) do
|
33
34
|
group.template padding: { left: 32 }, childViews: ->(template) do
|
34
35
|
template.spacer height: 10
|
35
|
-
template.
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
36
|
+
template.fields_hidden name: 'error_message'
|
37
|
+
template.fields_text width: 'matchParent', name: 'question', label: 'Question', placeholder: 'Question', styleClass: 'question'
|
38
|
+
|
39
|
+
form.panels_responsive id: 'responsive_{{entry_index}}', childViews: ->(column) do
|
40
|
+
options = [:rating, :yes_no, :choices]
|
41
|
+
template.fields_select \
|
42
|
+
width: 'matchParent',
|
43
|
+
name: 'type',
|
44
|
+
label: 'Answer Type',
|
45
|
+
placeholder: 'Answer Type',
|
46
|
+
value: 'rating',
|
47
|
+
styleClass: 'answer_type',
|
48
|
+
options: options.map { |o| { text: o.to_s.humanize, value: o } },
|
49
|
+
onChangeAndLoad: ->(action) do
|
50
|
+
action.runMultiple childActions: ->(multiple) do
|
51
|
+
multiple.logics_set \
|
52
|
+
cacheData: true, # This is so that the the new data is retained when the `dynamicGroup` gets re-rendered.
|
53
|
+
debug: true,
|
54
|
+
targetId: 'responsive_{{entry_index}}', dataBuilder: ->(set) do
|
55
|
+
set.panels_responsive width: 'matchParent', accessory: ->(accessory) do
|
56
|
+
accessory.footer childViews: ->(footer) do
|
57
|
+
footer.fields_check \
|
58
|
+
width: 'matchParent',
|
59
|
+
id: 'check_{{entry_index}}',
|
60
|
+
name: 'enabled',
|
61
|
+
label: 'Enable',
|
62
|
+
styleClass: 'enable',
|
63
|
+
checkValue: true
|
64
|
+
|
65
|
+
footer.panels_split width: 'matchParent', content: ->(split) do
|
66
|
+
split.right childViews: ->(right) do
|
67
|
+
right.label text: 'This should be right-aligned'
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end, onSet: ->(subaction) do
|
73
|
+
subaction.logics_set \
|
74
|
+
targetId: 'check_{{entry_index}}',
|
75
|
+
conditionalData: {
|
76
|
+
value: {
|
77
|
+
"==": [{ "var": 'user[evaluation][{{entry_index}}][type]' }, 'rating']
|
78
|
+
}
|
79
|
+
}
|
80
|
+
end
|
81
|
+
|
82
|
+
multiple.logics_set \
|
83
|
+
targetId: 'choices_panel_{{entry_index}}',
|
84
|
+
debug: true,
|
85
|
+
conditionalData: {
|
86
|
+
displayed: {
|
87
|
+
"==": [{ "var": 'user[evaluation][{{entry_index}}][type]' }, 'choices']
|
88
|
+
}
|
89
|
+
}
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end, accessory: ->(accessory) do
|
93
|
+
accessory.footer childViews: ->(footer) do
|
94
|
+
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
template.icon \
|
99
|
+
id: 'error_icon_{{entry_index}}',
|
100
|
+
name: 'error',
|
101
|
+
onLoad: ->(action) do
|
102
|
+
action.logics_set debug: true, targetId: 'error_icon_{{entry_index}}', conditionalData: {
|
103
|
+
displayed: {
|
104
|
+
"!!": [
|
105
|
+
{ 'var': '{{entry_prefix}}[error_message]' }
|
106
|
+
]
|
107
|
+
},
|
108
|
+
'tooltip.text': { 'var': '{{entry_prefix}}[error_message]' }
|
109
|
+
}
|
110
|
+
end
|
111
|
+
template.panels_vertical id: 'choices_panel_{{entry_index}}', childViews: ->(vertical) do
|
112
|
+
(1..5).each do |i|
|
113
|
+
vertical.fields_text \
|
114
|
+
id: "input_choice_{{entry_index}}_#{i}",
|
115
|
+
width: 'matchParent',
|
116
|
+
name: "choices_#{i}",
|
117
|
+
label: "Choice #{i}",
|
118
|
+
displayed: i <= 1,
|
119
|
+
onChange: ->(action) do
|
120
|
+
action.logics_set targetId: "input_choice_{{entry_index}}_#{i + 1}", conditionalData: {
|
121
|
+
displayed: { "isPresent": [{ "var": "user[evaluation][{{entry_index}}][choices_#{i}]" }] }
|
122
|
+
}
|
123
|
+
end
|
124
|
+
end
|
125
|
+
end
|
52
126
|
|
53
127
|
template.spacer height: 14
|
54
128
|
end
|
55
129
|
end
|
56
|
-
|
57
|
-
form.
|
58
|
-
|
130
|
+
|
131
|
+
form.panels_horizontal \
|
132
|
+
align: 'middle',
|
133
|
+
childViews: ->(horizontal) do
|
134
|
+
horizontal.icon \
|
135
|
+
name: 'add_circle',
|
136
|
+
styleClasses: ['success']
|
137
|
+
|
138
|
+
horizontal.spacer width: 10
|
139
|
+
horizontal.h4 text: 'Add item'
|
140
|
+
end,
|
141
|
+
onClick: ->(action) do
|
142
|
+
action.components_invoke targetId: 'form_dynamic_group', name: 'addGroupEntry'
|
143
|
+
end
|
144
|
+
|
145
|
+
form.spacer height: 20
|
146
|
+
form.fields_submit text: 'Submit'
|
59
147
|
end
|
60
148
|
|
61
149
|
res.spacer height: 16
|
@@ -0,0 +1,17 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
json.title 'Test Page (Form)'
|
4
|
+
|
5
|
+
page = json_ui_page json
|
6
|
+
|
7
|
+
page.body childViews: ->(body) do
|
8
|
+
render 'json_ui/garage/test_page/header', view: body
|
9
|
+
|
10
|
+
body.panels_responsive padding: glib_json_padding_body, childViews: ->(res) do
|
11
|
+
res.h2 text: 'Window'
|
12
|
+
res.spacer height: 8
|
13
|
+
res.button text: 'windows/open updateExisting: true', onClick: ->(action) do
|
14
|
+
action.windows_open updateExisting: true, url: json_ui_garage_url(path: 'test_page/multiupload')
|
15
|
+
end
|
16
|
+
end
|
17
|
+
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
|
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.20.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ''
|
@@ -315,6 +315,7 @@ files:
|
|
315
315
|
- app/views/json_ui/garage/tables/index.json.jbuilder
|
316
316
|
- app/views/json_ui/garage/tables/layout.json.jbuilder
|
317
317
|
- app/views/json_ui/garage/tables/nested_table.json.jbuilder
|
318
|
+
- app/views/json_ui/garage/tables/pagination.json.jbuilder
|
318
319
|
- app/views/json_ui/garage/tables/panel_content.json.jbuilder
|
319
320
|
- app/views/json_ui/garage/test_page/_header.json.jbuilder
|
320
321
|
- app/views/json_ui/garage/test_page/auto_validate.json.jbuilder
|
@@ -324,6 +325,7 @@ files:
|
|
324
325
|
- app/views/json_ui/garage/test_page/form.json.jbuilder
|
325
326
|
- app/views/json_ui/garage/test_page/form_dynamic.json.jbuilder
|
326
327
|
- app/views/json_ui/garage/test_page/multiupload.json.jbuilder
|
328
|
+
- app/views/json_ui/garage/test_page/window.json.jbuilder
|
327
329
|
- app/views/json_ui/garage/views/_chart_data.json.jbuilder
|
328
330
|
- app/views/json_ui/garage/views/banners.json.jbuilder
|
329
331
|
- app/views/json_ui/garage/views/calendar_data.json.jbuilder
|
@@ -406,7 +408,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
406
408
|
- !ruby/object:Gem::Version
|
407
409
|
version: '0'
|
408
410
|
requirements: []
|
409
|
-
|
411
|
+
rubyforge_project:
|
412
|
+
rubygems_version: 2.7.6
|
410
413
|
signing_key:
|
411
414
|
specification_version: 4
|
412
415
|
summary: ''
|