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.
- 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 +149 -149
- 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/iap.rb +15 -15
- 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 +38 -38
- 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 +96 -96
- 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/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 +49 -49
- data/app/helpers/glib/json_ui/view_builder/fields.rb +296 -296
- data/app/helpers/glib/json_ui/view_builder/iap.rb +11 -11
- data/app/helpers/glib/json_ui/view_builder/panels.rb +262 -262
- data/app/helpers/glib/json_ui/view_builder.rb +256 -253
- data/app/helpers/glib/urls_helper.rb +12 -12
- data/app/models/concerns/glib/soft_deletable.rb +73 -73
- 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 +191 -191
- 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 +72 -72
- 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 +10 -10
- 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 +27 -27
- data/app/views/json_ui/garage/forms/conditional_value.json.jbuilder +38 -38
- 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 +37 -37
- 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 +120 -120
- data/app/views/json_ui/garage/forms/new_rich_text.json.jbuilder +40 -40
- 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/payments.json.jbuilder +34 -34
- data/app/views/json_ui/garage/forms/pickers.json.jbuilder +89 -89
- 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 +150 -150
- 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/submit_on_change.json.jbuilder +28 -28
- data/app/views/json_ui/garage/forms/text_validation.json.jbuilder +65 -65
- 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 +30 -30
- 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/autoload_as_needed_responsive_columns.json.jbuilder +27 -27
- 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 +41 -41
- 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 +92 -92
- 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 +38 -38
- 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 +101 -101
- 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 +67 -67
- data/app/views/json_ui/garage/views/calendar_data.json.jbuilder +30 -30
- data/app/views/json_ui/garage/views/charts.json.jbuilder +125 -125
- data/app/views/json_ui/garage/views/controls.json.jbuilder +60 -60
- data/app/views/json_ui/garage/views/iap.json.jbuilder +21 -21
- 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 +83 -83
- 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/progress.json.jbuilder +31 -31
- 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/dynamic_text/config.rb +21 -21
- 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 -90
- 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 +2 -3
|
@@ -1,98 +1,98 @@
|
|
|
1
|
-
json.title 'Responsive Panels'
|
|
2
|
-
|
|
3
|
-
page = json_ui_page json
|
|
4
|
-
render "#{@path_prefix}/nav_menu", json: json, page: page
|
|
5
|
-
|
|
6
|
-
page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
|
|
7
|
-
scroll.label text: 'Shrink the browser\'s width to see how the column panels are rearranged. On mobile screens, they are always arranged vertically'
|
|
8
|
-
|
|
9
|
-
scroll.spacer height: 20
|
|
10
|
-
scroll.h2 text: 'With 12 columns'
|
|
11
|
-
scroll.spacer height: 6
|
|
12
|
-
scroll.panels_responsive width: 'matchParent', childViews: ->(horizontal) do
|
|
13
|
-
horizontal.panels_column lg: { cols: 8 }, backgroundColor: '#c3cad2', childViews: ->(column) do
|
|
14
|
-
column.button text: '1'
|
|
15
|
-
end
|
|
16
|
-
horizontal.panels_column lg: { cols: 4 }, backgroundColor: '#b3bac2', childViews: ->(column) do
|
|
17
|
-
column.button text: '2'
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
scroll.spacer height: 20
|
|
22
|
-
scroll.h2 text: 'With more than 12 columns'
|
|
23
|
-
scroll.spacer height: 6
|
|
24
|
-
scroll.panels_responsive width: 'matchParent', childViews: ->(horizontal) do
|
|
25
|
-
horizontal.panels_column lg: { cols: 4 }, backgroundColor: '#c3cad2', childViews: ->(column) do
|
|
26
|
-
column.button text: '1'
|
|
27
|
-
end
|
|
28
|
-
horizontal.panels_column lg: { cols: 4 }, backgroundColor: '#b3bac2', childViews: ->(column) do
|
|
29
|
-
column.button text: '2'
|
|
30
|
-
end
|
|
31
|
-
horizontal.panels_column lg: { cols: 4 }, backgroundColor: '#c3cad2', childViews: ->(column) do
|
|
32
|
-
column.button text: '3'
|
|
33
|
-
end
|
|
34
|
-
horizontal.panels_column lg: { cols: 4 }, backgroundColor: '#b3bac2', childViews: ->(column) do
|
|
35
|
-
column.button text: '4'
|
|
36
|
-
end
|
|
37
|
-
horizontal.panels_column lg: { cols: 4 }, backgroundColor: '#c3cad2', childViews: ->(column) do
|
|
38
|
-
column.button text: '5'
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
scroll.spacer height: 20
|
|
43
|
-
scroll.h2 text: 'With responsive paddings'
|
|
44
|
-
scroll.spacer height: 6
|
|
45
|
-
scroll.panels_responsive width: 'matchParent', childViews: ->(horizontal) do
|
|
46
|
-
horizontal.panels_column lg: { cols: 8, padding: { right: 20 } }, childViews: ->(column) do
|
|
47
|
-
column.button width: 'matchParent', text: '1'
|
|
48
|
-
end
|
|
49
|
-
horizontal.panels_column lg: { cols: 4 }, childViews: ->(column) do
|
|
50
|
-
column.button width: 'matchParent', text: '2'
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
scroll.spacer height: 20
|
|
55
|
-
scroll.h2 text: 'With mixed components'
|
|
56
|
-
scroll.spacer height: 6
|
|
57
|
-
scroll.panels_responsive width: 'matchParent', align: 'center', childViews: ->(responsive) do
|
|
58
|
-
responsive.h4 text: 'Heading'
|
|
59
|
-
|
|
60
|
-
responsive.label text: 'Label'
|
|
61
|
-
|
|
62
|
-
# responsive.spacer height: 10
|
|
63
|
-
# responsive.image url: glib_json_image_standard_url, width: 100, height: 100
|
|
64
|
-
|
|
65
|
-
# responsive.spacer height: 10
|
|
66
|
-
# responsive.image url: glib_json_image_standard_url
|
|
67
|
-
|
|
68
|
-
# responsive.panels_column lg: { cols: 8, padding: { right: 20 } }, childViews: ->(column) do
|
|
69
|
-
# column.button width: 'matchParent', text: '1'
|
|
70
|
-
# end
|
|
71
|
-
# responsive.panels_column lg: { cols: 4 }, childViews: ->(column) do
|
|
72
|
-
# column.button width: 'matchParent', text: '2'
|
|
73
|
-
# end
|
|
74
|
-
|
|
75
|
-
responsive.panels_column lg: { cols: 8 }, backgroundColor: '#c3cad2', childViews: ->(column) do
|
|
76
|
-
column.button text: '1'
|
|
77
|
-
end
|
|
78
|
-
responsive.panels_column lg: { cols: 4 }, backgroundColor: '#b3bac2', childViews: ->(column) do
|
|
79
|
-
column.button text: '2'
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
responsive.spacer height: 10
|
|
83
|
-
responsive.button text: 'Button'
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
scroll.spacer height: 20
|
|
87
|
-
scroll.h2 text: 'With onClick'
|
|
88
|
-
scroll.spacer height: 6
|
|
89
|
-
scroll.panels_responsive backgroundColor: '#c3cad2', padding: { left: 20, right: 20, top: 10, bottom: 10 }, childViews: ->(responsive) do
|
|
90
|
-
responsive.h4 text: 'Heading'
|
|
91
|
-
responsive.label text: 'Label'
|
|
92
|
-
end, onClick: ->(action) do
|
|
93
|
-
action.windows_open url: json_ui_garage_url(path: 'home/blank')
|
|
94
|
-
end
|
|
95
|
-
|
|
96
|
-
scroll.spacer height: 20
|
|
97
|
-
|
|
98
|
-
end
|
|
1
|
+
json.title 'Responsive Panels'
|
|
2
|
+
|
|
3
|
+
page = json_ui_page json
|
|
4
|
+
render "#{@path_prefix}/nav_menu", json: json, page: page
|
|
5
|
+
|
|
6
|
+
page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
|
|
7
|
+
scroll.label text: 'Shrink the browser\'s width to see how the column panels are rearranged. On mobile screens, they are always arranged vertically'
|
|
8
|
+
|
|
9
|
+
scroll.spacer height: 20
|
|
10
|
+
scroll.h2 text: 'With 12 columns'
|
|
11
|
+
scroll.spacer height: 6
|
|
12
|
+
scroll.panels_responsive width: 'matchParent', childViews: ->(horizontal) do
|
|
13
|
+
horizontal.panels_column lg: { cols: 8 }, backgroundColor: '#c3cad2', childViews: ->(column) do
|
|
14
|
+
column.button text: '1'
|
|
15
|
+
end
|
|
16
|
+
horizontal.panels_column lg: { cols: 4 }, backgroundColor: '#b3bac2', childViews: ->(column) do
|
|
17
|
+
column.button text: '2'
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
scroll.spacer height: 20
|
|
22
|
+
scroll.h2 text: 'With more than 12 columns'
|
|
23
|
+
scroll.spacer height: 6
|
|
24
|
+
scroll.panels_responsive width: 'matchParent', childViews: ->(horizontal) do
|
|
25
|
+
horizontal.panels_column lg: { cols: 4 }, backgroundColor: '#c3cad2', childViews: ->(column) do
|
|
26
|
+
column.button text: '1'
|
|
27
|
+
end
|
|
28
|
+
horizontal.panels_column lg: { cols: 4 }, backgroundColor: '#b3bac2', childViews: ->(column) do
|
|
29
|
+
column.button text: '2'
|
|
30
|
+
end
|
|
31
|
+
horizontal.panels_column lg: { cols: 4 }, backgroundColor: '#c3cad2', childViews: ->(column) do
|
|
32
|
+
column.button text: '3'
|
|
33
|
+
end
|
|
34
|
+
horizontal.panels_column lg: { cols: 4 }, backgroundColor: '#b3bac2', childViews: ->(column) do
|
|
35
|
+
column.button text: '4'
|
|
36
|
+
end
|
|
37
|
+
horizontal.panels_column lg: { cols: 4 }, backgroundColor: '#c3cad2', childViews: ->(column) do
|
|
38
|
+
column.button text: '5'
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
scroll.spacer height: 20
|
|
43
|
+
scroll.h2 text: 'With responsive paddings'
|
|
44
|
+
scroll.spacer height: 6
|
|
45
|
+
scroll.panels_responsive width: 'matchParent', childViews: ->(horizontal) do
|
|
46
|
+
horizontal.panels_column lg: { cols: 8, padding: { right: 20 } }, childViews: ->(column) do
|
|
47
|
+
column.button width: 'matchParent', text: '1'
|
|
48
|
+
end
|
|
49
|
+
horizontal.panels_column lg: { cols: 4 }, childViews: ->(column) do
|
|
50
|
+
column.button width: 'matchParent', text: '2'
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
scroll.spacer height: 20
|
|
55
|
+
scroll.h2 text: 'With mixed components'
|
|
56
|
+
scroll.spacer height: 6
|
|
57
|
+
scroll.panels_responsive width: 'matchParent', align: 'center', childViews: ->(responsive) do
|
|
58
|
+
responsive.h4 text: 'Heading'
|
|
59
|
+
|
|
60
|
+
responsive.label text: 'Label'
|
|
61
|
+
|
|
62
|
+
# responsive.spacer height: 10
|
|
63
|
+
# responsive.image url: glib_json_image_standard_url, width: 100, height: 100
|
|
64
|
+
|
|
65
|
+
# responsive.spacer height: 10
|
|
66
|
+
# responsive.image url: glib_json_image_standard_url
|
|
67
|
+
|
|
68
|
+
# responsive.panels_column lg: { cols: 8, padding: { right: 20 } }, childViews: ->(column) do
|
|
69
|
+
# column.button width: 'matchParent', text: '1'
|
|
70
|
+
# end
|
|
71
|
+
# responsive.panels_column lg: { cols: 4 }, childViews: ->(column) do
|
|
72
|
+
# column.button width: 'matchParent', text: '2'
|
|
73
|
+
# end
|
|
74
|
+
|
|
75
|
+
responsive.panels_column lg: { cols: 8 }, backgroundColor: '#c3cad2', childViews: ->(column) do
|
|
76
|
+
column.button text: '1'
|
|
77
|
+
end
|
|
78
|
+
responsive.panels_column lg: { cols: 4 }, backgroundColor: '#b3bac2', childViews: ->(column) do
|
|
79
|
+
column.button text: '2'
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
responsive.spacer height: 10
|
|
83
|
+
responsive.button text: 'Button'
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
scroll.spacer height: 20
|
|
87
|
+
scroll.h2 text: 'With onClick'
|
|
88
|
+
scroll.spacer height: 6
|
|
89
|
+
scroll.panels_responsive backgroundColor: '#c3cad2', padding: { left: 20, right: 20, top: 10, bottom: 10 }, childViews: ->(responsive) do
|
|
90
|
+
responsive.h4 text: 'Heading'
|
|
91
|
+
responsive.label text: 'Label'
|
|
92
|
+
end, onClick: ->(action) do
|
|
93
|
+
action.windows_open url: json_ui_garage_url(path: 'home/blank')
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
scroll.spacer height: 20
|
|
97
|
+
|
|
98
|
+
end
|
|
@@ -1,182 +1,182 @@
|
|
|
1
|
-
json.title 'Panels'
|
|
2
|
-
|
|
3
|
-
json_ui_page json do |page|
|
|
4
|
-
render "#{@path_prefix}/nav_menu", json: json, page: page
|
|
5
|
-
|
|
6
|
-
page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
|
|
7
|
-
|
|
8
|
-
scroll.h1 text: '2 columns'
|
|
9
|
-
scroll.panels_split width: 'matchParent', content: ->(content) do
|
|
10
|
-
content.left childViews: ->(left) do
|
|
11
|
-
left.button text: '1'
|
|
12
|
-
end
|
|
13
|
-
content.right childViews: ->(right) do
|
|
14
|
-
right.button text: '2'
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
scroll.label text: "\n"
|
|
19
|
-
scroll.h1 text: '3 columns'
|
|
20
|
-
scroll.panels_split width: 'matchParent', content: ->(content) do
|
|
21
|
-
content.left childViews: ->(left) do
|
|
22
|
-
left.button text: '1'
|
|
23
|
-
end
|
|
24
|
-
content.center childViews: ->(center) do
|
|
25
|
-
center.button width: 'matchParent', text: '2'
|
|
26
|
-
end
|
|
27
|
-
content.right childViews: ->(right) do
|
|
28
|
-
right.button text: '3'
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
scroll.label text: "\n"
|
|
33
|
-
scroll.h1 text: 'Expandable left'
|
|
34
|
-
scroll.panels_split width: 'matchParent', content: ->(content) do
|
|
35
|
-
content.center childViews: ->(center) do
|
|
36
|
-
center.button width: 'matchParent', text: '1'
|
|
37
|
-
end
|
|
38
|
-
content.right childViews: ->(right) do
|
|
39
|
-
right.button text: '2'
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
scroll.label text: "\n"
|
|
44
|
-
scroll.h1 text: 'Expandable right'
|
|
45
|
-
scroll.panels_split width: 'matchParent', content: ->(content) do
|
|
46
|
-
content.left childViews: ->(left) do
|
|
47
|
-
left.button text: '1'
|
|
48
|
-
end
|
|
49
|
-
content.center childViews: ->(center) do
|
|
50
|
-
center.button width: 'matchParent', text: '2'
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
scroll.label text: "\n"
|
|
55
|
-
scroll.h1 text: 'Short center text'
|
|
56
|
-
scroll.panels_split width: 'matchParent', content: ->(content) do
|
|
57
|
-
content.left childViews: ->(left) do
|
|
58
|
-
left.button text: '1'
|
|
59
|
-
end
|
|
60
|
-
content.center childViews: ->(center) do
|
|
61
|
-
center.label text: 'short'
|
|
62
|
-
end
|
|
63
|
-
content.right childViews: ->(right) do
|
|
64
|
-
right.button text: '2'
|
|
65
|
-
end
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
scroll.label text: "\n"
|
|
69
|
-
scroll.h1 text: 'Long center text'
|
|
70
|
-
scroll.panels_split width: 'matchParent', content: ->(content) do
|
|
71
|
-
content.left childViews: ->(left) do
|
|
72
|
-
left.button text: '1'
|
|
73
|
-
end
|
|
74
|
-
content.center childViews: ->(center) do
|
|
75
|
-
center.label text: 'a very very very very very very very very very very very very very very very very very very very very very very very very very very very very long text'
|
|
76
|
-
end
|
|
77
|
-
content.right childViews: ->(right) do
|
|
78
|
-
right.button text: '2'
|
|
79
|
-
end
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
scroll.label text: "\n"
|
|
83
|
-
scroll.h1 text: 'Few center items'
|
|
84
|
-
scroll.panels_split width: 'matchParent', content: ->(content) do
|
|
85
|
-
content.left childViews: ->(left) do
|
|
86
|
-
left.button text: 'L'
|
|
87
|
-
end
|
|
88
|
-
content.center childViews: ->(center) do
|
|
89
|
-
center.panels_horizontal childViews: ->(h) do
|
|
90
|
-
h.button text: '1'
|
|
91
|
-
h.button text: '2'
|
|
92
|
-
h.button text: '3'
|
|
93
|
-
end
|
|
94
|
-
end
|
|
95
|
-
content.right childViews: ->(right) do
|
|
96
|
-
right.button text: 'R'
|
|
97
|
-
end
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
scroll.label text: "\n"
|
|
101
|
-
scroll.h1 text: 'Many center items'
|
|
102
|
-
scroll.panels_split width: 'matchParent', content: ->(content) do
|
|
103
|
-
content.left childViews: ->(left) do
|
|
104
|
-
left.button text: 'L'
|
|
105
|
-
end
|
|
106
|
-
content.center childViews: ->(center) do
|
|
107
|
-
center.panels_flow width: 'matchParent', innerPadding: { top: 0 }, backgroundColor: '#b3bac2', childViews: ->(h) do
|
|
108
|
-
(1..20).each do |index|
|
|
109
|
-
h.button text: index
|
|
110
|
-
end
|
|
111
|
-
end
|
|
112
|
-
end
|
|
113
|
-
content.right childViews: ->(right) do
|
|
114
|
-
right.button text: 'R'
|
|
115
|
-
end
|
|
116
|
-
end
|
|
117
|
-
|
|
118
|
-
scroll.label text: "\n"
|
|
119
|
-
scroll.h1 text: 'Center filled equally'
|
|
120
|
-
scroll.panels_split width: 'matchParent', content: ->(content) do
|
|
121
|
-
content.left childViews: ->(left) do
|
|
122
|
-
left.button text: 'L'
|
|
123
|
-
end
|
|
124
|
-
content.center childViews: ->(center) do
|
|
125
|
-
center.panels_horizontal width: 'matchParent', backgroundColor: '#b3bac2', distribution: 'fillEqually', childViews: ->(h) do
|
|
126
|
-
h.button text: '1'
|
|
127
|
-
h.button text: '2'
|
|
128
|
-
h.button text: '3'
|
|
129
|
-
end
|
|
130
|
-
end
|
|
131
|
-
content.right childViews: ->(right) do
|
|
132
|
-
right.button text: 'R'
|
|
133
|
-
end
|
|
134
|
-
end
|
|
135
|
-
|
|
136
|
-
scroll.label text: "\n"
|
|
137
|
-
scroll.h1 text: 'Center spaced equally'
|
|
138
|
-
scroll.panels_split width: 'matchParent', content: ->(content) do
|
|
139
|
-
content.left childViews: ->(left) do
|
|
140
|
-
left.button text: 'L'
|
|
141
|
-
end
|
|
142
|
-
content.center childViews: ->(center) do
|
|
143
|
-
center.panels_horizontal width: 'matchParent', backgroundColor: '#b3bac2', distribution: 'spaceEqually', childViews: ->(h) do
|
|
144
|
-
h.button text: '1'
|
|
145
|
-
h.button text: '2'
|
|
146
|
-
h.button text: '3'
|
|
147
|
-
end
|
|
148
|
-
end
|
|
149
|
-
content.right childViews: ->(right) do
|
|
150
|
-
right.button text: 'R'
|
|
151
|
-
end
|
|
152
|
-
end
|
|
153
|
-
|
|
154
|
-
scroll.label text: "\n"
|
|
155
|
-
scroll.h1 text: 'Combo 1'
|
|
156
|
-
scroll.panels_split width: 'matchParent', content: ->(content) do
|
|
157
|
-
content.left childViews: ->(left) do
|
|
158
|
-
left.label text: 'a very very very very very very very very very very very very very very very very very very very very very very very very very very very very long text'
|
|
159
|
-
end
|
|
160
|
-
content.right width: 120, backgroundColor: '#b3bac2', childViews: ->(right) do
|
|
161
|
-
right.panels_horizontal distribution: 'spaceEqually', childViews: ->(h) do
|
|
162
|
-
h.label text: 'Label One'
|
|
163
|
-
h.label text: 'Label Two'
|
|
164
|
-
end
|
|
165
|
-
end
|
|
166
|
-
end
|
|
167
|
-
|
|
168
|
-
scroll.label text: "\n"
|
|
169
|
-
scroll.h1 text: 'Combo 2'
|
|
170
|
-
scroll.panels_split width: 200, backgroundColor: '#b3bac2', padding: { right: 10 }, content: ->(content) do
|
|
171
|
-
content.left childViews: ->(left) do
|
|
172
|
-
left.button text: 'Big'
|
|
173
|
-
end
|
|
174
|
-
content.right childViews: ->(right) do
|
|
175
|
-
right.panels_horizontal height: 'matchParent', align: 'middle', childViews: ->(h) do
|
|
176
|
-
h.spacer width: 10
|
|
177
|
-
h.button text: 'small', styleClass: 'link'
|
|
178
|
-
end
|
|
179
|
-
end
|
|
180
|
-
end
|
|
181
|
-
end
|
|
182
|
-
end
|
|
1
|
+
json.title 'Panels'
|
|
2
|
+
|
|
3
|
+
json_ui_page json do |page|
|
|
4
|
+
render "#{@path_prefix}/nav_menu", json: json, page: page
|
|
5
|
+
|
|
6
|
+
page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
|
|
7
|
+
|
|
8
|
+
scroll.h1 text: '2 columns'
|
|
9
|
+
scroll.panels_split width: 'matchParent', content: ->(content) do
|
|
10
|
+
content.left childViews: ->(left) do
|
|
11
|
+
left.button text: '1'
|
|
12
|
+
end
|
|
13
|
+
content.right childViews: ->(right) do
|
|
14
|
+
right.button text: '2'
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
scroll.label text: "\n"
|
|
19
|
+
scroll.h1 text: '3 columns'
|
|
20
|
+
scroll.panels_split width: 'matchParent', content: ->(content) do
|
|
21
|
+
content.left childViews: ->(left) do
|
|
22
|
+
left.button text: '1'
|
|
23
|
+
end
|
|
24
|
+
content.center childViews: ->(center) do
|
|
25
|
+
center.button width: 'matchParent', text: '2'
|
|
26
|
+
end
|
|
27
|
+
content.right childViews: ->(right) do
|
|
28
|
+
right.button text: '3'
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
scroll.label text: "\n"
|
|
33
|
+
scroll.h1 text: 'Expandable left'
|
|
34
|
+
scroll.panels_split width: 'matchParent', content: ->(content) do
|
|
35
|
+
content.center childViews: ->(center) do
|
|
36
|
+
center.button width: 'matchParent', text: '1'
|
|
37
|
+
end
|
|
38
|
+
content.right childViews: ->(right) do
|
|
39
|
+
right.button text: '2'
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
scroll.label text: "\n"
|
|
44
|
+
scroll.h1 text: 'Expandable right'
|
|
45
|
+
scroll.panels_split width: 'matchParent', content: ->(content) do
|
|
46
|
+
content.left childViews: ->(left) do
|
|
47
|
+
left.button text: '1'
|
|
48
|
+
end
|
|
49
|
+
content.center childViews: ->(center) do
|
|
50
|
+
center.button width: 'matchParent', text: '2'
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
scroll.label text: "\n"
|
|
55
|
+
scroll.h1 text: 'Short center text'
|
|
56
|
+
scroll.panels_split width: 'matchParent', content: ->(content) do
|
|
57
|
+
content.left childViews: ->(left) do
|
|
58
|
+
left.button text: '1'
|
|
59
|
+
end
|
|
60
|
+
content.center childViews: ->(center) do
|
|
61
|
+
center.label text: 'short'
|
|
62
|
+
end
|
|
63
|
+
content.right childViews: ->(right) do
|
|
64
|
+
right.button text: '2'
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
scroll.label text: "\n"
|
|
69
|
+
scroll.h1 text: 'Long center text'
|
|
70
|
+
scroll.panels_split width: 'matchParent', content: ->(content) do
|
|
71
|
+
content.left childViews: ->(left) do
|
|
72
|
+
left.button text: '1'
|
|
73
|
+
end
|
|
74
|
+
content.center childViews: ->(center) do
|
|
75
|
+
center.label text: 'a very very very very very very very very very very very very very very very very very very very very very very very very very very very very long text'
|
|
76
|
+
end
|
|
77
|
+
content.right childViews: ->(right) do
|
|
78
|
+
right.button text: '2'
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
scroll.label text: "\n"
|
|
83
|
+
scroll.h1 text: 'Few center items'
|
|
84
|
+
scroll.panels_split width: 'matchParent', content: ->(content) do
|
|
85
|
+
content.left childViews: ->(left) do
|
|
86
|
+
left.button text: 'L'
|
|
87
|
+
end
|
|
88
|
+
content.center childViews: ->(center) do
|
|
89
|
+
center.panels_horizontal childViews: ->(h) do
|
|
90
|
+
h.button text: '1'
|
|
91
|
+
h.button text: '2'
|
|
92
|
+
h.button text: '3'
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
content.right childViews: ->(right) do
|
|
96
|
+
right.button text: 'R'
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
scroll.label text: "\n"
|
|
101
|
+
scroll.h1 text: 'Many center items'
|
|
102
|
+
scroll.panels_split width: 'matchParent', content: ->(content) do
|
|
103
|
+
content.left childViews: ->(left) do
|
|
104
|
+
left.button text: 'L'
|
|
105
|
+
end
|
|
106
|
+
content.center childViews: ->(center) do
|
|
107
|
+
center.panels_flow width: 'matchParent', innerPadding: { top: 0 }, backgroundColor: '#b3bac2', childViews: ->(h) do
|
|
108
|
+
(1..20).each do |index|
|
|
109
|
+
h.button text: index
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
content.right childViews: ->(right) do
|
|
114
|
+
right.button text: 'R'
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
scroll.label text: "\n"
|
|
119
|
+
scroll.h1 text: 'Center filled equally'
|
|
120
|
+
scroll.panels_split width: 'matchParent', content: ->(content) do
|
|
121
|
+
content.left childViews: ->(left) do
|
|
122
|
+
left.button text: 'L'
|
|
123
|
+
end
|
|
124
|
+
content.center childViews: ->(center) do
|
|
125
|
+
center.panels_horizontal width: 'matchParent', backgroundColor: '#b3bac2', distribution: 'fillEqually', childViews: ->(h) do
|
|
126
|
+
h.button text: '1'
|
|
127
|
+
h.button text: '2'
|
|
128
|
+
h.button text: '3'
|
|
129
|
+
end
|
|
130
|
+
end
|
|
131
|
+
content.right childViews: ->(right) do
|
|
132
|
+
right.button text: 'R'
|
|
133
|
+
end
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
scroll.label text: "\n"
|
|
137
|
+
scroll.h1 text: 'Center spaced equally'
|
|
138
|
+
scroll.panels_split width: 'matchParent', content: ->(content) do
|
|
139
|
+
content.left childViews: ->(left) do
|
|
140
|
+
left.button text: 'L'
|
|
141
|
+
end
|
|
142
|
+
content.center childViews: ->(center) do
|
|
143
|
+
center.panels_horizontal width: 'matchParent', backgroundColor: '#b3bac2', distribution: 'spaceEqually', childViews: ->(h) do
|
|
144
|
+
h.button text: '1'
|
|
145
|
+
h.button text: '2'
|
|
146
|
+
h.button text: '3'
|
|
147
|
+
end
|
|
148
|
+
end
|
|
149
|
+
content.right childViews: ->(right) do
|
|
150
|
+
right.button text: 'R'
|
|
151
|
+
end
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
scroll.label text: "\n"
|
|
155
|
+
scroll.h1 text: 'Combo 1'
|
|
156
|
+
scroll.panels_split width: 'matchParent', content: ->(content) do
|
|
157
|
+
content.left childViews: ->(left) do
|
|
158
|
+
left.label text: 'a very very very very very very very very very very very very very very very very very very very very very very very very very very very very long text'
|
|
159
|
+
end
|
|
160
|
+
content.right width: 120, backgroundColor: '#b3bac2', childViews: ->(right) do
|
|
161
|
+
right.panels_horizontal distribution: 'spaceEqually', childViews: ->(h) do
|
|
162
|
+
h.label text: 'Label One'
|
|
163
|
+
h.label text: 'Label Two'
|
|
164
|
+
end
|
|
165
|
+
end
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
scroll.label text: "\n"
|
|
169
|
+
scroll.h1 text: 'Combo 2'
|
|
170
|
+
scroll.panels_split width: 200, backgroundColor: '#b3bac2', padding: { right: 10 }, content: ->(content) do
|
|
171
|
+
content.left childViews: ->(left) do
|
|
172
|
+
left.button text: 'Big'
|
|
173
|
+
end
|
|
174
|
+
content.right childViews: ->(right) do
|
|
175
|
+
right.panels_horizontal height: 'matchParent', align: 'middle', childViews: ->(h) do
|
|
176
|
+
h.spacer width: 10
|
|
177
|
+
h.button text: 'small', styleClass: 'link'
|
|
178
|
+
end
|
|
179
|
+
end
|
|
180
|
+
end
|
|
181
|
+
end
|
|
182
|
+
end
|
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
json.title 'Unordered List'
|
|
2
|
-
|
|
3
|
-
page = json_ui_page json
|
|
4
|
-
render "#{@path_prefix}/nav_menu", json: json, page: page
|
|
5
|
-
|
|
6
|
-
page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
|
|
7
|
-
scroll.h2 text: 'Standard Usage'
|
|
8
|
-
scroll.spacer height: 6
|
|
9
|
-
scroll.panels_ul childViews: ->(ul) do
|
|
10
|
-
ul.button text: 'Button', styleClass: 'link', onClick: ->(action) do
|
|
11
|
-
action.windows_open url: json_ui_garage_url(path: 'home/blank')
|
|
12
|
-
end
|
|
13
|
-
ul.label text: 'Label'
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
scroll.spacer height: 14
|
|
17
|
-
scroll.h2 text: 'Breadcrumbs'
|
|
18
|
-
scroll.spacer height: 6
|
|
19
|
-
scroll.panels_ul \
|
|
20
|
-
width: 'matchParent',
|
|
21
|
-
backgroundColor: '#eeeeee',
|
|
22
|
-
padding: { top: 10, right: 20, bottom: 10, left: 20 },
|
|
23
|
-
styleClass: 'breadcrumbs',
|
|
24
|
-
childViews: ->(ul) do
|
|
25
|
-
ul.button text: 'Level 1', styleClass: 'link', onClick: ->(action) do
|
|
26
|
-
action.windows_open url: json_ui_garage_url(path: 'home/blank')
|
|
27
|
-
end
|
|
28
|
-
ul.button text: 'Level 2', styleClass: 'link', onClick: ->(action) do
|
|
29
|
-
action.windows_open url: json_ui_garage_url(path: 'home/blank')
|
|
30
|
-
end
|
|
31
|
-
ul.label text: 'Level 3'
|
|
32
|
-
end
|
|
33
|
-
end
|
|
1
|
+
json.title 'Unordered List'
|
|
2
|
+
|
|
3
|
+
page = json_ui_page json
|
|
4
|
+
render "#{@path_prefix}/nav_menu", json: json, page: page
|
|
5
|
+
|
|
6
|
+
page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
|
|
7
|
+
scroll.h2 text: 'Standard Usage'
|
|
8
|
+
scroll.spacer height: 6
|
|
9
|
+
scroll.panels_ul childViews: ->(ul) do
|
|
10
|
+
ul.button text: 'Button', styleClass: 'link', onClick: ->(action) do
|
|
11
|
+
action.windows_open url: json_ui_garage_url(path: 'home/blank')
|
|
12
|
+
end
|
|
13
|
+
ul.label text: 'Label'
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
scroll.spacer height: 14
|
|
17
|
+
scroll.h2 text: 'Breadcrumbs'
|
|
18
|
+
scroll.spacer height: 6
|
|
19
|
+
scroll.panels_ul \
|
|
20
|
+
width: 'matchParent',
|
|
21
|
+
backgroundColor: '#eeeeee',
|
|
22
|
+
padding: { top: 10, right: 20, bottom: 10, left: 20 },
|
|
23
|
+
styleClass: 'breadcrumbs',
|
|
24
|
+
childViews: ->(ul) do
|
|
25
|
+
ul.button text: 'Level 1', styleClass: 'link', onClick: ->(action) do
|
|
26
|
+
action.windows_open url: json_ui_garage_url(path: 'home/blank')
|
|
27
|
+
end
|
|
28
|
+
ul.button text: 'Level 2', styleClass: 'link', onClick: ->(action) do
|
|
29
|
+
action.windows_open url: json_ui_garage_url(path: 'home/blank')
|
|
30
|
+
end
|
|
31
|
+
ul.label text: 'Level 3'
|
|
32
|
+
end
|
|
33
|
+
end
|