glib-web 0.4.22 → 0.4.23

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 (124) hide show
  1. checksums.yaml +5 -5
  2. data/app/controllers/concerns/glib/auth/policy.rb +0 -0
  3. data/app/controllers/concerns/glib/json/new_dynamic_text.rb +0 -0
  4. data/app/controllers/concerns/glib/json/traversal.rb +0 -0
  5. data/app/controllers/glib/home_controller.rb +0 -0
  6. data/app/helpers/glib/dynamic_images_helper.rb +0 -0
  7. data/app/helpers/glib/dynamic_texts_helper.rb +0 -0
  8. data/app/helpers/glib/json_ui/abstract_builder.rb +6 -0
  9. data/app/helpers/glib/json_ui/action_builder/dialogs.rb +63 -0
  10. data/app/helpers/glib/json_ui/action_builder/sheets.rb +15 -0
  11. data/app/helpers/glib/json_ui/action_builder/snackbars.rb +41 -0
  12. data/app/helpers/glib/json_ui/action_builder/windows.rb +25 -0
  13. data/app/helpers/glib/json_ui/action_builder.rb +0 -113
  14. data/app/helpers/glib/json_ui/dynamic_field_builders.rb +25 -0
  15. data/app/helpers/glib/json_ui/generic_builders.rb +28 -0
  16. data/app/helpers/glib/json_ui/list_builders.rb +0 -0
  17. data/app/helpers/glib/json_ui/menu_builder.rb +0 -0
  18. data/app/helpers/glib/json_ui/page_helper.rb +13 -1
  19. data/app/helpers/glib/json_ui/response_helper.rb +3 -3
  20. data/app/helpers/glib/json_ui/split_builders.rb +2 -2
  21. data/app/helpers/glib/json_ui/styling_helper.rb +0 -0
  22. data/app/helpers/glib/json_ui/table_builders.rb +0 -0
  23. data/app/helpers/glib/json_ui/view_builder/banners.rb +3 -2
  24. data/app/helpers/glib/json_ui/view_builder/fields.rb +6 -3
  25. data/app/helpers/glib/json_ui/view_builder/panels.rb +0 -0
  26. data/app/helpers/glib/json_ui/view_builder.rb +0 -0
  27. data/app/models/glib/active_storage/attachment.rb +0 -0
  28. data/app/models/glib/active_storage/blob.rb +0 -0
  29. data/app/models/glib/dynamic_text_record.rb +0 -0
  30. data/app/models/glib/text.rb +0 -0
  31. data/app/policies/glib/application_policy.rb +148 -148
  32. data/app/views/app/views/json_ui/vue/renderer.html.erb +0 -0
  33. data/app/views/json_ui/garage/_nav_menu.json.jbuilder +0 -0
  34. data/app/views/json_ui/garage/actions/_dialogs.json.jbuilder +95 -0
  35. data/app/views/json_ui/garage/actions/_sheets.json.jbuilder +19 -0
  36. data/app/views/json_ui/garage/actions/_snackbars.json.jbuilder +33 -0
  37. data/app/views/json_ui/garage/actions/_windows.json.jbuilder +24 -0
  38. data/app/views/json_ui/garage/actions/index.json.jbuilder +5 -109
  39. data/app/views/json_ui/garage/forms/_alert_post_data.json.jbuilder +0 -0
  40. data/app/views/json_ui/garage/forms/basic.json.jbuilder +0 -0
  41. data/app/views/json_ui/garage/forms/basic_post.json.jbuilder +0 -0
  42. data/app/views/json_ui/garage/forms/checkboxes.json.jbuilder +0 -0
  43. data/app/views/json_ui/garage/forms/dynamic_group.json.jbuilder +21 -4
  44. data/app/views/json_ui/garage/forms/dynamic_select.json.jbuilder +0 -0
  45. data/app/views/json_ui/garage/forms/dynamic_select_data.json.jbuilder +0 -0
  46. data/app/views/json_ui/garage/forms/file_upload.json.jbuilder +0 -0
  47. data/app/views/json_ui/garage/forms/floating_submit.json.jbuilder +0 -0
  48. data/app/views/json_ui/garage/forms/generic_post.json.jbuilder +0 -0
  49. data/app/views/json_ui/garage/forms/get_request.json.jbuilder +0 -0
  50. data/app/views/json_ui/garage/forms/index.json.jbuilder +0 -0
  51. data/app/views/json_ui/garage/forms/pickers.json.jbuilder +0 -0
  52. data/app/views/json_ui/garage/forms/rich_text.json.jbuilder +0 -0
  53. data/app/views/json_ui/garage/forms/selects.json.jbuilder +0 -0
  54. data/app/views/json_ui/garage/forms/submission_flow.json.jbuilder +0 -0
  55. data/app/views/json_ui/garage/forms/submission_flow_post.json.jbuilder +0 -0
  56. data/app/views/json_ui/garage/forms/submission_indicator.json.jbuilder +0 -0
  57. data/app/views/json_ui/garage/forms/submission_indicator_post.json.jbuilder +0 -0
  58. data/app/views/json_ui/garage/forms/text_validation.json.jbuilder +0 -0
  59. data/app/views/json_ui/garage/home/blank.json.jbuilder +0 -0
  60. data/app/views/json_ui/garage/home/index.json.jbuilder +0 -0
  61. data/app/views/json_ui/garage/lists/_infinite_scroll_section.json.jbuilder +0 -0
  62. data/app/views/json_ui/garage/lists/edit_actions.json.jbuilder +0 -0
  63. data/app/views/json_ui/garage/lists/fab.json.jbuilder +0 -0
  64. data/app/views/json_ui/garage/lists/index.json.jbuilder +0 -0
  65. data/app/views/json_ui/garage/lists/infinite_scroll.json.jbuilder +0 -0
  66. data/app/views/json_ui/garage/lists/templating.json.jbuilder +0 -0
  67. data/app/views/json_ui/garage/notifications/index.json.jbuilder +2 -2
  68. data/app/views/json_ui/garage/pages/flat_centered.json.jbuilder +0 -0
  69. data/app/views/json_ui/garage/pages/full_width.json.jbuilder +0 -0
  70. data/app/views/json_ui/garage/pages/full_width_height.json.jbuilder +0 -0
  71. data/app/views/json_ui/garage/pages/index.json.jbuilder +0 -0
  72. data/app/views/json_ui/garage/pages/layout.json.jbuilder +0 -0
  73. data/app/views/json_ui/garage/pages/nav_buttons.json.jbuilder +0 -0
  74. data/app/views/json_ui/garage/pages/tab_bar.json.jbuilder +0 -0
  75. data/app/views/json_ui/garage/panels/card.json.jbuilder +0 -0
  76. data/app/views/json_ui/garage/panels/carousel.json.jbuilder +0 -0
  77. data/app/views/json_ui/garage/panels/custom.json.jbuilder +0 -0
  78. data/app/views/json_ui/garage/panels/horizontal.json.jbuilder +0 -0
  79. data/app/views/json_ui/garage/panels/index.json.jbuilder +0 -0
  80. data/app/views/json_ui/garage/panels/responsive.json.jbuilder +0 -0
  81. data/app/views/json_ui/garage/panels/split.json.jbuilder +0 -0
  82. data/app/views/json_ui/garage/panels/vertical.json.jbuilder +0 -0
  83. data/app/views/json_ui/garage/services/dynamic_text.json.jbuilder +0 -0
  84. data/app/views/json_ui/garage/services/image.json.jbuilder +0 -0
  85. data/app/views/json_ui/garage/services/index.json.jbuilder +0 -0
  86. data/app/views/json_ui/garage/tables/_autoload_section.json.jbuilder +0 -0
  87. data/app/views/json_ui/garage/tables/autoload_all.json.jbuilder +0 -0
  88. data/app/views/json_ui/garage/tables/export_import.json.jbuilder +0 -0
  89. data/app/views/json_ui/garage/tables/horizontal_scroll.json.jbuilder +0 -0
  90. data/app/views/json_ui/garage/tables/index.json.jbuilder +0 -0
  91. data/app/views/json_ui/garage/views/banners.json.jbuilder +22 -5
  92. data/app/views/json_ui/garage/views/calendar_data.json.jbuilder +0 -0
  93. data/app/views/json_ui/garage/views/carousels.json.jbuilder +0 -0
  94. data/app/views/json_ui/garage/views/charts.json.jbuilder +0 -0
  95. data/app/views/json_ui/garage/views/images.json.jbuilder +0 -0
  96. data/app/views/json_ui/garage/views/index.json.jbuilder +2 -32
  97. data/app/views/json_ui/garage/views/links.json.jbuilder +0 -0
  98. data/app/views/json_ui/garage/views/map_data.json.jbuilder +0 -0
  99. data/app/views/json_ui/garage/views/misc.json.jbuilder +0 -0
  100. data/app/views/json_ui/garage/views/texts.json.jbuilder +0 -0
  101. data/config/routes.rb +0 -0
  102. data/lib/generators/glib/install_generator.rb +0 -0
  103. data/lib/generators/templates/20191017062519_create_texts.rb +0 -0
  104. data/lib/generators/templates/20191024063257_add_scope_to_texts.rb +0 -0
  105. data/lib/generators/templates/20191112095018_add_lang_to_texts.rb +0 -0
  106. data/lib/generators/templates/20191126071051_create_active_storage_tables.active_storage.rb +0 -0
  107. data/lib/generators/templates/database.yml +0 -0
  108. data/lib/generators/templates/dynamic_text.rb +0 -0
  109. data/lib/glib/dynamic_text/config.rb +0 -0
  110. data/lib/glib/dynamic_text.rb +0 -0
  111. data/lib/glib/engine.rb +0 -0
  112. data/lib/glib/json_crawler/action_crawler.rb +0 -0
  113. data/lib/glib/json_crawler/action_crawlers/action_http.rb +0 -0
  114. data/lib/glib/json_crawler/action_crawlers/forms_submit.rb +0 -0
  115. data/lib/glib/json_crawler/action_crawlers/nav_initiate.rb +0 -0
  116. data/lib/glib/json_crawler/action_crawlers/windows_open.rb +0 -0
  117. data/lib/glib/json_crawler/http.rb +10 -4
  118. data/lib/glib/json_crawler/router.rb +2 -2
  119. data/lib/glib/json_crawler.rb +0 -0
  120. data/lib/glib/value.rb +0 -0
  121. data/lib/glib/version.rb +0 -0
  122. data/lib/glib-web.rb +0 -0
  123. data/lib/tasks/db.rake +82 -0
  124. metadata +13 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA256:
