glib-web 4.20.0 → 4.21.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/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/fields.rb +6 -1
- data/app/helpers/glib/json_ui/analytics_helper.rb +0 -0
- data/app/helpers/glib/json_ui/generic_builders.rb +0 -0
- 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/dynamic_group.json.jbuilder +50 -18
- data/app/views/json_ui/garage/forms/generic_post.json.jbuilder +0 -0
- 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/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/pagination.json.jbuilder +3 -3
- data/app/views/json_ui/garage/test_page/form.json.jbuilder +16 -0
- data/app/views/json_ui/garage/test_page/form_dynamic.json.jbuilder +20 -20
- data/app/views/json_ui/garage/views/calendar_data.json.jbuilder +0 -0
- data/app/views/json_ui/garage/views/controls.json.jbuilder +13 -3
- 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 +2 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d78202b475738a29ed66ed9ab23374b4ccebdbd9d58554e60273d41fa99acf8a
|
4
|
+
data.tar.gz: b51e17878e5274b4955a2784a8c28f1fd739668ecea83a216b73380f4aa75d48
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a70cb51681f41ee739ff26fc4551b85ed5a7518267d9c911fcc0c5822261a7b0daa51bf25eab87868fba4206567355448cea1bf241bca10a903b3f6b2d603259
|
7
|
+
data.tar.gz: dfa00b2574d73744bf31643d1e71db360772c79eebae88e2e1bc6ce9c6fae18a999f0caee5756dba83b5081f698a52753693a5300e6ca9d0e80709281be795fe
|
File without changes
|
File without changes
|
File without changes
|
@@ -14,10 +14,15 @@ class Glib::JsonUi::ActionBuilder
|
|
14
14
|
action :onReset
|
15
15
|
end
|
16
16
|
|
17
|
-
|
17
|
+
# deprecated
|
18
18
|
class GetDynamicGroupEntryValues < Action
|
19
19
|
array :names
|
20
20
|
action :onGet
|
21
21
|
end
|
22
|
+
|
23
|
+
class GetValues < Action
|
24
|
+
hash :fieldNames
|
25
|
+
action :onGet
|
26
|
+
end
|
22
27
|
end
|
23
28
|
end
|
File without changes
|
File without changes
|
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,8 +30,8 @@ page.form url: json_ui_garage_url(path: 'forms/generic_post'), method: 'post', p
|
|
30
30
|
template.fields_hidden name: 'error_message'
|
31
31
|
template.fields_text width: 'matchParent', name: 'question', label: 'Question', placeholder: 'Question'
|
32
32
|
|
33
|
-
form.panels_responsive id: 'responsive_{{
|
34
|
-
options = [:rating, :yes_no, :choices]
|
33
|
+
form.panels_responsive id: 'responsive_{{entryIndex}}', childViews: ->(column) do
|
34
|
+
options = [:rating, :yes_no, :choices, :unspecified]
|
35
35
|
template.fields_select \
|
36
36
|
width: 'matchParent',
|
37
37
|
name: 'type',
|
@@ -41,16 +41,48 @@ page.form url: json_ui_garage_url(path: 'forms/generic_post'), method: 'post', p
|
|
41
41
|
options: options.map { |o| { text: o.to_s.humanize, value: o } },
|
42
42
|
onChangeAndLoad: ->(action) do
|
43
43
|
action.runMultiple childActions: ->(multiple) do
|
44
|
+
multiple.fields_getValues \
|
45
|
+
fieldNames: {
|
46
|
+
'{{entryPrefix}}[type]' => nil,
|
47
|
+
'{{entryPrefix}}[question]' => 'question'
|
48
|
+
},
|
49
|
+
onGet: ->(get) do
|
50
|
+
# get.snackbars_alert paramName: 'message', fieldName: 'entry-{{entryIndex}}'
|
51
|
+
|
52
|
+
get.http_get \
|
53
|
+
fieldName: 'entry',
|
54
|
+
url: json_ui_garage_current_url(entry: {
|
55
|
+
index: '{{entryIndex}}'
|
56
|
+
}).gsub('%7B%7B', '{{').gsub('%7D%7D', '}}') # manually change url because rails escape {{entryIndex}}
|
57
|
+
end
|
58
|
+
|
59
|
+
# multiple.logics_run \
|
60
|
+
# condition: { "==": [{ "var": "user[evaluation][{{entryIndex}}][type]" }, 'unspecified'] },
|
61
|
+
# onTrue: ->(subaction) do
|
62
|
+
# subaction.dialogs_alert message: 'Please select a valid type'
|
63
|
+
# end
|
64
|
+
|
65
|
+
# multiple.logics_run \
|
66
|
+
# condition: { "==": [{ "var": "[{{entryIndex}}][type]" }, 'unspecified'] },
|
67
|
+
# onTrue: ->(subaction) do
|
68
|
+
# subaction.dialogs_alert message: 'Please select a valid type'
|
69
|
+
# end
|
70
|
+
|
71
|
+
multiple.logics_run \
|
72
|
+
condition: { "==": [{ "var": '{{entryPrefix}}[type]' }, 'unspecified'] },
|
73
|
+
onTrue: ->(subaction) do
|
74
|
+
subaction.dialogs_alert message: 'Please select a valid type'
|
75
|
+
end
|
76
|
+
|
44
77
|
multiple.logics_set \
|
45
|
-
cacheData: true, # This is so that the the new data is retained when the `dynamicGroup` gets re-rendered.
|
46
78
|
debug: true,
|
47
|
-
targetId: 'responsive_{{
|
79
|
+
targetId: 'responsive_{{entryIndex}}', dataBuilder: ->(set) do
|
48
80
|
set.panels_responsive width: 'matchParent', accessory: ->(accessory) do
|
49
81
|
accessory.footer childViews: ->(footer) do
|
50
82
|
footer.fields_check \
|
51
83
|
width: 'matchParent',
|
52
|
-
id: 'check_{{
|
53
|
-
name: 'enabled',
|
84
|
+
id: 'check_{{entryIndex}}',
|
85
|
+
name: '{{entryPrefix}}[enabled]',
|
54
86
|
label: 'Enable',
|
55
87
|
checkValue: true
|
56
88
|
|
@@ -63,20 +95,20 @@ page.form url: json_ui_garage_url(path: 'forms/generic_post'), method: 'post', p
|
|
63
95
|
end
|
64
96
|
end, onSet: ->(subaction) do
|
65
97
|
subaction.logics_set \
|
66
|
-
targetId: 'check_{{
|
98
|
+
targetId: 'check_{{entryIndex}}',
|
67
99
|
conditionalData: {
|
68
100
|
value: {
|
69
|
-
"==": [{ "var": 'user[evaluation][{{
|
101
|
+
"==": [{ "var": 'user[evaluation][{{entryIndex}}][type]' }, 'rating']
|
70
102
|
}
|
71
103
|
}
|
72
104
|
end
|
73
105
|
|
74
106
|
multiple.logics_set \
|
75
|
-
targetId: 'choices_panel_{{
|
107
|
+
targetId: 'choices_panel_{{entryIndex}}',
|
76
108
|
debug: true,
|
77
109
|
conditionalData: {
|
78
110
|
displayed: {
|
79
|
-
"==": [{ "var": 'user[evaluation][{{
|
111
|
+
"==": [{ "var": 'user[evaluation][{{entryIndex}}][type]' }, 'choices']
|
80
112
|
}
|
81
113
|
}
|
82
114
|
end
|
@@ -88,29 +120,29 @@ page.form url: json_ui_garage_url(path: 'forms/generic_post'), method: 'post', p
|
|
88
120
|
end
|
89
121
|
|
90
122
|
template.icon \
|
91
|
-
id: 'error_icon_{{
|
123
|
+
id: 'error_icon_{{entryIndex}}',
|
92
124
|
name: 'error',
|
93
125
|
onLoad: ->(action) do
|
94
|
-
action.logics_set debug: true, targetId: 'error_icon_{{
|
126
|
+
action.logics_set debug: true, targetId: 'error_icon_{{entryIndex}}', conditionalData: {
|
95
127
|
displayed: {
|
96
128
|
"!!": [
|
97
|
-
{ 'var': '{{
|
129
|
+
{ 'var': '{{entryPrefix}}[error_message]' }
|
98
130
|
]
|
99
131
|
},
|
100
|
-
'tooltip.text': { 'var': '{{
|
132
|
+
'tooltip.text': { 'var': '{{entryPrefix}}[error_message]' }
|
101
133
|
}
|
102
134
|
end
|
103
|
-
template.panels_vertical id: 'choices_panel_{{
|
135
|
+
template.panels_vertical id: 'choices_panel_{{entryIndex}}', childViews: ->(vertical) do
|
104
136
|
(1..5).each do |i|
|
105
137
|
vertical.fields_text \
|
106
|
-
id: "input_choice_{{
|
138
|
+
id: "input_choice_{{entryIndex}}_#{i}",
|
107
139
|
width: 'matchParent',
|
108
140
|
name: "choices_#{i}",
|
109
141
|
label: "Choice #{i}",
|
110
142
|
displayed: i <= 1,
|
111
143
|
onChange: ->(action) do
|
112
|
-
action.logics_set targetId: "input_choice_{{
|
113
|
-
displayed: { "isPresent": [{ "var": "user[evaluation][{{
|
144
|
+
action.logics_set targetId: "input_choice_{{entryIndex}}_#{i + 1}", conditionalData: {
|
145
|
+
displayed: { "isPresent": [{ "var": "user[evaluation][{{entryIndex}}][choices_#{i}]" }] }
|
114
146
|
}
|
115
147
|
end
|
116
148
|
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
|
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
|
@@ -9,10 +9,10 @@ per_page = 20
|
|
9
9
|
page_index = params[:page]&.to_i || 1
|
10
10
|
|
11
11
|
page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
|
12
|
-
scroll.panels_table firstSection: ->(section) do
|
12
|
+
scroll.panels_table key: params[:page], firstSection: ->(section) do
|
13
13
|
section.header cellViews: ->(header) do
|
14
|
-
header.label text:
|
15
|
-
header.label text:
|
14
|
+
header.label text: 'Name'
|
15
|
+
header.label text: 'Status'
|
16
16
|
end
|
17
17
|
|
18
18
|
items = (1..per_page).map do |index|
|
@@ -118,6 +118,22 @@ page.body childViews: ->(body) do
|
|
118
118
|
|
119
119
|
form.fields_textarea width: 'matchParent', name: 'user[textarea]', id: 'textarea', value: 'Lorem ipsum et dumet bla bla bla...'
|
120
120
|
|
121
|
+
form.hr width: 'matchParent'
|
122
|
+
|
123
|
+
form.hr width: 'matchParent'
|
124
|
+
|
125
|
+
form.fields_check label: 'show nested panel', name: 'not_user[nested_panel]', checkValue: true, onChange: ->(action) do
|
126
|
+
action.logics_set targetId: 'nested_panel', conditionalData: { displayed: { "var": 'not_user[nested_panel]' } }
|
127
|
+
end
|
128
|
+
form.panels_responsive backgroundColor: '#FF0000', padding: { all: 8 }, displayed: false, id: 'nested_panel', width: 'matchParent', childViews: ->(xres) do
|
129
|
+
xres.panels_horizontal backgroundColor: '#00FF00', padding: { all: 8 }, width: 'matchParent', childViews: ->(ver) do
|
130
|
+
ver.panels_vertical width: 'matchParent', childViews: ->(hori) do
|
131
|
+
hori.fields_text width: 300, name: 'user[should_not_submitted]', value: ''
|
132
|
+
end
|
133
|
+
end
|
134
|
+
end
|
135
|
+
form.fields_text width: 300, name: 'user[should_submitted]', displayed: false, value: 'Should be submitted even if not visible', submitWhenNotDisplayed: true
|
136
|
+
|
121
137
|
form.hr width: 'matchParent'
|
122
138
|
form.fields_submit text: 'submit'
|
123
139
|
form.spacer height: 2
|
@@ -36,7 +36,7 @@ page.body childViews: ->(body) do
|
|
36
36
|
template.fields_hidden name: 'error_message'
|
37
37
|
template.fields_text width: 'matchParent', name: 'question', label: 'Question', placeholder: 'Question', styleClass: 'question'
|
38
38
|
|
39
|
-
form.panels_responsive id: 'responsive_{{
|
39
|
+
form.panels_responsive id: 'responsive_{{entryIndex}}', childViews: ->(column) do
|
40
40
|
options = [:rating, :yes_no, :choices]
|
41
41
|
template.fields_select \
|
42
42
|
width: 'matchParent',
|
@@ -48,16 +48,17 @@ page.body childViews: ->(body) do
|
|
48
48
|
options: options.map { |o| { text: o.to_s.humanize, value: o } },
|
49
49
|
onChangeAndLoad: ->(action) do
|
50
50
|
action.runMultiple childActions: ->(multiple) do
|
51
|
+
multiple.fields_getValues fieldNames: { '{{entryPrefix}}[type]' => nil, '{{entryPrefix}}[question]' => nil }, onGet: ->(get) do
|
52
|
+
get.snackbars_alert paramName: 'message', fieldName: 'entry-{{entryIndex}}'
|
53
|
+
end
|
51
54
|
multiple.logics_set \
|
52
|
-
|
53
|
-
debug: true,
|
54
|
-
targetId: 'responsive_{{entry_index}}', dataBuilder: ->(set) do
|
55
|
+
targetId: 'responsive_{{entryIndex}}', dataBuilder: ->(set) do
|
55
56
|
set.panels_responsive width: 'matchParent', accessory: ->(accessory) do
|
56
57
|
accessory.footer childViews: ->(footer) do
|
57
58
|
footer.fields_check \
|
58
59
|
width: 'matchParent',
|
59
|
-
id: 'check_{{
|
60
|
-
name: 'enabled',
|
60
|
+
id: 'check_{{entryIndex}}',
|
61
|
+
name: '{{entryPrefix}}[enabled]',
|
61
62
|
label: 'Enable',
|
62
63
|
styleClass: 'enable',
|
63
64
|
checkValue: true
|
@@ -71,20 +72,19 @@ page.body childViews: ->(body) do
|
|
71
72
|
end
|
72
73
|
end, onSet: ->(subaction) do
|
73
74
|
subaction.logics_set \
|
74
|
-
targetId: 'check_{{
|
75
|
+
targetId: 'check_{{entryIndex}}',
|
75
76
|
conditionalData: {
|
76
77
|
value: {
|
77
|
-
"==": [{ "var": 'user[evaluation][{{
|
78
|
+
"==": [{ "var": 'user[evaluation][{{entryIndex}}][type]' }, 'rating']
|
78
79
|
}
|
79
80
|
}
|
80
81
|
end
|
81
82
|
|
82
83
|
multiple.logics_set \
|
83
|
-
targetId: 'choices_panel_{{
|
84
|
-
debug: true,
|
84
|
+
targetId: 'choices_panel_{{entryIndex}}',
|
85
85
|
conditionalData: {
|
86
86
|
displayed: {
|
87
|
-
"==": [{ "var": 'user[evaluation][{{
|
87
|
+
"==": [{ "var": 'user[evaluation][{{entryIndex}}][type]' }, 'choices']
|
88
88
|
}
|
89
89
|
}
|
90
90
|
end
|
@@ -96,29 +96,29 @@ page.body childViews: ->(body) do
|
|
96
96
|
end
|
97
97
|
|
98
98
|
template.icon \
|
99
|
-
id: 'error_icon_{{
|
99
|
+
id: 'error_icon_{{entryIndex}}',
|
100
100
|
name: 'error',
|
101
101
|
onLoad: ->(action) do
|
102
|
-
action.logics_set
|
102
|
+
action.logics_set targetId: 'error_icon_{{entryIndex}}', conditionalData: {
|
103
103
|
displayed: {
|
104
104
|
"!!": [
|
105
|
-
{ 'var': '{{
|
105
|
+
{ 'var': '{{entryPrefix}}[error_message]' }
|
106
106
|
]
|
107
107
|
},
|
108
|
-
'tooltip.text': { 'var': '{{
|
108
|
+
'tooltip.text': { 'var': '{{entryPrefix}}[error_message]' }
|
109
109
|
}
|
110
110
|
end
|
111
|
-
template.panels_vertical id: 'choices_panel_{{
|
111
|
+
template.panels_vertical id: 'choices_panel_{{entryIndex}}', childViews: ->(vertical) do
|
112
112
|
(1..5).each do |i|
|
113
113
|
vertical.fields_text \
|
114
|
-
id: "input_choice_{{
|
114
|
+
id: "input_choice_{{entryIndex}}_#{i}",
|
115
115
|
width: 'matchParent',
|
116
|
-
name: "
|
116
|
+
name: "[choices][#{i}]",
|
117
117
|
label: "Choice #{i}",
|
118
118
|
displayed: i <= 1,
|
119
119
|
onChange: ->(action) do
|
120
|
-
action.logics_set targetId: "input_choice_{{
|
121
|
-
displayed: { "isPresent": [{ "var": "
|
120
|
+
action.logics_set targetId: "input_choice_{{entryIndex}}_#{i + 1}", conditionalData: {
|
121
|
+
displayed: { "isPresent": [{ "var": "{{entryPrefix}}[choices][#{i}]" }] }
|
122
122
|
}
|
123
123
|
end
|
124
124
|
end
|
File without changes
|
@@ -63,12 +63,12 @@ page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
|
|
63
63
|
onClick: ->(action) do
|
64
64
|
action.popovers_show \
|
65
65
|
key: 'menu2',
|
66
|
-
placement: '
|
66
|
+
placement: 'right-start',
|
67
67
|
width: 200,
|
68
68
|
content: ->(dialog) do
|
69
69
|
dialog.body styleClass: 'popover-menu', padding: glib_json_padding_body, childViews: ->(res) do
|
70
70
|
res.label text: 'Item 1', styleClass: 'popover-menu-item', onClick: ->(saction) do
|
71
|
-
saction.
|
71
|
+
saction.windows_open url: json_ui_garage_url(path: 'pages/index')
|
72
72
|
end
|
73
73
|
res.label text: 'Item 2', styleClass: 'popover-menu-item', onClick: ->(saction) do
|
74
74
|
saction.popovers_close key: 'menu2'
|
@@ -92,7 +92,17 @@ page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
|
|
92
92
|
icon: 'info',
|
93
93
|
styleClasses: ['icon', 'text'],
|
94
94
|
onClick: ->(action) do
|
95
|
-
action.dialogs_alert message: 'Perform action'
|
95
|
+
# action.dialogs_alert message: 'Perform action'
|
96
|
+
action.popovers_show \
|
97
|
+
key: 'menu2',
|
98
|
+
placement: 'bottom-start',
|
99
|
+
width: 200,
|
100
|
+
persistent: true,
|
101
|
+
content: ->(dialog) do
|
102
|
+
dialog.body styleClass: 'popover-menu', padding: glib_json_padding_body, childViews: ->(res) do
|
103
|
+
res.label text: 'This is a persistent popover'
|
104
|
+
end
|
105
|
+
end
|
96
106
|
end
|
97
107
|
|
98
108
|
scroll.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
|
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.21.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ''
|
@@ -408,8 +408,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
408
408
|
- !ruby/object:Gem::Version
|
409
409
|
version: '0'
|
410
410
|
requirements: []
|
411
|
-
|
412
|
-
rubygems_version: 2.7.6
|
411
|
+
rubygems_version: 3.4.6
|
413
412
|
signing_key:
|
414
413
|
specification_version: 4
|
415
414
|
summary: ''
|