glib-web 0.5.75 → 0.5.76

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 (188) 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/panels.rb +14 -14
  23. data/app/helpers/glib/json_ui/action_builder/sheets.rb +15 -15
  24. data/app/helpers/glib/json_ui/action_builder/snackbars.rb +41 -41
  25. data/app/helpers/glib/json_ui/action_builder/windows.rb +33 -33
  26. data/app/helpers/glib/json_ui/action_builder.rb +140 -140
  27. data/app/helpers/glib/json_ui/analytics_helper.rb +17 -17
  28. data/app/helpers/glib/json_ui/dynamic_field_builders.rb +25 -25
  29. data/app/helpers/glib/json_ui/generic_builders.rb +28 -28
  30. data/app/helpers/glib/json_ui/list_builders.rb +110 -110
  31. data/app/helpers/glib/json_ui/menu_builder.rb +94 -94
  32. data/app/helpers/glib/json_ui/page_helper.rb +221 -221
  33. data/app/helpers/glib/json_ui/response_helper.rb +25 -25
  34. data/app/helpers/glib/json_ui/split_builders.rb +32 -32
  35. data/app/helpers/glib/json_ui/styling_helper.rb +55 -55
  36. data/app/helpers/glib/json_ui/table_builders.rb +74 -74
  37. data/app/helpers/glib/json_ui/view_builder/banners.rb +26 -26
  38. data/app/helpers/glib/json_ui/view_builder/charts.rb +33 -33
  39. data/app/helpers/glib/json_ui/view_builder/fields.rb +278 -278
  40. data/app/helpers/glib/json_ui/view_builder/panels.rb +256 -256
  41. data/app/helpers/glib/json_ui/view_builder.rb +240 -240
  42. data/app/helpers/glib/urls_helper.rb +12 -12
  43. data/app/models/concerns/glib/soft_deletable.rb +68 -68
  44. data/app/models/glib/active_storage/attachment.rb +9 -9
  45. data/app/models/glib/active_storage/blob.rb +9 -9
  46. data/app/models/glib/application_record.rb +18 -18
  47. data/app/models/glib/dynamic_text_record.rb +9 -9
  48. data/app/models/glib/text.rb +95 -95
  49. data/app/policies/glib/application_policy.rb +161 -161
  50. data/app/validators/email_typo_validator.rb +38 -38
  51. data/app/validators/email_validator.rb +7 -7
  52. data/app/validators/url_validator.rb +20 -20
  53. data/app/views/json_ui/garage/_nav_menu.json.jbuilder +70 -70
  54. data/app/views/json_ui/garage/actions/_dialogs.json.jbuilder +104 -104
  55. data/app/views/json_ui/garage/actions/_http.json.jbuilder +24 -24
  56. data/app/views/json_ui/garage/actions/_panels.json.jbuilder +18 -18
  57. data/app/views/json_ui/garage/actions/_reload.json.jbuilder +17 -17
  58. data/app/views/json_ui/garage/actions/_sheets.json.jbuilder +18 -18
  59. data/app/views/json_ui/garage/actions/_snackbars.json.jbuilder +33 -33
  60. data/app/views/json_ui/garage/actions/_timeouts.json.jbuilder +24 -24
  61. data/app/views/json_ui/garage/actions/_windows.json.jbuilder +24 -24
  62. data/app/views/json_ui/garage/actions/dialogs_oauth_post.json.jbuilder +6 -6
  63. data/app/views/json_ui/garage/actions/index.json.jbuilder +24 -24
  64. data/app/views/json_ui/garage/forms/_alert_post_data.json.jbuilder +6 -6
  65. data/app/views/json_ui/garage/forms/basic.json.jbuilder +21 -21
  66. data/app/views/json_ui/garage/forms/basic_post.json.jbuilder +8 -8
  67. data/app/views/json_ui/garage/forms/checkboxes.json.jbuilder +43 -43
  68. data/app/views/json_ui/garage/forms/conditional_value.json.jbuilder +36 -36
  69. data/app/views/json_ui/garage/forms/dynamic_group.json.jbuilder +39 -39
  70. data/app/views/json_ui/garage/forms/dynamic_select.json.jbuilder +24 -24
  71. data/app/views/json_ui/garage/forms/dynamic_select_data.json.jbuilder +38 -38
  72. data/app/views/json_ui/garage/forms/file_upload.json.jbuilder +32 -32
  73. data/app/views/json_ui/garage/forms/floating_submit.json.jbuilder +19 -19
  74. data/app/views/json_ui/garage/forms/generic_post.json.jbuilder +3 -3
  75. data/app/views/json_ui/garage/forms/get_request.json.jbuilder +27 -27
  76. data/app/views/json_ui/garage/forms/index.json.jbuilder +113 -113
  77. data/app/views/json_ui/garage/forms/new_rich_text.json.jbuilder +39 -39
  78. data/app/views/json_ui/garage/forms/online_participant1.json.jbuilder +25 -25
  79. data/app/views/json_ui/garage/forms/online_participant2.json.jbuilder +25 -25
  80. data/app/views/json_ui/garage/forms/pickers.json.jbuilder +81 -81
  81. data/app/views/json_ui/garage/forms/ratings.json.jbuilder +49 -49
  82. data/app/views/json_ui/garage/forms/rich_text.json.jbuilder +40 -40
  83. data/app/views/json_ui/garage/forms/selects.json.jbuilder +91 -91
  84. data/app/views/json_ui/garage/forms/show_hide.json.jbuilder +130 -130
  85. data/app/views/json_ui/garage/forms/styled_boxes.json.jbuilder +35 -35
  86. data/app/views/json_ui/garage/forms/submission_flow.json.jbuilder +17 -17
  87. data/app/views/json_ui/garage/forms/submission_flow_post.json.jbuilder +26 -26
  88. data/app/views/json_ui/garage/forms/submission_indicator.json.jbuilder +63 -63
  89. data/app/views/json_ui/garage/forms/submission_indicator_post.json.jbuilder +25 -25
  90. data/app/views/json_ui/garage/forms/text_validation.json.jbuilder +81 -81
  91. data/app/views/json_ui/garage/forms/timers.json.jbuilder +120 -120
  92. data/app/views/json_ui/garage/home/blank.json.jbuilder +10 -10
  93. data/app/views/json_ui/garage/home/index.json.jbuilder +36 -36
  94. data/app/views/json_ui/garage/home/slow.json.jbuilder +11 -11
  95. data/app/views/json_ui/garage/lists/_autoload_section.json.jbuilder +28 -28
  96. data/app/views/json_ui/garage/lists/autoload_all.json.jbuilder +32 -32
  97. data/app/views/json_ui/garage/lists/autoload_as_needed.json.jbuilder +35 -35
  98. data/app/views/json_ui/garage/lists/chat_ui.json.jbuilder +94 -94
  99. data/app/views/json_ui/garage/lists/edit_actions.json.jbuilder +62 -62
  100. data/app/views/json_ui/garage/lists/fab.json.jbuilder +12 -12
  101. data/app/views/json_ui/garage/lists/index.json.jbuilder +38 -38
  102. data/app/views/json_ui/garage/lists/reordering.json.jbuilder +34 -34
  103. data/app/views/json_ui/garage/lists/templating.json.jbuilder +35 -35
  104. data/app/views/json_ui/garage/notifications/action_cable.json.jbuilder +114 -114
  105. data/app/views/json_ui/garage/notifications/android_post.json.jbuilder +48 -48
  106. data/app/views/json_ui/garage/notifications/index.json.jbuilder +36 -36
  107. data/app/views/json_ui/garage/notifications/web_socket.json.jbuilder +60 -60
  108. data/app/views/json_ui/garage/pages/flat_centered.json.jbuilder +29 -29
  109. data/app/views/json_ui/garage/pages/full_width.json.jbuilder +29 -29
  110. data/app/views/json_ui/garage/pages/full_width_height.json.jbuilder +16 -16
  111. data/app/views/json_ui/garage/pages/index.json.jbuilder +62 -62
  112. data/app/views/json_ui/garage/pages/layout.json.jbuilder +18 -18
  113. data/app/views/json_ui/garage/pages/lifecycle_hooks.json.jbuilder +13 -13
  114. data/app/views/json_ui/garage/pages/loading_indicator.json.jbuilder +10 -10
  115. data/app/views/json_ui/garage/pages/nav_buttons.json.jbuilder +21 -21
  116. data/app/views/json_ui/garage/pages/nested_scroll.json.jbuilder +40 -40
  117. data/app/views/json_ui/garage/pages/tab_bar.json.jbuilder +31 -31
  118. data/app/views/json_ui/garage/panels/_styled.json.jbuilder +78 -78
  119. data/app/views/json_ui/garage/panels/card.json.jbuilder +4 -4
  120. data/app/views/json_ui/garage/panels/carousel.json.jbuilder +37 -37
  121. data/app/views/json_ui/garage/panels/custom.json.jbuilder +17 -17
  122. data/app/views/json_ui/garage/panels/flow.json.jbuilder +59 -59
  123. data/app/views/json_ui/garage/panels/horizontal.json.jbuilder +91 -91
  124. data/app/views/json_ui/garage/panels/index.json.jbuilder +138 -138
  125. data/app/views/json_ui/garage/panels/outlined.json.jbuilder +4 -4
  126. data/app/views/json_ui/garage/panels/responsive.json.jbuilder +98 -98
  127. data/app/views/json_ui/garage/panels/split.json.jbuilder +182 -182
  128. data/app/views/json_ui/garage/panels/ul.json.jbuilder +33 -33
  129. data/app/views/json_ui/garage/panels/vertical.json.jbuilder +55 -55
  130. data/app/views/json_ui/garage/panels/web.json.jbuilder +15 -15
  131. data/app/views/json_ui/garage/services/dynamic_text.json.jbuilder +13 -13
  132. data/app/views/json_ui/garage/services/image.json.jbuilder +47 -47
  133. data/app/views/json_ui/garage/services/index.json.jbuilder +17 -17
  134. data/app/views/json_ui/garage/tables/_autoload_section.json.jbuilder +16 -16
  135. data/app/views/json_ui/garage/tables/autoload_all.json.jbuilder +43 -43
  136. data/app/views/json_ui/garage/tables/autoload_as_needed.json.jbuilder +50 -50
  137. data/app/views/json_ui/garage/tables/export_import.json.jbuilder +29 -29
  138. data/app/views/json_ui/garage/tables/horizontal_scroll.json.jbuilder +26 -26
  139. data/app/views/json_ui/garage/tables/index.json.jbuilder +25 -25
  140. data/app/views/json_ui/garage/tables/layout.json.jbuilder +40 -40
  141. data/app/views/json_ui/garage/views/_chart_data.json.jbuilder +17 -17
  142. data/app/views/json_ui/garage/views/banners.json.jbuilder +63 -63
  143. data/app/views/json_ui/garage/views/calendar_data.json.jbuilder +30 -30
  144. data/app/views/json_ui/garage/views/charts.json.jbuilder +115 -115
  145. data/app/views/json_ui/garage/views/controls.json.jbuilder +37 -37
  146. data/app/views/json_ui/garage/views/icon_names.json.jbuilder +1450 -1450
  147. data/app/views/json_ui/garage/views/icons.json.jbuilder +15 -15
  148. data/app/views/json_ui/garage/views/images.json.jbuilder +89 -89
  149. data/app/views/json_ui/garage/views/index.json.jbuilder +67 -67
  150. data/app/views/json_ui/garage/views/links.json.jbuilder +70 -70
  151. data/app/views/json_ui/garage/views/map_cluster_data.json.jbuilder +41 -41
  152. data/app/views/json_ui/garage/views/map_data.json.jbuilder +51 -51
  153. data/app/views/json_ui/garage/views/maps.json.jbuilder +31 -31
  154. data/app/views/json_ui/garage/views/markdowns.json.jbuilder +41 -41
  155. data/app/views/json_ui/garage/views/misc.json.jbuilder +34 -34
  156. data/app/views/json_ui/garage/views/texts.json.jbuilder +35 -35
  157. data/app/views/layouts/json_ui/renderer.html.erb +35 -35
  158. data/config/routes.rb +7 -7
  159. data/lib/generators/glib/install_generator.rb +24 -24
  160. data/lib/generators/templates/20191017062519_create_texts.rb +12 -12
  161. data/lib/generators/templates/20191024063257_add_scope_to_texts.rb +7 -7
  162. data/lib/generators/templates/20191112095018_add_lang_to_texts.rb +7 -7
  163. data/lib/generators/templates/20191126071051_create_active_storage_tables.active_storage.rb +27 -27
  164. data/lib/generators/templates/database.yml +107 -107
  165. data/lib/generators/templates/dynamic_text.rb +2 -2
  166. data/lib/glib/crypt/utils.rb +26 -26
  167. data/lib/glib/crypt.rb +0 -0
  168. data/lib/glib/dynamic_text/config.rb +21 -21
  169. data/lib/glib/dynamic_text.rb +0 -0
  170. data/lib/glib/engine.rb +7 -7
  171. data/lib/glib/json_crawler/action_crawler.rb +23 -23
  172. data/lib/glib/json_crawler/action_crawlers/action_http.rb +11 -11
  173. data/lib/glib/json_crawler/action_crawlers/forms_submit.rb +48 -48
  174. data/lib/glib/json_crawler/action_crawlers/menu.rb +12 -12
  175. data/lib/glib/json_crawler/action_crawlers/nav_initiate.rb +19 -19
  176. data/lib/glib/json_crawler/action_crawlers/run_multiple.rb +13 -13
  177. data/lib/glib/json_crawler/action_crawlers/windows_open.rb +33 -33
  178. data/lib/glib/json_crawler/coverage.rb +20 -20
  179. data/lib/glib/json_crawler/http.rb +120 -120
  180. data/lib/glib/json_crawler/router.rb +90 -98
  181. data/lib/glib/json_crawler.rb +11 -11
  182. data/lib/glib/mailer_tester.rb +36 -36
  183. data/lib/glib/test_helpers.rb +52 -52
  184. data/lib/glib/value.rb +7 -7
  185. data/lib/glib/version.rb +5 -5
  186. data/lib/glib-web.rb +9 -9
  187. data/lib/tasks/db.rake +95 -95
  188. metadata +1 -1
@@ -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