glib-web 0.5.71 → 0.5.72

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 (185) 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 -8
  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.rb +140 -140
  21. data/app/helpers/glib/json_ui/action_builder/dialogs.rb +58 -58
  22. data/app/helpers/glib/json_ui/action_builder/http.rb +39 -39
  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 +33 -33
  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.rb +240 -240
  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 +278 -279
  41. data/app/helpers/glib/json_ui/view_builder/panels.rb +256 -256
  42. data/app/helpers/glib/urls_helper.rb +12 -12
  43. data/app/models/glib/active_storage/attachment.rb +9 -9
  44. data/app/models/glib/active_storage/blob.rb +9 -9
  45. data/app/models/glib/application_record.rb +18 -18
  46. data/app/models/glib/dynamic_text_record.rb +9 -9
  47. data/app/models/glib/text.rb +95 -95
  48. data/app/policies/glib/application_policy.rb +161 -161
  49. data/app/validators/email_typo_validator.rb +38 -38
  50. data/app/validators/email_validator.rb +7 -7
  51. data/app/validators/url_validator.rb +20 -20
  52. data/app/views/json_ui/garage/_nav_menu.json.jbuilder +70 -70
  53. data/app/views/json_ui/garage/actions/_dialogs.json.jbuilder +104 -104
  54. data/app/views/json_ui/garage/actions/_http.json.jbuilder +24 -24
  55. data/app/views/json_ui/garage/actions/_panels.json.jbuilder +18 -18
  56. data/app/views/json_ui/garage/actions/_reload.json.jbuilder +17 -17
  57. data/app/views/json_ui/garage/actions/_sheets.json.jbuilder +18 -18
  58. data/app/views/json_ui/garage/actions/_snackbars.json.jbuilder +33 -33
  59. data/app/views/json_ui/garage/actions/_timeouts.json.jbuilder +24 -24
  60. data/app/views/json_ui/garage/actions/_windows.json.jbuilder +24 -24
  61. data/app/views/json_ui/garage/actions/dialogs_oauth_post.json.jbuilder +6 -6
  62. data/app/views/json_ui/garage/actions/index.json.jbuilder +24 -24
  63. data/app/views/json_ui/garage/forms/_alert_post_data.json.jbuilder +6 -6
  64. data/app/views/json_ui/garage/forms/basic.json.jbuilder +21 -21
  65. data/app/views/json_ui/garage/forms/basic_post.json.jbuilder +8 -8
  66. data/app/views/json_ui/garage/forms/checkboxes.json.jbuilder +43 -43
  67. data/app/views/json_ui/garage/forms/conditional_value.json.jbuilder +36 -36
  68. data/app/views/json_ui/garage/forms/dynamic_group.json.jbuilder +39 -39
  69. data/app/views/json_ui/garage/forms/dynamic_select.json.jbuilder +24 -22
  70. data/app/views/json_ui/garage/forms/dynamic_select_data.json.jbuilder +38 -38
  71. data/app/views/json_ui/garage/forms/file_upload.json.jbuilder +32 -37
  72. data/app/views/json_ui/garage/forms/floating_submit.json.jbuilder +19 -19
  73. data/app/views/json_ui/garage/forms/generic_post.json.jbuilder +3 -3
  74. data/app/views/json_ui/garage/forms/get_request.json.jbuilder +27 -27
  75. data/app/views/json_ui/garage/forms/index.json.jbuilder +113 -113
  76. data/app/views/json_ui/garage/forms/new_rich_text.json.jbuilder +39 -39
  77. data/app/views/json_ui/garage/forms/online_participant1.json.jbuilder +25 -25
  78. data/app/views/json_ui/garage/forms/online_participant2.json.jbuilder +25 -25
  79. data/app/views/json_ui/garage/forms/pickers.json.jbuilder +81 -81
  80. data/app/views/json_ui/garage/forms/ratings.json.jbuilder +49 -49
  81. data/app/views/json_ui/garage/forms/rich_text.json.jbuilder +40 -40
  82. data/app/views/json_ui/garage/forms/selects.json.jbuilder +91 -84
  83. data/app/views/json_ui/garage/forms/show_hide.json.jbuilder +130 -130
  84. data/app/views/json_ui/garage/forms/styled_boxes.json.jbuilder +35 -35
  85. data/app/views/json_ui/garage/forms/submission_flow.json.jbuilder +17 -17
  86. data/app/views/json_ui/garage/forms/submission_flow_post.json.jbuilder +26 -26
  87. data/app/views/json_ui/garage/forms/submission_indicator.json.jbuilder +63 -63
  88. data/app/views/json_ui/garage/forms/submission_indicator_post.json.jbuilder +25 -25
  89. data/app/views/json_ui/garage/forms/text_validation.json.jbuilder +81 -81
  90. data/app/views/json_ui/garage/forms/timers.json.jbuilder +120 -120
  91. data/app/views/json_ui/garage/home/blank.json.jbuilder +10 -10
  92. data/app/views/json_ui/garage/home/index.json.jbuilder +36 -36
  93. data/app/views/json_ui/garage/home/slow.json.jbuilder +11 -11
  94. data/app/views/json_ui/garage/lists/_autoload_section.json.jbuilder +28 -28
  95. data/app/views/json_ui/garage/lists/autoload_all.json.jbuilder +32 -32
  96. data/app/views/json_ui/garage/lists/autoload_as_needed.json.jbuilder +35 -35
  97. data/app/views/json_ui/garage/lists/chat_ui.json.jbuilder +94 -94
  98. data/app/views/json_ui/garage/lists/edit_actions.json.jbuilder +62 -62
  99. data/app/views/json_ui/garage/lists/fab.json.jbuilder +12 -12
  100. data/app/views/json_ui/garage/lists/index.json.jbuilder +38 -38
  101. data/app/views/json_ui/garage/lists/reordering.json.jbuilder +34 -34
  102. data/app/views/json_ui/garage/lists/templating.json.jbuilder +35 -35
  103. data/app/views/json_ui/garage/notifications/action_cable.json.jbuilder +114 -114
  104. data/app/views/json_ui/garage/notifications/android_post.json.jbuilder +48 -48
  105. data/app/views/json_ui/garage/notifications/index.json.jbuilder +36 -36
  106. data/app/views/json_ui/garage/notifications/web_socket.json.jbuilder +60 -60
  107. data/app/views/json_ui/garage/pages/flat_centered.json.jbuilder +29 -29
  108. data/app/views/json_ui/garage/pages/full_width.json.jbuilder +29 -29
  109. data/app/views/json_ui/garage/pages/full_width_height.json.jbuilder +16 -16
  110. data/app/views/json_ui/garage/pages/index.json.jbuilder +62 -62
  111. data/app/views/json_ui/garage/pages/layout.json.jbuilder +18 -18
  112. data/app/views/json_ui/garage/pages/lifecycle_hooks.json.jbuilder +13 -13
  113. data/app/views/json_ui/garage/pages/loading_indicator.json.jbuilder +10 -10
  114. data/app/views/json_ui/garage/pages/nav_buttons.json.jbuilder +21 -21
  115. data/app/views/json_ui/garage/pages/nested_scroll.json.jbuilder +40 -40
  116. data/app/views/json_ui/garage/pages/tab_bar.json.jbuilder +31 -31
  117. data/app/views/json_ui/garage/panels/_styled.json.jbuilder +78 -78
  118. data/app/views/json_ui/garage/panels/card.json.jbuilder +4 -4
  119. data/app/views/json_ui/garage/panels/carousel.json.jbuilder +37 -37
  120. data/app/views/json_ui/garage/panels/custom.json.jbuilder +17 -17
  121. data/app/views/json_ui/garage/panels/flow.json.jbuilder +59 -59
  122. data/app/views/json_ui/garage/panels/horizontal.json.jbuilder +91 -91
  123. data/app/views/json_ui/garage/panels/index.json.jbuilder +138 -134
  124. data/app/views/json_ui/garage/panels/outlined.json.jbuilder +4 -4
  125. data/app/views/json_ui/garage/panels/responsive.json.jbuilder +98 -98
  126. data/app/views/json_ui/garage/panels/split.json.jbuilder +182 -182
  127. data/app/views/json_ui/garage/panels/ul.json.jbuilder +33 -0
  128. data/app/views/json_ui/garage/panels/vertical.json.jbuilder +55 -55
  129. data/app/views/json_ui/garage/panels/web.json.jbuilder +15 -15
  130. data/app/views/json_ui/garage/services/dynamic_text.json.jbuilder +13 -13
  131. data/app/views/json_ui/garage/services/image.json.jbuilder +47 -47
  132. data/app/views/json_ui/garage/services/index.json.jbuilder +17 -17
  133. data/app/views/json_ui/garage/tables/_autoload_section.json.jbuilder +16 -16
  134. data/app/views/json_ui/garage/tables/autoload_all.json.jbuilder +43 -43
  135. data/app/views/json_ui/garage/tables/autoload_as_needed.json.jbuilder +50 -50
  136. data/app/views/json_ui/garage/tables/export_import.json.jbuilder +29 -29
  137. data/app/views/json_ui/garage/tables/horizontal_scroll.json.jbuilder +26 -26
  138. data/app/views/json_ui/garage/tables/index.json.jbuilder +25 -25
  139. data/app/views/json_ui/garage/tables/layout.json.jbuilder +40 -40
  140. data/app/views/json_ui/garage/views/_chart_data.json.jbuilder +17 -17
  141. data/app/views/json_ui/garage/views/banners.json.jbuilder +63 -63
  142. data/app/views/json_ui/garage/views/calendar_data.json.jbuilder +30 -30
  143. data/app/views/json_ui/garage/views/charts.json.jbuilder +115 -115
  144. data/app/views/json_ui/garage/views/controls.json.jbuilder +37 -37
  145. data/app/views/json_ui/garage/views/icon_names.json.jbuilder +1450 -1450
  146. data/app/views/json_ui/garage/views/icons.json.jbuilder +15 -14
  147. data/app/views/json_ui/garage/views/images.json.jbuilder +89 -89
  148. data/app/views/json_ui/garage/views/index.json.jbuilder +67 -67
  149. data/app/views/json_ui/garage/views/links.json.jbuilder +70 -70
  150. data/app/views/json_ui/garage/views/map_cluster_data.json.jbuilder +41 -41
  151. data/app/views/json_ui/garage/views/map_data.json.jbuilder +51 -51
  152. data/app/views/json_ui/garage/views/maps.json.jbuilder +31 -31
  153. data/app/views/json_ui/garage/views/markdowns.json.jbuilder +41 -41
  154. data/app/views/json_ui/garage/views/misc.json.jbuilder +34 -34
  155. data/app/views/json_ui/garage/views/texts.json.jbuilder +35 -35
  156. data/app/views/layouts/json_ui/renderer.html.erb +35 -35
  157. data/config/routes.rb +7 -7
  158. data/lib/generators/glib/install_generator.rb +24 -24
  159. data/lib/generators/templates/20191017062519_create_texts.rb +12 -12
  160. data/lib/generators/templates/20191024063257_add_scope_to_texts.rb +7 -7
  161. data/lib/generators/templates/20191112095018_add_lang_to_texts.rb +7 -7
  162. data/lib/generators/templates/20191126071051_create_active_storage_tables.active_storage.rb +27 -27
  163. data/lib/generators/templates/database.yml +107 -107
  164. data/lib/generators/templates/dynamic_text.rb +2 -2
  165. data/lib/glib-web.rb +9 -9
  166. data/lib/glib/crypt/utils.rb +26 -26
  167. data/lib/glib/dynamic_text/config.rb +21 -21
  168. data/lib/glib/engine.rb +7 -7
  169. data/lib/glib/json_crawler.rb +11 -11
  170. data/lib/glib/json_crawler/action_crawler.rb +23 -23
  171. data/lib/glib/json_crawler/action_crawlers/action_http.rb +11 -11
  172. data/lib/glib/json_crawler/action_crawlers/forms_submit.rb +48 -48
  173. data/lib/glib/json_crawler/action_crawlers/menu.rb +12 -12
  174. data/lib/glib/json_crawler/action_crawlers/nav_initiate.rb +19 -19
  175. data/lib/glib/json_crawler/action_crawlers/run_multiple.rb +13 -13
  176. data/lib/glib/json_crawler/action_crawlers/windows_open.rb +33 -33
  177. data/lib/glib/json_crawler/coverage.rb +20 -20
  178. data/lib/glib/json_crawler/http.rb +120 -120
  179. data/lib/glib/json_crawler/router.rb +98 -98
  180. data/lib/glib/mailer_tester.rb +36 -36
  181. data/lib/glib/test_helpers.rb +52 -52
  182. data/lib/glib/value.rb +7 -7
  183. data/lib/glib/version.rb +5 -5
  184. data/lib/tasks/db.rake +95 -95
  185. metadata +3 -3