3
- metadata.gz: 8246b8bcd18dcbe28425e75bbce1a103b1bbc9b91fb76ca55e377de79e0d26e7
4
- data.tar.gz: 8b9bc8c89bdb6937f22b189366865f0e131909e0607c7dccec353e6f72b9da35
2
+ SHA1:
3
+ metadata.gz: 44f56b6f20013c8665e3b044739028764d66b7bd
4
+ data.tar.gz: 6d06c9cdb1675fd7b4a52992c2efeac135069bcf
5
5
  SHA512:
6
- metadata.gz: 20ba5755e83751d7898b731d1772a5502a2b49b7972dfb2dc9069dfe221838e6881ef0840b57344c433b2e098ceb0010463efc956525cbba9c2a5ebe0d73d055
7
- data.tar.gz: db0c95b2a8123f3e992054509d06c60043acd203ece6d52f1cd455374f70faed07a72ede92537feb6259e5a666ec6d0cdc1416a8dc058b890085901d7aa466b0
6
+ metadata.gz: 62b319bacfaeb022fed0fe1614c23dd2d72c85fc452fa539e95906c8d0e3e35d9d8f262302edc0a5e84548f29831b812cd09858492e5fab95a4b0a50d81b44d1
7
+ data.tar.gz: 94d0bec30592a9d69e9789add39c865a895b1d16360d554bc053a6e57ce6519afc908a999b250dfeb3dfd66025925e1d710837ac6ce9cf90601cce4f8dcf21d1
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -227,6 +227,12 @@ module Glib
227
227
  end
