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,14 +1,14 @@
1
- class Glib::JsonUi::ActionBuilder
2
- module Panels
3
- class ScrollToBottom < Action
4
- action :onScroll
5
- bool :animate
6
- end
7
-
8
- class ScrollTo < Action
9
- string :viewId
10
- action :onScroll
11
- bool :animate
12
- end
13
- end
14
- end
1
+ class Glib::JsonUi::ActionBuilder
2
+ module Panels
3
+ class ScrollToBottom < Action
4
+ action :onScroll
5
+ bool :animate
6
+ end
7
+
8
+ class ScrollTo < Action
9
+ string :viewId
10
+ action :onScroll
11
+ bool :animate
12
+ end
13
+ end
14
+ end
@@ -1,15 +1,15 @@
1
- class Glib::JsonUi::ActionBuilder
2
- module Sheets
3
-
4
- class Select < Action
5
- string :message
6
-
7
- def buttons(block)
8
- json.buttons do
9
- block.call page.menu_builder
10
- end
11
- end
12
- end
13
-
14
- end
15
- end
1
+ class Glib::JsonUi::ActionBuilder
2
+ module Sheets
3
+
4
+ class Select < Action
5
+ string :message
6
+
7
+ def buttons(block)
8
+ json.buttons do
9
+ block.call page.menu_builder
10
+ end
11
+ end
12
+ end
13
+
14
+ end
15
+ end
@@ -1,41 +1,41 @@
1
- class Glib::JsonUi::ActionBuilder
2
-
3
- module Snackbars
4
- class Alert < Action
5
- string :message
6
- # string :message_format
7
- action :onClose
8
-
9
- string :verticalPosition
10
- string :horizontalPosition
11
- singleton_array :styleClass, :styleClasses
12
- end
13
-
14
- # class Confirm < Action
15
- # string :message
16
- # action :onConfirm
17
- # action :onCancel
18
-
19
- # string :verticalPosition
20
- # string :horizontalPosition
21
- # singleton_array :styleClass, :styleClasses
22
- # end
23
-
24
- class Select < Action
25
- string :message
26
-
27
- string :verticalPosition
28
- string :horizontalPosition
29
- singleton_array :styleClass, :styleClasses
30
-
31
- def buttons(block)
32
- json.buttons do
33
- block.call page.menu_builder
34
- end
35
- end
36
-
37
- end
38
-
39
- end
40
-
41
- end
1
+ class Glib::JsonUi::ActionBuilder
2
+
3
+ module Snackbars
4
+ class Alert < Action
5
+ string :message
6
+ # string :message_format
7
+ action :onClose
8
+
9
+ string :verticalPosition
10
+ string :horizontalPosition
11
+ singleton_array :styleClass, :styleClasses
12
+ end
13
+
14
+ # class Confirm < Action
15
+ # string :message
16
+ # action :onConfirm
17
+ # action :onCancel
18
+
19
+ # string :verticalPosition
20
+ # string :horizontalPosition
21
+ # singleton_array :styleClass, :styleClasses
22
+ # end
23
+
24
+ class Select < Action
25
+ string :message
26
+
27
+ string :verticalPosition
28
+ string :horizontalPosition
29
+ singleton_array :styleClass, :styleClasses
30
+
31
+ def buttons(block)
32
+ json.buttons do
33
+ block.call page.menu_builder
34
+ end
35
+ end
36
+
37
+ end
38
+
39
+ end
40
+
41
+ end
@@ -1,33 +1,33 @@
1
- class Glib::JsonUi::ActionBuilder
2
- module Windows
3
- class Close < Action
4
- action :onClose
5
- # action :onAfterClose
6
- end
7
-
8
- class CloseAll < Action
9
- action :onClose
10
- end
11
-
12
- class Open < Action
13
- string :url, cache: true
14
- action :onOpen
15
- end
16
-
17
- class OpenWeb < Action
18
- string :url
19
- end
20
-
21
- class Reload < Action
22
- string :url, cache: true
23
- action :onReload
24
- end
25
-
26
- class CloseWithReload < Action
27
- string :fallbackUrl
28
- action :onReload
29
-
30
- required :fallbackUrl
31
- end
32
- end
33
- end
1
+ class Glib::JsonUi::ActionBuilder
2
+ module Windows
3
+ class Close < Action
4
+ action :onClose
5
+ # action :onAfterClose
6
+ end
7
+
8
+ class CloseAll < Action
9
+ action :onClose
10
+ end
11
+
12
+ class Open < Action
13
+ string :url, cache: true
14
+ action :onOpen
15
+ end
16
+
17
+ class OpenWeb < Action
18
+ string :url
19
+ end
20
+
21
+ class Reload < Action
22
+ string :url, cache: true
23
+ action :onReload
24
+ end
25
+
26
+ class CloseWithReload < Action
27
+ string :fallbackUrl
28
+ action :onReload
29
+
30
+ required :fallbackUrl
31
+ end
32
+ end
33
+ end
@@ -1,17 +1,17 @@
1
- module Glib
2
- module JsonUi
3
- module AnalyticsHelper
4
- def __json_ui_analytics(json)
5
- if try(:glib_analytics_included?)
6
- json.analytics do
7
- json.feature do
8
- json.group controller_name
9
- json.action action_name
10
- json.segment glib_analytics_feature_segment
11
- end
12
- end
13
- end
14
- end
15
- end
16
- end
17
- end
1
+ module Glib
2
+ module JsonUi
3
+ module AnalyticsHelper
4
+ def __json_ui_analytics(json)
5
+ if try(:glib_analytics_included?)
6
+ json.analytics do
7
+ json.feature do
8
+ json.group controller_name
9
+ json.action action_name
10
+ json.segment glib_analytics_feature_segment
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -1,25 +1,25 @@
1
- module Glib
2
- module JsonUi
3
- module DynamicFieldBuilders
4
-
5
- class Group < AbstractBuilder
6
- def initialize(json, page, template)
7
- super json, page
8
- @template = template
9
- end
10
-
11
- # string :titlePrefix
12
- def titlePrefix(string)
13
- json.titlePrefix string
14
- end
15
-
16
- def template(options = {})
17
- # json.template do
18
- page.vertical_content(options)
19
- # end
20
- end
21
- end
22
-
23
- end
24
- end
25
- end
1
+ module Glib
2
+ module JsonUi
3
+ module DynamicFieldBuilders
4
+
5
+ class Group < AbstractBuilder
6
+ def initialize(json, page, template)
7
+ super json, page
8
+ @template = template
9
+ end
10
+
11
+ # string :titlePrefix
12
+ def titlePrefix(string)
13
+ json.titlePrefix string
14
+ end
15
+
16
+ def template(options = {})
17
+ # json.template do
18
+ page.vertical_content(options)
19
+ # end
20
+ end
21
+ end
22
+
23
+ end
24
+ end
25
+ end
@@ -1,28 +1,28 @@
1
- module Glib
2
- module JsonUi
3
- module GenericBuilders
4
-
5
- class Content < AbstractBuilder
6
- def initialize(json, page, template)
7
- super json, page
8
- @template = template
9
- end
10
-
11
- def definePanels(names)
12
- names.each do |name|
13
- define_singleton_method(name) do |options|
14
- json.set!(name) { page.vertical_content(options) }
15
- end
16
- end
17
- end
18
-
19
- # def body(options = {})
20
- # json.body do
21
- # page.vertical_content(options)
22
- # end
23
- # end
24
- end
25
-
26
- end
27
- end
28
- end
1
+ module Glib
2
+ module JsonUi
3
+ module GenericBuilders
4
+
5
+ class Content < AbstractBuilder
6
+ def initialize(json, page, template)
7
+ super json, page
8
+ @template = template
9
+ end
10
+
11
+ def definePanels(names)
12
+ names.each do |name|
13
+ define_singleton_method(name) do |options|
14
+ json.set!(name) { page.vertical_content(options) }
15
+ end
16
+ end
17
+ end
18
+
19
+ # def body(options = {})
20
+ # json.body do
21
+ # page.vertical_content(options)
22
+ # end
23
+ # end
24
+ end
25
+
26
+ end
27
+ end
28
+ end
@@ -1,110 +1,110 @@
1
- module Glib
2
- module JsonUi
3
- module ListBuilders
4
- class Template < AbstractBuilder
5
- def method_missing(m, *args)
6
- add_element_to_array 'template', m, *args
7
- end
8
-
9
- class AbstractTemplate < JsonUiElement
10
- menu :leftButtons
11
- menu :rightButtons
12
- menu :editButtons
13
- menu :chips
14
- singleton_array :styleClass, :styleClasses
15
- color :backgroundColor
16
-
17
- # def editButtons(block)
18
- # json.editButtons do
19
- # block.call page.menu_builder
20
- # end
21
- # end
22
-
23
- # def chips(block)
24
- # json.chips do
25
- # block.call page.menu_builder
26
- # end
27
- # end
28
- end
29
-
30
- class Standard < AbstractTemplate
31
- string :id
32
- string :title
33
- string :subtitle
34
- string :subsubtitle
35
- string :imageUrl
36
- action :onClick
37
- action :onLongPress
38
- icon :icon
39
- bool :avatar
40
- action :onReorder
41
- string :paramNameForFormData
42
- string :paramNameForNewAbsoluteIndex
43
- string :paramNameForNewSectionIndex
44
- string :paramNameForNewSectionedRowIndex
45
-
46
- string :paramNameForNewIndex # Deprecated
47
-
48
- # # NOTE: Experimental. Still deciding whether this needs to be a full blown panel or
49
- # # an array of badges (with relevant properties, e.g. text, color, etc)
50
- # views :accessoryViews
51
- end
52
-
53
- class Featured < Standard
54
- end
55
-
56
- class Thumbnail < Standard
57
- end
58
-
59
- class CommentOutgoing < Standard
60
- end
61
-
62
- class CommentIncoming < Standard
63
- end
64
-
65
- class Custom < Standard
66
- string :template
67
-
68
- # TODO: Experimental
69
- hash :extra
70
-
71
- # TODO: Deprecate
72
- hash :data
73
- end
74
- end
75
-
76
- class Section < AbstractBuilder
77
- def initialize(json, page, template)
78
- super json, page
79
- @template = template
80
- end
81
-
82
- def header(options = {})
83
- json.header do
84
- page.vertical_content(options)
85
- end
86
- end
87
-
88
- def rows(options = {})
89
- block = options[:builder]
90
- json.rows do
91
- if (objects = options[:objects])
92
- objects.each_with_index do |object, index|
93
- block&.call @template, object, index
94
- end
95
- else
96
- block&.call @template
97
- end
98
- end
99
- end
100
-
101
- def footer(options = {})
102
- json.footer do
103
- page.vertical_content(options)
104
- end
105
- end
106
- end
107
-
108
- end
109
- end
110
- end
1
+ module Glib
2
+ module JsonUi
3
+ module ListBuilders
4
+ class Template < AbstractBuilder
5
+ def method_missing(m, *args)
6
+ add_element_to_array 'template', m, *args
7
+ end
8
+
9
+ class AbstractTemplate < JsonUiElement
10
+ menu :leftButtons
11
+ menu :rightButtons
12
+ menu :editButtons
13
+ menu :chips
14
+ singleton_array :styleClass, :styleClasses
15
+ color :backgroundColor
16
+
17
+ # def editButtons(block)
18
+ # json.editButtons do
19
+ # block.call page.menu_builder
20
+ # end
21
+ # end
22
+
23
+ # def chips(block)
24
+ # json.chips do
25
+ # block.call page.menu_builder
26
+ # end
27
+ # end
28
+ end
29
+
30
+ class Standard < AbstractTemplate
31
+ string :id
32
+ string :title
33
+ string :subtitle
34
+ string :subsubtitle
35
+ string :imageUrl
36
+ action :onClick
37
+ action :onLongPress
38
+ icon :icon
39
+ bool :avatar
40
+ action :onReorder
41
+ string :paramNameForFormData
42
+ string :paramNameForNewAbsoluteIndex
43
+ string :paramNameForNewSectionIndex
44
+ string :paramNameForNewSectionedRowIndex
45
+
46
+ string :paramNameForNewIndex # Deprecated
47
+
48
+ # # NOTE: Experimental. Still deciding whether this needs to be a full blown panel or
49
+ # # an array of badges (with relevant properties, e.g. text, color, etc)
50
+ # views :accessoryViews
51
+ end
52
+
53
+ class Featured < Standard
54
+ end
55
+
56
+ class Thumbnail < Standard
57
+ end
58
+
59
+ class CommentOutgoing < Standard
60
+ end
61
+
62
+ class CommentIncoming < Standard
63
+ end
64
+
65
+ class Custom < Standard
66
+ string :template
67
+
68
+ # TODO: Experimental
69
+ hash :extra
70
+
71
+ # TODO: Deprecate
72
+ hash :data
73
+ end
74
+ end
75
+
76
+ class Section < AbstractBuilder
77
+ def initialize(json, page, template)
78
+ super json, page
79
+ @template = template
80
+ end
81
+
82
+ def header(options = {})
83
+ json.header do
84
+ page.vertical_content(options)
85
+ end
86
+ end
87
+
88
+ def rows(options = {})
89
+ block = options[:builder]
90
+ json.rows do
91
+ if (objects = options[:objects])
92
+ objects.each_with_index do |object, index|
93
+ block&.call @template, object, index
94
+ end
95
+ else
96
+ block&.call @template
97
+ end
98
+ end
99
+ end
100
+
101
+ def footer(options = {})
102
+ json.footer do
103
+ page.vertical_content(options)
104
+ end
105
+ end
106
+ end
107
+
108
+ end
109
+ end
110
+ end