glib-web 0.5.61 → 0.5.62

Sign up to get free protection for your applications and to get access to all the features.
Files changed (177) hide show
  1. checksums.yaml +4 -4
  2. data/app/channels/glib/channel/is_typing_channel.rb +28 -28
  3. data/app/channels/glib/channel/online_channel.rb +29 -0
  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 +8 -8
  18. data/app/helpers/glib/forms_helper.rb +15 -15
  19. data/app/helpers/glib/json_ui/abstract_builder.rb +294 -294
  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 +31 -31
  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 +47 -47
  36. data/app/helpers/glib/json_ui/table_builders.rb +74 -74
  37. data/app/helpers/glib/json_ui/view_builder.rb +211 -211
  38. data/app/helpers/glib/json_ui/view_builder/banners.rb +25 -25
  39. data/app/helpers/glib/json_ui/view_builder/charts.rb +33 -33
  40. data/app/helpers/glib/json_ui/view_builder/fields.rb +259 -259
  41. data/app/helpers/glib/json_ui/view_builder/panels.rb +251 -251
  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 +18 -18
  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 +22 -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 -32
  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 +107 -107
  76. data/app/views/json_ui/garage/forms/new_rich_text.json.jbuilder +39 -39
  77. data/app/views/json_ui/garage/forms/pickers.json.jbuilder +102 -102
  78. data/app/views/json_ui/garage/forms/rich_text.json.jbuilder +40 -40
  79. data/app/views/json_ui/garage/forms/selects.json.jbuilder +83 -83
  80. data/app/views/json_ui/garage/forms/show_hide.json.jbuilder +105 -105
  81. data/app/views/json_ui/garage/forms/styled_boxes.json.jbuilder +35 -35
  82. data/app/views/json_ui/garage/forms/submission_flow.json.jbuilder +17 -17
  83. data/app/views/json_ui/garage/forms/submission_flow_post.json.jbuilder +26 -26
  84. data/app/views/json_ui/garage/forms/submission_indicator.json.jbuilder +63 -63
  85. data/app/views/json_ui/garage/forms/submission_indicator_post.json.jbuilder +25 -25
  86. data/app/views/json_ui/garage/forms/text_validation.json.jbuilder +81 -81
  87. data/app/views/json_ui/garage/home/blank.json.jbuilder +10 -10
  88. data/app/views/json_ui/garage/home/index.json.jbuilder +36 -36
  89. data/app/views/json_ui/garage/home/slow.json.jbuilder +11 -11
  90. data/app/views/json_ui/garage/lists/_autoload_section.json.jbuilder +28 -28
  91. data/app/views/json_ui/garage/lists/autoload_all.json.jbuilder +32 -32
  92. data/app/views/json_ui/garage/lists/autoload_as_needed.json.jbuilder +35 -35
  93. data/app/views/json_ui/garage/lists/chat_ui.json.jbuilder +94 -94
  94. data/app/views/json_ui/garage/lists/edit_actions.json.jbuilder +54 -54
  95. data/app/views/json_ui/garage/lists/fab.json.jbuilder +12 -12
  96. data/app/views/json_ui/garage/lists/index.json.jbuilder +32 -32
  97. data/app/views/json_ui/garage/lists/reordering.json.jbuilder +34 -34
  98. data/app/views/json_ui/garage/lists/templating.json.jbuilder +35 -35
  99. data/app/views/json_ui/garage/notifications/action_cable.json.jbuilder +113 -97
  100. data/app/views/json_ui/garage/notifications/android_post.json.jbuilder +48 -48
  101. data/app/views/json_ui/garage/notifications/index.json.jbuilder +36 -36
  102. data/app/views/json_ui/garage/notifications/web_socket.json.jbuilder +60 -60
  103. data/app/views/json_ui/garage/pages/flat_centered.json.jbuilder +29 -29
  104. data/app/views/json_ui/garage/pages/full_width.json.jbuilder +29 -29
  105. data/app/views/json_ui/garage/pages/full_width_height.json.jbuilder +16 -16
  106. data/app/views/json_ui/garage/pages/index.json.jbuilder +62 -62
  107. data/app/views/json_ui/garage/pages/layout.json.jbuilder +18 -18
  108. data/app/views/json_ui/garage/pages/lifecycle_hooks.json.jbuilder +13 -13
  109. data/app/views/json_ui/garage/pages/loading_indicator.json.jbuilder +10 -10
  110. data/app/views/json_ui/garage/pages/nav_buttons.json.jbuilder +21 -21
  111. data/app/views/json_ui/garage/pages/nested_scroll.json.jbuilder +40 -40
  112. data/app/views/json_ui/garage/pages/tab_bar.json.jbuilder +31 -31
  113. data/app/views/json_ui/garage/panels/_styled.json.jbuilder +78 -78
  114. data/app/views/json_ui/garage/panels/card.json.jbuilder +4 -4
  115. data/app/views/json_ui/garage/panels/carousel.json.jbuilder +37 -37
  116. data/app/views/json_ui/garage/panels/custom.json.jbuilder +17 -17
  117. data/app/views/json_ui/garage/panels/flow.json.jbuilder +49 -49
  118. data/app/views/json_ui/garage/panels/horizontal.json.jbuilder +91 -91
  119. data/app/views/json_ui/garage/panels/index.json.jbuilder +132 -132
  120. data/app/views/json_ui/garage/panels/outlined.json.jbuilder +4 -4
  121. data/app/views/json_ui/garage/panels/responsive.json.jbuilder +98 -98
  122. data/app/views/json_ui/garage/panels/split.json.jbuilder +182 -182
  123. data/app/views/json_ui/garage/panels/vertical.json.jbuilder +55 -55
  124. data/app/views/json_ui/garage/services/dynamic_text.json.jbuilder +13 -13
  125. data/app/views/json_ui/garage/services/image.json.jbuilder +47 -47
  126. data/app/views/json_ui/garage/services/index.json.jbuilder +17 -17
  127. data/app/views/json_ui/garage/tables/_autoload_section.json.jbuilder +16 -16
  128. data/app/views/json_ui/garage/tables/autoload_all.json.jbuilder +43 -43
  129. data/app/views/json_ui/garage/tables/autoload_as_needed.json.jbuilder +50 -50
  130. data/app/views/json_ui/garage/tables/export_import.json.jbuilder +29 -29
  131. data/app/views/json_ui/garage/tables/horizontal_scroll.json.jbuilder +26 -26
  132. data/app/views/json_ui/garage/tables/index.json.jbuilder +25 -25
  133. data/app/views/json_ui/garage/tables/layout.json.jbuilder +40 -40
  134. data/app/views/json_ui/garage/views/_chart_data.json.jbuilder +17 -17
  135. data/app/views/json_ui/garage/views/banners.json.jbuilder +63 -63
  136. data/app/views/json_ui/garage/views/calendar_data.json.jbuilder +30 -30
  137. data/app/views/json_ui/garage/views/charts.json.jbuilder +115 -115
  138. data/app/views/json_ui/garage/views/icons.json.jbuilder +1450 -1450
  139. data/app/views/json_ui/garage/views/images.json.jbuilder +89 -89
  140. data/app/views/json_ui/garage/views/index.json.jbuilder +54 -54
  141. data/app/views/json_ui/garage/views/links.json.jbuilder +70 -70
  142. data/app/views/json_ui/garage/views/map_cluster_data.json.jbuilder +41 -41
  143. data/app/views/json_ui/garage/views/map_data.json.jbuilder +51 -51
  144. data/app/views/json_ui/garage/views/maps.json.jbuilder +31 -31
  145. data/app/views/json_ui/garage/views/markdowns.json.jbuilder +41 -41
  146. data/app/views/json_ui/garage/views/misc.json.jbuilder +34 -34
  147. data/app/views/json_ui/garage/views/texts.json.jbuilder +44 -44
  148. data/app/views/layouts/json_ui/renderer.html.erb +35 -35
  149. data/config/routes.rb +7 -7
  150. data/lib/generators/glib/install_generator.rb +24 -24
  151. data/lib/generators/templates/20191017062519_create_texts.rb +12 -12
  152. data/lib/generators/templates/20191024063257_add_scope_to_texts.rb +7 -7
  153. data/lib/generators/templates/20191112095018_add_lang_to_texts.rb +7 -7
  154. data/lib/generators/templates/20191126071051_create_active_storage_tables.active_storage.rb +27 -27
  155. data/lib/generators/templates/database.yml +107 -107
  156. data/lib/generators/templates/dynamic_text.rb +2 -2
  157. data/lib/glib-web.rb +9 -9
  158. data/lib/glib/crypt/utils.rb +26 -26
  159. data/lib/glib/dynamic_text/config.rb +21 -21
  160. data/lib/glib/engine.rb +7 -7
  161. data/lib/glib/json_crawler.rb +11 -11
  162. data/lib/glib/json_crawler/action_crawler.rb +23 -23
  163. data/lib/glib/json_crawler/action_crawlers/action_http.rb +11 -11
  164. data/lib/glib/json_crawler/action_crawlers/forms_submit.rb +48 -48
  165. data/lib/glib/json_crawler/action_crawlers/menu.rb +12 -12
  166. data/lib/glib/json_crawler/action_crawlers/nav_initiate.rb +19 -19
  167. data/lib/glib/json_crawler/action_crawlers/run_multiple.rb +13 -13
  168. data/lib/glib/json_crawler/action_crawlers/windows_open.rb +33 -33
  169. data/lib/glib/json_crawler/coverage.rb +20 -20
  170. data/lib/glib/json_crawler/http.rb +120 -120
  171. data/lib/glib/json_crawler/router.rb +98 -98
  172. data/lib/glib/mailer_tester.rb +36 -36
  173. data/lib/glib/test_helpers.rb +52 -52
  174. data/lib/glib/value.rb +7 -7
  175. data/lib/glib/version.rb +5 -5
  176. data/lib/tasks/db.rake +95 -95
  177. metadata +2 -1