228
228
  end
229
229
 
230
+ def self.panels_builder(propName, *panelNames)
231
+ define_method(propName) do |value|
232
+ value.call(page.content_builder(panelNames))
233
+ end
234
+ end
235
+
230
236
  def created
231
237
  # To be overridden
232
238
  end
@@ -0,0 +1,63 @@
1
+ class Glib::JsonUi::ActionBuilder
2
+ module Dialogs
3
+ class Alert < Action
4
+ string :message
5
+ # string :message_format
6
+ action :onClose
7
+ end
8
+
9
+ class Show < Action
10
+ string :body
11
+ action :onClose
12
+ end
13
+
14
+ # class Confirm < Action
15
+ # string :message
16
+ # action :onConfirm
17
+ # action :onCancel
18
+ # end
19
+
20
+ # Deprecated in favour of `sheets/select`
21
+ class Options < Action
22
+ string :message
23
+
24
+ def buttons(block)
25
+ json.buttons do
26
+ block.call page.menu_builder
27
+ end
28
+ end
29
+ end
30
+
31
+ class Show < Action
32
+ panels_builder :content, :body
33
+
34
+ # Future plan
35
+ # panels_builder :content, :body, :footer
36
+ end
37
+
38
+ class Open < Action
39
+ string :url, cache: true
40
+ end
41
+
42
+ class Close < Action
43
+ action :onClose
44
+ end
45
+
46
+ class Oauth < Action
47
+ hash :provider
48
+ action :onSuccess
49
+ string :providerParamName
50
+ string :callbackUrlParamName
51
+ end
52
+
53
+ # TODO: Consider switching to `notifications/alert`
54
+ class Notification < Action
55
+ string :title
56
+ string :message
57
+ string :tag
58
+ int :timeout
59
+ action :onClick
60
+ end
61
+
62
+ end
63
+ end
@@ -0,0 +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
@@ -0,0 +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
@@ -0,0 +1,25 @@
1
+ class Glib::JsonUi::ActionBuilder
2
+ module Windows
3
+ class Close < Action
4
+ action :onClose
5
+ end
6
+
7
+ class CloseAll < Action
8
+ action :onClose
9
+ end
10
+
11
+ class Open < Action
12
+ string :url, cache: true
13
+ action :onOpen
14
+ end
15
+
16
+ class OpenWeb < Action
17
+ string :url
18
+ end
19
+
20
+ class Reload < Action
21
+ string :url, cache: true
22
+ action :onReload
23
+ end
24
+ end
25
+ end
@@ -38,125 +38,12 @@ module Glib
38
38
 
