glib-web 0.5.5
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 +7 -0
- data/app/controllers/concerns/glib/auth/policy.rb +148 -0
- data/app/controllers/concerns/glib/json/dynamic_text.rb +126 -0
- data/app/controllers/concerns/glib/json/libs.rb +144 -0
- data/app/controllers/concerns/glib/json/new_dynamic_text.rb +122 -0
- data/app/controllers/concerns/glib/json/transformation.rb +11 -0
- data/app/controllers/concerns/glib/json/traversal.rb +85 -0
- data/app/controllers/concerns/glib/json/ui.rb +70 -0
- data/app/controllers/concerns/glib/json/validation.rb +13 -0
- data/app/controllers/glib/home_controller.rb +16 -0
- data/app/helpers/glib/app_feature_support_helper.rb +16 -0
- data/app/helpers/glib/dynamic_images_helper.rb +52 -0
- data/app/helpers/glib/dynamic_texts_helper.rb +42 -0
- data/app/helpers/glib/forms_helper.rb +15 -0
- data/app/helpers/glib/json_ui/abstract_builder.rb +281 -0
- data/app/helpers/glib/json_ui/action_builder.rb +81 -0
- data/app/helpers/glib/json_ui/action_builder/dialogs.rb +58 -0
- data/app/helpers/glib/json_ui/action_builder/http.rb +19 -0
- data/app/helpers/glib/json_ui/action_builder/sheets.rb +15 -0
- data/app/helpers/glib/json_ui/action_builder/snackbars.rb +41 -0
- data/app/helpers/glib/json_ui/action_builder/windows.rb +25 -0
- data/app/helpers/glib/json_ui/dynamic_field_builders.rb +25 -0
- data/app/helpers/glib/json_ui/generic_builders.rb +28 -0
- data/app/helpers/glib/json_ui/list_builders.rb +87 -0
- data/app/helpers/glib/json_ui/menu_builder.rb +52 -0
- data/app/helpers/glib/json_ui/page_helper.rb +187 -0
- data/app/helpers/glib/json_ui/response_helper.rb +23 -0
- data/app/helpers/glib/json_ui/split_builders.rb +32 -0
- data/app/helpers/glib/json_ui/styling_helper.rb +25 -0
- data/app/helpers/glib/json_ui/table_builders.rb +74 -0
- data/app/helpers/glib/json_ui/view_builder.rb +185 -0
- data/app/helpers/glib/json_ui/view_builder/banners.rb +24 -0
- data/app/helpers/glib/json_ui/view_builder/charts.rb +33 -0
- data/app/helpers/glib/json_ui/view_builder/fields.rb +213 -0
- data/app/helpers/glib/json_ui/view_builder/panels.rb +219 -0
- data/app/models/glib/active_storage/attachment.rb +9 -0
- data/app/models/glib/active_storage/blob.rb +9 -0
- data/app/models/glib/dynamic_text_record.rb +9 -0
- data/app/models/glib/text.rb +96 -0
- data/app/policies/glib/application_policy.rb +164 -0
- data/app/validators/email_typo_validator.rb +38 -0
- data/app/validators/email_validator.rb +7 -0
- data/app/validators/url_validator.rb +20 -0
- data/app/views/app/views/json_ui/vue/renderer.html.erb +35 -0
- data/app/views/json_ui/garage/_nav_menu.json.jbuilder +71 -0
- data/app/views/json_ui/garage/actions/_dialogs.json.jbuilder +104 -0
- data/app/views/json_ui/garage/actions/_http.json.jbuilder +18 -0
- data/app/views/json_ui/garage/actions/_reload.json.jbuilder +17 -0
- data/app/views/json_ui/garage/actions/_sheets.json.jbuilder +19 -0
- data/app/views/json_ui/garage/actions/_snackbars.json.jbuilder +33 -0
- data/app/views/json_ui/garage/actions/_timeouts.json.jbuilder +18 -0
- data/app/views/json_ui/garage/actions/_windows.json.jbuilder +24 -0
- data/app/views/json_ui/garage/actions/dialogs_oauth_post.json.jbuilder +6 -0
- data/app/views/json_ui/garage/actions/index.json.jbuilder +23 -0
- data/app/views/json_ui/garage/forms/_alert_post_data.json.jbuilder +7 -0
- data/app/views/json_ui/garage/forms/basic.json.jbuilder +34 -0
- data/app/views/json_ui/garage/forms/basic_post.json.jbuilder +8 -0
- data/app/views/json_ui/garage/forms/checkboxes.json.jbuilder +44 -0
- data/app/views/json_ui/garage/forms/dynamic_group.json.jbuilder +41 -0
- data/app/views/json_ui/garage/forms/dynamic_select.json.jbuilder +25 -0
- data/app/views/json_ui/garage/forms/dynamic_select_data.json.jbuilder +38 -0
- data/app/views/json_ui/garage/forms/file_upload.json.jbuilder +58 -0
- data/app/views/json_ui/garage/forms/floating_submit.json.jbuilder +31 -0
- data/app/views/json_ui/garage/forms/generic_post.json.jbuilder +3 -0
- data/app/views/json_ui/garage/forms/get_request.json.jbuilder +28 -0
- data/app/views/json_ui/garage/forms/index.json.jbuilder +101 -0
- data/app/views/json_ui/garage/forms/pickers.json.jbuilder +46 -0
- data/app/views/json_ui/garage/forms/rich_text.json.jbuilder +40 -0
- data/app/views/json_ui/garage/forms/selects.json.jbuilder +70 -0
- data/app/views/json_ui/garage/forms/show_hide.json.jbuilder +88 -0
- data/app/views/json_ui/garage/forms/styled_boxes.json.jbuilder +32 -0
- data/app/views/json_ui/garage/forms/submission_flow.json.jbuilder +17 -0
- data/app/views/json_ui/garage/forms/submission_flow_post.json.jbuilder +24 -0
- data/app/views/json_ui/garage/forms/submission_indicator.json.jbuilder +63 -0
- data/app/views/json_ui/garage/forms/submission_indicator_post.json.jbuilder +25 -0
- data/app/views/json_ui/garage/forms/text_validation.json.jbuilder +22 -0
- data/app/views/json_ui/garage/home/blank.json.jbuilder +11 -0
- data/app/views/json_ui/garage/home/index.json.jbuilder +32 -0
- data/app/views/json_ui/garage/home/slow.json.jbuilder +11 -0
- data/app/views/json_ui/garage/lists/_infinite_scroll_section.json.jbuilder +20 -0
- data/app/views/json_ui/garage/lists/edit_actions.json.jbuilder +19 -0
- data/app/views/json_ui/garage/lists/fab.json.jbuilder +14 -0
- data/app/views/json_ui/garage/lists/index.json.jbuilder +23 -0
- data/app/views/json_ui/garage/lists/infinite_scroll.json.jbuilder +38 -0
- data/app/views/json_ui/garage/lists/templating.json.jbuilder +35 -0
- data/app/views/json_ui/garage/notifications/index.json.jbuilder +18 -0
- data/app/views/json_ui/garage/notifications/web_socket.json.jbuilder +60 -0
- data/app/views/json_ui/garage/pages/flat_centered.json.jbuilder +29 -0
- data/app/views/json_ui/garage/pages/full_width.json.jbuilder +29 -0
- data/app/views/json_ui/garage/pages/full_width_height.json.jbuilder +16 -0
- data/app/views/json_ui/garage/pages/index.json.jbuilder +47 -0
- data/app/views/json_ui/garage/pages/layout.json.jbuilder +19 -0
- data/app/views/json_ui/garage/pages/loading_indicator.json.jbuilder +10 -0
- data/app/views/json_ui/garage/pages/nav_buttons.json.jbuilder +21 -0
- data/app/views/json_ui/garage/pages/tab_bar.json.jbuilder +27 -0
- data/app/views/json_ui/garage/panels/_styled.json.jbuilder +78 -0
- data/app/views/json_ui/garage/panels/card.json.jbuilder +4 -0
- data/app/views/json_ui/garage/panels/carousel.json.jbuilder +16 -0
- data/app/views/json_ui/garage/panels/custom.json.jbuilder +17 -0
- data/app/views/json_ui/garage/panels/flow.json.jbuilder +49 -0
- data/app/views/json_ui/garage/panels/horizontal.json.jbuilder +91 -0
- data/app/views/json_ui/garage/panels/index.json.jbuilder +132 -0
- data/app/views/json_ui/garage/panels/outlined.json.jbuilder +4 -0
- data/app/views/json_ui/garage/panels/responsive.json.jbuilder +88 -0
- data/app/views/json_ui/garage/panels/split.json.jbuilder +183 -0
- data/app/views/json_ui/garage/panels/vertical.json.jbuilder +50 -0
- data/app/views/json_ui/garage/services/dynamic_text.json.jbuilder +13 -0
- data/app/views/json_ui/garage/services/image.json.jbuilder +47 -0
- data/app/views/json_ui/garage/services/index.json.jbuilder +17 -0
- data/app/views/json_ui/garage/tables/_autoload_section.json.jbuilder +13 -0
- data/app/views/json_ui/garage/tables/autoload_all.json.jbuilder +38 -0
- data/app/views/json_ui/garage/tables/autoload_as_needed.json.jbuilder +39 -0
- data/app/views/json_ui/garage/tables/export_import.json.jbuilder +29 -0
- data/app/views/json_ui/garage/tables/horizontal_scroll.json.jbuilder +26 -0
- data/app/views/json_ui/garage/tables/index.json.jbuilder +26 -0
- data/app/views/json_ui/garage/tables/layout.json.jbuilder +38 -0
- data/app/views/json_ui/garage/views/_chart_data.json.jbuilder +17 -0
- data/app/views/json_ui/garage/views/banners.json.jbuilder +51 -0
- data/app/views/json_ui/garage/views/calendar_data.json.jbuilder +30 -0
- data/app/views/json_ui/garage/views/carousels.json.jbuilder +37 -0
- data/app/views/json_ui/garage/views/charts.json.jbuilder +115 -0
- data/app/views/json_ui/garage/views/images.json.jbuilder +89 -0
- data/app/views/json_ui/garage/views/index.json.jbuilder +48 -0
- data/app/views/json_ui/garage/views/links.json.jbuilder +70 -0
- data/app/views/json_ui/garage/views/map_data.json.jbuilder +43 -0
- data/app/views/json_ui/garage/views/markdowns.json.jbuilder +41 -0
- data/app/views/json_ui/garage/views/misc.json.jbuilder +34 -0
- data/app/views/json_ui/garage/views/texts.json.jbuilder +41 -0
- data/app/views/layouts/json_ui/renderer.html.erb +32 -0
- data/config/routes.rb +8 -0
- data/lib/generators/glib/install_generator.rb +24 -0
- data/lib/generators/templates/20191017062519_create_texts.rb +12 -0
- data/lib/generators/templates/20191024063257_add_scope_to_texts.rb +7 -0
- data/lib/generators/templates/20191112095018_add_lang_to_texts.rb +7 -0
- data/lib/generators/templates/20191126071051_create_active_storage_tables.active_storage.rb +27 -0
- data/lib/generators/templates/database.yml +107 -0
- data/lib/generators/templates/dynamic_text.rb +2 -0
- data/lib/glib-web.rb +8 -0
- data/lib/glib/crypt.rb +1 -0
- data/lib/glib/crypt/utils.rb +26 -0
- data/lib/glib/dynamic_text.rb +1 -0
- data/lib/glib/dynamic_text/config.rb +21 -0
- data/lib/glib/engine.rb +7 -0
- data/lib/glib/json_crawler.rb +10 -0
- data/lib/glib/json_crawler/action_crawler.rb +20 -0
- data/lib/glib/json_crawler/action_crawlers/action_http.rb +14 -0
- data/lib/glib/json_crawler/action_crawlers/forms_submit.rb +48 -0
- data/lib/glib/json_crawler/action_crawlers/menu.rb +12 -0
- data/lib/glib/json_crawler/action_crawlers/nav_initiate.rb +15 -0
- data/lib/glib/json_crawler/action_crawlers/windows_open.rb +28 -0
- data/lib/glib/json_crawler/coverage.rb +20 -0
- data/lib/glib/json_crawler/http.rb +120 -0
- data/lib/glib/json_crawler/router.rb +86 -0
- data/lib/glib/test_helpers.rb +40 -0
- data/lib/glib/value.rb +7 -0
- data/lib/glib/version.rb +5 -0
- data/lib/tasks/db.rake +95 -0
- metadata +246 -0
|
@@ -0,0 +1,183 @@
|
|
|
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', 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
|
|
183
|
+
|
|
@@ -0,0 +1,50 @@
|
|
|
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
|
+
scroll.h1 text: 'Basic'
|
|
8
|
+
scroll.panels_vertical backgroundColor: '#b3bac2', childViews: ->(panel) do
|
|
9
|
+
panel.button text: 'Button1'
|
|
10
|
+
panel.button text: 'Button2', width: 200
|
|
11
|
+
panel.button text: 'Button3', width: 300
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
scroll.label text: "\n"
|
|
15
|
+
scroll.h1 text: 'Equal filling'
|
|
16
|
+
scroll.panels_vertical backgroundColor: '#b3bac2', height: 300, distribution: 'fillEqually', childViews: ->(panel) do
|
|
17
|
+
panel.button text: 'Button1'
|
|
18
|
+
panel.button text: 'Button2'
|
|
19
|
+
panel.button text: 'Button3'
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
scroll.label text: "\n"
|
|
23
|
+
scroll.h1 text: 'Equal spacing'
|
|
24
|
+
scroll.panels_vertical backgroundColor: '#b3bac2', height: 300, distribution: 'spaceEqually', childViews: ->(panel) do
|
|
25
|
+
panel.button text: 'Button1'
|
|
26
|
+
panel.button text: 'Button2'
|
|
27
|
+
panel.button text: 'Button3'
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
scroll.label text: "\n"
|
|
31
|
+
scroll.h1 text: 'Alignments'
|
|
32
|
+
scroll.panels_vertical width: 'matchParent', backgroundColor: '#b3bac2', align: 'center', childViews: ->(panel) do
|
|
33
|
+
panel.button text: 'Center'
|
|
34
|
+
end
|
|
35
|
+
scroll.panels_vertical width: 'matchParent', backgroundColor: '#b3bac2', align: 'right', childViews: ->(panel) do
|
|
36
|
+
panel.button text: 'Right'
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
scroll.label text: "\n"
|
|
40
|
+
scroll.h1 text: 'Spacers'
|
|
41
|
+
scroll.panels_vertical width: 'matchParent', childViews: ->(panel) do
|
|
42
|
+
panel.button text: '1'
|
|
43
|
+
panel.spacer height: 10
|
|
44
|
+
panel.button text: '2'
|
|
45
|
+
panel.spacer height: 50
|
|
46
|
+
panel.button text: '3'
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
end
|
|
50
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
json.title 'Dynamic Text Service'
|
|
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
|
+
scroll.h3 text: dt_json('.hello', name: 'John')
|
|
8
|
+
scroll.spacer height: 6
|
|
9
|
+
scroll.label text: dt_json('.greeting')
|
|
10
|
+
scroll.label text: dt_json('.greeting_with_image')
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
end
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
json.title 'Image Service'
|
|
2
|
+
|
|
3
|
+
# See https://docs.imgix.com/apis/url/size/fit#clip
|
|
4
|
+
page = json_ui_page json
|
|
5
|
+
render "#{@path_prefix}/nav_menu", json: json, page: page
|
|
6
|
+
|
|
7
|
+
page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
|
|
8
|
+
bucket = 'itinerarybuilder-demo'
|
|
9
|
+
|
|
10
|
+
# TODO: This needs fixing
|
|
11
|
+
scroll.h1 text: 'Original size'
|
|
12
|
+
scroll.spacer height: 6
|
|
13
|
+
scroll.image url: dynamic_image_url(glib_json_image_blob_key, bucket: bucket, width: nil, height: nil)
|
|
14
|
+
|
|
15
|
+
scroll.h1 text: 'fit: clip (default) to width'
|
|
16
|
+
scroll.spacer height: 6
|
|
17
|
+
scroll.image url: dynamic_image_url(glib_json_image_blob_key, bucket: bucket, width: 100, height: nil)
|
|
18
|
+
|
|
19
|
+
scroll.spacer height: 20
|
|
20
|
+
scroll.h1 text: 'fit: clip (default) to height'
|
|
21
|
+
scroll.spacer height: 6
|
|
22
|
+
scroll.image url: dynamic_image_url(glib_json_image_blob_key, bucket: bucket, width: nil, height: 100)
|
|
23
|
+
|
|
24
|
+
scroll.spacer height: 20
|
|
25
|
+
scroll.h1 text: 'fit: crop to width'
|
|
26
|
+
scroll.spacer height: 6
|
|
27
|
+
scroll.image url: dynamic_image_url(glib_json_image_blob_key, bucket: bucket, fit: 'crop', width: 100, height: nil)
|
|
28
|
+
|
|
29
|
+
scroll.spacer height: 20
|
|
30
|
+
scroll.h1 text: 'fit: crop to height'
|
|
31
|
+
scroll.spacer height: 6
|
|
32
|
+
scroll.image url: dynamic_image_url(glib_json_image_blob_key, bucket: bucket, fit: 'crop', width: nil, height: 100)
|
|
33
|
+
|
|
34
|
+
# Currently this doesn't behave the same way as https://docs.imgix.com/apis/url/size/fit#fill
|
|
35
|
+
#
|
|
36
|
+
# scroll.spacer height: 20
|
|
37
|
+
# scroll.h1 text: 'fit: fill to width'
|
|
38
|
+
# scroll.spacer height: 6
|
|
39
|
+
# scroll.image url: dynamic_image_url(glib_json_image_blob_key, bucket: bucket, fit: 'fill', width: 2000, height: nil)
|
|
40
|
+
|
|
41
|
+
# Currently this doesn't behave the same way as https://docs.imgix.com/apis/url/size/fit#fill
|
|
42
|
+
#
|
|
43
|
+
# scroll.spacer height: 20
|
|
44
|
+
# scroll.h1 text: 'fit: fill to height'
|
|
45
|
+
# scroll.spacer height: 6
|
|
46
|
+
# scroll.image url: dynamic_image_url(glib_json_image_blob_key, bucket: bucket, fit: 'fill', width: nil, height: 2000)
|
|
47
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
json.title 'Dynamic Texts'
|
|
2
|
+
|
|
3
|
+
page = json_ui_page json
|
|
4
|
+
render "#{@path_prefix}/nav_menu", json: json, page: page, top_nav: true
|
|
5
|
+
|
|
6
|
+
page.list firstSection: ->(section) do
|
|
7
|
+
section.rows builder: ->(template) do
|
|
8
|
+
template.thumbnail title: 'Dynamic Text', onClick: ->(action) do
|
|
9
|
+
action.windows_open url: json_ui_garage_url(path: 'services/dynamic_text')
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
template.thumbnail title: 'Image', onClick: ->(action) do
|
|
13
|
+
action.windows_open url: json_ui_garage_url(path: 'services/image')
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
|
|
2
|
+
batch_count = 30
|
|
3
|
+
items = (1..batch_count)
|
|
4
|
+
section = page.table_section_builder
|
|
5
|
+
section.rows objects: items, builder: ->(row, item, index) do
|
|
6
|
+
row.default cellViews: ->(cell) do
|
|
7
|
+
column_indexes.each do |i|
|
|
8
|
+
cell.label text: "Data #{page_index * batch_count + item}"
|
|
9
|
+
end
|
|
10
|
+
end, onClick: ->(action) do
|
|
11
|
+
action.windows_open url: json_ui_garage_url(path: 'home/blank')
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
|
|
2
|
+
page_index = params[:page].to_i
|
|
3
|
+
next_page = {
|
|
4
|
+
url: json_ui_garage_url(path: 'tables/autoload_all', page: page_index + 1, section_only: 'v1'),
|
|
5
|
+
autoload: 'all'
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
column_indexes = (1..3)
|
|
9
|
+
# TODO: Cater
|
|
10
|
+
# - for SEO: one URL for a standalone page and one URL for pagination only
|
|
11
|
+
# - for generic approach, e.g. excluding nav_menu when there is no change
|
|
12
|
+
if params[:section_only].present?
|
|
13
|
+
json.nextPage next_page if page_index < 3
|
|
14
|
+
json_ui_page json do |page|
|
|
15
|
+
json.sections do
|
|
16
|
+
json.child! do
|
|
17
|
+
render 'json_ui/garage/tables/autoload_section', page: page, page_index: page_index, column_indexes: column_indexes
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
else
|
|
22
|
+
json.title 'Tables'
|
|
23
|
+
|
|
24
|
+
json_ui_page json do |page|
|
|
25
|
+
render "#{@path_prefix}/nav_menu", json: json, page: page
|
|
26
|
+
|
|
27
|
+
page.table nextPage: next_page, firstSection: ->(section) do
|
|
28
|
+
section.header cellViews: ->(header) do
|
|
29
|
+
column_indexes.each do |i|
|
|
30
|
+
header.label text: "Heading#{i}"
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
render "#{@path_prefix}/tables/autoload_section", page: page, page_index: page_index, column_indexes: column_indexes
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
|
|
2
|
+
page_index = params[:page].to_i
|
|
3
|
+
next_page = {
|
|
4
|
+
url: json_ui_garage_url(path: 'tables/autoload_all', page: page_index + 1, section_only: 'v1'),
|
|
5
|
+
autoload: 'asNeeded'
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
column_indexes = (1..3)
|
|
9
|
+
if params[:section_only].present?
|
|
10
|
+
json.nextPage next_page if page_index < 3
|
|
11
|
+
json_ui_page json do |page|
|
|
12
|
+
json.sections do
|
|
13
|
+
json.child! do
|
|
14
|
+
render 'json_ui/garage/tables/autoload_section', page: page, page_index: page_index, column_indexes: column_indexes
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
else
|
|
19
|
+
json.title 'Tables'
|
|
20
|
+
|
|
21
|
+
json_ui_page json do |page|
|
|
22
|
+
render "#{@path_prefix}/nav_menu", json: json, page: page
|
|
23
|
+
|
|
24
|
+
page.table nextPage: next_page, firstSection: ->(section) do
|
|
25
|
+
section.header cellViews: ->(header) do
|
|
26
|
+
column_indexes.each do |i|
|
|
27
|
+
header.label text: "Heading#{i}"
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
render "#{@path_prefix}/tables/autoload_section", page: page, page_index: page_index, column_indexes: column_indexes
|
|
32
|
+
end, onScrollToBottom: ->(action) do
|
|
33
|
+
action.snackbars_alert message: 'Scrolled to Bottom'
|
|
34
|
+
end, onScrollToTop: ->(action) do
|
|
35
|
+
action.snackbars_alert message: 'Scrolled to Top'
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
json.title 'Tables'
|
|
2
|
+
|
|
3
|
+
page = json_ui_page json
|
|
4
|
+
render "#{@path_prefix}/nav_menu", json: json, page: page
|
|
5
|
+
|
|
6
|
+
page.table export: { label: 'Export', fileName: 'output' }, import: { submitUrl: json_ui_garage_url(path: 'forms/generic_post'), paramName: 'user' }, firstSection: ->(section) do
|
|
7
|
+
section.header cellViews: ->(header) do
|
|
8
|
+
header.label text: 'field1'
|
|
9
|
+
header.label text: 'field2'
|
|
10
|
+
header.label text: 'field3'
|
|
11
|
+
header.label text: 'field4'
|
|
12
|
+
header.label text: 'field5'
|
|
13
|
+
header.label text: 'field6'
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
items = [1, 2, 3]
|
|
17
|
+
section.rows objects: items, builder: ->(row, item, index) do
|
|
18
|
+
row.default cellViews: ->(cell) do
|
|
19
|
+
cell.label text: "Data #{item}"
|
|
20
|
+
cell.label text: "Data 'A' #{item}"
|
|
21
|
+
cell.label text: 'Data "B"' + " #{item}"
|
|
22
|
+
cell.label text: "Data , #{item}"
|
|
23
|
+
cell.label text: "Line A#{item}\nLine B#{item}"
|
|
24
|
+
cell.label text: "Line A#{item}\rLine B#{item}"
|
|
25
|
+
end, onClick: ->(action) do
|
|
26
|
+
action.windows_open url: json_ui_garage_url(path: 'home/blank')
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
json.title 'Tables'
|
|
2
|
+
|
|
3
|
+
json_ui_page json do |page|
|
|
4
|
+
render "#{@path_prefix}/nav_menu", json: json, page: page
|
|
5
|
+
|
|
6
|
+
column_indexes = (1..20)
|
|
7
|
+
page.table firstSection: ->(section) do
|
|
8
|
+
section.header cellViews: ->(header) do
|
|
9
|
+
column_indexes.each do |i|
|
|
10
|
+
header.label text: "Heading#{i}"
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
items = [1, 2, 3]
|
|
15
|
+
section.rows objects: items, builder: ->(row, item, index) do
|
|
16
|
+
row.default cellViews: ->(cell) do
|
|
17
|
+
column_indexes.each do |i|
|
|
18
|
+
cell.label text: "Data #{item}"
|
|
19
|
+
end
|
|
20
|
+
end, onClick: ->(action) do
|
|
21
|
+
action.windows_open url: json_ui_garage_url(path: 'home/blank')
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
end
|