glib-web 0.5.77 → 0.5.78

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.
Files changed (190) hide show
  1. checksums.yaml +4 -4
  2. data/app/channels/glib/channel/is_typing_channel.rb +34 -34
  3. data/app/channels/glib/channel/online_channel.rb +36 -36
  4. data/app/controllers/concerns/glib/analytics/funnel.rb +61 -61
  5. data/app/controllers/concerns/glib/auth/policy.rb +148 -148
  6. data/app/controllers/concerns/glib/json/dynamic_text.rb +126 -126
  7. data/app/controllers/concerns/glib/json/libs.rb +149 -149
  8. data/app/controllers/concerns/glib/json/new_dynamic_text.rb +122 -122
  9. data/app/controllers/concerns/glib/json/transformation.rb +11 -11
  10. data/app/controllers/concerns/glib/json/traversal.rb +92 -92
  11. data/app/controllers/concerns/glib/json/ui.rb +88 -88
  12. data/app/controllers/concerns/glib/json/validation.rb +13 -13
  13. data/app/controllers/glib/home_controller.rb +54 -54
  14. data/app/helpers/glib/app_feature_support_helper.rb +16 -16
  15. data/app/helpers/glib/dynamic_images_helper.rb +55 -55
  16. data/app/helpers/glib/dynamic_texts_helper.rb +42 -42
  17. data/app/helpers/glib/enum_helper.rb +18 -18
  18. data/app/helpers/glib/forms_helper.rb +15 -15
  19. data/app/helpers/glib/json_ui/abstract_builder.rb +309 -309
  20. data/app/helpers/glib/json_ui/action_builder/dialogs.rb +58 -58
  21. data/app/helpers/glib/json_ui/action_builder/http.rb +39 -39
  22. data/app/helpers/glib/json_ui/action_builder/iap.rb +15 -0
  23. data/app/helpers/glib/json_ui/action_builder/panels.rb +14 -14
  24. data/app/helpers/glib/json_ui/action_builder/sheets.rb +15 -15
  25. data/app/helpers/glib/json_ui/action_builder/snackbars.rb +41 -41
  26. data/app/helpers/glib/json_ui/action_builder/windows.rb +38 -38
  27. data/app/helpers/glib/json_ui/action_builder.rb +140 -140
  28. data/app/helpers/glib/json_ui/analytics_helper.rb +17 -17
  29. data/app/helpers/glib/json_ui/dynamic_field_builders.rb +25 -25
  30. data/app/helpers/glib/json_ui/generic_builders.rb +28 -28
  31. data/app/helpers/glib/json_ui/list_builders.rb +110 -110
  32. data/app/helpers/glib/json_ui/menu_builder.rb +94 -94
  33. data/app/helpers/glib/json_ui/page_helper.rb +221 -221
  34. data/app/helpers/glib/json_ui/response_helper.rb +25 -25
  35. data/app/helpers/glib/json_ui/split_builders.rb +32 -32
  36. data/app/helpers/glib/json_ui/styling_helper.rb +55 -55
  37. data/app/helpers/glib/json_ui/table_builders.rb +74 -74
  38. data/app/helpers/glib/json_ui/view_builder/banners.rb +26 -26
  39. data/app/helpers/glib/json_ui/view_builder/charts.rb +33 -33
  40. data/app/helpers/glib/json_ui/view_builder/fields.rb +291 -291
  41. data/app/helpers/glib/json_ui/view_builder/iap.rb +11 -0
  42. data/app/helpers/glib/json_ui/view_builder/panels.rb +256 -256
  43. data/app/helpers/glib/json_ui/view_builder.rb +240 -240
  44. data/app/helpers/glib/urls_helper.rb +12 -12
  45. data/app/models/concerns/glib/soft_deletable.rb +68 -68
  46. data/app/models/glib/active_storage/attachment.rb +9 -9
  47. data/app/models/glib/active_storage/blob.rb +9 -9
  48. data/app/models/glib/application_record.rb +18 -18
  49. data/app/models/glib/dynamic_text_record.rb +9 -9
  50. data/app/models/glib/text.rb +95 -95
  51. data/app/policies/glib/application_policy.rb +166 -166
  52. data/app/validators/email_typo_validator.rb +38 -38
  53. data/app/validators/email_validator.rb +7 -7
  54. data/app/validators/url_validator.rb +20 -20
  55. data/app/views/json_ui/garage/_nav_menu.json.jbuilder +70 -70
  56. data/app/views/json_ui/garage/actions/_dialogs.json.jbuilder +104 -104
  57. data/app/views/json_ui/garage/actions/_http.json.jbuilder +24 -24
  58. data/app/views/json_ui/garage/actions/_panels.json.jbuilder +18 -18
  59. data/app/views/json_ui/garage/actions/_reload.json.jbuilder +17 -17
  60. data/app/views/json_ui/garage/actions/_sheets.json.jbuilder +18 -18
  61. data/app/views/json_ui/garage/actions/_snackbars.json.jbuilder +33 -33
  62. data/app/views/json_ui/garage/actions/_timeouts.json.jbuilder +24 -24
  63. data/app/views/json_ui/garage/actions/_windows.json.jbuilder +24 -24
  64. data/app/views/json_ui/garage/actions/dialogs_oauth_post.json.jbuilder +6 -6
  65. data/app/views/json_ui/garage/actions/index.json.jbuilder +24 -24
  66. data/app/views/json_ui/garage/forms/_alert_post_data.json.jbuilder +10 -7
  67. data/app/views/json_ui/garage/forms/basic.json.jbuilder +21 -21
  68. data/app/views/json_ui/garage/forms/basic_post.json.jbuilder +8 -8
  69. data/app/views/json_ui/garage/forms/checkboxes.json.jbuilder +43 -43
  70. data/app/views/json_ui/garage/forms/conditional_value.json.jbuilder +36 -36
  71. data/app/views/json_ui/garage/forms/dynamic_group.json.jbuilder +39 -39
  72. data/app/views/json_ui/garage/forms/dynamic_select.json.jbuilder +24 -24
  73. data/app/views/json_ui/garage/forms/dynamic_select_data.json.jbuilder +38 -38
  74. data/app/views/json_ui/garage/forms/file_upload.json.jbuilder +37 -37
  75. data/app/views/json_ui/garage/forms/floating_submit.json.jbuilder +19 -19
  76. data/app/views/json_ui/garage/forms/generic_post.json.jbuilder +3 -3
  77. data/app/views/json_ui/garage/forms/get_request.json.jbuilder +27 -27
  78. data/app/views/json_ui/garage/forms/index.json.jbuilder +116 -113
  79. data/app/views/json_ui/garage/forms/new_rich_text.json.jbuilder +40 -40
  80. data/app/views/json_ui/garage/forms/online_participant1.json.jbuilder +25 -25
  81. data/app/views/json_ui/garage/forms/online_participant2.json.jbuilder +25 -25
  82. data/app/views/json_ui/garage/forms/payments.json.jbuilder +34 -0
  83. data/app/views/json_ui/garage/forms/pickers.json.jbuilder +81 -81
  84. data/app/views/json_ui/garage/forms/ratings.json.jbuilder +49 -49
  85. data/app/views/json_ui/garage/forms/rich_text.json.jbuilder +40 -40
  86. data/app/views/json_ui/garage/forms/selects.json.jbuilder +91 -91
  87. data/app/views/json_ui/garage/forms/show_hide.json.jbuilder +150 -150
  88. data/app/views/json_ui/garage/forms/styled_boxes.json.jbuilder +35 -35
  89. data/app/views/json_ui/garage/forms/submission_flow.json.jbuilder +17 -17
  90. data/app/views/json_ui/garage/forms/submission_flow_post.json.jbuilder +26 -26
  91. data/app/views/json_ui/garage/forms/submission_indicator.json.jbuilder +63 -63
  92. data/app/views/json_ui/garage/forms/submission_indicator_post.json.jbuilder +25 -25
  93. data/app/views/json_ui/garage/forms/text_validation.json.jbuilder +65 -81
  94. data/app/views/json_ui/garage/forms/timers.json.jbuilder +120 -120
  95. data/app/views/json_ui/garage/home/blank.json.jbuilder +10 -10
  96. data/app/views/json_ui/garage/home/index.json.jbuilder +36 -36
  97. data/app/views/json_ui/garage/home/slow.json.jbuilder +11 -11
  98. data/app/views/json_ui/garage/lists/_autoload_section.json.jbuilder +28 -28
  99. data/app/views/json_ui/garage/lists/autoload_all.json.jbuilder +32 -32
  100. data/app/views/json_ui/garage/lists/autoload_as_needed.json.jbuilder +35 -35
  101. data/app/views/json_ui/garage/lists/chat_ui.json.jbuilder +94 -94
  102. data/app/views/json_ui/garage/lists/edit_actions.json.jbuilder +62 -62
  103. data/app/views/json_ui/garage/lists/fab.json.jbuilder +12 -12
  104. data/app/views/json_ui/garage/lists/index.json.jbuilder +38 -38
  105. data/app/views/json_ui/garage/lists/reordering.json.jbuilder +34 -34
  106. data/app/views/json_ui/garage/lists/templating.json.jbuilder +35 -35
  107. data/app/views/json_ui/garage/notifications/action_cable.json.jbuilder +114 -114
  108. data/app/views/json_ui/garage/notifications/android_post.json.jbuilder +48 -48
  109. data/app/views/json_ui/garage/notifications/index.json.jbuilder +36 -36
  110. data/app/views/json_ui/garage/notifications/web_socket.json.jbuilder +60 -60
  111. data/app/views/json_ui/garage/pages/flat_centered.json.jbuilder +29 -29
  112. data/app/views/json_ui/garage/pages/full_width.json.jbuilder +29 -29
  113. data/app/views/json_ui/garage/pages/full_width_height.json.jbuilder +16 -16
  114. data/app/views/json_ui/garage/pages/index.json.jbuilder +62 -62
  115. data/app/views/json_ui/garage/pages/layout.json.jbuilder +18 -18
  116. data/app/views/json_ui/garage/pages/lifecycle_hooks.json.jbuilder +13 -13
  117. data/app/views/json_ui/garage/pages/loading_indicator.json.jbuilder +10 -10
  118. data/app/views/json_ui/garage/pages/nav_buttons.json.jbuilder +21 -21
  119. data/app/views/json_ui/garage/pages/nested_scroll.json.jbuilder +40 -40
  120. data/app/views/json_ui/garage/pages/tab_bar.json.jbuilder +31 -31
  121. data/app/views/json_ui/garage/panels/_styled.json.jbuilder +78 -78
  122. data/app/views/json_ui/garage/panels/card.json.jbuilder +4 -4
  123. data/app/views/json_ui/garage/panels/carousel.json.jbuilder +38 -38
  124. data/app/views/json_ui/garage/panels/custom.json.jbuilder +17 -17
  125. data/app/views/json_ui/garage/panels/flow.json.jbuilder +59 -59
  126. data/app/views/json_ui/garage/panels/horizontal.json.jbuilder +91 -91
  127. data/app/views/json_ui/garage/panels/index.json.jbuilder +138 -138
  128. data/app/views/json_ui/garage/panels/outlined.json.jbuilder +4 -4
  129. data/app/views/json_ui/garage/panels/responsive.json.jbuilder +98 -98
  130. data/app/views/json_ui/garage/panels/split.json.jbuilder +182 -182
  131. data/app/views/json_ui/garage/panels/ul.json.jbuilder +33 -33
  132. data/app/views/json_ui/garage/panels/vertical.json.jbuilder +55 -55
  133. data/app/views/json_ui/garage/panels/web.json.jbuilder +15 -15
  134. data/app/views/json_ui/garage/services/dynamic_text.json.jbuilder +13 -13
  135. data/app/views/json_ui/garage/services/image.json.jbuilder +47 -47
  136. data/app/views/json_ui/garage/services/index.json.jbuilder +17 -17
  137. data/app/views/json_ui/garage/tables/_autoload_section.json.jbuilder +16 -16
  138. data/app/views/json_ui/garage/tables/autoload_all.json.jbuilder +43 -43
  139. data/app/views/json_ui/garage/tables/autoload_as_needed.json.jbuilder +50 -50
  140. data/app/views/json_ui/garage/tables/export_import.json.jbuilder +29 -29
  141. data/app/views/json_ui/garage/tables/horizontal_scroll.json.jbuilder +26 -26
  142. data/app/views/json_ui/garage/tables/index.json.jbuilder +25 -25
  143. data/app/views/json_ui/garage/tables/layout.json.jbuilder +40 -40
  144. data/app/views/json_ui/garage/views/_chart_data.json.jbuilder +17 -17
  145. data/app/views/json_ui/garage/views/banners.json.jbuilder +63 -63
  146. data/app/views/json_ui/garage/views/calendar_data.json.jbuilder +30 -30
  147. data/app/views/json_ui/garage/views/charts.json.jbuilder +115 -115
  148. data/app/views/json_ui/garage/views/controls.json.jbuilder +37 -37
  149. data/app/views/json_ui/garage/views/iap.json.jbuilder +21 -0
  150. data/app/views/json_ui/garage/views/icon_names.json.jbuilder +1450 -1450
  151. data/app/views/json_ui/garage/views/icons.json.jbuilder +15 -15
  152. data/app/views/json_ui/garage/views/images.json.jbuilder +89 -89
  153. data/app/views/json_ui/garage/views/index.json.jbuilder +78 -67
  154. data/app/views/json_ui/garage/views/links.json.jbuilder +70 -70
  155. data/app/views/json_ui/garage/views/map_cluster_data.json.jbuilder +41 -41
  156. data/app/views/json_ui/garage/views/map_data.json.jbuilder +51 -51
  157. data/app/views/json_ui/garage/views/maps.json.jbuilder +31 -31
  158. data/app/views/json_ui/garage/views/markdowns.json.jbuilder +41 -41
  159. data/app/views/json_ui/garage/views/misc.json.jbuilder +34 -34
  160. data/app/views/json_ui/garage/views/texts.json.jbuilder +35 -35
  161. data/app/views/layouts/json_ui/renderer.html.erb +35 -35
  162. data/config/routes.rb +7 -7
  163. data/lib/generators/glib/install_generator.rb +24 -24
  164. data/lib/generators/templates/20191017062519_create_texts.rb +12 -12
  165. data/lib/generators/templates/20191024063257_add_scope_to_texts.rb +7 -7
  166. data/lib/generators/templates/20191112095018_add_lang_to_texts.rb +7 -7
  167. data/lib/generators/templates/20191126071051_create_active_storage_tables.active_storage.rb +27 -27
  168. data/lib/generators/templates/database.yml +107 -107
  169. data/lib/generators/templates/dynamic_text.rb +2 -2
  170. data/lib/glib/crypt/utils.rb +26 -26
  171. data/lib/glib/dynamic_text/config.rb +21 -21
  172. data/lib/glib/engine.rb +7 -7
  173. data/lib/glib/json_crawler/action_crawler.rb +23 -23
  174. data/lib/glib/json_crawler/action_crawlers/action_http.rb +11 -11
  175. data/lib/glib/json_crawler/action_crawlers/forms_submit.rb +48 -48
  176. data/lib/glib/json_crawler/action_crawlers/menu.rb +12 -12
  177. data/lib/glib/json_crawler/action_crawlers/nav_initiate.rb +19 -19
  178. data/lib/glib/json_crawler/action_crawlers/run_multiple.rb +13 -13
  179. data/lib/glib/json_crawler/action_crawlers/windows_open.rb +33 -33
  180. data/lib/glib/json_crawler/coverage.rb +20 -20
  181. data/lib/glib/json_crawler/http.rb +120 -120
  182. data/lib/glib/json_crawler/router.rb +90 -90
  183. data/lib/glib/json_crawler.rb +11 -11
  184. data/lib/glib/mailer_tester.rb +36 -36
  185. data/lib/glib/test_helpers.rb +52 -52
  186. data/lib/glib/value.rb +7 -7
  187. data/lib/glib/version.rb +5 -5
  188. data/lib/glib-web.rb +9 -9
  189. data/lib/tasks/db.rake +95 -95
  190. metadata +6 -3