39
39
  ### Action definitions
40
40
 
41
- module Dialogs
42
- class Alert < Action
43
- string :message
44
- action :onClose
45
- end
46
-
47
- # class Confirm < Action
48
- # string :message
49
- # action :onConfirm
50
- # action :onCancel
51
- # end
52
-
53
- class Options < Action
54
- string :message
55
-
56
- def buttons(block)
57
- json.buttons do
58
- block.call page.menu_builder
59
- end
60
- end
61
- end
62
-
63
- class Open < Action
64
- string :url, cache: true
65
- end
66
-
67
- class Close < Action
68
- action :onClose
69
- end
70
-
71
- class Oauth < Action
72
- hash :provider
73
- action :onSuccess
74
- string :providerParamName
75
- string :callbackUrlParamName
76
- end
77
-
78
- class Alert < Action
79
- string :message
80
- action :onClose
81
- end
82
-
83
- class Notification < Action
84
- string :title
85
- string :body
86
- string :tag
87
- int :timeout
88
- action :onClick
89
- end
90
-
91
- end
92
-
93
- module Snackbars
94
- class Alert < Action
95
- string :message
96
- action :onClose
97
-
98
- string :verticalPosition
99
- string :horizontalPosition
100
- singleton_array :styleClass, :styleClasses
101
- end
102
-
103
- # class Confirm < Action
104
- # string :message
105
- # action :onConfirm
106
- # action :onCancel
107
-
108
- # string :verticalPosition
109
- # string :horizontalPosition
110
- # singleton_array :styleClass, :styleClasses
111
- # end
112
-
113
- class Options < Action
114
- string :message
115
-
116
- string :verticalPosition
117
- string :horizontalPosition
118
- singleton_array :styleClass, :styleClasses
119
-
120
- def buttons(block)
121
- json.buttons do
122
- block.call page.menu_builder
123
- end
124
- end
125
-
126
- end
127
-
128
- end
129
-
130
41
  module Forms
