glib-web 3.27.1 → 4.0.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/auth/response.rb +0 -22
- data/app/controllers/concerns/glib/json/libs.rb +33 -10
- 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/abstract_builder.rb +0 -8
- data/app/helpers/glib/json_ui/action_builder/components.rb +0 -5
- data/app/helpers/glib/json_ui/action_builder/dialogs.rb +4 -23
- data/app/helpers/glib/json_ui/action_builder/logics.rb +11 -0
- data/app/helpers/glib/json_ui/action_builder/popovers.rb +0 -9
- data/app/helpers/glib/json_ui/action_builder/sheets.rb +0 -0
- data/app/helpers/glib/json_ui/action_builder/windows.rb +4 -3
- data/app/helpers/glib/json_ui/action_builder.rb +0 -24
- data/app/helpers/glib/json_ui/analytics_helper.rb +0 -0
- data/app/helpers/glib/json_ui/builder/mouse_events.rb +0 -7
- data/app/helpers/glib/json_ui/default.rb +4 -4
- data/app/helpers/glib/json_ui/generic_builders.rb +0 -0
- data/app/helpers/glib/json_ui/list_builders.rb +0 -3
- data/app/helpers/glib/json_ui/page_helper.rb +9 -1
- data/app/helpers/glib/json_ui/view_builder/fields.rb +23 -38
- data/app/helpers/glib/json_ui/view_builder/panels.rb +1 -0
- data/app/helpers/glib/json_ui/view_builder.rb +5 -14
- 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/policies/glib/application_policy.rb +0 -6
- 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/_components.json.jbuilder +2 -6
- data/app/views/json_ui/garage/actions/_dialogs.json.jbuilder +19 -14
- data/app/views/json_ui/garage/actions/_reload.json.jbuilder +1 -1
- data/app/views/json_ui/garage/actions/_windows.json.jbuilder +5 -0
- data/app/views/json_ui/garage/actions/dialogs_oauth_post.json.jbuilder +0 -0
- data/app/views/json_ui/garage/actions/partial_update.json.jbuilder +1 -1
- data/app/views/json_ui/garage/forms/_alert_post_data.json.jbuilder +1 -3
- data/app/views/json_ui/garage/forms/_partial_update_execute.json.jbuilder +1 -1
- data/app/views/json_ui/garage/forms/_read_more_text.json.jbuilder +27 -20
- data/app/views/json_ui/garage/forms/conditional_value.json.jbuilder +49 -68
- data/app/views/json_ui/garage/forms/dirty_prompt.json.jbuilder +0 -28
- data/app/views/json_ui/garage/forms/dynamic_select_data.json.jbuilder +0 -0
- data/app/views/json_ui/garage/forms/file_upload.json.jbuilder +14 -3
- data/app/views/json_ui/garage/forms/generic_post.json.jbuilder +0 -0
- data/app/views/json_ui/garage/forms/otp_field.json.jbuilder +11 -9
- data/app/views/json_ui/garage/forms/rich_text_preview.json.jbuilder +0 -1
- data/app/views/json_ui/garage/forms/selects.json.jbuilder +17 -24
- data/app/views/json_ui/garage/forms/show_hide.json.jbuilder +317 -271
- 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/timers.json.jbuilder +0 -90
- 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/action_cable.json.jbuilder +3 -3
- 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/lifecycle_hooks.json.jbuilder +4 -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/index.json.jbuilder +0 -0
- data/app/views/json_ui/garage/views/calendar_data.json.jbuilder +0 -0
- data/app/views/json_ui/garage/views/{components_update.json.jbuilder → components_replace.json.jbuilder} +6 -6
- data/app/views/json_ui/garage/views/controls.json.jbuilder +0 -32
- data/app/views/json_ui/garage/views/links.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/blob.rb +15 -0
- data/lib/glib/direct_uploads_controller.rb +15 -7
- data/lib/glib/dynamic_text/config.rb +0 -0
- data/lib/glib/dynamic_text.rb +0 -0
- data/lib/glib/engine.rb +1 -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 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 559c94d3c5c18214daed6e708f570879f069e39aabba1f08d248f2d0e2d62bf2
|
|
4
|
+
data.tar.gz: 6d3cc151c5226a7741a5508d27a77463ea64e09e5db08601ff3927d8a5c9191c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: bacdb36e88f43a3ce8ce1ff7be69b14414024dfa34ac41c51d8dacc72f23122f09dcfe4400c138134245b4fa785d6e5075c3f6573bc6d3d46820b4fc80ab2ec5
|
|
7
|
+
data.tar.gz: 255300aeb08012f9fdb26eda37c8f288728cbfa8cca9ca0400287d8ad1bc3fff416946c3044716d486fb0194d68993127aebe59ddd69809658b8087bb68f42a2
|
|
@@ -11,28 +11,6 @@ module Glib::Auth
|
|
|
11
11
|
params[:_dialog].present? # E.g. _dialog=v1
|
|
12
12
|
end
|
|
13
13
|
|
|
14
|
-
def __glib_error_dialog(title, message, bottom_views = [])
|
|
15
|
-
{
|
|
16
|
-
action: 'dialogs/show',
|
|
17
|
-
# Don't show another dialog, just use the current one since it's a new dialog anyway, which means
|
|
18
|
-
# that it wouldn't contain existing user data.
|
|
19
|
-
updateExisting: glib_json_dialog_mode?,
|
|
20
|
-
title: title,
|
|
21
|
-
body: {
|
|
22
|
-
childViews: [
|
|
23
|
-
{
|
|
24
|
-
view: 'label',
|
|
25
|
-
text: message
|
|
26
|
-
},
|
|
27
|
-
].concat(bottom_views),
|
|
28
|
-
padding: {
|
|
29
|
-
x: 20,
|
|
30
|
-
y: 22,
|
|
31
|
-
},
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
end
|
|
35
|
-
|
|
36
14
|
def json_ui_401_response(sign_in_url)
|
|
37
15
|
{
|
|
38
16
|
# Handle dialogs_open and windows_open
|
|
@@ -178,7 +178,7 @@ module Glib::Json::Libs
|
|
|
178
178
|
# end
|
|
179
179
|
# end
|
|
180
180
|
|
|
181
|
-
def __glib_error_dialog(title, message)
|
|
181
|
+
def __glib_error_dialog(title, message, bottom_views = [])
|
|
182
182
|
{
|
|
183
183
|
action: 'dialogs/show',
|
|
184
184
|
# Don't show another dialog, just use the current one since it's a new dialog anyway, which means
|
|
@@ -188,14 +188,21 @@ module Glib::Json::Libs
|
|
|
188
188
|
body: {
|
|
189
189
|
childViews: [
|
|
190
190
|
{
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
191
|
+
view: 'panels/vertical',
|
|
192
|
+
styleClasses: ['glib-error-dialog'],
|
|
193
|
+
childViews: [
|
|
194
|
+
{
|
|
195
|
+
view: 'label',
|
|
196
|
+
text: message
|
|
197
|
+
},
|
|
198
|
+
].concat(bottom_views),
|
|
199
|
+
}
|
|
200
|
+
]
|
|
201
|
+
# Set this in the project's custom CSS.
|
|
202
|
+
# padding: {
|
|
203
|
+
# x: 20,
|
|
204
|
+
# y: 22,
|
|
205
|
+
# },
|
|
199
206
|
}
|
|
200
207
|
}
|
|
201
208
|
end
|
|
@@ -310,7 +317,23 @@ module Glib::Json::Libs
|
|
|
310
317
|
format.json do
|
|
311
318
|
render json: {
|
|
312
319
|
glib_json_dialog_mode? ? :onLoad : :onResponse => __glib_error_dialog(
|
|
313
|
-
'Your session has expired', 'Please refresh the page and retry.'
|
|
320
|
+
'Your session has expired', 'Please refresh the page and retry.', [
|
|
321
|
+
{
|
|
322
|
+
view: 'button',
|
|
323
|
+
text: 'Refresh',
|
|
324
|
+
onClick: {
|
|
325
|
+
action: 'dialogs/close',
|
|
326
|
+
onClose: {
|
|
327
|
+
action: 'windows/reload',
|
|
328
|
+
onReload: {
|
|
329
|
+
action: 'snackbars/alert',
|
|
330
|
+
message: 'Refreshed. You can try again now.'
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
},
|
|
335
|
+
]
|
|
336
|
+
)
|
|
314
337
|
}
|
|
315
338
|
end
|
|
316
339
|
end
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -202,14 +202,6 @@ module Glib
|
|
|
202
202
|
else
|
|
203
203
|
data = {}
|
|
204
204
|
name = value
|
|
205
|
-
# data = { material: { name: value } }
|
|
206
|
-
|
|
207
|
-
# name = value
|
|
208
|
-
|
|
209
|
-
# TODO: deprecated
|
|
210
|
-
# json.set!(propName) do
|
|
211
|
-
# json.name name
|
|
212
|
-
# end
|
|
213
205
|
end
|
|
214
206
|
|
|
215
207
|
json.set!(propName) do
|
|
@@ -7,26 +7,9 @@ class Glib::JsonUi::ActionBuilder
|
|
|
7
7
|
action :onClose
|
|
8
8
|
end
|
|
9
9
|
|
|
10
|
-
# class Show < Action
|
|
11
|
-
# string :body
|
|
12
|
-
# action :onLoad
|
|
13
|
-
# action :onClose
|
|
14
|
-
# end
|
|
15
|
-
|
|
16
|
-
# Deprecated in favour of `sheets/select`
|
|
17
|
-
class Options < Action
|
|
18
|
-
string :message
|
|
19
|
-
|
|
20
|
-
def buttons(block)
|
|
21
|
-
json.buttons do
|
|
22
|
-
block.call page.menu_builder
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
10
|
|
|
27
11
|
class Show < Action
|
|
28
12
|
panels_builder :content, :body
|
|
29
|
-
bool :showClose # deprecated
|
|
30
13
|
bool :disableCloseButton
|
|
31
14
|
string :fullscreen # mobile, always
|
|
32
15
|
length :width
|
|
@@ -45,7 +28,6 @@ class Glib::JsonUi::ActionBuilder
|
|
|
45
28
|
|
|
46
29
|
class Open < Action
|
|
47
30
|
string :url, cache: true
|
|
48
|
-
bool :showClose # deprecated
|
|
49
31
|
bool :disableCloseButton
|
|
50
32
|
string :fullscreen
|
|
51
33
|
length :width
|
|
@@ -54,13 +36,8 @@ class Glib::JsonUi::ActionBuilder
|
|
|
54
36
|
bool :updateExisting
|
|
55
37
|
end
|
|
56
38
|
|
|
57
|
-
# Deprecation canceled. This is still useful for a scenario where the previous dialog
|
|
58
|
-
# was unknown, so we simply want to reload its content.
|
|
59
39
|
class Reload < Action
|
|
60
|
-
# Deprecated. Should just use dialogs_show or dialogs_open if
|
|
61
|
-
# these attributes are needed.
|
|
62
40
|
string :url, cache: true
|
|
63
|
-
bool :showClose # deprecated
|
|
64
41
|
bool :disableCloseButton
|
|
65
42
|
string :fullscreen # mobile, always
|
|
66
43
|
length :width
|
|
@@ -70,6 +47,10 @@ class Glib::JsonUi::ActionBuilder
|
|
|
70
47
|
action :onClose
|
|
71
48
|
end
|
|
72
49
|
|
|
50
|
+
class CloseAll < Action
|
|
51
|
+
action :onClose
|
|
52
|
+
end
|
|
53
|
+
|
|
73
54
|
class Oauth < Action
|
|
74
55
|
hash :provider
|
|
75
56
|
action :onSuccess
|
|
@@ -1,14 +1,5 @@
|
|
|
1
1
|
class Glib::JsonUi::ActionBuilder
|
|
2
2
|
module Popovers
|
|
3
|
-
# Deprecated. Use popovers_show instead.
|
|
4
|
-
class Open < Action
|
|
5
|
-
string :key
|
|
6
|
-
views :childViews
|
|
7
|
-
string :placement
|
|
8
|
-
int :offset
|
|
9
|
-
int :width
|
|
10
|
-
singleton_array :styleClass, :styleClasses
|
|
11
|
-
end
|
|
12
3
|
|
|
13
4
|
class Show < Action
|
|
14
5
|
panels_builder :content, :body
|
|
File without changes
|
|
@@ -20,6 +20,7 @@ class Glib::JsonUi::ActionBuilder
|
|
|
20
20
|
|
|
21
21
|
class Reload < Action
|
|
22
22
|
string :url, cache: true
|
|
23
|
+
bool :disableDirtyCheck
|
|
23
24
|
action :onReload
|
|
24
25
|
end
|
|
25
26
|
|
|
@@ -37,9 +38,9 @@ class Glib::JsonUi::ActionBuilder
|
|
|
37
38
|
required :url
|
|
38
39
|
end
|
|
39
40
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
class CloseAllWithOpen < Action
|
|
42
|
+
string :url
|
|
43
|
+
action :onOpen
|
|
43
44
|
end
|
|
44
45
|
|
|
45
46
|
class Print < Action
|
|
@@ -110,30 +110,6 @@ module Glib
|
|
|
110
110
|
end
|
|
111
111
|
end
|
|
112
112
|
|
|
113
|
-
module Logics
|
|
114
|
-
# Future: Replace showIf and loadIf
|
|
115
|
-
# Example:
|
|
116
|
-
# `submitWhenNotDisplayed` is false by default
|
|
117
|
-
# fields_text id: 'my_text', displayed: false, submitWhenNotDisplayed: true
|
|
118
|
-
#
|
|
119
|
-
# logics_if condition: { '==', BLAH1, BLAH2 }, true: ->(action) do
|
|
120
|
-
# action.components_set targetId: 'my_text', displayed: true
|
|
121
|
-
# end
|
|
122
|
-
#
|
|
123
|
-
# class If < Action
|
|
124
|
-
# hash :condition
|
|
125
|
-
# action :true
|
|
126
|
-
# action :false
|
|
127
|
-
# end
|
|
128
|
-
|
|
129
|
-
class Set < Action
|
|
130
|
-
string :targetId
|
|
131
|
-
hash :conditionalData
|
|
132
|
-
hash :variables
|
|
133
|
-
action :onSet
|
|
134
|
-
end
|
|
135
|
-
end
|
|
136
|
-
|
|
137
113
|
module Timeouts
|
|
138
114
|
class Set < Action
|
|
139
115
|
string :timerId
|
|
File without changes
|
|
@@ -17,13 +17,6 @@ module Glib
|
|
|
17
17
|
key = 'tooltip_test'
|
|
18
18
|
end
|
|
19
19
|
onMouseEnter ->(action) do
|
|
20
|
-
# action.popovers_open(
|
|
21
|
-
# key: key,
|
|
22
|
-
# placement: options[:placement] || 'top',
|
|
23
|
-
# childViews: ->(view) {
|
|
24
|
-
# view.p styleClass: 'tooltip', text: options[:text]
|
|
25
|
-
# }
|
|
26
|
-
# )
|
|
27
20
|
|
|
28
21
|
action.popovers_show(
|
|
29
22
|
key: key,
|
|
@@ -3,12 +3,12 @@ module Glib
|
|
|
3
3
|
module Default
|
|
4
4
|
def default_accepts(value)
|
|
5
5
|
default_max_size_error = {
|
|
6
|
-
body: I18n.t('
|
|
7
|
-
button: I18n.t('
|
|
6
|
+
body: I18n.t('glib.accepts.max_file_size_error.body', default: nil) || 'Files exceed the maximum size',
|
|
7
|
+
button: I18n.t('glib.accepts.max_file_size_error.button', default: nil) || 'Dismiss'
|
|
8
8
|
}
|
|
9
9
|
default_max_length_error = {
|
|
10
|
-
body: I18n.t('
|
|
11
|
-
button: I18n.t('
|
|
10
|
+
body: I18n.t('glib.accepts.max_file_length_error.body', default: nil) || 'Files exceed the maximum limit per upload',
|
|
11
|
+
button: I18n.t('glib.accepts.max_file_length_error.button', default: nil) || 'Dismiss'
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
{
|
|
File without changes
|
|
@@ -107,6 +107,8 @@ module Glib
|
|
|
107
107
|
json.url options[:url]
|
|
108
108
|
json.inputName options[:inputName]
|
|
109
109
|
json.strategy options[:strategy]
|
|
110
|
+
json.storagePrefix options[:storagePrefix]
|
|
111
|
+
json.metadata options[:metadata]
|
|
110
112
|
end
|
|
111
113
|
end
|
|
112
114
|
|
|
@@ -235,7 +237,7 @@ module Glib
|
|
|
235
237
|
def form(options = {})
|
|
236
238
|
form = Glib::JsonUi::ViewBuilder::Panels::Form.new(json, self)
|
|
237
239
|
form.childViews(->(view_builder) { })
|
|
238
|
-
panel_options = options.slice!(:url, :method, :local, :onSubmit, :paramNameForFormData, :model)
|
|
240
|
+
panel_options = options.slice!(:url, :method, :local, :onSubmit, :paramNameForFormData, :model, :onChange, :onChangeAndLoad)
|
|
239
241
|
|
|
240
242
|
json.fullPageForm do
|
|
241
243
|
json.view 'panels/fullPageForm'
|
|
@@ -281,6 +283,12 @@ module Glib
|
|
|
281
283
|
end
|
|
282
284
|
end
|
|
283
285
|
|
|
286
|
+
if (on_unload = options[:unload])
|
|
287
|
+
json.onUnload do
|
|
288
|
+
on_unload.call @action_builder
|
|
289
|
+
end
|
|
290
|
+
end
|
|
291
|
+
|
|
284
292
|
if (on_refocus = options[:refocus])
|
|
285
293
|
json.onRefocus do
|
|
286
294
|
on_refocus.call @action_builder
|
|
@@ -9,6 +9,7 @@ class Glib::JsonUi::ViewBuilder
|
|
|
9
9
|
hash :validation
|
|
10
10
|
bool :disableDirtyCheck
|
|
11
11
|
action :onChange
|
|
12
|
+
action :onChangeAndLoad
|
|
12
13
|
string :paramNameForFormData
|
|
13
14
|
string :paramNameForFieldName
|
|
14
15
|
|
|
@@ -155,9 +156,6 @@ class Glib::JsonUi::ViewBuilder
|
|
|
155
156
|
def value(value)
|
|
156
157
|
@value = value if value != Glib::Value::DEFAULT
|
|
157
158
|
end
|
|
158
|
-
|
|
159
|
-
# TODO: Remove (deprecated). Where possible, use value instead of this
|
|
160
|
-
bool :checked
|
|
161
159
|
end
|
|
162
160
|
|
|
163
161
|
# This doesn't use camel case because some terms have become single words (e.g. snackbar)
|
|
@@ -173,15 +171,6 @@ class Glib::JsonUi::ViewBuilder
|
|
|
173
171
|
string :cacheKey
|
|
174
172
|
end
|
|
175
173
|
|
|
176
|
-
# Deprecated
|
|
177
|
-
# Just use fields_select with options provided by the backend. This allows greater flexibility,
|
|
178
|
-
# which is important because different systems might want to use different values for
|
|
179
|
-
# countries as well as for regions, e.g. alpha2 vs alpha3
|
|
180
|
-
# See app/views/json_ui/garage/forms/pickers.json.jbuilder for an example
|
|
181
|
-
class Country < AbstractField
|
|
182
|
-
hash :region
|
|
183
|
-
end
|
|
184
|
-
|
|
185
174
|
class Select < AbstractField
|
|
186
175
|
array :options
|
|
187
176
|
# bool :readOnly
|
|
@@ -209,14 +198,6 @@ class Glib::JsonUi::ViewBuilder
|
|
|
209
198
|
end
|
|
210
199
|
end
|
|
211
200
|
|
|
212
|
-
# TODO: Remove (deprecated)
|
|
213
|
-
class Autocomplete < AbstractField
|
|
214
|
-
array :options
|
|
215
|
-
# bool :readOnly
|
|
216
|
-
bool :multiple, cache: true
|
|
217
|
-
# bool :manualEntry
|
|
218
|
-
hash :append
|
|
219
|
-
end
|
|
220
201
|
|
|
221
202
|
class DynamicSelect < AbstractField
|
|
222
203
|
array :selectedOptions
|
|
@@ -286,9 +267,10 @@ class Glib::JsonUi::ViewBuilder
|
|
|
286
267
|
string :fileUrl
|
|
287
268
|
string :fileTitle
|
|
288
269
|
string :uploadText
|
|
289
|
-
string :uploadIcon # deprecated
|
|
290
270
|
hash :placeholderView
|
|
291
271
|
hash :infoSpec
|
|
272
|
+
string :storagePrefix
|
|
273
|
+
hash :metadata
|
|
292
274
|
|
|
293
275
|
def buttonLabels(obj)
|
|
294
276
|
@buttonLabels = ActiveSupport::HashWithIndifferentAccess.new(obj)
|
|
@@ -296,9 +278,9 @@ class Glib::JsonUi::ViewBuilder
|
|
|
296
278
|
|
|
297
279
|
def created
|
|
298
280
|
@buttonLabels ||= ActiveSupport::HashWithIndifferentAccess.new
|
|
299
|
-
@buttonLabels['change'] ||= I18n.t('
|
|
300
|
-
@buttonLabels['upload'] ||= I18n.t('
|
|
301
|
-
@buttonLabels['delete'] ||= I18n.t('
|
|
281
|
+
@buttonLabels['change'] ||= I18n.t('glib.change') if I18n.exists?('glib.change')
|
|
282
|
+
@buttonLabels['upload'] ||= I18n.t('glib.upload') if I18n.exists?('glib.upload')
|
|
283
|
+
@buttonLabels['delete'] ||= I18n.t('glib.delete') if I18n.exists?('glib.delete')
|
|
302
284
|
|
|
303
285
|
json.set! :buttonLabels, @buttonLabels
|
|
304
286
|
|
|
@@ -329,22 +311,15 @@ class Glib::JsonUi::ViewBuilder
|
|
|
329
311
|
array :files
|
|
330
312
|
string :directUploadUrl
|
|
331
313
|
string :uploadTitle
|
|
332
|
-
string :uploadFailedText # deprecated
|
|
333
314
|
action :onFinishUpload
|
|
334
315
|
string :strategy # can be "delegate" or "dropUpload"
|
|
335
316
|
string :url # http post end point if you don't want to use onFinishUpload
|
|
336
317
|
|
|
337
|
-
|
|
318
|
+
string :storagePrefix
|
|
319
|
+
hash :metadata
|
|
338
320
|
|
|
339
|
-
|
|
340
|
-
def title(value)
|
|
341
|
-
@placeholder = value
|
|
342
|
-
end
|
|
321
|
+
required :accepts, :directUploadUrl
|
|
343
322
|
|
|
344
|
-
# deprecated
|
|
345
|
-
def subtitle(value)
|
|
346
|
-
@hint = value
|
|
347
|
-
end
|
|
348
323
|
|
|
349
324
|
def accepts(value)
|
|
350
325
|
@accepts = value
|
|
@@ -361,11 +336,11 @@ class Glib::JsonUi::ViewBuilder
|
|
|
361
336
|
def created
|
|
362
337
|
super
|
|
363
338
|
|
|
364
|
-
@placeholder ||= I18n.t('
|
|
365
|
-
@hint ||= I18n.t('
|
|
339
|
+
@placeholder ||= I18n.t('glib.multi_upload.placeholder', default: nil)
|
|
340
|
+
@hint ||= I18n.t('glib.multi_upload.hint', default: nil)
|
|
366
341
|
|
|
367
342
|
['200', '403', '401', 'else'].each do |status|
|
|
368
|
-
key = "
|
|
343
|
+
key = "glib.multi_upload.responseMessages.#{status}"
|
|
369
344
|
@responseMessages[status] = I18n.t(key) if I18n.exists?(key)
|
|
370
345
|
end
|
|
371
346
|
json.responseMessages (@responseMessages || {}).reverse_merge({
|
|
@@ -391,6 +366,17 @@ class Glib::JsonUi::ViewBuilder
|
|
|
391
366
|
end
|
|
392
367
|
end
|
|
393
368
|
|
|
369
|
+
class Sign < AbstractField
|
|
370
|
+
string :directUploadUrl
|
|
371
|
+
|
|
372
|
+
required :directUploadUrl
|
|
373
|
+
|
|
374
|
+
# Override
|
|
375
|
+
# Signature field doesn't have default value
|
|
376
|
+
def value(value)
|
|
377
|
+
end
|
|
378
|
+
end
|
|
379
|
+
|
|
394
380
|
# TODO
|
|
395
381
|
# class MultiImage < Text
|
|
396
382
|
# # file_rules = { fileType: 'image/*', maxFileSize: 5000 }
|
|
@@ -453,7 +439,6 @@ class Glib::JsonUi::ViewBuilder
|
|
|
453
439
|
class Otp < AbstractField
|
|
454
440
|
int :length
|
|
455
441
|
string :type
|
|
456
|
-
string :align # deprecated
|
|
457
442
|
end
|
|
458
443
|
|
|
459
444
|
class Rating < AbstractField
|
|
@@ -41,16 +41,15 @@ module Glib
|
|
|
41
41
|
hash :padding
|
|
42
42
|
singleton_array :styleClass, :styleClasses
|
|
43
43
|
|
|
44
|
-
hash :valueIf
|
|
45
|
-
|
|
46
44
|
hash :showIf
|
|
47
45
|
hash :loadIf
|
|
48
46
|
action :onIfTrue
|
|
49
47
|
action :onIfFalse
|
|
50
48
|
|
|
49
|
+
bool :displayed
|
|
50
|
+
bool :submitWhenNotDisplayed
|
|
51
|
+
|
|
51
52
|
hash :analytics
|
|
52
|
-
# hash :tooltip
|
|
53
|
-
array :extensions # deprecated
|
|
54
53
|
hash :dragData
|
|
55
54
|
|
|
56
55
|
def self.component_name
|
|
@@ -166,9 +165,6 @@ module Glib
|
|
|
166
165
|
class Icon < View
|
|
167
166
|
badgeable
|
|
168
167
|
|
|
169
|
-
# TODO: Remove later. Deprecated.
|
|
170
|
-
icon :spec
|
|
171
|
-
|
|
172
168
|
action :onClick
|
|
173
169
|
color :color
|
|
174
170
|
|
|
@@ -204,13 +200,6 @@ module Glib
|
|
|
204
200
|
action :onClick
|
|
205
201
|
color :color
|
|
206
202
|
bool :disabled
|
|
207
|
-
|
|
208
|
-
# TODO: This should be deprecated in favour of `popovers/open`
|
|
209
|
-
def childButtons(block)
|
|
210
|
-
json.childButtons do
|
|
211
|
-
block.call page.menu_builder
|
|
212
|
-
end
|
|
213
|
-
end
|
|
214
203
|
end
|
|
215
204
|
|
|
216
205
|
class Fab < View
|
|
@@ -334,6 +323,8 @@ module Glib
|
|
|
334
323
|
hash :items
|
|
335
324
|
hash :dropData
|
|
336
325
|
string :strategy
|
|
326
|
+
string :storagePrefix
|
|
327
|
+
hash :metadata
|
|
337
328
|
end
|
|
338
329
|
end
|
|
339
330
|
end
|
|
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
|
|
@@ -4,14 +4,10 @@ section.header padding: glib_json_padding_list, childViews: ->(header) do
|
|
|
4
4
|
end
|
|
5
5
|
|
|
6
6
|
section.rows builder: ->(template) do
|
|
7
|
-
template.thumbnail title: 'components/
|
|
8
|
-
action.windows_open url: json_ui_garage_url(path: 'views/
|
|
7
|
+
template.thumbnail title: 'components/replace', onClick: ->(action) do
|
|
8
|
+
action.windows_open url: json_ui_garage_url(path: 'views/components_replace')
|
|
9
9
|
end
|
|
10
10
|
|
|
11
|
-
# template.thumbnail title: 'components/replace', onClick: ->(action) do
|
|
12
|
-
# action.windows_open url: json_ui_garage_url(path: 'views/components')
|
|
13
|
-
# end
|
|
14
|
-
|
|
15
11
|
template.thumbnail title: 'components/set', onClick: ->(action) do
|
|
16
12
|
action.windows_open url: json_ui_garage_url(path: 'views/components_set')
|
|
17
13
|
end
|
|
@@ -40,20 +40,6 @@ section.rows builder: ->(template) do
|
|
|
40
40
|
# end
|
|
41
41
|
# end
|
|
42
42
|
|
|
43
|
-
# TODO: Deprecate
|
|
44
|
-
template.thumbnail title: 'dialogs/option (Deprecated)', onClick: ->(action) do
|
|
45
|
-
# TODO: Rename to `dialogs/menu`
|
|
46
|
-
action.dialogs_options message: 'Select one', buttons: ->(menu) do
|
|
47
|
-
menu.button text: 'Option1', onClick: ->(action) do
|
|
48
|
-
action.dialogs_alert message: 'Option 1'
|
|
49
|
-
end
|
|
50
|
-
menu.button text: 'Option2', onClick: ->(action) do
|
|
51
|
-
action.dialogs_alert message: 'Option 2'
|
|
52
|
-
end
|
|
53
|
-
menu.button text: 'Cancel'
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
|
|
57
43
|
template.thumbnail title: 'dialogs/show', onClick: ->(action) do
|
|
58
44
|
render 'json_ui/garage/actions/dialogs_show', json: json, action: action, dialog_mode: :show
|
|
59
45
|
end
|
|
@@ -66,6 +52,15 @@ section.rows builder: ->(template) do
|
|
|
66
52
|
action.dialogs_open fullscreen: 'mobile', url: json_ui_garage_url(path: 'forms/basic', mode: 'dialog')
|
|
67
53
|
end
|
|
68
54
|
|
|
55
|
+
template.thumbnail title: 'dialogs/reload (without url)', onClick: ->(action) do
|
|
56
|
+
action.runMultiple childActions: ->(saction) do
|
|
57
|
+
saction.dialogs_open url: json_ui_garage_url(path: 'forms/dialogs_form')
|
|
58
|
+
saction.timeouts_set interval: 1000, onTimeout: ->(ssaction) do
|
|
59
|
+
ssaction.dialogs_reload
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
|
|
69
64
|
if !Rails.env.test? # Prevent test failure
|
|
70
65
|
template.thumbnail title: 'dialogs/open (page with error)', onClick: ->(action) do
|
|
71
66
|
action.dialogs_open url: json_ui_garage_url(path: 'forms/non_existent', mode: 'dialog')
|
|
@@ -96,6 +91,16 @@ section.rows builder: ->(template) do
|
|
|
96
91
|
action.dialogs_open url: json_ui_garage_url(path: 'forms/dialogs_form')
|
|
97
92
|
end
|
|
98
93
|
|
|
94
|
+
template.thumbnail title: 'dialogs/closeAll', onClick: ->(action) do
|
|
95
|
+
action.runMultiple childActions: ->(saction) do
|
|
96
|
+
saction.dialogs_open url: json_ui_garage_url(path: 'forms/dialogs_form')
|
|
97
|
+
saction.dialogs_open url: json_ui_garage_url(path: 'forms/dialogs_form')
|
|
98
|
+
saction.timeouts_set interval: 1000, onTimeout: ->(ssaction) do
|
|
99
|
+
ssaction.dialogs_closeAll
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
|
|
99
104
|
template.thumbnail title: 'dialogs/oauth', onClick: ->(action) do
|
|
100
105
|
if respond_to?(:user_facebook_omniauth_authorize_url)
|
|
101
106
|
provider = {
|