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,55 +1,55 @@
1
- module Glib
2
- module JsonUi
3
- module StylingHelper
4
-
5
- ### Padding
6
-
7
- def glib_json_padding_body
8
- { top: 12, left: 20, right: 20, bottom: 12 }
9
- end
10
-
11
- def glib_json_padding_list
12
- { top: 12, bottom: 12, left: 16, right: 16 }
13
- end
14
-
15
- ###
16
-
17
-
18
-
19
- ### Image
20
-
21
- def glib_json_image_standard_url
22
- 'https://cdn-images-1.medium.com/max/1200/1*Qc0XxYm-qAZL-7tjjlNfrg.png'
23
- end
24
-
25
- def glib_json_image_avatar_url
26
- 'https://www.wpjournalist.nl/wp-content/uploads/2019/03/avatar-jongen-voorbeeld-1.jpg'
27
- end
28
-
29
- def glib_json_image_blob_key
30
- 'o6CKzNt67PWnkPdUEnWMt7pr'
31
- end
32
-
33
- ###
34
-
35
-
36
-
37
- ### Color
38
-
39
- def glib_color_panel_background
40
- '#b3bac2'
41
- end
42
-
43
- def glib_color_success
44
- '#4caf50'
45
- end
46
-
47
- def glib_color_error
48
- '#ff5252'
49
- end
50
-
51
- ###
52
-
53
- end
54
- end
55
- end
1
+ module Glib
2
+ module JsonUi
3
+ module StylingHelper
4
+
5
+ ### Padding
6
+
7
+ def glib_json_padding_body
8
+ { top: 12, left: 20, right: 20, bottom: 12 }
9
+ end
10
+
11
+ def glib_json_padding_list
12
+ { top: 12, bottom: 12, left: 16, right: 16 }
13
+ end
14
+
15
+ ###
16
+
17
+
18
+
19
+ ### Image
20
+
21
+ def glib_json_image_standard_url
22
+ 'https://cdn-images-1.medium.com/max/1200/1*Qc0XxYm-qAZL-7tjjlNfrg.png'
23
+ end
24
+
25
+ def glib_json_image_avatar_url
26
+ 'https://www.wpjournalist.nl/wp-content/uploads/2019/03/avatar-jongen-voorbeeld-1.jpg'
27
+ end
28
+
29
+ def glib_json_image_blob_key
30
+ 'o6CKzNt67PWnkPdUEnWMt7pr'
31
+ end
32
+
33
+ ###
34
+
35
+
36
+
37
+ ### Color
38
+
39
+ def glib_color_panel_background
40
+ '#b3bac2'
41
+ end
42
+
43
+ def glib_color_success
44
+ '#4caf50'
45
+ end
46
+
47
+ def glib_color_error
48
+ '#ff5252'
49
+ end
50
+
51
+ ###
52
+
53
+ end
54
+ end
55
+ end
@@ -1,74 +1,74 @@
1
- module Glib
2
- module JsonUi
3
- module TableBuilders
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
-
11
- def editButtons(block)
12
- json.editButtons do
13
- block.call page.menu_builder
14
- end
15
- end
16
-
17
- end
18
-
19
- class Default < AbstractTemplate
20
- views :cellViews
21
- action :onClick
22
- array :colSpans
23
- array :colStyles
24
- end
25
- end
26
-
27
- class Section < AbstractBuilder
28
- def initialize(json, page, template)
29
- super json, page
30
- @template = template
31
- end
32
-
33
- def header(options = {})
34
- json.header do
35
- json.backgroundColor options[:backgroundColor]
36
- json.cellViews do
37
- options[:cellViews]&.call page.view_builder
38
- end
39
- end
40
- end
41
-
42
- def rows(options = {})
43
- block = options.delete(:builder)
44
- json.rows do
45
- if (objects = options.delete(:objects))
46
- objects.each_with_index do |object, index|
47
- block&.call @template, object, index
48
- end
49
- else
50
- block&.call @template
51
- end
52
- end
53
-
54
- raise "Invalid properties: #{options.keys}" if options.size > 0
55
- end
56
-
57
- # def rows(array = nil)
58
- # template = page.table_template_builder
59
- # json.rows do
60
- # if array
61
- # array.each do |row|
62
- # yield template, row
63
- # end
64
- # else
65
- # yield template
66
- # end
67
- # end
68
- # end
69
-
70
- end
71
-
72
- end
73
- end
74
- end
1
+ module Glib
2
+ module JsonUi
3
+ module TableBuilders
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
+
11
+ def editButtons(block)
12
+ json.editButtons do
13
+ block.call page.menu_builder
14
+ end
15
+ end
16
+
17
+ end
18
+
19
+ class Default < AbstractTemplate
20
+ views :cellViews
21
+ action :onClick
22
+ array :colSpans
23
+ array :colStyles
24
+ end
25
+ end
26
+
27
+ class Section < AbstractBuilder
28
+ def initialize(json, page, template)
29
+ super json, page
30
+ @template = template
31
+ end
32
+
33
+ def header(options = {})
34
+ json.header do
35
+ json.backgroundColor options[:backgroundColor]
36
+ json.cellViews do
37
+ options[:cellViews]&.call page.view_builder
38
+ end
39
+ end
40
+ end
41
+
42
+ def rows(options = {})
43
+ block = options.delete(:builder)
44
+ json.rows do
45
+ if (objects = options.delete(:objects))
46
+ objects.each_with_index do |object, index|
47
+ block&.call @template, object, index
48
+ end
49
+ else
50
+ block&.call @template
51
+ end
52
+ end
53
+
54
+ raise "Invalid properties: #{options.keys}" if options.size > 0
55
+ end
56
+
57
+ # def rows(array = nil)
58
+ # template = page.table_template_builder
59
+ # json.rows do
60
+ # if array
61
+ # array.each do |row|
62
+ # yield template, row
63
+ # end
64
+ # else
65
+ # yield template
66
+ # end
67
+ # end
68
+ # end
69
+
70
+ end
71
+
72
+ end
73
+ end
74
+ end
@@ -1,26 +1,26 @@
1
- class Glib::JsonUi::ViewBuilder
2
- module Banners
3
-
4
- class Alert < View
5
- icon :icon
6
- string :message
7
- # string :message_format
8
- singleton_array :styleClass, :styleClasses
9
- end
10
-
11
- class Select < View
12
- string :id
13
- icon :icon
14
- string :message
15
- singleton_array :styleClass, :styleClasses
16
- color :color
17
-
18
- def buttons(block)
19
- json.buttons do
20
- block.call page.menu_builder
21
- end
22
- end
23
- end
24
-
25
- end
26
- end
1
+ class Glib::JsonUi::ViewBuilder
2
+ module Banners
3
+
4
+ class Alert < View
5
+ icon :icon
6
+ string :message
7
+ # string :message_format
8
+ singleton_array :styleClass, :styleClasses
9
+ end
10
+
11
+ class Select < View
12
+ string :id
13
+ icon :icon
14
+ string :message
15
+ singleton_array :styleClass, :styleClasses
16
+ color :color
17
+
18
+ def buttons(block)
19
+ json.buttons do
20
+ block.call page.menu_builder
21
+ end
22
+ end
23
+ end
24
+
25
+ end
26
+ end
@@ -1,49 +1,49 @@
1
- class Glib::JsonUi::ViewBuilder
2
- module Charts
3
- module ReleaseDateIndicator
4
- def lineVertical(blocks)
5
- json.lineVertical do
6
- blocks.each do |block|
7
- json.child! do
8
- block.call
9
- end
10
- end
11
- end
12
- end
13
- end
14
-
15
- class Line < View
16
- include ReleaseDateIndicator
17
-
18
- hash :nextPage
19
-
20
- def dataSeries(blocks)
21
- json.dataSeries do
22
- blocks.each do |block|
23
- json.child! do
24
- block.call
25
- end
26
- end
27
- end
28
- end
29
-
30
- end
31
-
32
- class Column < View
33
- include ReleaseDateIndicator
34
-
35
- bool :stacked
36
-
37
- def dataGroups(blocks)
38
- json.dataGroups do
39
- blocks.each do |block|
40
- json.child! do
41
- block.call
42
- end
43
- end
44
- end
45
- end
46
-
47
- end
48
- end
49
- end
1
+ class Glib::JsonUi::ViewBuilder
2
+ module Charts
3
+ module ReleaseDateIndicator
4
+ def lineVertical(blocks)
5
+ json.lineVertical do
6
+ blocks.each do |block|
7
+ json.child! do
8
+ block.call
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
14
+
15
+ class Line < View
16
+ include ReleaseDateIndicator
17
+
18
+ hash :nextPage
19
+
20
+ def dataSeries(blocks)
21
+ json.dataSeries do
22
+ blocks.each do |block|
23
+ json.child! do
24
+ block.call
25
+ end
26
+ end
27
+ end
28
+ end
29
+
30
+ end
31
+
32
+ class Column < View
33
+ include ReleaseDateIndicator
34
+
35
+ bool :stacked
36
+
37
+ def dataGroups(blocks)
38
+ json.dataGroups do
39
+ blocks.each do |block|
40
+ json.child! do
41
+ block.call
42
+ end
43
+ end
44
+ end
45
+ end
46
+
47
+ end
48
+ end
49
+ end