131
42
  class Submit < Action
132
43
  end
133
44
 
134
45
  end
135
46
 
136
- module Windows
137
- class Close < Action
138
- action :onClose
139
- end
140
-
141
- class CloseAll < Action
142
- action :onClose
143
- end
144
-
145
- class Open < Action
146
- string :url, cache: true
147
- action :onOpen
148
- end
149
-
150
- class OpenWeb < Action
151
- string :url
152
- end
153
-
154
- class Reload < Action
155
- string :url, cache: true
156
- action :onReload
157
- end
158
- end
159
-
160
47
  # Consider deprecating this. See Data
161
48
  module Auth
162
49
  class SaveCsrfToken < Action
@@ -0,0 +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
@@ -0,0 +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
File without changes
File without changes
@@ -36,6 +36,17 @@ module Glib
36
36
  @drawer_content_builder = ListBuilders::Section.new(json, self, @menu_builder)
37
37
  @table_section_builder = TableBuilders::Section.new(json, self, TableBuilders::Template.new(json, self))
38
38
  @split_content_builder = SplitBuilders::Content.new(json, self, @view_builder)
39
+
40
+ # TODO: Deprecate
41
+ # For generic `body` builder. For others, use content_builder()
42
+ # @generic_content_builder = GenericBuilders::Content.new(json, self, @view_builder)
43
+ end
44
+
45
+ def content_builder(panelNames)
46
+ # NOTE: Can potentially be cached
47
+ builder = GenericBuilders::Content.new(json, self, @view_builder)
48
+ builder.definePanels(panelNames)
49
+ builder
39
50
  end
40
51
 
41
52
  def rightNavButtons
@@ -120,7 +131,8 @@ module Glib
120
131
  end
121
132
 
122
133
  def vertical_content(options)
123
- options = options.reverse_merge(width: 'matchParent')
134
+ # TODO: try disabling this
135
+ # options = options.reverse_merge(width: 'matchParent')
124
136
 
125
137
  [:padding, :backgroundColor, :width, :height, :align].each do |name|
126
138
  if (value = options.delete(name))
@@ -1,17 +1,17 @@
1
1
  module Glib
2
2
  module JsonUi
3
3
  module ResponseHelper
4
- def json_ui_response json
4
+ def json_ui_response(json)
5
5
  json.onResponse do
6
6
  response = Response.new(json, self)
7
7
  yield response.action_builder
8
8
  end
9
9
  end
10
-
10
+
11
11
  class Response
12
12
  attr_reader :action_builder
13
13
 
14
- def initialize json, context
14
+ def initialize(json, context)
15
15
  @json = json
16
16
  @context = context
17
17
 
@@ -19,14 +19,14 @@ module Glib
19
19
  page.vertical_content(options)
20
20
  end
21
21
  end
22
-
22
+
23
23
  def right(options = {})
24
24
  json.right do
25
25
  page.vertical_content(options)
26
26
  end
27
27
  end
28
28
  end
29
-
29
+
30
30
  end
31
31
  end
32
32
  end