glib-web 0.5.97 → 0.5.98

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 (192) 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 +149 -149
  6. data/app/controllers/concerns/glib/json/dynamic_text.rb +126 -126
  7. data/app/controllers/concerns/glib/json/libs.rb +149 -149
  8. data/app/controllers/concerns/glib/json/new_dynamic_text.rb +122 -122
  9. data/app/controllers/concerns/glib/json/transformation.rb +11 -11
  10. data/app/controllers/concerns/glib/json/traversal.rb +92 -92
  11. data/app/controllers/concerns/glib/json/ui.rb +88 -88
  12. data/app/controllers/concerns/glib/json/validation.rb +13 -13
  13. data/app/controllers/glib/home_controller.rb +54 -54
  14. data/app/helpers/glib/app_feature_support_helper.rb +16 -16
  15. data/app/helpers/glib/dynamic_images_helper.rb +55 -55
  16. data/app/helpers/glib/dynamic_texts_helper.rb +42 -42
  17. data/app/helpers/glib/enum_helper.rb +18 -18
  18. data/app/helpers/glib/forms_helper.rb +15 -15
  19. data/app/helpers/glib/json_ui/abstract_builder.rb +309 -309
  20. data/app/helpers/glib/json_ui/action_builder/dialogs.rb +58 -58
  21. data/app/helpers/glib/json_ui/action_builder/http.rb +39 -39
  22. data/app/helpers/glib/json_ui/action_builder/iap.rb +15 -15
  23. data/app/helpers/glib/json_ui/action_builder/panels.rb +14 -14
  24. data/app/helpers/glib/json_ui/action_builder/sheets.rb +15 -15
  25. data/app/helpers/glib/json_ui/action_builder/snackbars.rb +41 -41
  26. data/app/helpers/glib/json_ui/action_builder/windows.rb +38 -38
  27. data/app/helpers/glib/json_ui/action_builder.rb +140 -140
  28. data/app/helpers/glib/json_ui/analytics_helper.rb +17 -17
  29. data/app/helpers/glib/json_ui/dynamic_field_builders.rb +25 -25
  30. data/app/helpers/glib/json_ui/generic_builders.rb +28 -28
  31. data/app/helpers/glib/json_ui/list_builders.rb +110 -110
  32. data/app/helpers/glib/json_ui/menu_builder.rb +96 -96
  33. data/app/helpers/glib/json_ui/page_helper.rb +221 -221
  34. data/app/helpers/glib/json_ui/response_helper.rb +25 -25
  35. data/app/helpers/glib/json_ui/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 +49 -49
  39. data/app/helpers/glib/json_ui/view_builder/fields.rb +296 -296
  40. data/app/helpers/glib/json_ui/view_builder/iap.rb +11 -11
  41. data/app/helpers/glib/json_ui/view_builder/panels.rb +262 -262
  42. data/app/helpers/glib/json_ui/view_builder.rb +256 -253
  43. data/app/helpers/glib/urls_helper.rb +12 -12
  44. data/app/models/concerns/glib/soft_deletable.rb +73 -73
  45. data/app/models/glib/active_storage/attachment.rb +9 -9
  46. data/app/models/glib/active_storage/blob.rb +9 -9
  47. data/app/models/glib/application_record.rb +18 -18
  48. data/app/models/glib/dynamic_text_record.rb +9 -9
  49. data/app/models/glib/text.rb +95 -95
  50. data/app/policies/glib/application_policy.rb +191 -191
  51. data/app/validators/email_typo_validator.rb +38 -38
  52. data/app/validators/email_validator.rb +7 -7
  53. data/app/validators/url_validator.rb +20 -20
  54. data/app/views/json_ui/garage/_nav_menu.json.jbuilder +72 -72
  55. data/app/views/json_ui/garage/actions/_dialogs.json.jbuilder +104 -104
  56. data/app/views/json_ui/garage/actions/_http.json.jbuilder +24 -24
  57. data/app/views/json_ui/garage/actions/_panels.json.jbuilder +18 -18
  58. data/app/views/json_ui/garage/actions/_reload.json.jbuilder +17 -17
  59. data/app/views/json_ui/garage/actions/_sheets.json.jbuilder +18 -18
  60. data/app/views/json_ui/garage/actions/_snackbars.json.jbuilder +33 -33
  61. data/app/views/json_ui/garage/actions/_timeouts.json.jbuilder +24 -24
  62. data/app/views/json_ui/garage/actions/_windows.json.jbuilder +24 -24
  63. data/app/views/json_ui/garage/actions/dialogs_oauth_post.json.jbuilder +6 -6
  64. data/app/views/json_ui/garage/actions/index.json.jbuilder +24 -24
  65. data/app/views/json_ui/garage/forms/_alert_post_data.json.jbuilder +10 -10
  66. data/app/views/json_ui/garage/forms/basic.json.jbuilder +21 -21
  67. data/app/views/json_ui/garage/forms/basic_post.json.jbuilder +8 -8
  68. data/app/views/json_ui/garage/forms/checkboxes.json.jbuilder +27 -27
  69. data/app/views/json_ui/garage/forms/conditional_value.json.jbuilder +38 -38
  70. data/app/views/json_ui/garage/forms/dynamic_group.json.jbuilder +39 -39
  71. data/app/views/json_ui/garage/forms/dynamic_select.json.jbuilder +24 -24
  72. data/app/views/json_ui/garage/forms/dynamic_select_data.json.jbuilder +38 -38
  73. data/app/views/json_ui/garage/forms/file_upload.json.jbuilder +37 -37
  74. data/app/views/json_ui/garage/forms/floating_submit.json.jbuilder +19 -19
  75. data/app/views/json_ui/garage/forms/generic_post.json.jbuilder +3 -3
  76. data/app/views/json_ui/garage/forms/get_request.json.jbuilder +27 -27
  77. data/app/views/json_ui/garage/forms/index.json.jbuilder +120 -120
  78. data/app/views/json_ui/garage/forms/new_rich_text.json.jbuilder +40 -40
  79. data/app/views/json_ui/garage/forms/online_participant1.json.jbuilder +25 -25
  80. data/app/views/json_ui/garage/forms/online_participant2.json.jbuilder +25 -25
  81. data/app/views/json_ui/garage/forms/payments.json.jbuilder +34 -34
  82. data/app/views/json_ui/garage/forms/pickers.json.jbuilder +89 -89
  83. data/app/views/json_ui/garage/forms/ratings.json.jbuilder +49 -49
  84. data/app/views/json_ui/garage/forms/rich_text.json.jbuilder +40 -40
  85. data/app/views/json_ui/garage/forms/selects.json.jbuilder +91 -91
  86. data/app/views/json_ui/garage/forms/show_hide.json.jbuilder +150 -150
  87. data/app/views/json_ui/garage/forms/styled_boxes.json.jbuilder +35 -35
  88. data/app/views/json_ui/garage/forms/submission_flow.json.jbuilder +17 -17
  89. data/app/views/json_ui/garage/forms/submission_flow_post.json.jbuilder +26 -26
  90. data/app/views/json_ui/garage/forms/submission_indicator.json.jbuilder +63 -63
  91. data/app/views/json_ui/garage/forms/submission_indicator_post.json.jbuilder +25 -25
  92. data/app/views/json_ui/garage/forms/submit_on_change.json.jbuilder +28 -28
  93. data/app/views/json_ui/garage/forms/text_validation.json.jbuilder +65 -65
  94. data/app/views/json_ui/garage/forms/timers.json.jbuilder +120 -120
  95. data/app/views/json_ui/garage/home/blank.json.jbuilder +10 -10
  96. data/app/views/json_ui/garage/home/index.json.jbuilder +36 -36
  97. data/app/views/json_ui/garage/home/slow.json.jbuilder +11 -11
  98. data/app/views/json_ui/garage/lists/_autoload_section.json.jbuilder +30 -30
  99. data/app/views/json_ui/garage/lists/autoload_all.json.jbuilder +32 -32
  100. data/app/views/json_ui/garage/lists/autoload_as_needed.json.jbuilder +35 -35
  101. data/app/views/json_ui/garage/lists/autoload_as_needed_responsive_columns.json.jbuilder +27 -27
  102. data/app/views/json_ui/garage/lists/chat_ui.json.jbuilder +94 -94
  103. data/app/views/json_ui/garage/lists/edit_actions.json.jbuilder +62 -62
  104. data/app/views/json_ui/garage/lists/fab.json.jbuilder +12 -12
  105. data/app/views/json_ui/garage/lists/index.json.jbuilder +41 -41
  106. data/app/views/json_ui/garage/lists/reordering.json.jbuilder +34 -34
  107. data/app/views/json_ui/garage/lists/templating.json.jbuilder +35 -35
  108. data/app/views/json_ui/garage/notifications/action_cable.json.jbuilder +114 -114
  109. data/app/views/json_ui/garage/notifications/android_post.json.jbuilder +48 -48
  110. data/app/views/json_ui/garage/notifications/index.json.jbuilder +36 -36
  111. data/app/views/json_ui/garage/notifications/web_socket.json.jbuilder +60 -60
  112. data/app/views/json_ui/garage/pages/flat_centered.json.jbuilder +29 -29
  113. data/app/views/json_ui/garage/pages/full_width.json.jbuilder +29 -29
  114. data/app/views/json_ui/garage/pages/full_width_height.json.jbuilder +16 -16
  115. data/app/views/json_ui/garage/pages/index.json.jbuilder +62 -62
  116. data/app/views/json_ui/garage/pages/layout.json.jbuilder +18 -18
  117. data/app/views/json_ui/garage/pages/lifecycle_hooks.json.jbuilder +13 -13
  118. data/app/views/json_ui/garage/pages/loading_indicator.json.jbuilder +10 -10
  119. data/app/views/json_ui/garage/pages/nav_buttons.json.jbuilder +21 -21
  120. data/app/views/json_ui/garage/pages/nested_scroll.json.jbuilder +40 -40
  121. data/app/views/json_ui/garage/pages/tab_bar.json.jbuilder +92 -92
  122. data/app/views/json_ui/garage/panels/_styled.json.jbuilder +78 -78
  123. data/app/views/json_ui/garage/panels/card.json.jbuilder +4 -4
  124. data/app/views/json_ui/garage/panels/carousel.json.jbuilder +38 -38
  125. data/app/views/json_ui/garage/panels/custom.json.jbuilder +17 -17
  126. data/app/views/json_ui/garage/panels/flow.json.jbuilder +59 -59
  127. data/app/views/json_ui/garage/panels/horizontal.json.jbuilder +101 -101
  128. data/app/views/json_ui/garage/panels/index.json.jbuilder +138 -138
  129. data/app/views/json_ui/garage/panels/outlined.json.jbuilder +4 -4
  130. data/app/views/json_ui/garage/panels/responsive.json.jbuilder +98 -98
  131. data/app/views/json_ui/garage/panels/split.json.jbuilder +182 -182
  132. data/app/views/json_ui/garage/panels/ul.json.jbuilder +33 -33
  133. data/app/views/json_ui/garage/panels/vertical.json.jbuilder +55 -55
  134. data/app/views/json_ui/garage/panels/web.json.jbuilder +15 -15
  135. data/app/views/json_ui/garage/services/dynamic_text.json.jbuilder +13 -13
  136. data/app/views/json_ui/garage/services/image.json.jbuilder +47 -47
  137. data/app/views/json_ui/garage/services/index.json.jbuilder +17 -17
  138. data/app/views/json_ui/garage/tables/_autoload_section.json.jbuilder +16 -16
  139. data/app/views/json_ui/garage/tables/autoload_all.json.jbuilder +43 -43
  140. data/app/views/json_ui/garage/tables/autoload_as_needed.json.jbuilder +50 -50
  141. data/app/views/json_ui/garage/tables/export_import.json.jbuilder +29 -29
  142. data/app/views/json_ui/garage/tables/horizontal_scroll.json.jbuilder +26 -26
  143. data/app/views/json_ui/garage/tables/index.json.jbuilder +25 -25
  144. data/app/views/json_ui/garage/tables/layout.json.jbuilder +40 -40
  145. data/app/views/json_ui/garage/views/_chart_data.json.jbuilder +17 -17
  146. data/app/views/json_ui/garage/views/banners.json.jbuilder +67 -67
  147. data/app/views/json_ui/garage/views/calendar_data.json.jbuilder +30 -30
  148. data/app/views/json_ui/garage/views/charts.json.jbuilder +125 -125
  149. data/app/views/json_ui/garage/views/controls.json.jbuilder +60 -60
  150. data/app/views/json_ui/garage/views/iap.json.jbuilder +21 -21
  151. data/app/views/json_ui/garage/views/icon_names.json.jbuilder +1450 -1450
  152. data/app/views/json_ui/garage/views/icons.json.jbuilder +15 -15
  153. data/app/views/json_ui/garage/views/images.json.jbuilder +89 -89
  154. data/app/views/json_ui/garage/views/index.json.jbuilder +83 -83
  155. data/app/views/json_ui/garage/views/links.json.jbuilder +70 -70
  156. data/app/views/json_ui/garage/views/map_cluster_data.json.jbuilder +41 -41
  157. data/app/views/json_ui/garage/views/map_data.json.jbuilder +51 -51
  158. data/app/views/json_ui/garage/views/maps.json.jbuilder +31 -31
  159. data/app/views/json_ui/garage/views/markdowns.json.jbuilder +41 -41
  160. data/app/views/json_ui/garage/views/misc.json.jbuilder +34 -34
  161. data/app/views/json_ui/garage/views/progress.json.jbuilder +31 -31
  162. data/app/views/json_ui/garage/views/texts.json.jbuilder +35 -35
  163. data/app/views/layouts/json_ui/renderer.html.erb +35 -35
  164. data/config/routes.rb +7 -7
  165. data/lib/generators/glib/install_generator.rb +24 -24
  166. data/lib/generators/templates/20191017062519_create_texts.rb +12 -12
  167. data/lib/generators/templates/20191024063257_add_scope_to_texts.rb +7 -7
  168. data/lib/generators/templates/20191112095018_add_lang_to_texts.rb +7 -7
  169. data/lib/generators/templates/20191126071051_create_active_storage_tables.active_storage.rb +27 -27
  170. data/lib/generators/templates/database.yml +107 -107
  171. data/lib/generators/templates/dynamic_text.rb +2 -2
  172. data/lib/glib/crypt/utils.rb +26 -26
  173. data/lib/glib/dynamic_text/config.rb +21 -21
  174. data/lib/glib/engine.rb +7 -7
  175. data/lib/glib/json_crawler/action_crawler.rb +23 -23
  176. data/lib/glib/json_crawler/action_crawlers/action_http.rb +11 -11
  177. data/lib/glib/json_crawler/action_crawlers/forms_submit.rb +48 -48
  178. data/lib/glib/json_crawler/action_crawlers/menu.rb +12 -12
  179. data/lib/glib/json_crawler/action_crawlers/nav_initiate.rb +19 -19
  180. data/lib/glib/json_crawler/action_crawlers/run_multiple.rb +13 -13
  181. data/lib/glib/json_crawler/action_crawlers/windows_open.rb +33 -33
  182. data/lib/glib/json_crawler/coverage.rb +20 -20
  183. data/lib/glib/json_crawler/http.rb +120 -120
  184. data/lib/glib/json_crawler/router.rb +90 -90
  185. data/lib/glib/json_crawler.rb +11 -11
  186. data/lib/glib/mailer_tester.rb +36 -36
  187. data/lib/glib/test_helpers.rb +52 -52
  188. data/lib/glib/value.rb +7 -7
  189. data/lib/glib/version.rb +5 -5
  190. data/lib/glib-web.rb +9 -9
  191. data/lib/tasks/db.rake +95 -95
  192. metadata +2 -3
