glib-web 0.5.75 → 0.5.76
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.
- checksums.yaml +4 -4
- data/app/channels/glib/channel/is_typing_channel.rb +34 -34
- data/app/channels/glib/channel/online_channel.rb +36 -36
- data/app/controllers/concerns/glib/analytics/funnel.rb +61 -61
- data/app/controllers/concerns/glib/auth/policy.rb +148 -148
- data/app/controllers/concerns/glib/json/dynamic_text.rb +126 -126
- data/app/controllers/concerns/glib/json/libs.rb +149 -149
- data/app/controllers/concerns/glib/json/new_dynamic_text.rb +122 -122
- data/app/controllers/concerns/glib/json/transformation.rb +11 -11
- data/app/controllers/concerns/glib/json/traversal.rb +92 -92
- data/app/controllers/concerns/glib/json/ui.rb +88 -88
- data/app/controllers/concerns/glib/json/validation.rb +13 -13
- data/app/controllers/glib/home_controller.rb +54 -54
- data/app/helpers/glib/app_feature_support_helper.rb +16 -16
- data/app/helpers/glib/dynamic_images_helper.rb +55 -55
- data/app/helpers/glib/dynamic_texts_helper.rb +42 -42
- data/app/helpers/glib/enum_helper.rb +18 -18
- data/app/helpers/glib/forms_helper.rb +15 -15
- data/app/helpers/glib/json_ui/abstract_builder.rb +309 -309
- data/app/helpers/glib/json_ui/action_builder/dialogs.rb +58 -58
- data/app/helpers/glib/json_ui/action_builder/http.rb +39 -39
- data/app/helpers/glib/json_ui/action_builder/panels.rb +14 -14
- data/app/helpers/glib/json_ui/action_builder/sheets.rb +15 -15
- data/app/helpers/glib/json_ui/action_builder/snackbars.rb +41 -41
- data/app/helpers/glib/json_ui/action_builder/windows.rb +33 -33
- data/app/helpers/glib/json_ui/action_builder.rb +140 -140
- data/app/helpers/glib/json_ui/analytics_helper.rb +17 -17
- data/app/helpers/glib/json_ui/dynamic_field_builders.rb +25 -25
- data/app/helpers/glib/json_ui/generic_builders.rb +28 -28
- data/app/helpers/glib/json_ui/list_builders.rb +110 -110
- data/app/helpers/glib/json_ui/menu_builder.rb +94 -94
- data/app/helpers/glib/json_ui/page_helper.rb +221 -221
- data/app/helpers/glib/json_ui/response_helper.rb +25 -25
- data/app/helpers/glib/json_ui/split_builders.rb +32 -32
- data/app/helpers/glib/json_ui/styling_helper.rb +55 -55
- data/app/helpers/glib/json_ui/table_builders.rb +74 -74
- data/app/helpers/glib/json_ui/view_builder/banners.rb +26 -26
- data/app/helpers/glib/json_ui/view_builder/charts.rb +33 -33
- data/app/helpers/glib/json_ui/view_builder/fields.rb +278 -278
- data/app/helpers/glib/json_ui/view_builder/panels.rb +256 -256
- data/app/helpers/glib/json_ui/view_builder.rb +240 -240
- data/app/helpers/glib/urls_helper.rb +12 -12
- data/app/models/concerns/glib/soft_deletable.rb +68 -68
- data/app/models/glib/active_storage/attachment.rb +9 -9
- data/app/models/glib/active_storage/blob.rb +9 -9
- data/app/models/glib/application_record.rb +18 -18
- data/app/models/glib/dynamic_text_record.rb +9 -9
- data/app/models/glib/text.rb +95 -95
- data/app/policies/glib/application_policy.rb +161 -161
- data/app/validators/email_typo_validator.rb +38 -38
- data/app/validators/email_validator.rb +7 -7
- data/app/validators/url_validator.rb +20 -20
- data/app/views/json_ui/garage/_nav_menu.json.jbuilder +70 -70
- data/app/views/json_ui/garage/actions/_dialogs.json.jbuilder +104 -104
- data/app/views/json_ui/garage/actions/_http.json.jbuilder +24 -24
- data/app/views/json_ui/garage/actions/_panels.json.jbuilder +18 -18
- data/app/views/json_ui/garage/actions/_reload.json.jbuilder +17 -17
- data/app/views/json_ui/garage/actions/_sheets.json.jbuilder +18 -18
- data/app/views/json_ui/garage/actions/_snackbars.json.jbuilder +33 -33
- data/app/views/json_ui/garage/actions/_timeouts.json.jbuilder +24 -24
- data/app/views/json_ui/garage/actions/_windows.json.jbuilder +24 -24
- data/app/views/json_ui/garage/actions/dialogs_oauth_post.json.jbuilder +6 -6
- data/app/views/json_ui/garage/actions/index.json.jbuilder +24 -24
- data/app/views/json_ui/garage/forms/_alert_post_data.json.jbuilder +6 -6
- data/app/views/json_ui/garage/forms/basic.json.jbuilder +21 -21
- data/app/views/json_ui/garage/forms/basic_post.json.jbuilder +8 -8
- data/app/views/json_ui/garage/forms/checkboxes.json.jbuilder +43 -43
- data/app/views/json_ui/garage/forms/conditional_value.json.jbuilder +36 -36
- data/app/views/json_ui/garage/forms/dynamic_group.json.jbuilder +39 -39
- data/app/views/json_ui/garage/forms/dynamic_select.json.jbuilder +24 -24
- data/app/views/json_ui/garage/forms/dynamic_select_data.json.jbuilder +38 -38
- data/app/views/json_ui/garage/forms/file_upload.json.jbuilder +32 -32
- data/app/views/json_ui/garage/forms/floating_submit.json.jbuilder +19 -19
- data/app/views/json_ui/garage/forms/generic_post.json.jbuilder +3 -3
- data/app/views/json_ui/garage/forms/get_request.json.jbuilder +27 -27
- data/app/views/json_ui/garage/forms/index.json.jbuilder +113 -113
- data/app/views/json_ui/garage/forms/new_rich_text.json.jbuilder +39 -39
- data/app/views/json_ui/garage/forms/online_participant1.json.jbuilder +25 -25
- data/app/views/json_ui/garage/forms/online_participant2.json.jbuilder +25 -25
- data/app/views/json_ui/garage/forms/pickers.json.jbuilder +81 -81
- data/app/views/json_ui/garage/forms/ratings.json.jbuilder +49 -49
- data/app/views/json_ui/garage/forms/rich_text.json.jbuilder +40 -40
- data/app/views/json_ui/garage/forms/selects.json.jbuilder +91 -91
- data/app/views/json_ui/garage/forms/show_hide.json.jbuilder +130 -130
- data/app/views/json_ui/garage/forms/styled_boxes.json.jbuilder +35 -35
- data/app/views/json_ui/garage/forms/submission_flow.json.jbuilder +17 -17
- data/app/views/json_ui/garage/forms/submission_flow_post.json.jbuilder +26 -26
- data/app/views/json_ui/garage/forms/submission_indicator.json.jbuilder +63 -63
- data/app/views/json_ui/garage/forms/submission_indicator_post.json.jbuilder +25 -25
- data/app/views/json_ui/garage/forms/text_validation.json.jbuilder +81 -81
- data/app/views/json_ui/garage/forms/timers.json.jbuilder +120 -120
- data/app/views/json_ui/garage/home/blank.json.jbuilder +10 -10
- data/app/views/json_ui/garage/home/index.json.jbuilder +36 -36
- data/app/views/json_ui/garage/home/slow.json.jbuilder +11 -11
- data/app/views/json_ui/garage/lists/_autoload_section.json.jbuilder +28 -28
- data/app/views/json_ui/garage/lists/autoload_all.json.jbuilder +32 -32
- data/app/views/json_ui/garage/lists/autoload_as_needed.json.jbuilder +35 -35
- data/app/views/json_ui/garage/lists/chat_ui.json.jbuilder +94 -94
- data/app/views/json_ui/garage/lists/edit_actions.json.jbuilder +62 -62
- data/app/views/json_ui/garage/lists/fab.json.jbuilder +12 -12
- data/app/views/json_ui/garage/lists/index.json.jbuilder +38 -38
- data/app/views/json_ui/garage/lists/reordering.json.jbuilder +34 -34
- data/app/views/json_ui/garage/lists/templating.json.jbuilder +35 -35
- data/app/views/json_ui/garage/notifications/action_cable.json.jbuilder +114 -114
- data/app/views/json_ui/garage/notifications/android_post.json.jbuilder +48 -48
- data/app/views/json_ui/garage/notifications/index.json.jbuilder +36 -36
- data/app/views/json_ui/garage/notifications/web_socket.json.jbuilder +60 -60
- data/app/views/json_ui/garage/pages/flat_centered.json.jbuilder +29 -29
- data/app/views/json_ui/garage/pages/full_width.json.jbuilder +29 -29
- data/app/views/json_ui/garage/pages/full_width_height.json.jbuilder +16 -16
- data/app/views/json_ui/garage/pages/index.json.jbuilder +62 -62
- data/app/views/json_ui/garage/pages/layout.json.jbuilder +18 -18
- data/app/views/json_ui/garage/pages/lifecycle_hooks.json.jbuilder +13 -13
- data/app/views/json_ui/garage/pages/loading_indicator.json.jbuilder +10 -10
- data/app/views/json_ui/garage/pages/nav_buttons.json.jbuilder +21 -21
- data/app/views/json_ui/garage/pages/nested_scroll.json.jbuilder +40 -40
- data/app/views/json_ui/garage/pages/tab_bar.json.jbuilder +31 -31
- data/app/views/json_ui/garage/panels/_styled.json.jbuilder +78 -78
- data/app/views/json_ui/garage/panels/card.json.jbuilder +4 -4
- data/app/views/json_ui/garage/panels/carousel.json.jbuilder +37 -37
- data/app/views/json_ui/garage/panels/custom.json.jbuilder +17 -17
- data/app/views/json_ui/garage/panels/flow.json.jbuilder +59 -59
- data/app/views/json_ui/garage/panels/horizontal.json.jbuilder +91 -91
- data/app/views/json_ui/garage/panels/index.json.jbuilder +138 -138
- data/app/views/json_ui/garage/panels/outlined.json.jbuilder +4 -4
- data/app/views/json_ui/garage/panels/responsive.json.jbuilder +98 -98
- data/app/views/json_ui/garage/panels/split.json.jbuilder +182 -182
- data/app/views/json_ui/garage/panels/ul.json.jbuilder +33 -33
- data/app/views/json_ui/garage/panels/vertical.json.jbuilder +55 -55
- data/app/views/json_ui/garage/panels/web.json.jbuilder +15 -15
- data/app/views/json_ui/garage/services/dynamic_text.json.jbuilder +13 -13
- data/app/views/json_ui/garage/services/image.json.jbuilder +47 -47
- data/app/views/json_ui/garage/services/index.json.jbuilder +17 -17
- data/app/views/json_ui/garage/tables/_autoload_section.json.jbuilder +16 -16
- data/app/views/json_ui/garage/tables/autoload_all.json.jbuilder +43 -43
- data/app/views/json_ui/garage/tables/autoload_as_needed.json.jbuilder +50 -50
- data/app/views/json_ui/garage/tables/export_import.json.jbuilder +29 -29
- data/app/views/json_ui/garage/tables/horizontal_scroll.json.jbuilder +26 -26
- data/app/views/json_ui/garage/tables/index.json.jbuilder +25 -25
- data/app/views/json_ui/garage/tables/layout.json.jbuilder +40 -40
- data/app/views/json_ui/garage/views/_chart_data.json.jbuilder +17 -17
- data/app/views/json_ui/garage/views/banners.json.jbuilder +63 -63
- data/app/views/json_ui/garage/views/calendar_data.json.jbuilder +30 -30
- data/app/views/json_ui/garage/views/charts.json.jbuilder +115 -115
- data/app/views/json_ui/garage/views/controls.json.jbuilder +37 -37
- data/app/views/json_ui/garage/views/icon_names.json.jbuilder +1450 -1450
- data/app/views/json_ui/garage/views/icons.json.jbuilder +15 -15
- data/app/views/json_ui/garage/views/images.json.jbuilder +89 -89
- data/app/views/json_ui/garage/views/index.json.jbuilder +67 -67
- data/app/views/json_ui/garage/views/links.json.jbuilder +70 -70
- data/app/views/json_ui/garage/views/map_cluster_data.json.jbuilder +41 -41
- data/app/views/json_ui/garage/views/map_data.json.jbuilder +51 -51
- data/app/views/json_ui/garage/views/maps.json.jbuilder +31 -31
- data/app/views/json_ui/garage/views/markdowns.json.jbuilder +41 -41
- data/app/views/json_ui/garage/views/misc.json.jbuilder +34 -34
- data/app/views/json_ui/garage/views/texts.json.jbuilder +35 -35
- data/app/views/layouts/json_ui/renderer.html.erb +35 -35
- data/config/routes.rb +7 -7
- data/lib/generators/glib/install_generator.rb +24 -24
- data/lib/generators/templates/20191017062519_create_texts.rb +12 -12
- data/lib/generators/templates/20191024063257_add_scope_to_texts.rb +7 -7
- data/lib/generators/templates/20191112095018_add_lang_to_texts.rb +7 -7
- data/lib/generators/templates/20191126071051_create_active_storage_tables.active_storage.rb +27 -27
- data/lib/generators/templates/database.yml +107 -107
- data/lib/generators/templates/dynamic_text.rb +2 -2
- data/lib/glib/crypt/utils.rb +26 -26
- data/lib/glib/crypt.rb +0 -0
- data/lib/glib/dynamic_text/config.rb +21 -21
- data/lib/glib/dynamic_text.rb +0 -0
- data/lib/glib/engine.rb +7 -7
- data/lib/glib/json_crawler/action_crawler.rb +23 -23
- data/lib/glib/json_crawler/action_crawlers/action_http.rb +11 -11
- data/lib/glib/json_crawler/action_crawlers/forms_submit.rb +48 -48
- data/lib/glib/json_crawler/action_crawlers/menu.rb +12 -12
- data/lib/glib/json_crawler/action_crawlers/nav_initiate.rb +19 -19
- data/lib/glib/json_crawler/action_crawlers/run_multiple.rb +13 -13
- data/lib/glib/json_crawler/action_crawlers/windows_open.rb +33 -33
- data/lib/glib/json_crawler/coverage.rb +20 -20
- data/lib/glib/json_crawler/http.rb +120 -120
- data/lib/glib/json_crawler/router.rb +90 -98
- data/lib/glib/json_crawler.rb +11 -11
- data/lib/glib/mailer_tester.rb +36 -36
- data/lib/glib/test_helpers.rb +52 -52
- data/lib/glib/value.rb +7 -7
- data/lib/glib/version.rb +5 -5
- data/lib/glib-web.rb +9 -9
- data/lib/tasks/db.rake +95 -95
- metadata +1 -1
|
@@ -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
|
|
@@ -1,94 +1,94 @@
|
|
|
1
|
-
module Glib
|
|
2
|
-
module JsonUi
|
|
3
|
-
class MenuBuilder < AbstractBuilder
|
|
4
|
-
def method_missing(m, *args)
|
|
5
|
-
add_element_to_array_v1 nil, m, *args
|
|
6
|
-
end
|
|
7
|
-
|
|
8
|
-
class MenuItem < JsonUiElement
|
|
9
|
-
hash :analytics
|
|
10
|
-
|
|
11
|
-
# def initialize(json, page)
|
|
12
|
-
# super(json, page)
|
|
13
|
-
|
|
14
|
-
# # Can be improved by making it configurable site-wide.
|
|
15
|
-
# @analyticsEnabled = true
|
|
16
|
-
# end
|
|
17
|
-
|
|
18
|
-
# def analytics(value)
|
|
19
|
-
# if value.is_a?(Hash)
|
|
20
|
-
# @analyticsEnabled = true
|
|
21
|
-
# @analyticsId = value
|
|
22
|
-
# else
|
|
23
|
-
# @analyticsEnabled = value == true
|
|
24
|
-
# end
|
|
25
|
-
# end
|
|
26
|
-
|
|
27
|
-
# # Override
|
|
28
|
-
# def created
|
|
29
|
-
# json.analytics do
|
|
30
|
-
# if @analyticsEnabled
|
|
31
|
-
# if @analyticsId
|
|
32
|
-
# json.placement @analyticsId
|
|
33
|
-
# end
|
|
34
|
-
# else
|
|
35
|
-
# json.disabled true
|
|
36
|
-
# end
|
|
37
|
-
# end
|
|
38
|
-
# end
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
class Button < MenuItem
|
|
42
|
-
string :text
|
|
43
|
-
icon :icon
|
|
44
|
-
action :onClick
|
|
45
|
-
bool :disabled
|
|
46
|
-
singleton_array :styleClass, :styleClasses
|
|
47
|
-
|
|
48
|
-
def childButtons(block)
|
|
49
|
-
json.childButtons do
|
|
50
|
-
block.call page.menu_builder
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
# Override
|
|
55
|
-
def created
|
|
56
|
-
super
|
|
57
|
-
|
|
58
|
-
json.type 'button'
|
|
59
|
-
end
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
class Divider < MenuItem
|
|
63
|
-
# Override
|
|
64
|
-
def created
|
|
65
|
-
super
|
|
66
|
-
|
|
67
|
-
json.type 'divider'
|
|
68
|
-
end
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
class Label < MenuItem
|
|
72
|
-
string :text
|
|
73
|
-
singleton_array :styleClass, :styleClasses
|
|
74
|
-
|
|
75
|
-
# Override
|
|
76
|
-
def created
|
|
77
|
-
super
|
|
78
|
-
|
|
79
|
-
json.type 'label'
|
|
80
|
-
end
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
# class MenuLeftBottom < Button
|
|
84
|
-
# icon :icon
|
|
85
|
-
# array :buttons
|
|
86
|
-
# end
|
|
87
|
-
|
|
88
|
-
# class Select < Button
|
|
89
|
-
# icon :icon
|
|
90
|
-
# array :buttons
|
|
91
|
-
# end
|
|
92
|
-
end
|
|
93
|
-
end
|
|
94
|
-
end
|
|
1
|
+
module Glib
|
|
2
|
+
module JsonUi
|
|
3
|
+
class MenuBuilder < AbstractBuilder
|
|
4
|
+
def method_missing(m, *args)
|
|
5
|
+
add_element_to_array_v1 nil, m, *args
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class MenuItem < JsonUiElement
|
|
9
|
+
hash :analytics
|
|
10
|
+
|
|
11
|
+
# def initialize(json, page)
|
|
12
|
+
# super(json, page)
|
|
13
|
+
|
|
14
|
+
# # Can be improved by making it configurable site-wide.
|
|
15
|
+
# @analyticsEnabled = true
|
|
16
|
+
# end
|
|
17
|
+
|
|
18
|
+
# def analytics(value)
|
|
19
|
+
# if value.is_a?(Hash)
|
|
20
|
+
# @analyticsEnabled = true
|
|
21
|
+
# @analyticsId = value
|
|
22
|
+
# else
|
|
23
|
+
# @analyticsEnabled = value == true
|
|
24
|
+
# end
|
|
25
|
+
# end
|
|
26
|
+
|
|
27
|
+
# # Override
|
|
28
|
+
# def created
|
|
29
|
+
# json.analytics do
|
|
30
|
+
# if @analyticsEnabled
|
|
31
|
+
# if @analyticsId
|
|
32
|
+
# json.placement @analyticsId
|
|
33
|
+
# end
|
|
34
|
+
# else
|
|
35
|
+
# json.disabled true
|
|
36
|
+
# end
|
|
37
|
+
# end
|
|
38
|
+
# end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
class Button < MenuItem
|
|
42
|
+
string :text
|
|
43
|
+
icon :icon
|
|
44
|
+
action :onClick
|
|
45
|
+
bool :disabled
|
|
46
|
+
singleton_array :styleClass, :styleClasses
|
|
47
|
+
|
|
48
|
+
def childButtons(block)
|
|
49
|
+
json.childButtons do
|
|
50
|
+
block.call page.menu_builder
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# Override
|
|
55
|
+
def created
|
|
56
|
+
super
|
|
57
|
+
|
|
58
|
+
json.type 'button'
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
class Divider < MenuItem
|
|
63
|
+
# Override
|
|
64
|
+
def created
|
|
65
|
+
super
|
|
66
|
+
|
|
67
|
+
json.type 'divider'
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
class Label < MenuItem
|
|
72
|
+
string :text
|
|
73
|
+
singleton_array :styleClass, :styleClasses
|
|
74
|
+
|
|
75
|
+
# Override
|
|
76
|
+
def created
|
|
77
|
+
super
|
|
78
|
+
|
|
79
|
+
json.type 'label'
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
# class MenuLeftBottom < Button
|
|
84
|
+
# icon :icon
|
|
85
|
+
# array :buttons
|
|
86
|
+
# end
|
|
87
|
+
|
|
88
|
+
# class Select < Button
|
|
89
|
+
# icon :icon
|
|
90
|
+
# array :buttons
|
|
91
|
+
# end
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
end
|