@@ -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
@@ -1,21 +1,21 @@
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.navBar backgroundColor: '#a8c4e3', color: '#ffffff', rightButtons: ->(menu) do
8
- menu.button icon: 'search', text: 'Search', onClick: ->(action) do
9
- action.dialogs_alert message: 'Perform some action'
10
- end
11
- menu.button icon: { name: 'star', badge: { text: '1', backgroundColor: '#ff0000' } }, onClick: ->(action) do
12
- action.dialogs_alert message: 'Perform some action'
13
- end
14
- menu.button icon: { name: 'map', badge: '2' }, onClick: ->(action) do
15
- action.dialogs_alert message: 'Perform some action'
16
- end
17
- end
18
-
19
- page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
20
- scroll.label text: 'See the right menu buttons on the nav bar'
21
- 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.navBar backgroundColor: '#a8c4e3', color: '#ffffff', rightButtons: ->(menu) do
8
+ menu.button icon: 'search', text: 'Search', onClick: ->(action) do
9
+ action.dialogs_alert message: 'Perform some action'
10
+ end
11
+ menu.button icon: { name: 'star', badge: { text: '1', backgroundColor: '#ff0000' } }, onClick: ->(action) do
12
+ action.dialogs_alert message: 'Perform some action'
13
+ end
14
+ menu.button icon: { name: 'map', badge: '2' }, onClick: ->(action) do
15
+ action.dialogs_alert message: 'Perform some action'
16
+ end
17
+ end
18
+
19
+ page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
20
+ scroll.label text: 'See the right menu buttons on the nav bar'
21
+ end
@@ -1,40 +1,40 @@
1
- json.title 'Pages'
2
-
3
- page = json_ui_page json
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.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
23
- scroll.label text: 'Inner Header'
24
- scroll.label text: 'Inner Header'
25
- scroll.label text: 'Inner Header'
26
- scroll.spacer height: 20
27
-
28
- scroll.panels_vertical width: 'matchParent', styleClass: 'card', backgroundColor: glib_color_panel_background, padding: glib_json_padding_body.merge(right: nil), childViews: ->(padder) do
29
- padder.panels_scroll width: 'matchParent', height: 300, childViews: ->(inner_scroll) do
30
- (1..100).each do |index|
31
- inner_scroll.label text: 'Content'
32
- end
33
- end
34
- end
35
-
36
- scroll.spacer height: 20
37
- scroll.label text: 'Inner Footer'
38
- scroll.label text: 'Inner Footer'
39
- scroll.label text: 'Inner Footer'
40
- 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.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.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
23
+ scroll.label text: 'Inner Header'
24
+ scroll.label text: 'Inner Header'
25
+ scroll.label text: 'Inner Header'
26
+ scroll.spacer height: 20
27
+
28
+ scroll.panels_vertical width: 'matchParent', styleClass: 'card', backgroundColor: glib_color_panel_background, padding: glib_json_padding_body.merge(right: nil), childViews: ->(padder) do
29
+ padder.panels_scroll width: 'matchParent', height: 300, childViews: ->(inner_scroll) do
30
+ (1..100).each do |index|
31
+ inner_scroll.label text: 'Content'
32
+ end
33
+ end
34
+ end
35
+
36
+ scroll.spacer height: 20
37
+ scroll.label text: 'Inner Footer'
38
+ scroll.label text: 'Inner Footer'
39
+ scroll.label text: 'Inner Footer'
40
+ end
@@ -1,31 +1,31 @@
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.header childViews: ->(header) do
7
- header.tabBar width: 'matchParent', backgroundColor: '#ffca05', color: '#7f561b', buttons: ->(menu) do
8
-
9
- {
10
- 'FIRST' => 'home',
11
- 'SECOND' => 'schedule',
12
- 'THIRD' => 'analytics'
13
- }.each_with_index do |(text, icon), index|
14
- menu.button icon: icon, text: text, disabled: params[:tab].to_i == index, onClick: ->(action) do
15
- action.windows_reload url: json_ui_garage_url(path: 'pages/tab_bar', tab: index)
16
- end
17
- end
18
- end
19
- end
20
-
21
- page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
22
- scroll.label text: "Tab index #{params[:tab].to_i} selected"
23
-
24
- scroll.spacer height: 10
25
-
26
- 100.times do |i|
27
- scroll.label text: "Line #{i + 1}"
28
- end
29
- end
30
-
31
- 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.header childViews: ->(header) do
7
+ header.tabBar width: 'matchParent', backgroundColor: '#ffca05', color: '#7f561b', buttons: ->(menu) do
8
+
9
+ {
10
+ 'FIRST' => 'home',
11
+ 'SECOND' => 'schedule',
12
+ 'THIRD' => 'analytics'
13
+ }.each_with_index do |(text, icon), index|
14
+ menu.button icon: icon, text: text, disabled: params[:tab].to_i == index, onClick: ->(action) do
15
+ action.windows_reload url: json_ui_garage_url(path: 'pages/tab_bar', tab: index)
16
+ end
17
+ end
18
+ end
19
+ end
20
+
21
+ page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
22
+ scroll.label text: "Tab index #{params[:tab].to_i} selected"
23
+
24
+ scroll.spacer height: 10
25
+
26
+ 100.times do |i|
27
+ scroll.label text: "Line #{i + 1}"
28
+ end
29
+ end
30
+
31
+ end
@@ -1,78 +1,78 @@
1
- json.title 'Panels'
2
-
3
- render "#{@path_prefix}/nav_menu", json: json, page: page
4
-
5
- page.scroll backgroundColor: '#fafafa', padding: { top: 10, right: 10, bottom: 10, left: 10 }, childViews: ->(scroll) do
6
- scroll.h2 text: 'Vertical panel'
7
- scroll.spacer height: 6
8
- scroll.panels_vertical styleClasses: styleClasses, padding: glib_json_padding_body, width: 'matchParent', childViews: ->(panel) do
9
- panel.button text: 'Button1'
10
- panel.button text: 'Button2'
11
- panel.button text: 'Button3'
12
- end
13
-
14
- scroll.spacer height: 20
15
- scroll.h2 text: 'Horizontal panel'
16
- scroll.spacer height: 6
17
- scroll.panels_horizontal styleClasses: styleClasses, padding: glib_json_padding_body, width: 'matchParent', childViews: ->(panel) do
18
- panel.button text: 'Button1'
19
- panel.button text: 'Button2'
20
- panel.button text: 'Button3'
21
- end
22
-
23
- scroll.spacer height: 20
24
- scroll.h2 text: 'Split panel'
25
- scroll.spacer height: 6
26
- scroll.panels_split styleClasses: styleClasses, padding: glib_json_padding_body, width: 'matchParent', content: ->(split) do
27
- split.left childViews: ->(left) do
28
- left.button text: '1'
29
- end
30
- split.center childViews: ->(center) do
31
- center.button width: 'matchParent', text: '2'
32
- end
33
- split.right childViews: ->(right) do
34
- right.button text: '3'
35
- end
36
- end
37
-
38
-
39
- scroll.spacer height: 20
40
- scroll.h2 text: 'Responsive panel'
41
- scroll.spacer height: 6
42
- scroll.panels_responsive styleClasses: styleClasses, padding: glib_json_padding_body, width: 'matchParent', childViews: ->(horizontal) do
43
- horizontal.panels_column lg: { cols: 8 }, backgroundColor: '#c3cad2', childViews: ->(column) do
44
- column.button text: '1'
45
- end
46
- horizontal.panels_column lg: { cols: 4 }, backgroundColor: '#b3bac2', childViews: ->(column) do
47
- column.button text: '2'
48
- end
49
- end
50
-
51
- scroll.spacer height: 20
52
- scroll.h2 text: 'Grid-like layout'
53
- scroll.spacer height: 6
54
- scroll.panels_responsive width: 'matchParent', childViews: ->(horizontal) do
55
- gap = { top: 12, left: 10, right: 10, bottom: 12 }
56
- horizontal.panels_column lg: { cols: 4 }, padding: gap, childViews: ->(column) do
57
- column.panels_vertical styleClasses: styleClasses, width: 'matchParent', padding: glib_json_padding_body, childViews: ->(column) do
58
- column.button text: '1'
59
- end
60
- end
61
- horizontal.panels_column lg: { cols: 4 }, padding: gap, childViews: ->(column) do
62
- column.panels_vertical styleClasses: styleClasses, width: 'matchParent', padding: glib_json_padding_body, childViews: ->(column) do
63
- column.button text: '2'
64
- end
65
- end
66
- horizontal.panels_column lg: { cols: 4 }, padding: gap, childViews: ->(column) do
67
- column.panels_vertical styleClasses: styleClasses, width: 'matchParent', padding: glib_json_padding_body, childViews: ->(column) do
68
- column.button text: '3'
69
- end
70
- end
71
- horizontal.panels_column lg: { cols: 4 }, padding: gap, childViews: ->(column) do
72
- column.panels_vertical styleClasses: styleClasses, width: 'matchParent', padding: glib_json_padding_body, childViews: ->(column) do
73
- column.button text: '4'
74
- end
75
- end
76
- end
77
-
78
- end
1
+ json.title 'Panels'
2
+
3
+ render "#{@path_prefix}/nav_menu", json: json, page: page
4
+
5
+ page.scroll backgroundColor: '#fafafa', padding: { top: 10, right: 10, bottom: 10, left: 10 }, childViews: ->(scroll) do
6
+ scroll.h2 text: 'Vertical panel'
7
+ scroll.spacer height: 6
8
+ scroll.panels_vertical styleClasses: styleClasses, padding: glib_json_padding_body, width: 'matchParent', childViews: ->(panel) do
9
+ panel.button text: 'Button1'
10
+ panel.button text: 'Button2'
11
+ panel.button text: 'Button3'
12
+ end
13
+
14
+ scroll.spacer height: 20
15
+ scroll.h2 text: 'Horizontal panel'
16
+ scroll.spacer height: 6
17
+ scroll.panels_horizontal styleClasses: styleClasses, padding: glib_json_padding_body, width: 'matchParent', childViews: ->(panel) do
18
+ panel.button text: 'Button1'
19
+ panel.button text: 'Button2'
20
+ panel.button text: 'Button3'
21
+ end
22
+
23
+ scroll.spacer height: 20
24
+ scroll.h2 text: 'Split panel'
25
+ scroll.spacer height: 6
26
+ scroll.panels_split styleClasses: styleClasses, padding: glib_json_padding_body, width: 'matchParent', content: ->(split) do
27
+ split.left childViews: ->(left) do
28
+ left.button text: '1'
29
+ end
30
+ split.center childViews: ->(center) do
31
+ center.button width: 'matchParent', text: '2'
32
+ end
33
+ split.right childViews: ->(right) do
34
+ right.button text: '3'
35
+ end
36
+ end
37
+
38
+
39
+ scroll.spacer height: 20
40
+ scroll.h2 text: 'Responsive panel'
41
+ scroll.spacer height: 6
42
+ scroll.panels_responsive styleClasses: styleClasses, padding: glib_json_padding_body, width: 'matchParent', childViews: ->(horizontal) do
43
+ horizontal.panels_column lg: { cols: 8 }, backgroundColor: '#c3cad2', childViews: ->(column) do
44
+ column.button text: '1'
45
+ end
46
+ horizontal.panels_column lg: { cols: 4 }, backgroundColor: '#b3bac2', childViews: ->(column) do
47
+ column.button text: '2'
48
+ end
49
+ end
50
+
51
+ scroll.spacer height: 20
52
+ scroll.h2 text: 'Grid-like layout'
53
+ scroll.spacer height: 6
54
+ scroll.panels_responsive width: 'matchParent', childViews: ->(horizontal) do
55
+ gap = { top: 12, left: 10, right: 10, bottom: 12 }
56
+ horizontal.panels_column lg: { cols: 4 }, padding: gap, childViews: ->(column) do
57
+ column.panels_vertical styleClasses: styleClasses, width: 'matchParent', padding: glib_json_padding_body, childViews: ->(column) do
58
+ column.button text: '1'
59
+ end
60
+ end
61
+ horizontal.panels_column lg: { cols: 4 }, padding: gap, childViews: ->(column) do
62
+ column.panels_vertical styleClasses: styleClasses, width: 'matchParent', padding: glib_json_padding_body, childViews: ->(column) do
63
+ column.button text: '2'
64
+ end
65
+ end
66
+ horizontal.panels_column lg: { cols: 4 }, padding: gap, childViews: ->(column) do
67
+ column.panels_vertical styleClasses: styleClasses, width: 'matchParent', padding: glib_json_padding_body, childViews: ->(column) do
68
+ column.button text: '3'
69
+ end
70
+ end
71
+ horizontal.panels_column lg: { cols: 4 }, padding: gap, childViews: ->(column) do
72
+ column.panels_vertical styleClasses: styleClasses, width: 'matchParent', padding: glib_json_padding_body, childViews: ->(column) do
73
+ column.button text: '4'
74
+ end
75
+ end
76
+ end
77
+
78
+ end
@@ -1,4 +1,4 @@
1
- json.title 'Card Panels'
2
-
3
- page = json_ui_page json
4
- render "#{@path_prefix}/panels/styled", json: json, page: page, styleClasses: ['card']
1
+ json.title 'Card Panels'
2
+
3
+ page = json_ui_page json
4
+ render "#{@path_prefix}/panels/styled", json: json, page: page, styleClasses: ['card']
@@ -1,37 +1,37 @@
1
- json.title 'Panels'
2
-
3
- image_url1 = 'https://ichef.bbci.co.uk/news/976/cpsprodpb/18106/production/_97266589_gettyimages-474547165.jpg'
4
- image_url2 = 'https://s.abcnews.com/images/International/Guam03-gty-jrl-170809_16x9_992.jpg'
5
-
6
- json_ui_page json do |page|
7
- render "#{@path_prefix}/nav_menu", json: json, page: page
8
-
9
- page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
10
- scroll.label text: "\n"
11
- scroll.h1 text: 'Carousel with labels'
12
- scroll.panels_carousel width: 'matchParent', childViews: ->(carousel) do
13
- carousel.label text: 'Item 1'
14
- carousel.label text: 'Item 2'
15
- end
16
-
17
- scroll.label text: "\n"
18
- scroll.h1 text: 'Carousel with images'
19
- scroll.panels_carousel width: 'matchParent', childViews: ->(carousel) do
20
- carousel.image url: image_url1, width: 'matchParent'
21
- carousel.image url: image_url2, width: 'matchParent'
22
- end
23
-
24
- scroll.label text: "\n"
25
- scroll.h1 text: 'Carousel with complex layout'
26
- scroll.panels_carousel width: 'matchParent', childViews: ->(carousel) do
27
- carousel.panels_vertical childViews: ->(panel) do
28
- panel.h3 text: 'Item 1'
29
- panel.image url: image_url1, width: 'matchParent'
30
- end
31
- carousel.panels_vertical childViews: ->(panel) do
32
- panel.h3 text: 'Item 2'
33
- panel.image url: image_url2, width: 'matchParent'
34
- end
35
- end
36
- end
37
- end
1
+ json.title 'Panels'
2
+
3
+ image_url1 = 'https://ichef.bbci.co.uk/news/976/cpsprodpb/18106/production/_97266589_gettyimages-474547165.jpg'
4
+ image_url2 = 'https://s.abcnews.com/images/International/Guam03-gty-jrl-170809_16x9_992.jpg'
5
+
6
+ json_ui_page json do |page|
7
+ render "#{@path_prefix}/nav_menu", json: json, page: page
8
+
9
+ page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
10
+ scroll.label text: "\n"
11
+ scroll.h1 text: 'Carousel with labels'
12
+ scroll.panels_carousel width: 'matchParent', childViews: ->(carousel) do
13
+ carousel.label text: 'Item 1'
14
+ carousel.label text: 'Item 2'
15
+ end
16
+
17
+ scroll.label text: "\n"
18
+ scroll.h1 text: 'Carousel with images'
19
+ scroll.panels_carousel width: 'matchParent', childViews: ->(carousel) do
20
+ carousel.image url: image_url1, width: 'matchParent'
21
+ carousel.image url: image_url2, width: 'matchParent'
22
+ end
23
+
24
+ scroll.label text: "\n"
25
+ scroll.h1 text: 'Carousel with complex layout'
26
+ scroll.panels_carousel width: 'matchParent', childViews: ->(carousel) do
27
+ carousel.panels_vertical childViews: ->(panel) do
28
+ panel.h3 text: 'Item 1'
29
+ panel.image url: image_url1, width: 'matchParent'
30
+ end
31
+ carousel.panels_vertical childViews: ->(panel) do
32
+ panel.h3 text: 'Item 2'
33
+ panel.image url: image_url2, width: 'matchParent'
34
+ end
35
+ end
36
+ end
37
+ end