@@ -1,4 +1,4 @@
1
- json.title 'Outlined Panels'
2
-
3
- page = json_ui_page json
4
- render "#{@path_prefix}/panels/styled", json: json, page: page, styleClasses: ['card', 'outlined']
1
+ json.title 'Outlined Panels'
2
+
3
+ page = json_ui_page json
4
+ render "#{@path_prefix}/panels/styled", json: json, page: page, styleClasses: ['card', 'outlined']
@@ -1,98 +1,98 @@
1
- json.title 'Responsive Panels'
2
-
3
- page = json_ui_page json
4
- render "#{@path_prefix}/nav_menu", json: json, page: page
5
-
6
- page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
7
- scroll.label text: 'Shrink the browser\'s width to see how the column panels are rearranged. On mobile screens, they are always arranged vertically'
8
-
9
- scroll.spacer height: 20
10
- scroll.h2 text: 'With 12 columns'
11
- scroll.spacer height: 6
12
- scroll.panels_responsive width: 'matchParent', childViews: ->(horizontal) do
13
- horizontal.panels_column lg: { cols: 8 }, backgroundColor: '#c3cad2', childViews: ->(column) do
14
- column.button text: '1'
15
- end
16
- horizontal.panels_column lg: { cols: 4 }, backgroundColor: '#b3bac2', childViews: ->(column) do
17
- column.button text: '2'
18
- end
19
- end
20
-
21
- scroll.spacer height: 20
22
- scroll.h2 text: 'With more than 12 columns'
23
- scroll.spacer height: 6
24
- scroll.panels_responsive width: 'matchParent', childViews: ->(horizontal) do
25
- horizontal.panels_column lg: { cols: 4 }, backgroundColor: '#c3cad2', childViews: ->(column) do
26
- column.button text: '1'
27
- end
28
- horizontal.panels_column lg: { cols: 4 }, backgroundColor: '#b3bac2', childViews: ->(column) do
29
- column.button text: '2'
30
- end
31
- horizontal.panels_column lg: { cols: 4 }, backgroundColor: '#c3cad2', childViews: ->(column) do
32
- column.button text: '3'
33
- end
34
- horizontal.panels_column lg: { cols: 4 }, backgroundColor: '#b3bac2', childViews: ->(column) do
35
- column.button text: '4'
36
- end
37
- horizontal.panels_column lg: { cols: 4 }, backgroundColor: '#c3cad2', childViews: ->(column) do
38
- column.button text: '5'
39
- end
40
- end
41
-
42
- scroll.spacer height: 20
43
- scroll.h2 text: 'With responsive paddings'
44
- scroll.spacer height: 6
45
- scroll.panels_responsive width: 'matchParent', childViews: ->(horizontal) do
46
- horizontal.panels_column lg: { cols: 8, padding: { right: 20 } }, childViews: ->(column) do
47
- column.button width: 'matchParent', text: '1'
48
- end
49
- horizontal.panels_column lg: { cols: 4 }, childViews: ->(column) do
50
- column.button width: 'matchParent', text: '2'
51
- end
52
- end
53
-
54
- scroll.spacer height: 20
55
- scroll.h2 text: 'With mixed components'
56
- scroll.spacer height: 6
57
- scroll.panels_responsive width: 'matchParent', align: 'center', childViews: ->(responsive) do
58
- responsive.h4 text: 'Heading'
59
-
60
- responsive.label text: 'Label'
61
-
62
- # responsive.spacer height: 10
63
- # responsive.image url: glib_json_image_standard_url, width: 100, height: 100
64
-
65
- # responsive.spacer height: 10
66
- # responsive.image url: glib_json_image_standard_url
67
-
68
- # responsive.panels_column lg: { cols: 8, padding: { right: 20 } }, childViews: ->(column) do
69
- # column.button width: 'matchParent', text: '1'
70
- # end
71
- # responsive.panels_column lg: { cols: 4 }, childViews: ->(column) do
72
- # column.button width: 'matchParent', text: '2'
73
- # end
74
-
75
- responsive.panels_column lg: { cols: 8 }, backgroundColor: '#c3cad2', childViews: ->(column) do
76
- column.button text: '1'
77
- end
78
- responsive.panels_column lg: { cols: 4 }, backgroundColor: '#b3bac2', childViews: ->(column) do
79
- column.button text: '2'
80
- end
81
-
82
- responsive.spacer height: 10
83
- responsive.button text: 'Button'
84
- end
85
-
86
- scroll.spacer height: 20
87
- scroll.h2 text: 'With onClick'
88
- scroll.spacer height: 6
89
- scroll.panels_responsive backgroundColor: '#c3cad2', padding: { left: 20, right: 20, top: 10, bottom: 10 }, childViews: ->(responsive) do
90
- responsive.h4 text: 'Heading'
91
- responsive.label text: 'Label'
92
- end, onClick: ->(action) do
93
- action.windows_open url: json_ui_garage_url(path: 'home/blank')
94
- end
95
-
96
- scroll.spacer height: 20
97
-
98
- end
1
+ json.title 'Responsive Panels'
2
+
3
+ page = json_ui_page json
4
+ render "#{@path_prefix}/nav_menu", json: json, page: page
5
+
6
+ page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
7
+ scroll.label text: 'Shrink the browser\'s width to see how the column panels are rearranged. On mobile screens, they are always arranged vertically'
8
+
9
+ scroll.spacer height: 20
10
+ scroll.h2 text: 'With 12 columns'
11
+ scroll.spacer height: 6
12
+ scroll.panels_responsive width: 'matchParent', childViews: ->(horizontal) do
13
+ horizontal.panels_column lg: { cols: 8 }, backgroundColor: '#c3cad2', childViews: ->(column) do
14
+ column.button text: '1'
15
+ end
16
+ horizontal.panels_column lg: { cols: 4 }, backgroundColor: '#b3bac2', childViews: ->(column) do
17
+ column.button text: '2'
18
+ end
19
+ end
20
+
21
+ scroll.spacer height: 20
22
+ scroll.h2 text: 'With more than 12 columns'
23
+ scroll.spacer height: 6
24
+ scroll.panels_responsive width: 'matchParent', childViews: ->(horizontal) do
25
+ horizontal.panels_column lg: { cols: 4 }, backgroundColor: '#c3cad2', childViews: ->(column) do
26
+ column.button text: '1'
27
+ end
28
+ horizontal.panels_column lg: { cols: 4 }, backgroundColor: '#b3bac2', childViews: ->(column) do
29
+ column.button text: '2'
30
+ end
31
+ horizontal.panels_column lg: { cols: 4 }, backgroundColor: '#c3cad2', childViews: ->(column) do
32
+ column.button text: '3'
33
+ end
34
+ horizontal.panels_column lg: { cols: 4 }, backgroundColor: '#b3bac2', childViews: ->(column) do
35
+ column.button text: '4'
36
+ end
37
+ horizontal.panels_column lg: { cols: 4 }, backgroundColor: '#c3cad2', childViews: ->(column) do
38
+ column.button text: '5'
39
+ end
40
+ end
41
+
42
+ scroll.spacer height: 20
43
+ scroll.h2 text: 'With responsive paddings'
44
+ scroll.spacer height: 6
45
+ scroll.panels_responsive width: 'matchParent', childViews: ->(horizontal) do
46
+ horizontal.panels_column lg: { cols: 8, padding: { right: 20 } }, childViews: ->(column) do
47
+ column.button width: 'matchParent', text: '1'
48
+ end
49
+ horizontal.panels_column lg: { cols: 4 }, childViews: ->(column) do
50
+ column.button width: 'matchParent', text: '2'
51
+ end
52
+ end
53
+
54
+ scroll.spacer height: 20
55
+ scroll.h2 text: 'With mixed components'
56
+ scroll.spacer height: 6
57
+ scroll.panels_responsive width: 'matchParent', align: 'center', childViews: ->(responsive) do
58
+ responsive.h4 text: 'Heading'
59
+
60
+ responsive.label text: 'Label'
61
+
62
+ # responsive.spacer height: 10
63
+ # responsive.image url: glib_json_image_standard_url, width: 100, height: 100
64
+
65
+ # responsive.spacer height: 10
66
+ # responsive.image url: glib_json_image_standard_url
67
+
68
+ # responsive.panels_column lg: { cols: 8, padding: { right: 20 } }, childViews: ->(column) do
69
+ # column.button width: 'matchParent', text: '1'
70
+ # end
71
+ # responsive.panels_column lg: { cols: 4 }, childViews: ->(column) do
72
+ # column.button width: 'matchParent', text: '2'
73
+ # end
74
+
75
+ responsive.panels_column lg: { cols: 8 }, backgroundColor: '#c3cad2', childViews: ->(column) do
76
+ column.button text: '1'
77
+ end
78
+ responsive.panels_column lg: { cols: 4 }, backgroundColor: '#b3bac2', childViews: ->(column) do
79
+ column.button text: '2'
80
+ end
81
+
82
+ responsive.spacer height: 10
83
+ responsive.button text: 'Button'
84
+ end
85
+
86
+ scroll.spacer height: 20
87
+ scroll.h2 text: 'With onClick'
88
+ scroll.spacer height: 6
89
+ scroll.panels_responsive backgroundColor: '#c3cad2', padding: { left: 20, right: 20, top: 10, bottom: 10 }, childViews: ->(responsive) do
90
+ responsive.h4 text: 'Heading'
91
+ responsive.label text: 'Label'
92
+ end, onClick: ->(action) do
93
+ action.windows_open url: json_ui_garage_url(path: 'home/blank')
94
+ end
95
+
96
+ scroll.spacer height: 20
97
+
98
+ end
@@ -1,182 +1,182 @@
1
- json.title 'Panels'
2
-
3
- json_ui_page json do |page|
4
- render "#{@path_prefix}/nav_menu", json: json, page: page
5
-
6
- page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
7
-
8
- scroll.h1 text: '2 columns'
9
- scroll.panels_split width: 'matchParent', content: ->(content) do
10
- content.left childViews: ->(left) do
11
- left.button text: '1'
12
- end
13
- content.right childViews: ->(right) do
14
- right.button text: '2'
15
- end
16
- end
17
-
18
- scroll.label text: "\n"
19
- scroll.h1 text: '3 columns'
20
- scroll.panels_split width: 'matchParent', content: ->(content) do
21
- content.left childViews: ->(left) do
22
- left.button text: '1'
23
- end
24
- content.center childViews: ->(center) do
25
- center.button width: 'matchParent', text: '2'
26
- end
27
- content.right childViews: ->(right) do
28
- right.button text: '3'
29
- end
30
- end
31
-
32
- scroll.label text: "\n"
33
- scroll.h1 text: 'Expandable left'
34
- scroll.panels_split width: 'matchParent', content: ->(content) do
35
- content.center childViews: ->(center) do
36
- center.button width: 'matchParent', text: '1'
37
- end
38
- content.right childViews: ->(right) do
39
- right.button text: '2'
40
- end
41
- end
42
-
43
- scroll.label text: "\n"
44
- scroll.h1 text: 'Expandable right'
45
- scroll.panels_split width: 'matchParent', content: ->(content) do
46
- content.left childViews: ->(left) do
47
- left.button text: '1'
48
- end
49
- content.center childViews: ->(center) do
50
- center.button width: 'matchParent', text: '2'
51
- end
52
- end
53
-
54
- scroll.label text: "\n"
55
- scroll.h1 text: 'Short center text'
56
- scroll.panels_split width: 'matchParent', content: ->(content) do
57
- content.left childViews: ->(left) do
58
- left.button text: '1'
59
- end
60
- content.center childViews: ->(center) do
61
- center.label text: 'short'
62
- end
63
- content.right childViews: ->(right) do
64
- right.button text: '2'
65
- end
66
- end
67
-
68
- scroll.label text: "\n"
69
- scroll.h1 text: 'Long center text'
70
- scroll.panels_split width: 'matchParent', content: ->(content) do
71
- content.left childViews: ->(left) do
72
- left.button text: '1'
73
- end
74
- content.center childViews: ->(center) do
75
- center.label text: 'a very very very very very very very very very very very very very very very very very very very very very very very very very very very very long text'
76
- end
77
- content.right childViews: ->(right) do
78
- right.button text: '2'
79
- end
80
- end
81
-
82
- scroll.label text: "\n"
83
- scroll.h1 text: 'Few center items'
84
- scroll.panels_split width: 'matchParent', content: ->(content) do
85
- content.left childViews: ->(left) do
86
- left.button text: 'L'
87
- end
88
- content.center childViews: ->(center) do
89
- center.panels_horizontal childViews: ->(h) do
90
- h.button text: '1'
91
- h.button text: '2'
92
- h.button text: '3'
93
- end
94
- end
95
- content.right childViews: ->(right) do
96
- right.button text: 'R'
97
- end
98
- end
99
-
100
- scroll.label text: "\n"
101
- scroll.h1 text: 'Many center items'
102
- scroll.panels_split width: 'matchParent', content: ->(content) do
103
- content.left childViews: ->(left) do
104
- left.button text: 'L'
105
- end
106
- content.center childViews: ->(center) do
107
- center.panels_flow width: 'matchParent', backgroundColor: '#b3bac2', childViews: ->(h) do
108
- (1..20).each do |index|
109
- h.button text: index
110
- end
111
- end
112
- end
113
- content.right childViews: ->(right) do
114
- right.button text: 'R'
115
- end
116
- end
117
-
118
- scroll.label text: "\n"
119
- scroll.h1 text: 'Center filled equally'
120
- scroll.panels_split width: 'matchParent', content: ->(content) do
121
- content.left childViews: ->(left) do
122
- left.button text: 'L'
123
- end
124
- content.center childViews: ->(center) do
125
- center.panels_horizontal width: 'matchParent', backgroundColor: '#b3bac2', distribution: 'fillEqually', childViews: ->(h) do
126
- h.button text: '1'
127
- h.button text: '2'
128
- h.button text: '3'
129
- end
130
- end
131
- content.right childViews: ->(right) do
132
- right.button text: 'R'
133
- end
134
- end
135
-
136
- scroll.label text: "\n"
137
- scroll.h1 text: 'Center spaced equally'
138
- scroll.panels_split width: 'matchParent', content: ->(content) do
139
- content.left childViews: ->(left) do
140
- left.button text: 'L'
141
- end
142
- content.center childViews: ->(center) do
143
- center.panels_horizontal width: 'matchParent', backgroundColor: '#b3bac2', distribution: 'spaceEqually', childViews: ->(h) do
144
- h.button text: '1'
145
- h.button text: '2'
146
- h.button text: '3'
147
- end
148
- end
149
- content.right childViews: ->(right) do
150
- right.button text: 'R'
151
- end
152
- end
153
-
154
- scroll.label text: "\n"
155
- scroll.h1 text: 'Combo 1'
156
- scroll.panels_split width: 'matchParent', content: ->(content) do
157
- content.left childViews: ->(left) do
158
- left.label text: 'a very very very very very very very very very very very very very very very very very very very very very very very very very very very very long text'
159
- end
160
- content.right width: 120, backgroundColor: '#b3bac2', childViews: ->(right) do
161
- right.panels_horizontal distribution: 'spaceEqually', childViews: ->(h) do
162
- h.label text: 'Label One'
163
- h.label text: 'Label Two'
164
- end
165
- end
166
- end
167
-
168
- scroll.label text: "\n"
169
- scroll.h1 text: 'Combo 2'
170
- scroll.panels_split width: 200, backgroundColor: '#b3bac2', padding: { right: 10 }, content: ->(content) do
171
- content.left childViews: ->(left) do
172
- left.button text: 'Big'
173
- end
174
- content.right childViews: ->(right) do
175
- right.panels_horizontal height: 'matchParent', align: 'middle', childViews: ->(h) do
176
- h.spacer width: 10
177
- h.button text: 'small', styleClass: 'link'
178
- end
179
- end
180
- end
181
- end
182
- end
1
+ json.title 'Panels'
2
+
3
+ json_ui_page json do |page|
4
+ render "#{@path_prefix}/nav_menu", json: json, page: page
5
+
6
+ page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
7
+
8
+ scroll.h1 text: '2 columns'
9
+ scroll.panels_split width: 'matchParent', content: ->(content) do
10
+ content.left childViews: ->(left) do
11
+ left.button text: '1'
12
+ end
13
+ content.right childViews: ->(right) do
14
+ right.button text: '2'
15
+ end
16
+ end
17
+
18
+ scroll.label text: "\n"
19
+ scroll.h1 text: '3 columns'
20
+ scroll.panels_split width: 'matchParent', content: ->(content) do
21
+ content.left childViews: ->(left) do
22
+ left.button text: '1'
23
+ end
24
+ content.center childViews: ->(center) do
25
+ center.button width: 'matchParent', text: '2'
26
+ end
27
+ content.right childViews: ->(right) do
28
+ right.button text: '3'
29
+ end
30
+ end
31
+
32
+ scroll.label text: "\n"
33
+ scroll.h1 text: 'Expandable left'
34
+ scroll.panels_split width: 'matchParent', content: ->(content) do
35
+ content.center childViews: ->(center) do
36
+ center.button width: 'matchParent', text: '1'
37
+ end
38
+ content.right childViews: ->(right) do
39
+ right.button text: '2'
40
+ end
41
+ end
42
+
43
+ scroll.label text: "\n"
44
+ scroll.h1 text: 'Expandable right'
45
+ scroll.panels_split width: 'matchParent', content: ->(content) do
46
+ content.left childViews: ->(left) do
47
+ left.button text: '1'
48
+ end
49
+ content.center childViews: ->(center) do
50
+ center.button width: 'matchParent', text: '2'
51
+ end
52
+ end
53
+
54
+ scroll.label text: "\n"
55
+ scroll.h1 text: 'Short center text'
56
+ scroll.panels_split width: 'matchParent', content: ->(content) do
57
+ content.left childViews: ->(left) do
58
+ left.button text: '1'
59
+ end
60
+ content.center childViews: ->(center) do
61
+ center.label text: 'short'
62
+ end
63
+ content.right childViews: ->(right) do
64
+ right.button text: '2'
65
+ end
66
+ end
67
+
68
+ scroll.label text: "\n"
69
+ scroll.h1 text: 'Long center text'
70
+ scroll.panels_split width: 'matchParent', content: ->(content) do
71
+ content.left childViews: ->(left) do
72
+ left.button text: '1'
73
+ end
74
+ content.center childViews: ->(center) do
75
+ center.label text: 'a very very very very very very very very very very very very very very very very very very very very very very very very very very very very long text'
76
+ end
77
+ content.right childViews: ->(right) do
78
+ right.button text: '2'
79
+ end
80
+ end
81
+
82
+ scroll.label text: "\n"
83
+ scroll.h1 text: 'Few center items'
84
+ scroll.panels_split width: 'matchParent', content: ->(content) do
85
+ content.left childViews: ->(left) do
86
+ left.button text: 'L'
87
+ end
88
+ content.center childViews: ->(center) do
89
+ center.panels_horizontal childViews: ->(h) do
90
+ h.button text: '1'
91
+ h.button text: '2'
92
+ h.button text: '3'
93
+ end
94
+ end
95
+ content.right childViews: ->(right) do
96
+ right.button text: 'R'
97
+ end
98
+ end
99
+
100
+ scroll.label text: "\n"
101
+ scroll.h1 text: 'Many center items'
102
+ scroll.panels_split width: 'matchParent', content: ->(content) do
103
+ content.left childViews: ->(left) do
104
+ left.button text: 'L'
105
+ end
106
+ content.center childViews: ->(center) do
107
+ center.panels_flow width: 'matchParent', backgroundColor: '#b3bac2', childViews: ->(h) do
108
+ (1..20).each do |index|
109
+ h.button text: index
110
+ end
111
+ end
112
+ end
113
+ content.right childViews: ->(right) do
114
+ right.button text: 'R'
115
+ end
116
+ end
117
+
118
+ scroll.label text: "\n"
119
+ scroll.h1 text: 'Center filled equally'
120
+ scroll.panels_split width: 'matchParent', content: ->(content) do
121
+ content.left childViews: ->(left) do
122
+ left.button text: 'L'
123
+ end
124
+ content.center childViews: ->(center) do
125
+ center.panels_horizontal width: 'matchParent', backgroundColor: '#b3bac2', distribution: 'fillEqually', childViews: ->(h) do
126
+ h.button text: '1'
127
+ h.button text: '2'
128
+ h.button text: '3'
129
+ end
130
+ end
131
+ content.right childViews: ->(right) do
132
+ right.button text: 'R'
133
+ end
134
+ end
135
+
136
+ scroll.label text: "\n"
137
+ scroll.h1 text: 'Center spaced equally'
138
+ scroll.panels_split width: 'matchParent', content: ->(content) do
139
+ content.left childViews: ->(left) do
140
+ left.button text: 'L'
141
+ end
142
+ content.center childViews: ->(center) do
143
+ center.panels_horizontal width: 'matchParent', backgroundColor: '#b3bac2', distribution: 'spaceEqually', childViews: ->(h) do
144
+ h.button text: '1'
145
+ h.button text: '2'
146
+ h.button text: '3'
147
+ end
148
+ end
149
+ content.right childViews: ->(right) do
150
+ right.button text: 'R'
151
+ end
152
+ end
153
+
154
+ scroll.label text: "\n"
155
+ scroll.h1 text: 'Combo 1'
156
+ scroll.panels_split width: 'matchParent', content: ->(content) do
157
+ content.left childViews: ->(left) do
158
+ left.label text: 'a very very very very very very very very very very very very very very very very very very very very very very very very very very very very long text'
159
+ end
160
+ content.right width: 120, backgroundColor: '#b3bac2', childViews: ->(right) do
161
+ right.panels_horizontal distribution: 'spaceEqually', childViews: ->(h) do
162
+ h.label text: 'Label One'
163
+ h.label text: 'Label Two'
164
+ end
165
+ end
166
+ end
167
+
168
+ scroll.label text: "\n"
169
+ scroll.h1 text: 'Combo 2'
170
+ scroll.panels_split width: 200, backgroundColor: '#b3bac2', padding: { right: 10 }, content: ->(content) do
171
+ content.left childViews: ->(left) do
172
+ left.button text: 'Big'
173
+ end
174
+ content.right childViews: ->(right) do
175
+ right.panels_horizontal height: 'matchParent', align: 'middle', childViews: ->(h) do
176
+ h.spacer width: 10
177
+ h.button text: 'small', styleClass: 'link'
178
+ end
179
+ end
180
+ end
181
+ end
182
+ end