@@ -1,20 +1,20 @@
1
- class UrlValidator < ActiveModel::EachValidator
2
- def validate_each(record, attribute, value)
3
- schemes = ['https', 'http']
4
-
5
- begin
6
- uri = URI.parse(value)
7
- host = uri && uri.host
8
- scheme = uri && uri.scheme
9
-
10
- valid_scheme = host && scheme && schemes.include?(scheme)
11
- valid_raw_url = scheme && value.match?(URI::regexp([scheme]))
12
-
13
- unless valid_raw_url && valid_scheme
14
- record.errors.add(attribute, :invalid)
15
- end
16
- rescue URI::InvalidURIError
17
- record.errors.add(attribute, :invalid)
18
- end
19
- end
20
- end
1
+ class UrlValidator < ActiveModel::EachValidator
2
+ def validate_each(record, attribute, value)
3
+ schemes = ['https', 'http']
4
+
5
+ begin
6
+ uri = URI.parse(value)
7
+ host = uri && uri.host
8
+ scheme = uri && uri.scheme
9
+
10
+ valid_scheme = host && scheme && schemes.include?(scheme)
11
+ valid_raw_url = scheme && value.match?(URI::regexp([scheme]))
12
+
13
+ unless valid_raw_url && valid_scheme
14
+ record.errors.add(attribute, :invalid)
15
+ end
16
+ rescue URI::InvalidURIError
17
+ record.errors.add(attribute, :invalid)
18
+ end
19
+ end
20
+ end
@@ -1,70 +1,70 @@
1
-
2
- if local_assigns[:top_nav] || json_ui_app_is_web?
3
- page.leftDrawer content: ->(drawer) do
4
- drawer.header childViews: ->(header) do
5
- header.button text: 'App', styleClasses: ['link', 'logo'], onClick: ->(action) do
6
- action.windows_open url: root_url
7
- end
8
- end
9
-
10
- drawer.rows builder: ->(menu) do
11
-
12
- menu.button text: 'Pages', onClick: ->(action) do
13
- action.windows_open url: json_ui_garage_url(path: 'pages/index')
14
- end
15
-
16
- menu.button text: 'Panels', onClick: ->(action) do
17
- action.windows_open url: json_ui_garage_url(path: 'panels/index')
18
- end
19
-
20
- menu.button text: 'Lists', onClick: ->(action) do
21
- action.windows_open url: json_ui_garage_url(path: 'lists/index')
22
- end
23
-
24
- menu.button text: 'Forms', onClick: ->(action) do
25
- action.windows_open url: json_ui_garage_url(path: 'forms/index')
26
- end
27
-
28
- menu.button text: 'Views', onClick: ->(action) do
29
- action.windows_open url: json_ui_garage_url(path: 'views/index')
30
- end
31
-
32
- menu.button text: 'Actions', onClick: ->(action) do
33
- action.windows_open url: json_ui_garage_url(path: 'actions/index')
34
- end
35
-
36
- menu.button text: 'Tables (Web Only)', onClick: ->(action) do
37
- action.windows_open url: json_ui_garage_url(path: 'tables/index')
38
- end
39
-
40
- menu.button text: 'Services', onClick: ->(action) do
41
- action.windows_open url: json_ui_garage_url(path: 'services/index')
42
- end
43
-
44
- menu.divider
45
- menu.label text: 'Misc Menu'
46
-
47
- menu.button icon: 'notifications', text: 'Notifications', onClick: ->(action) do
48
- action.windows_open url: json_ui_garage_url(path: 'notifications/index')
49
- end
50
-
51
- menu.button icon: 'list', text: 'UI Elements', onClick: ->(action) do
52
- action.windows_open url: json_ui_garage_url
53
- end
54
-
55
- menu.button icon: 'refresh', text: 'Reload', onClick: ->(action) do
56
- action.windows_reload
57
- end
58
-
59
- menu.button icon: { name: 'zoom_in', badge: '!' }, text: 'Diagnostics', onClick: ->(action) do
60
- action.dialogs_alert message: %{
61
- Bundle ID: #{json_ui_app_bundle_id || '<unknown>'}
62
- App Version: #{json_ui_app_build_version || '<unknown>'}
63
- Device OS: #{json_ui_app_device_os}
64
- }
65
- end
66
-
67
- end
68
- end
69
-
70
- end
1
+
2
+ if local_assigns[:top_nav] || json_ui_app_is_web?
3
+ page.leftDrawer content: ->(drawer) do
4
+ drawer.header childViews: ->(header) do
5
+ header.button text: 'App', styleClasses: ['link', 'logo'], onClick: ->(action) do
6
+ action.windows_open url: root_url
7
+ end
8
+ end
9
+
10
+ drawer.rows builder: ->(menu) do
11
+
12
+ menu.button text: 'Pages', onClick: ->(action) do
13
+ action.windows_open url: json_ui_garage_url(path: 'pages/index')
14
+ end
15
+
16
+ menu.button text: 'Panels', onClick: ->(action) do
17
+ action.windows_open url: json_ui_garage_url(path: 'panels/index')
18
+ end
19
+
20
+ menu.button text: 'Lists', onClick: ->(action) do
21
+ action.windows_open url: json_ui_garage_url(path: 'lists/index')
22
+ end
23
+
24
+ menu.button text: 'Forms', onClick: ->(action) do
25
+ action.windows_open url: json_ui_garage_url(path: 'forms/index')
26
+ end
27
+
28
+ menu.button text: 'Views', onClick: ->(action) do
29
+ action.windows_open url: json_ui_garage_url(path: 'views/index')
30
+ end
31
+
32
+ menu.button text: 'Actions', onClick: ->(action) do
33
+ action.windows_open url: json_ui_garage_url(path: 'actions/index')
34
+ end
35
+
36
+ menu.button text: 'Tables (Web Only)', onClick: ->(action) do
37
+ action.windows_open url: json_ui_garage_url(path: 'tables/index')
38
+ end
39
+
40
+ menu.button text: 'Services', onClick: ->(action) do
41
+ action.windows_open url: json_ui_garage_url(path: 'services/index')
42
+ end
43
+
44
+ menu.divider
45
+ menu.label text: 'Misc Menu'
46
+
47
+ menu.button icon: 'notifications', text: 'Notifications', onClick: ->(action) do
48
+ action.windows_open url: json_ui_garage_url(path: 'notifications/index')
49
+ end
50
+
51
+ menu.button icon: 'list', text: 'UI Elements', onClick: ->(action) do
52
+ action.windows_open url: json_ui_garage_url
53
+ end
54
+
55
+ menu.button icon: 'refresh', text: 'Reload', onClick: ->(action) do
56
+ action.windows_reload
57
+ end
58
+
59
+ menu.button icon: { name: 'zoom_in', badge: '!' }, text: 'Diagnostics', onClick: ->(action) do
60
+ action.dialogs_alert message: %{
61
+ Bundle ID: #{json_ui_app_bundle_id || '<unknown>'}
62
+ App Version: #{json_ui_app_build_version || '<unknown>'}
63
+ Device OS: #{json_ui_app_device_os}
64
+ }
65
+ end
66
+
67
+ end
68
+ end
69
+
70
+ end
@@ -1,104 +1,104 @@
1
-
2
- section.header padding: glib_json_padding_list, childViews: ->(header) do
3
- header.h3 text: 'Dialogs'
4
- end
5
-
6
- section.rows builder: ->(template) do
7
- template.thumbnail title: 'dialogs/alert', onClick: ->(action) do
8
- action.dialogs_alert message: 'This is an alert dialog', onClose: ->(action) do
9
- action.snackbars_alert message: 'Closed'
10
- end
11
- end
12
-
13
- # markdown = '# h1 Heading' + "\n" +
14
- # '## h2 Heading' + "\n" +
15
- # '### h3 Heading' + "\n" +
16
- # '#### h4 Heading' + "\n" +
17
- # '##### h5 Heading' + "\n" +
18
- # '###### h6 Heading' + "\n" +
19
- # "\n" +
20
- # '## Emphasis' + "\n" +
21
- # "\n" +
22
- # '**This is bold text**' + "\n" +
23
- # "\n" +
24
- # '__This is bold text__' + "\n" +
25
- # "\n" +
26
- # '*This is italic text*' + "\n" +
27
- # "\n" +
28
- # '_This is italic text_' + "\n" +
29
- # "\n" +
30
- # '~~Strikethrough~~' + "\n"
31
- # template.thumbnail title: 'dialogs/alert with markdown', onClick: ->(action) do
32
- # action.dialogs_alert message: markdown, message_format: 'markdown'
33
- # end
34
-
35
- # template.thumbnail title: 'dialogs/confirm (Experimental)', onClick: ->(action) do
36
- # action.dialogs_confirm message: 'This is a confirm dialog', onCancel: ->(action) do
37
- # action.snackbars_alert message: 'Canceled'
38
- # end, onConfirm: ->(action) do
39
- # action.snackbars_alert message: 'Confirmed'
40
- # end
41
- # end
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
- markdown = '## Emphasis' + "\n" +
58
- '**This is bold text**' + "\n" +
59
- "\n" +
60
- '*This is italic text*' + "\n" +
61
- "\n" +
62
- '~~Strikethrough~~' + "\n"
63
- template.thumbnail title: 'dialogs/show', onClick: ->(action) do
64
- action.dialogs_show content: ->(dialog) do
65
- dialog.body padding: glib_json_padding_body, childViews: ->(body) do
66
- body.markdown text: markdown
67
-
68
- body.panels_split width: 'matchParent', content: ->(split) do
69
- split.right childViews: ->(right) do
70
- right.button text: 'OK', onClick: ->(subaction) { subaction.dialogs_close }
71
- end
72
- end
73
- end
74
- end
75
- end
76
-
77
- template.thumbnail title: 'dialogs/open', onClick: ->(action) do
78
- action.dialogs_open url: json_ui_garage_url(path: 'forms/basic', mode: 'dialog')
79
- end
80
-
81
- template.thumbnail title: 'dialogs/oauth', onClick: ->(action) do
82
- if respond_to?(:user_facebook_omniauth_authorize_url)
83
- provider = {
84
- name: 'facebook',
85
- webRequestUrl: user_facebook_omniauth_authorize_url(format: nil, _render: nil),
86
- requestUrl: user_facebook_omniauth_authorize_url(format: nil),
87
- clientId: Devise.omniauth_configs[:facebook].strategy[:client_id],
88
- permissions: Devise.omniauth_configs[:facebook].strategy[:scope],
89
- redirectUrl: user_facebook_omniauth_callback_url(format: nil)
90
- }
91
- action.dialogs_oauth provider: provider, providerParamName: 'session[oauth_provider]', callbackUrlParamName: 'session[[oauth_callback_url]', onSuccess: ->(subaction) do
92
- subaction.http_post url: json_ui_garage_url(path: 'actions/dialogs_oauth_post'), formData: {
93
- authenticity_token: form_authenticity_token
94
- }
95
- end
96
- else
97
- action.dialogs_alert message: 'To enable this, set up omniauth using devise'
98
- # E.g.
99
- # Add `devise :omniauthable, omniauth_providers: %i[facebook]` to user.rb
100
- # Add `gem 'omniauth-facebook'` to Gemfile
101
- # Add `config.omniauth :facebook` to devise.rb
102
- end
103
- end
104
- end
1
+
2
+ section.header padding: glib_json_padding_list, childViews: ->(header) do
3
+ header.h3 text: 'Dialogs'
4
+ end
5
+
6
+ section.rows builder: ->(template) do
7
+ template.thumbnail title: 'dialogs/alert', onClick: ->(action) do
8
+ action.dialogs_alert message: 'This is an alert dialog', onClose: ->(action) do
9
+ action.snackbars_alert message: 'Closed'
10
+ end
11
+ end
12
+
13
+ # markdown = '# h1 Heading' + "\n" +
14
+ # '## h2 Heading' + "\n" +
15
+ # '### h3 Heading' + "\n" +
16
+ # '#### h4 Heading' + "\n" +
17
+ # '##### h5 Heading' + "\n" +
18
+ # '###### h6 Heading' + "\n" +
19
+ # "\n" +
20
+ # '## Emphasis' + "\n" +
21
+ # "\n" +
22
+ # '**This is bold text**' + "\n" +
23
+ # "\n" +
24
+ # '__This is bold text__' + "\n" +
25
+ # "\n" +
26
+ # '*This is italic text*' + "\n" +
27
+ # "\n" +
28
+ # '_This is italic text_' + "\n" +
29
+ # "\n" +
30
+ # '~~Strikethrough~~' + "\n"
31
+ # template.thumbnail title: 'dialogs/alert with markdown', onClick: ->(action) do
32
+ # action.dialogs_alert message: markdown, message_format: 'markdown'
33
+ # end
34
+
35
+ # template.thumbnail title: 'dialogs/confirm (Experimental)', onClick: ->(action) do
36
+ # action.dialogs_confirm message: 'This is a confirm dialog', onCancel: ->(action) do
37
+ # action.snackbars_alert message: 'Canceled'
38
+ # end, onConfirm: ->(action) do
39
+ # action.snackbars_alert message: 'Confirmed'
40
+ # end
41
+ # end
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
+ markdown = '## Emphasis' + "\n" +
58
+ '**This is bold text**' + "\n" +
59
+ "\n" +
60
+ '*This is italic text*' + "\n" +
61
+ "\n" +
62
+ '~~Strikethrough~~' + "\n"
63
+ template.thumbnail title: 'dialogs/show', onClick: ->(action) do
64
+ action.dialogs_show content: ->(dialog) do
65
+ dialog.body padding: glib_json_padding_body, childViews: ->(body) do
66
+ body.markdown text: markdown
67
+
68
+ body.panels_split width: 'matchParent', content: ->(split) do
69
+ split.right childViews: ->(right) do
70
+ right.button text: 'OK', onClick: ->(subaction) { subaction.dialogs_close }
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
76
+
77
+ template.thumbnail title: 'dialogs/open', onClick: ->(action) do
78
+ action.dialogs_open url: json_ui_garage_url(path: 'forms/basic', mode: 'dialog')
79
+ end
80
+
81
+ template.thumbnail title: 'dialogs/oauth', onClick: ->(action) do
82
+ if respond_to?(:user_facebook_omniauth_authorize_url)
83
+ provider = {
84
+ name: 'facebook',
85
+ webRequestUrl: user_facebook_omniauth_authorize_url(format: nil, _render: nil),
86
+ requestUrl: user_facebook_omniauth_authorize_url(format: nil),
87
+ clientId: Devise.omniauth_configs[:facebook].strategy[:client_id],
88
+ permissions: Devise.omniauth_configs[:facebook].strategy[:scope],
89
+ redirectUrl: user_facebook_omniauth_callback_url(format: nil)
90
+ }
91
+ action.dialogs_oauth provider: provider, providerParamName: 'session[oauth_provider]', callbackUrlParamName: 'session[[oauth_callback_url]', onSuccess: ->(subaction) do
92
+ subaction.http_post url: json_ui_garage_url(path: 'actions/dialogs_oauth_post'), formData: {
93
+ authenticity_token: form_authenticity_token
94
+ }
95
+ end
96
+ else
97
+ action.dialogs_alert message: 'To enable this, set up omniauth using devise'
98
+ # E.g.
99
+ # Add `devise :omniauthable, omniauth_providers: %i[facebook]` to user.rb
100
+ # Add `gem 'omniauth-facebook'` to Gemfile
101
+ # Add `config.omniauth :facebook` to devise.rb
102
+ end
103
+ end
104
+ end
@@ -1,24 +1,24 @@
1
-
2
- section.header padding: glib_json_padding_list, childViews: ->(header) do
3
- header.h3 text: 'HTTP'
4
- end
5
-
6
- section.rows builder: ->(template) do
7
- template.thumbnail title: 'http/post', onClick: ->(action) do
8
- action.auth_saveCsrfToken token: form_authenticity_token, onSave: ->(subaction) do
9
- subaction.http_post url: json_ui_garage_url(path: 'forms/basic_post'), formData: { user: { name: { first: 'New', last: 'Joe' } } }
10
- end
11
- end
12
-
13
- template.thumbnail title: 'http/patch', onClick: ->(action) do
14
- action.auth_saveCsrfToken token: form_authenticity_token, onSave: ->(subaction) do
15
- subaction.http_patch url: json_ui_garage_url(path: 'forms/basic_post'), formData: { 'user[name]' => 'Edit Joe' }
16
- end
17
- end
18
-
19
- template.thumbnail title: 'http/delete', onClick: ->(action) do
20
- action.auth_saveCsrfToken token: form_authenticity_token, onSave: ->(subaction) do
21
- subaction.http_delete url: json_ui_garage_url(path: 'forms/basic_post'), formData: { 'user[name]' => 'Delete Joe' }
22
- end
23
- end
24
- end
1
+
2
+ section.header padding: glib_json_padding_list, childViews: ->(header) do
3
+ header.h3 text: 'HTTP'
4
+ end
5
+
6
+ section.rows builder: ->(template) do
7
+ template.thumbnail title: 'http/post', onClick: ->(action) do
8
+ action.auth_saveCsrfToken token: form_authenticity_token, onSave: ->(subaction) do
9
+ subaction.http_post url: json_ui_garage_url(path: 'forms/basic_post'), formData: { user: { name: { first: 'New', last: 'Joe' } } }
10
+ end
11
+ end
12
+
13
+ template.thumbnail title: 'http/patch', onClick: ->(action) do
14
+ action.auth_saveCsrfToken token: form_authenticity_token, onSave: ->(subaction) do
15
+ subaction.http_patch url: json_ui_garage_url(path: 'forms/basic_post'), formData: { 'user[name]' => 'Edit Joe' }
16
+ end
17
+ end
18
+
19
+ template.thumbnail title: 'http/delete', onClick: ->(action) do
20
+ action.auth_saveCsrfToken token: form_authenticity_token, onSave: ->(subaction) do
21
+ subaction.http_delete url: json_ui_garage_url(path: 'forms/basic_post'), formData: { 'user[name]' => 'Delete Joe' }
22
+ end
23
+ end
24
+ end
@@ -1,18 +1,18 @@
1
-
2
- section.header padding: glib_json_padding_list, childViews: ->(header) do
3
- header.h3 text: 'Panels'
4
- end
5
-
6
- section.rows builder: ->(template) do
7
- template.thumbnail title: 'panels/scrollToBottom', onClick: ->(action) do
8
- action.panels_scrollToBottom animate: true, onScroll: ->(subaction) do
9
- subaction.dialogs_alert message: 'Bottom reached'
10
- end
11
- end
12
-
13
- template.thumbnail title: 'panels/scrollTo', onClick: ->(action) do
14
- action.panels_scrollTo viewId: 'scroll_anchor', animate: true, onScroll: ->(subaction) do
15
- subaction.dialogs_alert message: 'Bottom reached'
16
- end
17
- end
18
- end
1
+
2
+ section.header padding: glib_json_padding_list, childViews: ->(header) do
3
+ header.h3 text: 'Panels'
4
+ end
5
+
6
+ section.rows builder: ->(template) do
7
+ template.thumbnail title: 'panels/scrollToBottom', onClick: ->(action) do
8
+ action.panels_scrollToBottom animate: true, onScroll: ->(subaction) do
9
+ subaction.dialogs_alert message: 'Bottom reached'
10
+ end
11
+ end
12
+
13
+ template.thumbnail title: 'panels/scrollTo', onClick: ->(action) do
14
+ action.panels_scrollTo viewId: 'scroll_anchor', animate: true, onScroll: ->(subaction) do
15
+ subaction.dialogs_alert message: 'Bottom reached'
16
+ end
17
+ end
18
+ end
@@ -1,17 +1,17 @@
1
- section.header padding: glib_json_padding_list, childViews: ->(header) do
2
- header.h3 text: 'Reload'
3
- header.spacer height: 6
4
- header.label text: 'Reload does not open a new page/screen. Click reload a few times, then click back and notice that it goes back to the page before the reload.'
5
- end
6
-
7
- section.rows builder: ->(template) do
8
- template.thumbnail title: "windows/reload (timestamp: #{DateTime.current.to_i})", onClick: ->(action) do
9
- action.windows_reload
10
- end
11
-
12
- reload_counter = params[:reload_counter].to_i
13
- reload_counter = 0 if reload_counter > 5
14
- template.thumbnail title: "windows/reload with URL (counter: #{reload_counter})", onClick: ->(action) do
15
- action.windows_reload url: json_ui_garage_url(path: 'actions/index', reload_counter: reload_counter + 1)
16
- end
17
- end
1
+ section.header padding: glib_json_padding_list, childViews: ->(header) do
2
+ header.h3 text: 'Reload'
3
+ header.spacer height: 6
4
+ header.label text: 'Reload does not open a new page/screen. Click reload a few times, then click back and notice that it goes back to the page before the reload.'
5
+ end
6
+
7
+ section.rows builder: ->(template) do
8
+ template.thumbnail title: "windows/reload (timestamp: #{DateTime.current.to_i})", onClick: ->(action) do
9
+ action.windows_reload
10
+ end
11
+
12
+ reload_counter = params[:reload_counter].to_i
13
+ reload_counter = 0 if reload_counter > 5
14
+ template.thumbnail title: "windows/reload with URL (counter: #{reload_counter})", onClick: ->(action) do
15
+ action.windows_reload url: json_ui_garage_url(path: 'actions/index', reload_counter: reload_counter + 1)
16
+ end
17
+ end
@@ -1,18 +1,18 @@
1
-
2
- section.header padding: glib_json_padding_list, childViews: ->(header) do
3
- header.h3 text: 'Sheets'
4
- end
5
-
6
- section.rows builder: ->(template) do
7
- template.thumbnail title: 'sheets/select', onClick: ->(action) do
8
- action.sheets_select message: 'Select one', buttons: ->(menu) do
9
- menu.button text: 'Option1', onClick: ->(subaction) do
10
- subaction.dialogs_alert message: 'Option 1'
11
- end
12
- menu.button text: 'Option2', onClick: ->(subaction) do
13
- subaction.dialogs_alert message: 'Option 2'
14
- end
15
- end
16
- end
17
-
18
- end
1
+
2
+ section.header padding: glib_json_padding_list, childViews: ->(header) do
3
+ header.h3 text: 'Sheets'
4
+ end
5
+
6
+ section.rows builder: ->(template) do
7
+ template.thumbnail title: 'sheets/select', onClick: ->(action) do
8
+ action.sheets_select message: 'Select one', buttons: ->(menu) do
9
+ menu.button text: 'Option1', onClick: ->(subaction) do
10
+ subaction.dialogs_alert message: 'Option 1'
11
+ end
12
+ menu.button text: 'Option2', onClick: ->(subaction) do
13
+ subaction.dialogs_alert message: 'Option 2'
14
+ end
15
+ end
16
+ end
17
+
18
+ end
@@ -1,33 +1,33 @@
1
-
2
- section.header padding: glib_json_padding_list, childViews: ->(header) do
3
- header.h3 text: 'Snackbars'
4
- end
5
-
6
- section.rows builder: ->(template) do
7
- template.thumbnail title: 'snackbars/alert', onClick: ->(action) do
8
- action.snackbars_alert message: 'This is an alert snackbar', onClose: ->(action) do
9
- action.dialogs_alert message: 'Closed'
10
- end
11
- end
12
-
13
- # template.thumbnail title: 'snackbars/alert with markdown', onClick: ->(action) do
14
- # action.snackbars_alert message: 'This is an *alert* snackbar', message_format: 'markdown'
15
- # end
16
-
17
- template.thumbnail title: 'snackbars/select', onClick: ->(action) do
18
- action.snackbars_select message: 'Select one', buttons: ->(menu) do
19
- menu.button text: 'Option1', onClick: ->(subaction) do
20
- subaction.dialogs_alert message: 'Option 1'
21
- end
22
- menu.button text: 'Option2', onClick: ->(subaction) do
23
- subaction.dialogs_alert message: 'Option 2'
24
- end
25
- menu.button text: 'Cancel'
26
- end
27
- end
28
-
29
- template.thumbnail title: 'snackbars with styling', onClick: ->(action) do
30
- action.snackbars_alert message: 'This is a styled snackbar', verticalPosition: 'top', styleClass: 'success'
31
- end
32
-
33
- end
1
+
2
+ section.header padding: glib_json_padding_list, childViews: ->(header) do
3
+ header.h3 text: 'Snackbars'
4
+ end
5
+
6
+ section.rows builder: ->(template) do
7
+ template.thumbnail title: 'snackbars/alert', onClick: ->(action) do
8
+ action.snackbars_alert message: 'This is an alert snackbar', onClose: ->(action) do
9
+ action.dialogs_alert message: 'Closed'
10
+ end
11
+ end
12
+
13
+ # template.thumbnail title: 'snackbars/alert with markdown', onClick: ->(action) do
14
+ # action.snackbars_alert message: 'This is an *alert* snackbar', message_format: 'markdown'
15
+ # end
16
+
17
+ template.thumbnail title: 'snackbars/select', onClick: ->(action) do
18
+ action.snackbars_select message: 'Select one', buttons: ->(menu) do
19
+ menu.button text: 'Option1', onClick: ->(subaction) do
20
+ subaction.dialogs_alert message: 'Option 1'
21
+ end
22
+ menu.button text: 'Option2', onClick: ->(subaction) do
23
+ subaction.dialogs_alert message: 'Option 2'
24
+ end
25
+ menu.button text: 'Cancel'
26
+ end
27
+ end
28
+
29
+ template.thumbnail title: 'snackbars with styling', onClick: ->(action) do
30
+ action.snackbars_alert message: 'This is a styled snackbar', verticalPosition: 'top', styleClass: 'success'
31
+ end
32
+
33
+ end