glib-web 0.5.97 → 0.5.98
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/channels/glib/channel/is_typing_channel.rb +34 -34
- data/app/channels/glib/channel/online_channel.rb +36 -36
- data/app/controllers/concerns/glib/analytics/funnel.rb +61 -61
- data/app/controllers/concerns/glib/auth/policy.rb +149 -149
- data/app/controllers/concerns/glib/json/dynamic_text.rb +126 -126
- data/app/controllers/concerns/glib/json/libs.rb +149 -149
- data/app/controllers/concerns/glib/json/new_dynamic_text.rb +122 -122
- data/app/controllers/concerns/glib/json/transformation.rb +11 -11
- data/app/controllers/concerns/glib/json/traversal.rb +92 -92
- data/app/controllers/concerns/glib/json/ui.rb +88 -88
- data/app/controllers/concerns/glib/json/validation.rb +13 -13
- data/app/controllers/glib/home_controller.rb +54 -54
- data/app/helpers/glib/app_feature_support_helper.rb +16 -16
- data/app/helpers/glib/dynamic_images_helper.rb +55 -55
- data/app/helpers/glib/dynamic_texts_helper.rb +42 -42
- data/app/helpers/glib/enum_helper.rb +18 -18
- data/app/helpers/glib/forms_helper.rb +15 -15
- data/app/helpers/glib/json_ui/abstract_builder.rb +309 -309
- data/app/helpers/glib/json_ui/action_builder/dialogs.rb +58 -58
- data/app/helpers/glib/json_ui/action_builder/http.rb +39 -39
- data/app/helpers/glib/json_ui/action_builder/iap.rb +15 -15
- data/app/helpers/glib/json_ui/action_builder/panels.rb +14 -14
- data/app/helpers/glib/json_ui/action_builder/sheets.rb +15 -15
- data/app/helpers/glib/json_ui/action_builder/snackbars.rb +41 -41
- data/app/helpers/glib/json_ui/action_builder/windows.rb +38 -38
- data/app/helpers/glib/json_ui/action_builder.rb +140 -140
- data/app/helpers/glib/json_ui/analytics_helper.rb +17 -17
- data/app/helpers/glib/json_ui/dynamic_field_builders.rb +25 -25
- data/app/helpers/glib/json_ui/generic_builders.rb +28 -28
- data/app/helpers/glib/json_ui/list_builders.rb +110 -110
- data/app/helpers/glib/json_ui/menu_builder.rb +96 -96
- data/app/helpers/glib/json_ui/page_helper.rb +221 -221
- data/app/helpers/glib/json_ui/response_helper.rb +25 -25
- data/app/helpers/glib/json_ui/styling_helper.rb +55 -55
- data/app/helpers/glib/json_ui/table_builders.rb +74 -74
- data/app/helpers/glib/json_ui/view_builder/banners.rb +26 -26
- data/app/helpers/glib/json_ui/view_builder/charts.rb +49 -49
- data/app/helpers/glib/json_ui/view_builder/fields.rb +296 -296
- data/app/helpers/glib/json_ui/view_builder/iap.rb +11 -11
- data/app/helpers/glib/json_ui/view_builder/panels.rb +262 -262
- data/app/helpers/glib/json_ui/view_builder.rb +256 -253
- data/app/helpers/glib/urls_helper.rb +12 -12
- data/app/models/concerns/glib/soft_deletable.rb +73 -73
- data/app/models/glib/active_storage/attachment.rb +9 -9
- data/app/models/glib/active_storage/blob.rb +9 -9
- data/app/models/glib/application_record.rb +18 -18
- data/app/models/glib/dynamic_text_record.rb +9 -9
- data/app/models/glib/text.rb +95 -95
- data/app/policies/glib/application_policy.rb +191 -191
- data/app/validators/email_typo_validator.rb +38 -38
- data/app/validators/email_validator.rb +7 -7
- data/app/validators/url_validator.rb +20 -20
- data/app/views/json_ui/garage/_nav_menu.json.jbuilder +72 -72
- data/app/views/json_ui/garage/actions/_dialogs.json.jbuilder +104 -104
- data/app/views/json_ui/garage/actions/_http.json.jbuilder +24 -24
- data/app/views/json_ui/garage/actions/_panels.json.jbuilder +18 -18
- data/app/views/json_ui/garage/actions/_reload.json.jbuilder +17 -17
- data/app/views/json_ui/garage/actions/_sheets.json.jbuilder +18 -18
- data/app/views/json_ui/garage/actions/_snackbars.json.jbuilder +33 -33
- data/app/views/json_ui/garage/actions/_timeouts.json.jbuilder +24 -24
- data/app/views/json_ui/garage/actions/_windows.json.jbuilder +24 -24
- data/app/views/json_ui/garage/actions/dialogs_oauth_post.json.jbuilder +6 -6
- data/app/views/json_ui/garage/actions/index.json.jbuilder +24 -24
- data/app/views/json_ui/garage/forms/_alert_post_data.json.jbuilder +10 -10
- data/app/views/json_ui/garage/forms/basic.json.jbuilder +21 -21
- data/app/views/json_ui/garage/forms/basic_post.json.jbuilder +8 -8
- data/app/views/json_ui/garage/forms/checkboxes.json.jbuilder +27 -27
- data/app/views/json_ui/garage/forms/conditional_value.json.jbuilder +38 -38
- data/app/views/json_ui/garage/forms/dynamic_group.json.jbuilder +39 -39
- data/app/views/json_ui/garage/forms/dynamic_select.json.jbuilder +24 -24
- data/app/views/json_ui/garage/forms/dynamic_select_data.json.jbuilder +38 -38
- data/app/views/json_ui/garage/forms/file_upload.json.jbuilder +37 -37
- data/app/views/json_ui/garage/forms/floating_submit.json.jbuilder +19 -19
- data/app/views/json_ui/garage/forms/generic_post.json.jbuilder +3 -3
- data/app/views/json_ui/garage/forms/get_request.json.jbuilder +27 -27
- data/app/views/json_ui/garage/forms/index.json.jbuilder +120 -120
- data/app/views/json_ui/garage/forms/new_rich_text.json.jbuilder +40 -40
- data/app/views/json_ui/garage/forms/online_participant1.json.jbuilder +25 -25
- data/app/views/json_ui/garage/forms/online_participant2.json.jbuilder +25 -25
- data/app/views/json_ui/garage/forms/payments.json.jbuilder +34 -34
- data/app/views/json_ui/garage/forms/pickers.json.jbuilder +89 -89
- data/app/views/json_ui/garage/forms/ratings.json.jbuilder +49 -49
- data/app/views/json_ui/garage/forms/rich_text.json.jbuilder +40 -40
- data/app/views/json_ui/garage/forms/selects.json.jbuilder +91 -91
- data/app/views/json_ui/garage/forms/show_hide.json.jbuilder +150 -150
- data/app/views/json_ui/garage/forms/styled_boxes.json.jbuilder +35 -35
- data/app/views/json_ui/garage/forms/submission_flow.json.jbuilder +17 -17
- data/app/views/json_ui/garage/forms/submission_flow_post.json.jbuilder +26 -26
- data/app/views/json_ui/garage/forms/submission_indicator.json.jbuilder +63 -63
- data/app/views/json_ui/garage/forms/submission_indicator_post.json.jbuilder +25 -25
- data/app/views/json_ui/garage/forms/submit_on_change.json.jbuilder +28 -28
- data/app/views/json_ui/garage/forms/text_validation.json.jbuilder +65 -65
- data/app/views/json_ui/garage/forms/timers.json.jbuilder +120 -120
- data/app/views/json_ui/garage/home/blank.json.jbuilder +10 -10
- data/app/views/json_ui/garage/home/index.json.jbuilder +36 -36
- data/app/views/json_ui/garage/home/slow.json.jbuilder +11 -11
- data/app/views/json_ui/garage/lists/_autoload_section.json.jbuilder +30 -30
- data/app/views/json_ui/garage/lists/autoload_all.json.jbuilder +32 -32
- data/app/views/json_ui/garage/lists/autoload_as_needed.json.jbuilder +35 -35
- data/app/views/json_ui/garage/lists/autoload_as_needed_responsive_columns.json.jbuilder +27 -27
- data/app/views/json_ui/garage/lists/chat_ui.json.jbuilder +94 -94
- data/app/views/json_ui/garage/lists/edit_actions.json.jbuilder +62 -62
- data/app/views/json_ui/garage/lists/fab.json.jbuilder +12 -12
- data/app/views/json_ui/garage/lists/index.json.jbuilder +41 -41
- data/app/views/json_ui/garage/lists/reordering.json.jbuilder +34 -34
- data/app/views/json_ui/garage/lists/templating.json.jbuilder +35 -35
- data/app/views/json_ui/garage/notifications/action_cable.json.jbuilder +114 -114
- data/app/views/json_ui/garage/notifications/android_post.json.jbuilder +48 -48
- data/app/views/json_ui/garage/notifications/index.json.jbuilder +36 -36
- data/app/views/json_ui/garage/notifications/web_socket.json.jbuilder +60 -60
- data/app/views/json_ui/garage/pages/flat_centered.json.jbuilder +29 -29
- data/app/views/json_ui/garage/pages/full_width.json.jbuilder +29 -29
- data/app/views/json_ui/garage/pages/full_width_height.json.jbuilder +16 -16
- data/app/views/json_ui/garage/pages/index.json.jbuilder +62 -62
- data/app/views/json_ui/garage/pages/layout.json.jbuilder +18 -18
- data/app/views/json_ui/garage/pages/lifecycle_hooks.json.jbuilder +13 -13
- data/app/views/json_ui/garage/pages/loading_indicator.json.jbuilder +10 -10
- data/app/views/json_ui/garage/pages/nav_buttons.json.jbuilder +21 -21
- data/app/views/json_ui/garage/pages/nested_scroll.json.jbuilder +40 -40
- data/app/views/json_ui/garage/pages/tab_bar.json.jbuilder +92 -92
- data/app/views/json_ui/garage/panels/_styled.json.jbuilder +78 -78
- data/app/views/json_ui/garage/panels/card.json.jbuilder +4 -4
- data/app/views/json_ui/garage/panels/carousel.json.jbuilder +38 -38
- data/app/views/json_ui/garage/panels/custom.json.jbuilder +17 -17
- data/app/views/json_ui/garage/panels/flow.json.jbuilder +59 -59
- data/app/views/json_ui/garage/panels/horizontal.json.jbuilder +101 -101
- data/app/views/json_ui/garage/panels/index.json.jbuilder +138 -138
- data/app/views/json_ui/garage/panels/outlined.json.jbuilder +4 -4
- data/app/views/json_ui/garage/panels/responsive.json.jbuilder +98 -98
- data/app/views/json_ui/garage/panels/split.json.jbuilder +182 -182
- data/app/views/json_ui/garage/panels/ul.json.jbuilder +33 -33
- data/app/views/json_ui/garage/panels/vertical.json.jbuilder +55 -55
- data/app/views/json_ui/garage/panels/web.json.jbuilder +15 -15
- data/app/views/json_ui/garage/services/dynamic_text.json.jbuilder +13 -13
- data/app/views/json_ui/garage/services/image.json.jbuilder +47 -47
- data/app/views/json_ui/garage/services/index.json.jbuilder +17 -17
- data/app/views/json_ui/garage/tables/_autoload_section.json.jbuilder +16 -16
- data/app/views/json_ui/garage/tables/autoload_all.json.jbuilder +43 -43
- data/app/views/json_ui/garage/tables/autoload_as_needed.json.jbuilder +50 -50
- data/app/views/json_ui/garage/tables/export_import.json.jbuilder +29 -29
- data/app/views/json_ui/garage/tables/horizontal_scroll.json.jbuilder +26 -26
- data/app/views/json_ui/garage/tables/index.json.jbuilder +25 -25
- data/app/views/json_ui/garage/tables/layout.json.jbuilder +40 -40
- data/app/views/json_ui/garage/views/_chart_data.json.jbuilder +17 -17
- data/app/views/json_ui/garage/views/banners.json.jbuilder +67 -67
- data/app/views/json_ui/garage/views/calendar_data.json.jbuilder +30 -30
- data/app/views/json_ui/garage/views/charts.json.jbuilder +125 -125
- data/app/views/json_ui/garage/views/controls.json.jbuilder +60 -60
- data/app/views/json_ui/garage/views/iap.json.jbuilder +21 -21
- data/app/views/json_ui/garage/views/icon_names.json.jbuilder +1450 -1450
- data/app/views/json_ui/garage/views/icons.json.jbuilder +15 -15
- data/app/views/json_ui/garage/views/images.json.jbuilder +89 -89
- data/app/views/json_ui/garage/views/index.json.jbuilder +83 -83
- data/app/views/json_ui/garage/views/links.json.jbuilder +70 -70
- data/app/views/json_ui/garage/views/map_cluster_data.json.jbuilder +41 -41
- data/app/views/json_ui/garage/views/map_data.json.jbuilder +51 -51
- data/app/views/json_ui/garage/views/maps.json.jbuilder +31 -31
- data/app/views/json_ui/garage/views/markdowns.json.jbuilder +41 -41
- data/app/views/json_ui/garage/views/misc.json.jbuilder +34 -34
- data/app/views/json_ui/garage/views/progress.json.jbuilder +31 -31
- data/app/views/json_ui/garage/views/texts.json.jbuilder +35 -35
- data/app/views/layouts/json_ui/renderer.html.erb +35 -35
- data/config/routes.rb +7 -7
- data/lib/generators/glib/install_generator.rb +24 -24
- data/lib/generators/templates/20191017062519_create_texts.rb +12 -12
- data/lib/generators/templates/20191024063257_add_scope_to_texts.rb +7 -7
- data/lib/generators/templates/20191112095018_add_lang_to_texts.rb +7 -7
- data/lib/generators/templates/20191126071051_create_active_storage_tables.active_storage.rb +27 -27
- data/lib/generators/templates/database.yml +107 -107
- data/lib/generators/templates/dynamic_text.rb +2 -2
- data/lib/glib/crypt/utils.rb +26 -26
- data/lib/glib/dynamic_text/config.rb +21 -21
- data/lib/glib/engine.rb +7 -7
- data/lib/glib/json_crawler/action_crawler.rb +23 -23
- data/lib/glib/json_crawler/action_crawlers/action_http.rb +11 -11
- data/lib/glib/json_crawler/action_crawlers/forms_submit.rb +48 -48
- data/lib/glib/json_crawler/action_crawlers/menu.rb +12 -12
- data/lib/glib/json_crawler/action_crawlers/nav_initiate.rb +19 -19
- data/lib/glib/json_crawler/action_crawlers/run_multiple.rb +13 -13
- data/lib/glib/json_crawler/action_crawlers/windows_open.rb +33 -33
- data/lib/glib/json_crawler/coverage.rb +20 -20
- data/lib/glib/json_crawler/http.rb +120 -120
- data/lib/glib/json_crawler/router.rb +90 -90
- data/lib/glib/json_crawler.rb +11 -11
- data/lib/glib/mailer_tester.rb +36 -36
- data/lib/glib/test_helpers.rb +52 -52
- data/lib/glib/value.rb +7 -7
- data/lib/glib/version.rb +5 -5
- data/lib/glib-web.rb +9 -9
- data/lib/tasks/db.rake +95 -95
- metadata +2 -3
|
@@ -1,140 +1,140 @@
|
|
|
1
|
-
module Glib
|
|
2
|
-
module JsonUi
|
|
3
|
-
class ActionBuilder < AbstractBuilder
|
|
4
|
-
def initialize(json, page, multiple)
|
|
5
|
-
super(json, page)
|
|
6
|
-
|
|
7
|
-
@multiple = multiple
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def method_missing(m, *args)
|
|
11
|
-
if @multiple
|
|
12
|
-
add_element_to_array_v1 'action', m, *args
|
|
13
|
-
else
|
|
14
|
-
add_singleton_element_v1 'action', m, *args
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
class Action < JsonUiElement
|
|
19
|
-
# def analytics(value)
|
|
20
|
-
# if value.is_a?(String)
|
|
21
|
-
# @analyticsEnabled = true
|
|
22
|
-
# @analyticsId = value
|
|
23
|
-
# else
|
|
24
|
-
# @analyticsEnabled = value == true
|
|
25
|
-
# end
|
|
26
|
-
# end
|
|
27
|
-
|
|
28
|
-
# # Override
|
|
29
|
-
# def created
|
|
30
|
-
# if @analyticsEnabled
|
|
31
|
-
# suffix = @analyticsId
|
|
32
|
-
# # TODO: recognize_path() needs `method` as a second argument for POST request
|
|
33
|
-
# if suffix.nil? && @url && (route = Rails.application.routes.recognize_path(@url))
|
|
34
|
-
# suffix = "#{route[:controller]}_#{route[:action]}"
|
|
35
|
-
# end
|
|
36
|
-
|
|
37
|
-
# if suffix
|
|
38
|
-
# json.analytics do
|
|
39
|
-
# json.track :event
|
|
40
|
-
# json.nameSuffix suffix
|
|
41
|
-
# end
|
|
42
|
-
# end
|
|
43
|
-
|
|
44
|
-
# end
|
|
45
|
-
# end
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
### Action definitions
|
|
49
|
-
|
|
50
|
-
class RunMultiple < Action
|
|
51
|
-
def childActions(block)
|
|
52
|
-
json.childActions do
|
|
53
|
-
block.call ActionBuilder.new(json, page, true)
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
module Forms
|
|
59
|
-
class Submit < Action
|
|
60
|
-
end
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
module Auth
|
|
64
|
-
class SaveCsrfToken < Action
|
|
65
|
-
string :token
|
|
66
|
-
action :onSave
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
class Restart < Action
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
class CreditCard < Action
|
|
73
|
-
string :publicKey
|
|
74
|
-
string :clientSecret
|
|
75
|
-
action :onSuccess
|
|
76
|
-
action :onFailure
|
|
77
|
-
bool :setupOnly
|
|
78
|
-
end
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
module Devices
|
|
82
|
-
class GetPushToken < Action
|
|
83
|
-
string :postUrl
|
|
84
|
-
string :paramNameForToken
|
|
85
|
-
|
|
86
|
-
# Use postUrl instead
|
|
87
|
-
# action :onGet
|
|
88
|
-
end
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
module Analytics
|
|
92
|
-
class LogEvent < Action
|
|
93
|
-
string :name
|
|
94
|
-
hash :params
|
|
95
|
-
end
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
module Cables
|
|
99
|
-
class Push < Action
|
|
100
|
-
string :channel
|
|
101
|
-
string :event
|
|
102
|
-
hash :payload
|
|
103
|
-
end
|
|
104
|
-
end
|
|
105
|
-
|
|
106
|
-
module Timeouts
|
|
107
|
-
class Set < Action
|
|
108
|
-
int :interval # Milliseconds
|
|
109
|
-
action :onTimeout
|
|
110
|
-
bool :repeat
|
|
111
|
-
end
|
|
112
|
-
|
|
113
|
-
# FUTURE
|
|
114
|
-
class Remove < Action
|
|
115
|
-
end
|
|
116
|
-
|
|
117
|
-
# FUTURE
|
|
118
|
-
class Clear < Action
|
|
119
|
-
end
|
|
120
|
-
end
|
|
121
|
-
|
|
122
|
-
# FUTURE
|
|
123
|
-
module Data
|
|
124
|
-
class Save < Action
|
|
125
|
-
string :key
|
|
126
|
-
string :value
|
|
127
|
-
action :onSave
|
|
128
|
-
end
|
|
129
|
-
|
|
130
|
-
class Remove < Action
|
|
131
|
-
end
|
|
132
|
-
|
|
133
|
-
class Clear < Action
|
|
134
|
-
end
|
|
135
|
-
end
|
|
136
|
-
|
|
137
|
-
###
|
|
138
|
-
end
|
|
139
|
-
end
|
|
140
|
-
end
|
|
1
|
+
module Glib
|
|
2
|
+
module JsonUi
|
|
3
|
+
class ActionBuilder < AbstractBuilder
|
|
4
|
+
def initialize(json, page, multiple)
|
|
5
|
+
super(json, page)
|
|
6
|
+
|
|
7
|
+
@multiple = multiple
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def method_missing(m, *args)
|
|
11
|
+
if @multiple
|
|
12
|
+
add_element_to_array_v1 'action', m, *args
|
|
13
|
+
else
|
|
14
|
+
add_singleton_element_v1 'action', m, *args
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
class Action < JsonUiElement
|
|
19
|
+
# def analytics(value)
|
|
20
|
+
# if value.is_a?(String)
|
|
21
|
+
# @analyticsEnabled = true
|
|
22
|
+
# @analyticsId = value
|
|
23
|
+
# else
|
|
24
|
+
# @analyticsEnabled = value == true
|
|
25
|
+
# end
|
|
26
|
+
# end
|
|
27
|
+
|
|
28
|
+
# # Override
|
|
29
|
+
# def created
|
|
30
|
+
# if @analyticsEnabled
|
|
31
|
+
# suffix = @analyticsId
|
|
32
|
+
# # TODO: recognize_path() needs `method` as a second argument for POST request
|
|
33
|
+
# if suffix.nil? && @url && (route = Rails.application.routes.recognize_path(@url))
|
|
34
|
+
# suffix = "#{route[:controller]}_#{route[:action]}"
|
|
35
|
+
# end
|
|
36
|
+
|
|
37
|
+
# if suffix
|
|
38
|
+
# json.analytics do
|
|
39
|
+
# json.track :event
|
|
40
|
+
# json.nameSuffix suffix
|
|
41
|
+
# end
|
|
42
|
+
# end
|
|
43
|
+
|
|
44
|
+
# end
|
|
45
|
+
# end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
### Action definitions
|
|
49
|
+
|
|
50
|
+
class RunMultiple < Action
|
|
51
|
+
def childActions(block)
|
|
52
|
+
json.childActions do
|
|
53
|
+
block.call ActionBuilder.new(json, page, true)
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
module Forms
|
|
59
|
+
class Submit < Action
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
module Auth
|
|
64
|
+
class SaveCsrfToken < Action
|
|
65
|
+
string :token
|
|
66
|
+
action :onSave
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
class Restart < Action
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
class CreditCard < Action
|
|
73
|
+
string :publicKey
|
|
74
|
+
string :clientSecret
|
|
75
|
+
action :onSuccess
|
|
76
|
+
action :onFailure
|
|
77
|
+
bool :setupOnly
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
module Devices
|
|
82
|
+
class GetPushToken < Action
|
|
83
|
+
string :postUrl
|
|
84
|
+
string :paramNameForToken
|
|
85
|
+
|
|
86
|
+
# Use postUrl instead
|
|
87
|
+
# action :onGet
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
module Analytics
|
|
92
|
+
class LogEvent < Action
|
|
93
|
+
string :name
|
|
94
|
+
hash :params
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
module Cables
|
|
99
|
+
class Push < Action
|
|
100
|
+
string :channel
|
|
101
|
+
string :event
|
|
102
|
+
hash :payload
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
module Timeouts
|
|
107
|
+
class Set < Action
|
|
108
|
+
int :interval # Milliseconds
|
|
109
|
+
action :onTimeout
|
|
110
|
+
bool :repeat
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
# FUTURE
|
|
114
|
+
class Remove < Action
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
# FUTURE
|
|
118
|
+
class Clear < Action
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
# FUTURE
|
|
123
|
+
module Data
|
|
124
|
+
class Save < Action
|
|
125
|
+
string :key
|
|
126
|
+
string :value
|
|
127
|
+
action :onSave
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
class Remove < Action
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
class Clear < Action
|
|
134
|
+
end
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
###
|
|
138
|
+
end
|
|
139
|
+
end
|
|
140
|
+
end
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
module Glib
|
|
2
|
-
module JsonUi
|
|
3
|
-
module AnalyticsHelper
|
|
4
|
-
def __json_ui_analytics(json)
|
|
5
|
-
if try(:glib_analytics_included?)
|
|
6
|
-
json.analytics do
|
|
7
|
-
json.feature do
|
|
8
|
-
json.group controller_name
|
|
9
|
-
json.action action_name
|
|
10
|
-
json.segment glib_analytics_feature_segment
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
end
|
|
1
|
+
module Glib
|
|
2
|
+
module JsonUi
|
|
3
|
+
module AnalyticsHelper
|
|
4
|
+
def __json_ui_analytics(json)
|
|
5
|
+
if try(:glib_analytics_included?)
|
|
6
|
+
json.analytics do
|
|
7
|
+
json.feature do
|
|
8
|
+
json.group controller_name
|
|
9
|
+
json.action action_name
|
|
10
|
+
json.segment glib_analytics_feature_segment
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
module Glib
|
|
2
|
-
module JsonUi
|
|
3
|
-
module DynamicFieldBuilders
|
|
4
|
-
|
|
5
|
-
class Group < AbstractBuilder
|
|
6
|
-
def initialize(json, page, template)
|
|
7
|
-
super json, page
|
|
8
|
-
@template = template
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
# string :titlePrefix
|
|
12
|
-
def titlePrefix(string)
|
|
13
|
-
json.titlePrefix string
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def template(options = {})
|
|
17
|
-
# json.template do
|
|
18
|
-
page.vertical_content(options)
|
|
19
|
-
# end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
end
|
|
1
|
+
module Glib
|
|
2
|
+
module JsonUi
|
|
3
|
+
module DynamicFieldBuilders
|
|
4
|
+
|
|
5
|
+
class Group < AbstractBuilder
|
|
6
|
+
def initialize(json, page, template)
|
|
7
|
+
super json, page
|
|
8
|
+
@template = template
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# string :titlePrefix
|
|
12
|
+
def titlePrefix(string)
|
|
13
|
+
json.titlePrefix string
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def template(options = {})
|
|
17
|
+
# json.template do
|
|
18
|
+
page.vertical_content(options)
|
|
19
|
+
# end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
module Glib
|
|
2
|
-
module JsonUi
|
|
3
|
-
module GenericBuilders
|
|
4
|
-
|
|
5
|
-
class Content < AbstractBuilder
|
|
6
|
-
def initialize(json, page, template)
|
|
7
|
-
super json, page
|
|
8
|
-
@template = template
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def definePanels(names)
|
|
12
|
-
names.each do |name|
|
|
13
|
-
define_singleton_method(name) do |options|
|
|
14
|
-
json.set!(name) { page.vertical_content(options) }
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
# def body(options = {})
|
|
20
|
-
# json.body do
|
|
21
|
-
# page.vertical_content(options)
|
|
22
|
-
# end
|
|
23
|
-
# end
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
1
|
+
module Glib
|
|
2
|
+
module JsonUi
|
|
3
|
+
module GenericBuilders
|
|
4
|
+
|
|
5
|
+
class Content < AbstractBuilder
|
|
6
|
+
def initialize(json, page, template)
|
|
7
|
+
super json, page
|
|
8
|
+
@template = template
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def definePanels(names)
|
|
12
|
+
names.each do |name|
|
|
13
|
+
define_singleton_method(name) do |options|
|
|
14
|
+
json.set!(name) { page.vertical_content(options) }
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# def body(options = {})
|
|
20
|
+
# json.body do
|
|
21
|
+
# page.vertical_content(options)
|
|
22
|
+
# end
|
|
23
|
+
# end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -1,110 +1,110 @@
|
|
|
1
|
-
module Glib
|
|
2
|
-
module JsonUi
|
|
3
|
-
module ListBuilders
|
|
4
|
-
class Template < AbstractBuilder
|
|
5
|
-
def method_missing(m, *args)
|
|
6
|
-
add_element_to_array 'template', m, *args
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
class AbstractTemplate < JsonUiElement
|
|
10
|
-
menu :leftButtons
|
|
11
|
-
menu :rightButtons
|
|
12
|
-
menu :editButtons
|
|
13
|
-
menu :chips
|
|
14
|
-
singleton_array :styleClass, :styleClasses
|
|
15
|
-
color :backgroundColor
|
|
16
|
-
|
|
17
|
-
# def editButtons(block)
|
|
18
|
-
# json.editButtons do
|
|
19
|
-
# block.call page.menu_builder
|
|
20
|
-
# end
|
|
21
|
-
# end
|
|
22
|
-
|
|
23
|
-
# def chips(block)
|
|
24
|
-
# json.chips do
|
|
25
|
-
# block.call page.menu_builder
|
|
26
|
-
# end
|
|
27
|
-
# end
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
class Standard < AbstractTemplate
|
|
31
|
-
string :id
|
|
32
|
-
string :title
|
|
33
|
-
string :subtitle
|
|
34
|
-
string :subsubtitle
|
|
35
|
-
string :imageUrl
|
|
36
|
-
action :onClick
|
|
37
|
-
action :onLongPress
|
|
38
|
-
icon :icon
|
|
39
|
-
bool :avatar
|
|
40
|
-
action :onReorder
|
|
41
|
-
string :paramNameForFormData
|
|
42
|
-
string :paramNameForNewAbsoluteIndex
|
|
43
|
-
string :paramNameForNewSectionIndex
|
|
44
|
-
string :paramNameForNewSectionedRowIndex
|
|
45
|
-
|
|
46
|
-
string :paramNameForNewIndex # Deprecated
|
|
47
|
-
|
|
48
|
-
# # NOTE: Experimental. Still deciding whether this needs to be a full blown panel or
|
|
49
|
-
# # an array of badges (with relevant properties, e.g. text, color, etc)
|
|
50
|
-
# views :accessoryViews
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
class Featured < Standard
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
class Thumbnail < Standard
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
class CommentOutgoing < Standard
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
class CommentIncoming < Standard
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
class Custom < Standard
|
|
66
|
-
string :template
|
|
67
|
-
|
|
68
|
-
# TODO: Experimental
|
|
69
|
-
hash :extra
|
|
70
|
-
|
|
71
|
-
# TODO: Deprecate
|
|
72
|
-
hash :data
|
|
73
|
-
end
|
|
74
|
-
end
|
|
75
|
-
|
|
76
|
-
class Section < AbstractBuilder
|
|
77
|
-
def initialize(json, page, template)
|
|
78
|
-
super json, page
|
|
79
|
-
@template = template
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
def header(options = {})
|
|
83
|
-
json.header do
|
|
84
|
-
page.vertical_content(options)
|
|
85
|
-
end
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
def rows(options = {})
|
|
89
|
-
block = options[:builder]
|
|
90
|
-
json.rows do
|
|
91
|
-
if (objects = options[:objects])
|
|
92
|
-
objects.each_with_index do |object, index|
|
|
93
|
-
block&.call @template, object, index
|
|
94
|
-
end
|
|
95
|
-
else
|
|
96
|
-
block&.call @template
|
|
97
|
-
end
|
|
98
|
-
end
|
|
99
|
-
end
|
|
100
|
-
|
|
101
|
-
def footer(options = {})
|
|
102
|
-
json.footer do
|
|
103
|
-
page.vertical_content(options)
|
|
104
|
-
end
|
|
105
|
-
end
|
|
106
|
-
end
|
|
107
|
-
|
|
108
|
-
end
|
|
109
|
-
end
|
|
110
|
-
end
|
|
1
|
+
module Glib
|
|
2
|
+
module JsonUi
|
|
3
|
+
module ListBuilders
|
|
4
|
+
class Template < AbstractBuilder
|
|
5
|
+
def method_missing(m, *args)
|
|
6
|
+
add_element_to_array 'template', m, *args
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
class AbstractTemplate < JsonUiElement
|
|
10
|
+
menu :leftButtons
|
|
11
|
+
menu :rightButtons
|
|
12
|
+
menu :editButtons
|
|
13
|
+
menu :chips
|
|
14
|
+
singleton_array :styleClass, :styleClasses
|
|
15
|
+
color :backgroundColor
|
|
16
|
+
|
|
17
|
+
# def editButtons(block)
|
|
18
|
+
# json.editButtons do
|
|
19
|
+
# block.call page.menu_builder
|
|
20
|
+
# end
|
|
21
|
+
# end
|
|
22
|
+
|
|
23
|
+
# def chips(block)
|
|
24
|
+
# json.chips do
|
|
25
|
+
# block.call page.menu_builder
|
|
26
|
+
# end
|
|
27
|
+
# end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
class Standard < AbstractTemplate
|
|
31
|
+
string :id
|
|
32
|
+
string :title
|
|
33
|
+
string :subtitle
|
|
34
|
+
string :subsubtitle
|
|
35
|
+
string :imageUrl
|
|
36
|
+
action :onClick
|
|
37
|
+
action :onLongPress
|
|
38
|
+
icon :icon
|
|
39
|
+
bool :avatar
|
|
40
|
+
action :onReorder
|
|
41
|
+
string :paramNameForFormData
|
|
42
|
+
string :paramNameForNewAbsoluteIndex
|
|
43
|
+
string :paramNameForNewSectionIndex
|
|
44
|
+
string :paramNameForNewSectionedRowIndex
|
|
45
|
+
|
|
46
|
+
string :paramNameForNewIndex # Deprecated
|
|
47
|
+
|
|
48
|
+
# # NOTE: Experimental. Still deciding whether this needs to be a full blown panel or
|
|
49
|
+
# # an array of badges (with relevant properties, e.g. text, color, etc)
|
|
50
|
+
# views :accessoryViews
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
class Featured < Standard
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
class Thumbnail < Standard
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
class CommentOutgoing < Standard
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
class CommentIncoming < Standard
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
class Custom < Standard
|
|
66
|
+
string :template
|
|
67
|
+
|
|
68
|
+
# TODO: Experimental
|
|
69
|
+
hash :extra
|
|
70
|
+
|
|
71
|
+
# TODO: Deprecate
|
|
72
|
+
hash :data
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
class Section < AbstractBuilder
|
|
77
|
+
def initialize(json, page, template)
|
|
78
|
+
super json, page
|
|
79
|
+
@template = template
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
def header(options = {})
|
|
83
|
+
json.header do
|
|
84
|
+
page.vertical_content(options)
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
def rows(options = {})
|
|
89
|
+
block = options[:builder]
|
|
90
|
+
json.rows do
|
|
91
|
+
if (objects = options[:objects])
|
|
92
|
+
objects.each_with_index do |object, index|
|
|
93
|
+
block&.call @template, object, index
|
|
94
|
+
end
|
|
95
|
+
else
|
|
96
|
+
block&.call @template
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
def footer(options = {})
|
|
102
|
+
json.footer do
|
|
103
|
+
page.vertical_content(options)
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
end
|