@@ -1,140 +1,140 @@
1
- module Glib
2
- module JsonUi
3
- class ActionBuilder < AbstractBuilder
4
- def initialize(json, page, multiple)
5
- super(json, page)
6
-
7
- @multiple = multiple
8
- end
9
-
10
- def method_missing(m, *args)
11
- if @multiple
12
- add_element_to_array_v1 'action', m, *args
13
- else
14
- add_singleton_element_v1 'action', m, *args
15
- end
16
- end
17
-
18
- class Action < JsonUiElement
19
- # def analytics(value)
20
- # if value.is_a?(String)
21
- # @analyticsEnabled = true
22
- # @analyticsId = value
23
- # else
24
- # @analyticsEnabled = value == true
25
- # end
26
- # end
27
-
28
- # # Override
29
- # def created
30
- # if @analyticsEnabled
31
- # suffix = @analyticsId
32
- # # TODO: recognize_path() needs `method` as a second argument for POST request
33
- # if suffix.nil? && @url && (route = Rails.application.routes.recognize_path(@url))
34
- # suffix = "#{route[:controller]}_#{route[:action]}"
35
- # end
36
-
37
- # if suffix
38
- # json.analytics do
39
- # json.track :event
40
- # json.nameSuffix suffix
41
- # end
42
- # end
43
-
44
- # end
45
- # end
46
- end
47
-
48
- ### Action definitions
49
-
50
- class RunMultiple < Action
51
- def childActions(block)
52
- json.childActions do
53
- block.call ActionBuilder.new(json, page, true)
54
- end
55
- end
56
- end
57
-
58
- module Forms
59
- class Submit < Action
60
- end
61
- end
62
-
63
- module Auth
64
- class SaveCsrfToken < Action
65
- string :token
66
- action :onSave
67
- end
68
-
69
- class Restart < Action
70
- end
71
-
72
- class CreditCard < Action
73
- string :publicKey
74
- string :clientSecret
75
- action :onSuccess
76
- action :onFailure
77
- bool :setupOnly
78
- end
79
- end
80
-
81
- module Devices
82
- class GetPushToken < Action
83
- string :postUrl
84
- string :paramNameForToken
85
-
86
- # Use postUrl instead
87
- # action :onGet
88
- end
89
- end
90
-
91
- module Analytics
92
- class LogEvent < Action
93
- string :name
94
- hash :params
95
- end
96
- end
97
-
98
- module Cables
99
- class Push < Action
100
- string :channel
101
- string :event
102
- hash :payload
103
- end
104
- end
105
-
106
- module Timeouts
107
- class Set < Action
108
- int :interval # Milliseconds
109
- action :onTimeout
110
- bool :repeat
111
- end
112
-
113
- # FUTURE
114
- class Remove < Action
115
- end
116
-
117
- # FUTURE
118
- class Clear < Action
119
- end
120
- end
121
-
122
- # FUTURE
123
- module Data
124
- class Save < Action
125
- string :key
126
- string :value
127
- action :onSave
128
- end
129
-
130
- class Remove < Action
131
- end
132
-
133
- class Clear < Action
134
- end
135
- end
136
-
137
- ###
138
- end
139
- end
140
- end
1
+ module Glib
2
+ module JsonUi
3
+ class ActionBuilder < AbstractBuilder
4
+ def initialize(json, page, multiple)
5
+ super(json, page)
6
+
7
+ @multiple = multiple
8
+ end
9
+
10
+ def method_missing(m, *args)
11
+ if @multiple
12
+ add_element_to_array_v1 'action', m, *args
13
+ else
14
+ add_singleton_element_v1 'action', m, *args
15
+ end
16
+ end
17
+
18
+ class Action < JsonUiElement
19
+ # def analytics(value)
20
+ # if value.is_a?(String)
21
+ # @analyticsEnabled = true
22
+ # @analyticsId = value
23
+ # else
24
+ # @analyticsEnabled = value == true
25
+ # end
26
+ # end
27
+
28
+ # # Override
29
+ # def created
30
+ # if @analyticsEnabled
31
+ # suffix = @analyticsId
32
+ # # TODO: recognize_path() needs `method` as a second argument for POST request
33
+ # if suffix.nil? && @url && (route = Rails.application.routes.recognize_path(@url))
34
+ # suffix = "#{route[:controller]}_#{route[:action]}"
35
+ # end
36
+
37
+ # if suffix
38
+ # json.analytics do
39
+ # json.track :event
40
+ # json.nameSuffix suffix
41
+ # end
42
+ # end
43
+
44
+ # end
45
+ # end
46
+ end
47
+
48
+ ### Action definitions
49
+
50
+ class RunMultiple < Action
51
+ def childActions(block)
52
+ json.childActions do
53
+ block.call ActionBuilder.new(json, page, true)
54
+ end
55
+ end
56
+ end
57
+
58
+ module Forms
59
+ class Submit < Action
60
+ end
61
+ end
62
+
63
+ module Auth
64
+ class SaveCsrfToken < Action
65
+ string :token
66
+ action :onSave
67
+ end
68
+
69
+ class Restart < Action
70
+ end
71
+
72
+ class CreditCard < Action
73
+ string :publicKey
74
+ string :clientSecret
75
+ action :onSuccess
76
+ action :onFailure
77
+ bool :setupOnly
78
+ end
79
+ end
80
+
81
+ module Devices
82
+ class GetPushToken < Action
83
+ string :postUrl
84
+ string :paramNameForToken
85
+
86
+ # Use postUrl instead
87
+ # action :onGet
88
+ end
89
+ end
90
+
91
+ module Analytics
92
+ class LogEvent < Action
93
+ string :name
94
+ hash :params
95
+ end
96
+ end
97
+
98
+ module Cables
99
+ class Push < Action
100
+ string :channel
101
+ string :event
102
+ hash :payload
103
+ end
104
+ end
105
+
106
+ module Timeouts
107
+ class Set < Action
108
+ int :interval # Milliseconds
109
+ action :onTimeout
110
+ bool :repeat
111
+ end
112
+
113
+ # FUTURE
114
+ class Remove < Action
115
+ end
116
+
117
+ # FUTURE
118
+ class Clear < Action
119
+ end
120
+ end
121
+
122
+ # FUTURE
123
+ module Data
124
+ class Save < Action
125
+ string :key
126
+ string :value
127
+ action :onSave
128
+ end
129
+
130
+ class Remove < Action
131
+ end
132
+
133
+ class Clear < Action
134
+ end
135
+ end
136
+
137
+ ###
138
+ end
139
+ end
140
+ 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