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,48 +1,48 @@
|
|
|
1
|
-
|
|
2
|
-
if (server_key = ENV['FCM_SERVER_KEY'])
|
|
3
|
-
if defined? FCM
|
|
4
|
-
# Introduce delay so that we have time to place the app to background
|
|
5
|
-
# before receiving push notification.
|
|
6
|
-
sleep 2
|
|
7
|
-
|
|
8
|
-
fcm = FCM.new(server_key)
|
|
9
|
-
registration_ids = [params[:token]] # An array of one or more client registration tokens
|
|
10
|
-
|
|
11
|
-
payload = json_ui_action_payload do |action|
|
|
12
|
-
action.dialogs_alert message: 'Opened'
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
# See https://firebase.google.com/docs/reference/fcm/rest/v1/projects.messages for all available options.
|
|
16
|
-
options = {
|
|
17
|
-
notification: {
|
|
18
|
-
title: params[:title],
|
|
19
|
-
body: 'Message from server'
|
|
20
|
-
# title: 'Offer from Ajisen Ramen',
|
|
21
|
-
# body: 'Free side order of Gyoza'
|
|
22
|
-
},
|
|
23
|
-
data: {
|
|
24
|
-
channelId: 'default',
|
|
25
|
-
notificationId: 1,
|
|
26
|
-
openUrl: json_ui_garage_url(path: 'home/blank'),
|
|
27
|
-
onOpen: payload
|
|
28
|
-
# openUrl: 'http://10.0.2.2:3000/offers.json?_render=v1',
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
response = fcm.send(registration_ids, options)
|
|
32
|
-
|
|
33
|
-
body = JSON.parse(response[:body])
|
|
34
|
-
if (errors = body['results'].map { |i| i['error'] }.compact).any?
|
|
35
|
-
message = errors.join(', ')
|
|
36
|
-
else
|
|
37
|
-
message = 'Sent'
|
|
38
|
-
end
|
|
39
|
-
else
|
|
40
|
-
message = 'FCM gem needed'
|
|
41
|
-
end
|
|
42
|
-
else
|
|
43
|
-
message = 'Env var needed: GCM_SERVER_KEY'
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
json_ui_response json do |action|
|
|
47
|
-
action.snackbars_alert message: message
|
|
48
|
-
end
|
|
1
|
+
|
|
2
|
+
if (server_key = ENV['FCM_SERVER_KEY'])
|
|
3
|
+
if defined? FCM
|
|
4
|
+
# Introduce delay so that we have time to place the app to background
|
|
5
|
+
# before receiving push notification.
|
|
6
|
+
sleep 2
|
|
7
|
+
|
|
8
|
+
fcm = FCM.new(server_key)
|
|
9
|
+
registration_ids = [params[:token]] # An array of one or more client registration tokens
|
|
10
|
+
|
|
11
|
+
payload = json_ui_action_payload do |action|
|
|
12
|
+
action.dialogs_alert message: 'Opened'
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# See https://firebase.google.com/docs/reference/fcm/rest/v1/projects.messages for all available options.
|
|
16
|
+
options = {
|
|
17
|
+
notification: {
|
|
18
|
+
title: params[:title],
|
|
19
|
+
body: 'Message from server'
|
|
20
|
+
# title: 'Offer from Ajisen Ramen',
|
|
21
|
+
# body: 'Free side order of Gyoza'
|
|
22
|
+
},
|
|
23
|
+
data: {
|
|
24
|
+
channelId: 'default',
|
|
25
|
+
notificationId: 1,
|
|
26
|
+
openUrl: json_ui_garage_url(path: 'home/blank'),
|
|
27
|
+
onOpen: payload
|
|
28
|
+
# openUrl: 'http://10.0.2.2:3000/offers.json?_render=v1',
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
response = fcm.send(registration_ids, options)
|
|
32
|
+
|
|
33
|
+
body = JSON.parse(response[:body])
|
|
34
|
+
if (errors = body['results'].map { |i| i['error'] }.compact).any?
|
|
35
|
+
message = errors.join(', ')
|
|
36
|
+
else
|
|
37
|
+
message = 'Sent'
|
|
38
|
+
end
|
|
39
|
+
else
|
|
40
|
+
message = 'FCM gem needed'
|
|
41
|
+
end
|
|
42
|
+
else
|
|
43
|
+
message = 'Env var needed: GCM_SERVER_KEY'
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
json_ui_response json do |action|
|
|
47
|
+
action.snackbars_alert message: message
|
|
48
|
+
end
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
json.title 'Notifications'
|
|
2
|
-
|
|
3
|
-
page = json_ui_page json
|
|
4
|
-
render "#{@path_prefix}/nav_menu", json: json, page: page, top_nav: true
|
|
5
|
-
|
|
6
|
-
page.list firstSection: ->(section) do
|
|
7
|
-
section.rows builder: ->(template) do
|
|
8
|
-
template.thumbnail title: 'Send Desktop Notification', onClick: ->(action) do
|
|
9
|
-
action.dialogs_notification title: 'Hello World', message: 'This is a notification', onClick: ->(subaction) do
|
|
10
|
-
subaction.dialogs_alert message: 'Perform action'
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
template.thumbnail title: 'Send Android Notification', onClick: ->(action) do
|
|
15
|
-
action.auth_saveCsrfToken token: form_authenticity_token, onSave: ->(subaction) do
|
|
16
|
-
# subaction.devices_getPushToken paramNameForToken: 'formData[token]', onGet: ->(subsubaction) do
|
|
17
|
-
# formData = {
|
|
18
|
-
# title: 'Title from formData'
|
|
19
|
-
# }
|
|
20
|
-
# subsubaction.http_post url: json_ui_garage_url(path: 'notifications/android_post'), formData: formData
|
|
21
|
-
# end
|
|
22
|
-
|
|
23
|
-
post_url = json_ui_garage_url(path: 'notifications/android_post', title: 'Title from formData')
|
|
24
|
-
subaction.devices_getPushToken postUrl: post_url, paramNameForToken: 'token'
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
template.thumbnail title: 'Phoenix WebSocket Real-time Update', onClick: ->(action) do
|
|
29
|
-
action.windows_open url: json_ui_garage_url(path: 'notifications/web_socket')
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
template.thumbnail title: 'ActionCable Real-time Update', onClick: ->(action) do
|
|
33
|
-
action.windows_open url: json_ui_garage_url(path: 'notifications/action_cable')
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
end
|
|
1
|
+
json.title 'Notifications'
|
|
2
|
+
|
|
3
|
+
page = json_ui_page json
|
|
4
|
+
render "#{@path_prefix}/nav_menu", json: json, page: page, top_nav: true
|
|
5
|
+
|
|
6
|
+
page.list firstSection: ->(section) do
|
|
7
|
+
section.rows builder: ->(template) do
|
|
8
|
+
template.thumbnail title: 'Send Desktop Notification', onClick: ->(action) do
|
|
9
|
+
action.dialogs_notification title: 'Hello World', message: 'This is a notification', onClick: ->(subaction) do
|
|
10
|
+
subaction.dialogs_alert message: 'Perform action'
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
template.thumbnail title: 'Send Android Notification', onClick: ->(action) do
|
|
15
|
+
action.auth_saveCsrfToken token: form_authenticity_token, onSave: ->(subaction) do
|
|
16
|
+
# subaction.devices_getPushToken paramNameForToken: 'formData[token]', onGet: ->(subsubaction) do
|
|
17
|
+
# formData = {
|
|
18
|
+
# title: 'Title from formData'
|
|
19
|
+
# }
|
|
20
|
+
# subsubaction.http_post url: json_ui_garage_url(path: 'notifications/android_post'), formData: formData
|
|
21
|
+
# end
|
|
22
|
+
|
|
23
|
+
post_url = json_ui_garage_url(path: 'notifications/android_post', title: 'Title from formData')
|
|
24
|
+
subaction.devices_getPushToken postUrl: post_url, paramNameForToken: 'token'
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
template.thumbnail title: 'Phoenix WebSocket Real-time Update', onClick: ->(action) do
|
|
29
|
+
action.windows_open url: json_ui_garage_url(path: 'notifications/web_socket')
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
template.thumbnail title: 'ActionCable Real-time Update', onClick: ->(action) do
|
|
33
|
+
action.windows_open url: json_ui_garage_url(path: 'notifications/action_cable')
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -1,60 +1,60 @@
|
|
|
1
|
-
json.title 'Forms'
|
|
2
|
-
|
|
3
|
-
page = json_ui_page json
|
|
4
|
-
render "#{@path_prefix}/nav_menu", json: json, page: page
|
|
5
|
-
|
|
6
|
-
json.phoenixSocket({
|
|
7
|
-
"socket" => {
|
|
8
|
-
"endpoint" => "/socket/websocket",
|
|
9
|
-
"params" => {
|
|
10
|
-
vsn: '2.0.0',
|
|
11
|
-
token: 'TOKEN'
|
|
12
|
-
}
|
|
13
|
-
},
|
|
14
|
-
# "topic" => "room:30",
|
|
15
|
-
# "event" => "comments_updated",
|
|
16
|
-
"topic" => "links",
|
|
17
|
-
"events" => ["new_link_added"],
|
|
18
|
-
"header" => {
|
|
19
|
-
"user_id" => 2,
|
|
20
|
-
"prev_item_id" => nil,
|
|
21
|
-
"last_item_id" => nil
|
|
22
|
-
}
|
|
23
|
-
})
|
|
24
|
-
|
|
25
|
-
page.form url: json_ui_garage_url(path: 'forms/basic_post'), method: 'post', padding: glib_json_padding_body, paramNameForFormData: 'formData', onSubmit: ->(action) do
|
|
26
|
-
json.action "ws/push"
|
|
27
|
-
json.topic "links"
|
|
28
|
-
json.event "new_link"
|
|
29
|
-
json.payload({
|
|
30
|
-
"club_id": "2",
|
|
31
|
-
"room_id": "30",
|
|
32
|
-
"user_id": "2"
|
|
33
|
-
# title: "TITLE",
|
|
34
|
-
# url: "URL"
|
|
35
|
-
})
|
|
36
|
-
|
|
37
|
-
end, childViews: ->(form) do
|
|
38
|
-
form.spacer height: 14
|
|
39
|
-
form.label text: "Message: #{params[:message]}"
|
|
40
|
-
form.spacer height: 14
|
|
41
|
-
|
|
42
|
-
form.fields_text name: 'user[name]', width: 'matchParent', label: 'Name'
|
|
43
|
-
|
|
44
|
-
# TODO: Change this to radio for selecting alert vs reload response
|
|
45
|
-
form.fields_password name: 'user[password]', width: 'matchParent', label: 'Password'
|
|
46
|
-
|
|
47
|
-
form.fields_hidden name: 'baseUrl', width: 'matchParent', value: json_ui_garage_url(path: 'notifications/web_socket')
|
|
48
|
-
|
|
49
|
-
form.panels_split width: 'matchParent', content: ->(split) do
|
|
50
|
-
# split.left childViews: ->(left) do
|
|
51
|
-
# if params[:mode] == 'dialog'
|
|
52
|
-
# left.button styleClass: 'link', text: 'cancel', onClick: ->(action) { action.dialogs_close }
|
|
53
|
-
# end
|
|
54
|
-
# end
|
|
55
|
-
split.right childViews: ->(right) do
|
|
56
|
-
right.button text: 'Submit', onClick: ->(action) { action.forms_submit }
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
end
|
|
1
|
+
json.title 'Forms'
|
|
2
|
+
|
|
3
|
+
page = json_ui_page json
|
|
4
|
+
render "#{@path_prefix}/nav_menu", json: json, page: page
|
|
5
|
+
|
|
6
|
+
json.phoenixSocket({
|
|
7
|
+
"socket" => {
|
|
8
|
+
"endpoint" => "/socket/websocket",
|
|
9
|
+
"params" => {
|
|
10
|
+
vsn: '2.0.0',
|
|
11
|
+
token: 'TOKEN'
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
# "topic" => "room:30",
|
|
15
|
+
# "event" => "comments_updated",
|
|
16
|
+
"topic" => "links",
|
|
17
|
+
"events" => ["new_link_added"],
|
|
18
|
+
"header" => {
|
|
19
|
+
"user_id" => 2,
|
|
20
|
+
"prev_item_id" => nil,
|
|
21
|
+
"last_item_id" => nil
|
|
22
|
+
}
|
|
23
|
+
})
|
|
24
|
+
|
|
25
|
+
page.form url: json_ui_garage_url(path: 'forms/basic_post'), method: 'post', padding: glib_json_padding_body, paramNameForFormData: 'formData', onSubmit: ->(action) do
|
|
26
|
+
json.action "ws/push"
|
|
27
|
+
json.topic "links"
|
|
28
|
+
json.event "new_link"
|
|
29
|
+
json.payload({
|
|
30
|
+
"club_id": "2",
|
|
31
|
+
"room_id": "30",
|
|
32
|
+
"user_id": "2"
|
|
33
|
+
# title: "TITLE",
|
|
34
|
+
# url: "URL"
|
|
35
|
+
})
|
|
36
|
+
|
|
37
|
+
end, childViews: ->(form) do
|
|
38
|
+
form.spacer height: 14
|
|
39
|
+
form.label text: "Message: #{params[:message]}"
|
|
40
|
+
form.spacer height: 14
|
|
41
|
+
|
|
42
|
+
form.fields_text name: 'user[name]', width: 'matchParent', label: 'Name'
|
|
43
|
+
|
|
44
|
+
# TODO: Change this to radio for selecting alert vs reload response
|
|
45
|
+
form.fields_password name: 'user[password]', width: 'matchParent', label: 'Password'
|
|
46
|
+
|
|
47
|
+
form.fields_hidden name: 'baseUrl', width: 'matchParent', value: json_ui_garage_url(path: 'notifications/web_socket')
|
|
48
|
+
|
|
49
|
+
form.panels_split width: 'matchParent', content: ->(split) do
|
|
50
|
+
# split.left childViews: ->(left) do
|
|
51
|
+
# if params[:mode] == 'dialog'
|
|
52
|
+
# left.button styleClass: 'link', text: 'cancel', onClick: ->(action) { action.dialogs_close }
|
|
53
|
+
# end
|
|
54
|
+
# end
|
|
55
|
+
split.right childViews: ->(right) do
|
|
56
|
+
right.button text: 'Submit', onClick: ->(action) { action.forms_submit }
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
end
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
json.title 'Pages'
|
|
2
|
-
|
|
3
|
-
json_ui_page json do |page|
|
|
4
|
-
render "#{@path_prefix}/nav_menu", json: json, page: page
|
|
5
|
-
|
|
6
|
-
page.template 'flatCentered'
|
|
7
|
-
|
|
8
|
-
page.header childViews: ->(header) do
|
|
9
|
-
header.panels_vertical width: 'matchParent', styleClass: 'card', padding: glib_json_padding_body, childViews: ->(vertical) do
|
|
10
|
-
vertical.h1 text: 'Header'
|
|
11
|
-
end
|
|
12
|
-
header.spacer height: 20
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
page.footer childViews: ->(footer) do
|
|
16
|
-
footer.spacer height: 20
|
|
17
|
-
footer.panels_vertical width: 'matchParent', styleClass: 'card', padding: glib_json_padding_body, childViews: ->(vertical) do
|
|
18
|
-
vertical.h1 text: 'Footer'
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
page.body childViews: ->(scroll) do
|
|
23
|
-
scroll.panels_vertical width: 'matchParent', styleClass: 'card', padding: glib_json_padding_body, childViews: ->(vertical) do
|
|
24
|
-
(1..100).each do |index|
|
|
25
|
-
scroll.label text: 'Content'
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
1
|
+
json.title 'Pages'
|
|
2
|
+
|
|
3
|
+
json_ui_page json do |page|
|
|
4
|
+
render "#{@path_prefix}/nav_menu", json: json, page: page
|
|
5
|
+
|
|
6
|
+
page.template 'flatCentered'
|
|
7
|
+
|
|
8
|
+
page.header childViews: ->(header) do
|
|
9
|
+
header.panels_vertical width: 'matchParent', styleClass: 'card', padding: glib_json_padding_body, childViews: ->(vertical) do
|
|
10
|
+
vertical.h1 text: 'Header'
|
|
11
|
+
end
|
|
12
|
+
header.spacer height: 20
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
page.footer childViews: ->(footer) do
|
|
16
|
+
footer.spacer height: 20
|
|
17
|
+
footer.panels_vertical width: 'matchParent', styleClass: 'card', padding: glib_json_padding_body, childViews: ->(vertical) do
|
|
18
|
+
vertical.h1 text: 'Footer'
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
page.body childViews: ->(scroll) do
|
|
23
|
+
scroll.panels_vertical width: 'matchParent', styleClass: 'card', padding: glib_json_padding_body, childViews: ->(vertical) do
|
|
24
|
+
(1..100).each do |index|
|
|
25
|
+
scroll.label text: 'Content'
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
json.title 'Pages'
|
|
2
|
-
|
|
3
|
-
json_ui_page json do |page|
|
|
4
|
-
render "#{@path_prefix}/nav_menu", json: json, page: page
|
|
5
|
-
|
|
6
|
-
page.template 'fullWidth'
|
|
7
|
-
|
|
8
|
-
page.header childViews: ->(header) do
|
|
9
|
-
header.panels_vertical width: 'matchParent', styleClass: 'card', padding: glib_json_padding_body, childViews: ->(vertical) do
|
|
10
|
-
vertical.h1 text: 'Header'
|
|
11
|
-
end
|
|
12
|
-
header.spacer height: 10
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
page.footer childViews: ->(footer) do
|
|
16
|
-
footer.spacer height: 10
|
|
17
|
-
footer.panels_vertical width: 'matchParent', styleClass: 'card', padding: glib_json_padding_body, childViews: ->(vertical) do
|
|
18
|
-
vertical.h1 text: 'Footer'
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
page.body childViews: ->(scroll) do
|
|
23
|
-
scroll.panels_vertical width: 'matchParent', styleClass: 'card', padding: glib_json_padding_body, childViews: ->(vertical) do
|
|
24
|
-
(1..100).each do |index|
|
|
25
|
-
vertical.label text: 'Content'
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
1
|
+
json.title 'Pages'
|
|
2
|
+
|
|
3
|
+
json_ui_page json do |page|
|
|
4
|
+
render "#{@path_prefix}/nav_menu", json: json, page: page
|
|
5
|
+
|
|
6
|
+
page.template 'fullWidth'
|
|
7
|
+
|
|
8
|
+
page.header childViews: ->(header) do
|
|
9
|
+
header.panels_vertical width: 'matchParent', styleClass: 'card', padding: glib_json_padding_body, childViews: ->(vertical) do
|
|
10
|
+
vertical.h1 text: 'Header'
|
|
11
|
+
end
|
|
12
|
+
header.spacer height: 10
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
page.footer childViews: ->(footer) do
|
|
16
|
+
footer.spacer height: 10
|
|
17
|
+
footer.panels_vertical width: 'matchParent', styleClass: 'card', padding: glib_json_padding_body, childViews: ->(vertical) do
|
|
18
|
+
vertical.h1 text: 'Footer'
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
page.body childViews: ->(scroll) do
|
|
23
|
+
scroll.panels_vertical width: 'matchParent', styleClass: 'card', padding: glib_json_padding_body, childViews: ->(vertical) do
|
|
24
|
+
(1..100).each do |index|
|
|
25
|
+
vertical.label text: 'Content'
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
json.title 'Pages'
|
|
2
|
-
|
|
3
|
-
page = json_ui_page json
|
|
4
|
-
render "#{@path_prefix}/nav_menu", json: json, page: page
|
|
5
|
-
|
|
6
|
-
page.header padding: glib_json_padding_body, backgroundColor: '#b3bac2', childViews: ->(header) do
|
|
7
|
-
header.h1 text: 'Header'
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
page.body height: 'matchParent', padding: glib_json_padding_body, childViews: ->(body) do
|
|
11
|
-
body.button width: 'matchParent', height: 'matchParent', text: 'Full Width/Height'
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
page.footer height: 80, padding: glib_json_padding_body, backgroundColor: '#b3bac2', childViews: ->(footer) do
|
|
15
|
-
footer.h1 text: 'Footer'
|
|
16
|
-
end
|
|
1
|
+
json.title 'Pages'
|
|
2
|
+
|
|
3
|
+
page = json_ui_page json
|
|
4
|
+
render "#{@path_prefix}/nav_menu", json: json, page: page
|
|
5
|
+
|
|
6
|
+
page.header padding: glib_json_padding_body, backgroundColor: '#b3bac2', childViews: ->(header) do
|
|
7
|
+
header.h1 text: 'Header'
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
page.body height: 'matchParent', padding: glib_json_padding_body, childViews: ->(body) do
|
|
11
|
+
body.button width: 'matchParent', height: 'matchParent', text: 'Full Width/Height'
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
page.footer height: 80, padding: glib_json_padding_body, backgroundColor: '#b3bac2', childViews: ->(footer) do
|
|
15
|
+
footer.h1 text: 'Footer'
|
|
16
|
+
end
|
|
@@ -1,62 +1,62 @@
|
|
|
1
|
-
json.title 'Pages'
|
|
2
|
-
|
|
3
|
-
json_ui_page json do |page|
|
|
4
|
-
render "#{@path_prefix}/nav_menu", json: json, page: page, top_nav: true
|
|
5
|
-
|
|
6
|
-
page.list sections: [
|
|
7
|
-
->(section) do
|
|
8
|
-
section.rows builder: ->(template) do
|
|
9
|
-
template.thumbnail title: 'Hamburger Layout', onClick: ->(action) do
|
|
10
|
-
action.windows_open url: json_ui_garage_url(path: 'pages/layout')
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
template.thumbnail title: 'Full Width/Height', onClick: ->(action) do
|
|
14
|
-
action.windows_open url: json_ui_garage_url(path: 'pages/full_width_height')
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
template.thumbnail title: 'Tab Bar', onClick: ->(action) do
|
|
18
|
-
action.windows_open url: json_ui_garage_url(path: 'pages/tab_bar')
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
template.thumbnail title: 'Nav Buttons', onClick: ->(action) do
|
|
22
|
-
action.windows_open url: json_ui_garage_url(path: 'pages/nav_buttons')
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
template.thumbnail title: 'Loading Indicator', onClick: ->(action) do
|
|
26
|
-
action.windows_open url: json_ui_garage_url(path: 'pages/loading_indicator')
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
template.thumbnail title: 'Lifecycle Hooks', onClick: ->(action) do
|
|
30
|
-
action.windows_open url: json_ui_garage_url(path: 'pages/lifecycle_hooks')
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end,
|
|
34
|
-
->(section) do
|
|
35
|
-
section.header padding: glib_json_padding_list, childViews: ->(header) do
|
|
36
|
-
header.h2 text: 'Templates (Web Only)'
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
section.rows builder: ->(template) do
|
|
40
|
-
template.thumbnail title: 'Flat Centered', onClick: ->(action) do
|
|
41
|
-
action.windows_open url: json_ui_garage_url(path: 'pages/flat_centered')
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
template.thumbnail title: 'Full Width', onClick: ->(action) do
|
|
45
|
-
action.windows_open url: json_ui_garage_url(path: 'pages/full_width')
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
end,
|
|
49
|
-
->(section) do
|
|
50
|
-
section.header padding: glib_json_padding_list, childViews: ->(header) do
|
|
51
|
-
header.h2 text: 'Misc (Web Only)'
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
section.rows builder: ->(template) do
|
|
55
|
-
template.thumbnail title: 'Nested Scroll', onClick: ->(action) do
|
|
56
|
-
action.windows_open url: json_ui_garage_url(path: 'pages/nested_scroll')
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
|
-
]
|
|
61
|
-
|
|
62
|
-
end
|
|
1
|
+
json.title 'Pages'
|
|
2
|
+
|
|
3
|
+
json_ui_page json do |page|
|
|
4
|
+
render "#{@path_prefix}/nav_menu", json: json, page: page, top_nav: true
|
|
5
|
+
|
|
6
|
+
page.list sections: [
|
|
7
|
+
->(section) do
|
|
8
|
+
section.rows builder: ->(template) do
|
|
9
|
+
template.thumbnail title: 'Hamburger Layout', onClick: ->(action) do
|
|
10
|
+
action.windows_open url: json_ui_garage_url(path: 'pages/layout')
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
template.thumbnail title: 'Full Width/Height', onClick: ->(action) do
|
|
14
|
+
action.windows_open url: json_ui_garage_url(path: 'pages/full_width_height')
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
template.thumbnail title: 'Tab Bar', onClick: ->(action) do
|
|
18
|
+
action.windows_open url: json_ui_garage_url(path: 'pages/tab_bar')
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
template.thumbnail title: 'Nav Buttons', onClick: ->(action) do
|
|
22
|
+
action.windows_open url: json_ui_garage_url(path: 'pages/nav_buttons')
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
template.thumbnail title: 'Loading Indicator', onClick: ->(action) do
|
|
26
|
+
action.windows_open url: json_ui_garage_url(path: 'pages/loading_indicator')
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
template.thumbnail title: 'Lifecycle Hooks', onClick: ->(action) do
|
|
30
|
+
action.windows_open url: json_ui_garage_url(path: 'pages/lifecycle_hooks')
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end,
|
|
34
|
+
->(section) do
|
|
35
|
+
section.header padding: glib_json_padding_list, childViews: ->(header) do
|
|
36
|
+
header.h2 text: 'Templates (Web Only)'
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
section.rows builder: ->(template) do
|
|
40
|
+
template.thumbnail title: 'Flat Centered', onClick: ->(action) do
|
|
41
|
+
action.windows_open url: json_ui_garage_url(path: 'pages/flat_centered')
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
template.thumbnail title: 'Full Width', onClick: ->(action) do
|
|
45
|
+
action.windows_open url: json_ui_garage_url(path: 'pages/full_width')
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end,
|
|
49
|
+
->(section) do
|
|
50
|
+
section.header padding: glib_json_padding_list, childViews: ->(header) do
|
|
51
|
+
header.h2 text: 'Misc (Web Only)'
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
section.rows builder: ->(template) do
|
|
55
|
+
template.thumbnail title: 'Nested Scroll', onClick: ->(action) do
|
|
56
|
+
action.windows_open url: json_ui_garage_url(path: 'pages/nested_scroll')
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
]
|
|
61
|
+
|
|
62
|
+
end
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
json.title 'Pages'
|
|
2
|
-
|
|
3
|
-
page = json_ui_page json
|
|
4
|
-
render "#{@path_prefix}/nav_menu", json: json, page: page
|
|
5
|
-
|
|
6
|
-
page.header padding: glib_json_padding_body, backgroundColor: '#b3bac2', childViews: ->(header) do
|
|
7
|
-
header.h1 text: 'Header'
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
page.footer padding: glib_json_padding_body, backgroundColor: '#b3bac2', childViews: ->(footer) do
|
|
11
|
-
footer.h1 text: 'Footer'
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
|
|
15
|
-
(1..100).each do |index|
|
|
16
|
-
scroll.label text: 'Content'
|
|
17
|
-
end
|
|
18
|
-
end
|
|
1
|
+
json.title 'Pages'
|
|
2
|
+
|
|
3
|
+
page = json_ui_page json
|
|
4
|
+
render "#{@path_prefix}/nav_menu", json: json, page: page
|
|
5
|
+
|
|
6
|
+
page.header padding: glib_json_padding_body, backgroundColor: '#b3bac2', childViews: ->(header) do
|
|
7
|
+
header.h1 text: 'Header'
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
page.footer padding: glib_json_padding_body, backgroundColor: '#b3bac2', childViews: ->(footer) do
|
|
11
|
+
footer.h1 text: 'Footer'
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
|
|
15
|
+
(1..100).each do |index|
|
|
16
|
+
scroll.label text: 'Content'
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
json.title 'Pages'
|
|
2
|
-
|
|
3
|
-
page = json_ui_page json
|
|
4
|
-
|
|
5
|
-
render "#{@path_prefix}/nav_menu", json: json, page: page
|
|
6
|
-
|
|
7
|
-
page.on load: ->(action) do
|
|
8
|
-
action.dialogs_alert message: 'This is an onLoad action'
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
|
|
12
|
-
scroll.label text: 'A dialog should appear automatically.'
|
|
13
|
-
end
|
|
1
|
+
json.title 'Pages'
|
|
2
|
+
|
|
3
|
+
page = json_ui_page json
|
|
4
|
+
|
|
5
|
+
render "#{@path_prefix}/nav_menu", json: json, page: page
|
|
6
|
+
|
|
7
|
+
page.on load: ->(action) do
|
|
8
|
+
action.dialogs_alert message: 'This is an onLoad action'
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
|
|
12
|
+
scroll.label text: 'A dialog should appear automatically.'
|
|
13
|
+
end
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
sleep 1
|
|
2
|
-
|
|
3
|
-
json.title 'Pages'
|
|
4
|
-
|
|
5
|
-
page = json_ui_page json
|
|
6
|
-
render "#{@path_prefix}/nav_menu", json: json, page: page
|
|
7
|
-
|
|
8
|
-
page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
|
|
9
|
-
scroll.label text: 'On the web, the loading indicator should be show on the browser tab.'
|
|
10
|
-
end
|
|
1
|
+
sleep 1
|
|
2
|
+
|
|
3
|
+
json.title 'Pages'
|
|
4
|
+
|
|
5
|
+
page = json_ui_page json
|
|
6
|
+
render "#{@path_prefix}/nav_menu", json: json, page: page
|
|
7
|
+
|
|
8
|
+
page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
|
|
9
|
+
scroll.label text: 'On the web, the loading indicator should be show on the browser tab.'
|
|
10
|
+
end
|