glib-web 0.2.7 → 0.2.8
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/controllers/glib/home_controller.rb +0 -1
- data/app/helpers/glib/json_ui/abstract_builder.rb +20 -4
- data/app/helpers/glib/json_ui/styling_helper.rb +8 -0
- data/app/helpers/glib/json_ui/view_builder.rb +1 -4
- data/app/helpers/glib/json_ui/view_builder/fields.rb +6 -1
- data/app/helpers/glib/json_ui/view_builder/panels.rb +1 -0
- data/app/views/json_ui/garage/_nav_menu.json.jbuilder +7 -7
- data/app/views/json_ui/garage/forms/checkboxes.json.jbuilder +23 -3
- data/app/views/json_ui/garage/forms/pickers.json.jbuilder +7 -1
- data/app/views/json_ui/garage/forms/text_validation.json.jbuilder +6 -6
- data/app/views/json_ui/garage/pages/index.json.jbuilder +4 -4
- data/app/views/json_ui/garage/pages/nav_buttons.json.jbuilder +5 -2
- data/app/views/json_ui/garage/panels/custom.json.jbuilder +7 -1
- data/app/views/json_ui/garage/panels/index.json.jbuilder +58 -35
- data/app/views/json_ui/garage/panels/split.json.jbuilder +12 -1
- data/app/views/json_ui/garage/panels/vertical.json.jbuilder +12 -3
- data/app/views/json_ui/garage/views/calendar_data.json.jbuilder +15 -10
- data/app/views/json_ui/garage/views/charts.json.jbuilder +1 -0
- data/app/views/json_ui/garage/views/images.json.jbuilder +3 -2
- data/app/views/json_ui/garage/views/index.json.jbuilder +3 -0
- data/app/views/json_ui/garage/views/links.json.jbuilder +39 -0
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 71ebbfa315c624f4e03a9f817173ae0ef3828b2f
|
4
|
+
data.tar.gz: c9c83fd55418f5dc5e54734a8c10b13fc6e10fab
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 86f2ad586d632b40c5308585692461134229d84629adb9b8ffd2ddc9b2694c57d7c199226417190bb835a9464d2a2d68f6142efd01fdf3659e45925a6fe95554
|
7
|
+
data.tar.gz: 156523cc553b9b31b504e0c13cf1ea0862e0b7bbe183a6b91de6b592716c5b0cdead9cb86bd536a9eca67f38656b2a177d18a5aa9b7eb912e119ceba4831eeac
|
@@ -3,7 +3,6 @@ module Glib
|
|
3
3
|
|
4
4
|
def json_ui_garage
|
5
5
|
@path_prefix = 'json_ui/garage'
|
6
|
-
@sample_image_url = 'https://cdn-images-1.medium.com/max/1200/1*Qc0XxYm-qAZL-7tjjlNfrg.png'
|
7
6
|
|
8
7
|
# We can't use prepend_view_path because it affects the app, not the gem
|
9
8
|
path = "#{@path_prefix}/#{params[:path] || 'home/index'}"
|
@@ -148,10 +148,26 @@ module Glib
|
|
148
148
|
end
|
149
149
|
|
150
150
|
def self.icon propName
|
151
|
-
define_method(propName) do |value|
|
152
|
-
|
153
|
-
json.
|
154
|
-
|
151
|
+
define_method(propName) do |value|
|
152
|
+
if value.is_a?(Hash)
|
153
|
+
json.set!(propName) do
|
154
|
+
json.set value[:set] || 'material'
|
155
|
+
json.name value[:name]
|
156
|
+
|
157
|
+
if (badge = value[:badge]).is_a?(Hash)
|
158
|
+
json.badge badge
|
159
|
+
else
|
160
|
+
json.badge do
|
161
|
+
json.text badge
|
162
|
+
end
|
163
|
+
end
|
164
|
+
|
165
|
+
end
|
166
|
+
else
|
167
|
+
json.set!(propName) do
|
168
|
+
json.name value
|
169
|
+
end
|
170
|
+
end
|
155
171
|
end
|
156
172
|
end
|
157
173
|
|
@@ -12,6 +12,14 @@ module Glib
|
|
12
12
|
def json_padding_body_this
|
13
13
|
{ top: 6, right: 10, bottom: 6, left: 10 }
|
14
14
|
end
|
15
|
+
|
16
|
+
def json_image_standard_url
|
17
|
+
'https://cdn-images-1.medium.com/max/1200/1*Qc0XxYm-qAZL-7tjjlNfrg.png'
|
18
|
+
end
|
19
|
+
|
20
|
+
def json_image_avatar_url
|
21
|
+
'https://www.wpjournalist.nl/wp-content/uploads/2019/03/avatar-jongen-voorbeeld-1.jpg'
|
22
|
+
end
|
15
23
|
end
|
16
24
|
end
|
17
25
|
end
|
@@ -22,7 +22,7 @@ module Glib
|
|
22
22
|
|
23
23
|
class H1 < View
|
24
24
|
string :text
|
25
|
-
action :onClick
|
25
|
+
# action :onClick
|
26
26
|
end
|
27
27
|
|
28
28
|
class H2 < View
|
@@ -37,9 +37,6 @@ module Glib
|
|
37
37
|
string :text
|
38
38
|
end
|
39
39
|
|
40
|
-
# class Br < View
|
41
|
-
# end
|
42
|
-
|
43
40
|
class Spacer < View
|
44
41
|
end
|
45
42
|
|
@@ -28,7 +28,7 @@ class Glib::JsonUi::ViewBuilder
|
|
28
28
|
end
|
29
29
|
|
30
30
|
class Text < AbstractField
|
31
|
-
int :
|
31
|
+
int :maxLength
|
32
32
|
bool :readOnly
|
33
33
|
end
|
34
34
|
|
@@ -88,7 +88,12 @@ class Glib::JsonUi::ViewBuilder
|
|
88
88
|
|
89
89
|
class RadioGroup < View
|
90
90
|
string :name
|
91
|
+
string :value
|
91
92
|
views :childViews
|
93
|
+
|
94
|
+
string :iconOfBeforeSelected
|
95
|
+
string :iconOfSelected
|
96
|
+
string :iconOfAfterSelected
|
92
97
|
end
|
93
98
|
|
94
99
|
class Radio < View
|
@@ -3,7 +3,7 @@ if local_assigns[:top_nav] || json_ui_app_is_web?
|
|
3
3
|
|
4
4
|
page.leftDrawer content: ->(drawer) do
|
5
5
|
drawer.header childViews: ->(header) do
|
6
|
-
header.
|
6
|
+
header.button text: 'App', onClick: ->(action) do
|
7
7
|
action.windows_open url: root_url
|
8
8
|
end
|
9
9
|
end
|
@@ -14,6 +14,10 @@ if local_assigns[:top_nav] || json_ui_app_is_web?
|
|
14
14
|
action.windows_open url: json_ui_garage_url(path: 'pages/index')
|
15
15
|
end
|
16
16
|
|
17
|
+
menu.button text: 'Panels', onClick: ->(action) do
|
18
|
+
action.windows_open url: json_ui_garage_url(path: 'panels/index')
|
19
|
+
end
|
20
|
+
|
17
21
|
menu.button text: 'Lists', onClick: ->(action) do
|
18
22
|
action.windows_open url: json_ui_garage_url(path: 'lists/index')
|
19
23
|
end
|
@@ -22,10 +26,6 @@ if local_assigns[:top_nav] || json_ui_app_is_web?
|
|
22
26
|
action.windows_open url: json_ui_garage_url(path: 'forms/index')
|
23
27
|
end
|
24
28
|
|
25
|
-
menu.button text: 'Panels', onClick: ->(action) do
|
26
|
-
action.windows_open url: json_ui_garage_url(path: 'panels/index')
|
27
|
-
end
|
28
|
-
|
29
29
|
menu.button text: 'Views', onClick: ->(action) do
|
30
30
|
action.windows_open url: json_ui_garage_url(path: 'views/index')
|
31
31
|
end
|
@@ -37,11 +37,11 @@ if local_assigns[:top_nav] || json_ui_app_is_web?
|
|
37
37
|
menu.divider
|
38
38
|
menu.label text: 'Misc Menu'
|
39
39
|
|
40
|
-
menu.button text: 'Categories', onClick: ->(action) do
|
40
|
+
menu.button icon: 'list', text: 'Categories', onClick: ->(action) do
|
41
41
|
action.windows_open url: json_ui_garage_url
|
42
42
|
end
|
43
43
|
|
44
|
-
menu.button text: 'Diagnostics', onClick: ->(action) do
|
44
|
+
menu.button icon: { name: 'zoom_in', badge: '!' }, text: 'Diagnostics', onClick: ->(action) do
|
45
45
|
action.dialogs_alert message: %{
|
46
46
|
Bundle ID: #{json_ui_app_bundle_id || '<unknown>'}
|
47
47
|
App Version: #{json_ui_app_build_version || '<unknown>'}
|
@@ -13,10 +13,30 @@ json_ui_page json do |page|
|
|
13
13
|
form.fields_check value: 3, label: 'Web Development'
|
14
14
|
form.fields_check value: 4, label: 'Mobile Development'
|
15
15
|
end
|
16
|
-
|
17
|
-
|
18
|
-
|
16
|
+
|
17
|
+
form.spacer height: 20
|
18
|
+
form.h2 text: 'Rating'
|
19
|
+
form.spacer height: 6
|
20
|
+
form.fields_radioGroup name: 'user[rating1][]', iconOfSelected: 'star', iconOfBeforeSelected: 'star', iconOfAfterSelected: 'star_border', childViews: ->(panel) do
|
21
|
+
panel.panels_horizontal childViews: ->(panel) do
|
22
|
+
panel.fields_radio value: 1
|
23
|
+
panel.fields_radio value: 2
|
24
|
+
panel.fields_radio value: 3
|
25
|
+
panel.fields_radio value: 4
|
26
|
+
panel.fields_radio value: 5
|
27
|
+
end
|
28
|
+
end
|
29
|
+
form.fields_radioGroup name: 'user[rating2][]', iconOfSelected: 'star', iconOfBeforeSelected: 'star', iconOfAfterSelected: 'star_border', value: 1, childViews: ->(panel) do
|
30
|
+
panel.panels_horizontal childViews: ->(panel) do
|
31
|
+
panel.fields_radio value: 1
|
32
|
+
panel.fields_radio value: 2
|
33
|
+
panel.fields_radio value: 3
|
34
|
+
panel.fields_radio value: 4
|
35
|
+
panel.fields_radio value: 5
|
36
|
+
end
|
37
|
+
end
|
19
38
|
|
39
|
+
form.spacer height: 20
|
20
40
|
form.button text: 'Submit', onClick: ->(action) { action.forms_submit }
|
21
41
|
end
|
22
42
|
|
@@ -7,7 +7,7 @@ json_ui_page json do |page|
|
|
7
7
|
form.h2 text: 'Radio Group'
|
8
8
|
form.spacer height: 6
|
9
9
|
form.h4 text: 'Gender'
|
10
|
-
form.fields_radioGroup name: 'user[gender]', childViews: ->(group) do
|
10
|
+
form.fields_radioGroup name: 'user[gender]', value: 'F', childViews: ->(group) do
|
11
11
|
group.fields_radio value: 'M', label: 'Male'
|
12
12
|
group.fields_radio value: 'F', label: 'Female'
|
13
13
|
end
|
@@ -38,6 +38,12 @@ json_ui_page json do |page|
|
|
38
38
|
form.fields_date name: 'user[date]', width: 'matchParent', label: 'Date', min: '2010-01-01', max: '2012-01-01', value: '2010-02-01'
|
39
39
|
form.fields_datetime name: 'user[date_time]', width: 'matchParent', label: 'Date Time', min: '2018-06-09T00:00', max: '2018-06-17T00:00', value: '2018-06-15T19:30'
|
40
40
|
|
41
|
+
form.spacer height: 20
|
42
|
+
form.h2 text: 'Country'
|
43
|
+
form.spacer height: 6
|
44
|
+
region_field = { name: 'user[city]', label: 'City' }
|
45
|
+
form.fields_country name: 'user[country]', width: 'matchParent', label: 'Country', region: region_field
|
46
|
+
|
41
47
|
form.spacer height: 20
|
42
48
|
form.h2 text: 'Map'
|
43
49
|
form.spacer height: 6
|
@@ -3,13 +3,13 @@ json.title 'Forms'
|
|
3
3
|
json_ui_page json do |page|
|
4
4
|
render "#{@path_prefix}/nav_menu", json: json, page: page
|
5
5
|
|
6
|
-
page.form url: json_ui_garage_url(path: 'forms/
|
7
|
-
# TODO: Turn on html5 validation
|
6
|
+
page.form url: json_ui_garage_url(path: 'forms/generic_post'), method: 'post', padding: json_padding_body, childViews: ->(form) do
|
8
7
|
form.fields_email name: 'user[email]', width: 'matchParent', label: 'Email'
|
9
|
-
form.
|
8
|
+
form.fields_url name: 'user[url]', width: 'matchParent', label: 'URL'
|
9
|
+
form.fields_number name: 'user[number]', width: 'matchParent', label: 'Number'
|
10
|
+
form.fields_password name: 'user[password]', width: 'matchParent', label: 'Password'
|
11
|
+
form.fields_textarea name: 'user[textarea]', width: 'matchParent', label: 'Textarea with maxLength', maxLength: 50
|
10
12
|
|
11
|
-
form.
|
12
|
-
split.button text: 'Submit', onClick: ->(action) { action.forms_submit }
|
13
|
-
end
|
13
|
+
form.button text: 'Submit', onClick: ->(action) { action.forms_submit }
|
14
14
|
end
|
15
15
|
end
|
@@ -5,10 +5,6 @@ json_ui_page json do |page|
|
|
5
5
|
|
6
6
|
page.list firstSection: ->(section) do
|
7
7
|
section.rows builder: ->(template) do
|
8
|
-
template.thumbnail title: 'Nav Buttons', onClick: ->(action) do
|
9
|
-
action.windows_open url: json_ui_garage_url(path: 'pages/nav_buttons')
|
10
|
-
end
|
11
|
-
|
12
8
|
template.thumbnail title: 'Hamburger Layout', onClick: ->(action) do
|
13
9
|
action.windows_open url: json_ui_garage_url(path: 'pages/layout')
|
14
10
|
end
|
@@ -20,6 +16,10 @@ json_ui_page json do |page|
|
|
20
16
|
template.thumbnail title: 'Tab Bar', onClick: ->(action) do
|
21
17
|
action.windows_open url: json_ui_garage_url(path: 'pages/tab_bar')
|
22
18
|
end
|
19
|
+
|
20
|
+
template.thumbnail title: 'Nav Buttons', onClick: ->(action) do
|
21
|
+
action.windows_open url: json_ui_garage_url(path: 'pages/nav_buttons')
|
22
|
+
end
|
23
23
|
end
|
24
24
|
|
25
25
|
end
|
@@ -7,12 +7,15 @@ json_ui_page json do |page|
|
|
7
7
|
menu.button icon: 'search', onClick: ->(action) do
|
8
8
|
action.dialogs_alert message: 'Perform some action'
|
9
9
|
end
|
10
|
-
menu.button icon: '
|
10
|
+
menu.button icon: { name: 'star', badge: { text: '1', backgroundColor: '#ff0000' } }, onClick: ->(action) do
|
11
|
+
action.dialogs_alert message: 'Perform some action'
|
12
|
+
end
|
13
|
+
menu.button icon: { name: 'map', badge: '2' }, onClick: ->(action) do
|
11
14
|
action.dialogs_alert message: 'Perform some action'
|
12
15
|
end
|
13
16
|
end
|
14
17
|
|
15
|
-
page.scroll padding:
|
18
|
+
page.scroll padding: json_padding_body, childViews: ->(scroll) do
|
16
19
|
scroll.label text: 'See the right menu buttons on the nav bar'
|
17
20
|
end
|
18
21
|
end
|
@@ -4,7 +4,13 @@ json_ui_page json do |page|
|
|
4
4
|
render "#{@path_prefix}/nav_menu", json: json, page: page
|
5
5
|
|
6
6
|
page.scroll padding: json_padding_body, childViews: ->(scroll) do
|
7
|
-
scroll.
|
7
|
+
scroll.h2 text: 'Thumbnail Template'
|
8
|
+
scroll.spacer height: 6
|
9
|
+
scroll.panels_custom template: 'thumbnail', width: 'matchParent', backgroundColor: '#fafafa',
|
10
|
+
data: { imageUrl: json_image_standard_url, title: 'Title', subtitle: 'Use the same template from list templates' }
|
11
|
+
|
12
|
+
scroll.spacer height: 20
|
13
|
+
scroll.h2 text: 'Non-existent Template'
|
8
14
|
scroll.spacer height: 6
|
9
15
|
scroll.panels_custom template: 'nonExistentTemplate'
|
10
16
|
end
|
@@ -3,65 +3,88 @@ json.title 'Panels'
|
|
3
3
|
json_ui_page json do |page|
|
4
4
|
render "#{@path_prefix}/nav_menu", json: json, page: page, top_nav: true
|
5
5
|
|
6
|
-
|
7
6
|
page.list sections: [
|
8
7
|
->(section) do
|
8
|
+
section.header padding: json_padding_list, childViews: ->(header) do
|
9
|
+
header.h2 text: 'Layout for child components'
|
10
|
+
end
|
11
|
+
|
9
12
|
section.rows builder: ->(template) do
|
10
|
-
template.thumbnail title: 'Card', onClick: ->(action) do
|
11
|
-
action.windows_open url: json_ui_garage_url(path: 'panels/card')
|
12
|
-
end
|
13
13
|
template.thumbnail title: 'Vertical', onClick: ->(action) do
|
14
14
|
action.windows_open url: json_ui_garage_url(path: 'panels/vertical')
|
15
15
|
end
|
16
16
|
template.thumbnail title: 'Horizontal', onClick: ->(action) do
|
17
17
|
action.windows_open url: json_ui_garage_url(path: 'panels/horizontal')
|
18
18
|
end
|
19
|
-
template.thumbnail title: 'Split', onClick: ->(action) do
|
20
|
-
action.windows_open url: json_ui_garage_url(path: 'panels/split')
|
21
|
-
end
|
22
19
|
template.thumbnail title: 'Carousel', onClick: ->(action) do
|
23
20
|
action.windows_open url: json_ui_garage_url(path: 'panels/carousel')
|
24
21
|
end
|
25
|
-
|
26
|
-
|
22
|
+
|
23
|
+
end
|
24
|
+
end, ->(section) do
|
25
|
+
section.header padding: json_padding_list, childViews: ->(header) do
|
26
|
+
header.h2 text: 'Layout with sub-panels'
|
27
|
+
header.spacer height: 6
|
28
|
+
header.label text: 'Each sub-panel is a vertical panel'
|
29
|
+
end
|
30
|
+
|
31
|
+
section.rows builder: ->(template) do
|
32
|
+
template.thumbnail title: 'Split', subtitle: 'Sub-panels: left, center, right', onClick: ->(action) do
|
33
|
+
action.windows_open url: json_ui_garage_url(path: 'panels/split')
|
34
|
+
end
|
35
|
+
template.thumbnail title: 'Page', subtitle: 'Sub-panels: header, content, footer', onClick: ->(action) do
|
36
|
+
action.windows_open url: json_ui_garage_url(path: 'pages/index')
|
37
|
+
end
|
38
|
+
template.thumbnail title: 'List', subtitle: 'Sub-panels: header, footer', onClick: ->(action) do
|
39
|
+
action.windows_open url: json_ui_garage_url(path: 'lists/index')
|
27
40
|
end
|
28
41
|
|
29
42
|
end
|
30
43
|
end, ->(section) do
|
31
44
|
section.header padding: json_padding_list, childViews: ->(header) do
|
32
|
-
header.h2 text: '
|
45
|
+
header.h2 text: 'Layout with uniform rows'
|
33
46
|
end
|
34
47
|
|
35
48
|
section.rows builder: ->(template) do
|
36
|
-
template.thumbnail title: '
|
49
|
+
template.thumbnail title: 'List', subtitle: 'Rows without columns', onClick: ->(action) do
|
50
|
+
action.windows_open url: json_ui_garage_url(path: 'lists/index')
|
51
|
+
end
|
52
|
+
template.thumbnail title: 'Table (Web only)', subtitle: 'Rows with columns', onClick: ->(action) do
|
37
53
|
action.windows_open url: json_ui_garage_url(path: 'panels/table')
|
38
54
|
end
|
39
55
|
|
40
56
|
end
|
41
|
-
end
|
42
|
-
|
57
|
+
end, ->(section) do
|
58
|
+
section.header padding: json_padding_list, childViews: ->(header) do
|
59
|
+
header.h2 text: 'Non-layout'
|
60
|
+
header.spacer height: 6
|
61
|
+
header.label text: 'Adds functionality to a vertical layout'
|
62
|
+
end
|
43
63
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
64
|
+
section.rows builder: ->(template) do
|
65
|
+
template.thumbnail title: 'Scroll', subtitle: 'Adds scrolling', onClick: ->(action) do
|
66
|
+
action.windows_open url: json_ui_garage_url(path: 'pages/index')
|
67
|
+
end
|
68
|
+
template.thumbnail title: 'Form', subtitle: 'Adds form functionality', onClick: ->(action) do
|
69
|
+
action.windows_open url: json_ui_garage_url(path: 'forms/index')
|
70
|
+
end
|
71
|
+
template.thumbnail title: 'Card', subtitle: 'Adds card-like bevel', onClick: ->(action) do
|
72
|
+
action.windows_open url: json_ui_garage_url(path: 'panels/card')
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
76
|
+
end, ->(section) do
|
77
|
+
section.header padding: json_padding_list, childViews: ->(header) do
|
78
|
+
header.h2 text: 'Child-less Layout'
|
79
|
+
end
|
80
|
+
|
81
|
+
section.rows builder: ->(template) do
|
82
|
+
template.thumbnail title: 'Custom', onClick: ->(action) do
|
83
|
+
action.windows_open url: json_ui_garage_url(path: 'panels/custom')
|
84
|
+
end
|
85
|
+
|
86
|
+
end
|
87
|
+
end,
|
88
|
+
]
|
65
89
|
|
66
|
-
# end
|
67
90
|
end
|
@@ -3,7 +3,18 @@ json.title 'Panels'
|
|
3
3
|
json_ui_page json do |page|
|
4
4
|
render "#{@path_prefix}/nav_menu", json: json, page: page
|
5
5
|
|
6
|
-
page.scroll padding:
|
6
|
+
page.scroll padding: json_padding_body, childViews: ->(scroll) do
|
7
|
+
|
8
|
+
# TODO: Consider moving towards this
|
9
|
+
# scroll.panels_split width: 'matchParent', builder: ->(builder) do
|
10
|
+
# builder.left childViews: ->(left) do
|
11
|
+
# left.button text: '1'
|
12
|
+
# end
|
13
|
+
# builder.right childViews: ->(right) do
|
14
|
+
# right.button text: '2'
|
15
|
+
# end
|
16
|
+
# end
|
17
|
+
|
7
18
|
scroll.h1 text: '2 columns'
|
8
19
|
scroll.panels_split width: 'matchParent', leftViews: ->(panel) do
|
9
20
|
panel.button text: '1'
|
@@ -4,7 +4,7 @@ json_ui_page json do |page|
|
|
4
4
|
render "#{@path_prefix}/nav_menu", json: json, page: page
|
5
5
|
|
6
6
|
page.scroll padding: { top: 12, bottom: 12, left: 16, right: 16 }, childViews: ->(scroll) do
|
7
|
-
scroll.h1 text: 'Vertical
|
7
|
+
scroll.h1 text: 'Vertical panel'
|
8
8
|
scroll.panels_vertical backgroundColor: '#b3bac2', childViews: ->(panel) do
|
9
9
|
panel.button text: 'Button1'
|
10
10
|
panel.button text: 'Button2', width: 200
|
@@ -12,7 +12,7 @@ json_ui_page json do |page|
|
|
12
12
|
end
|
13
13
|
|
14
14
|
scroll.label text: "\n"
|
15
|
-
scroll.h1 text: 'Vertical
|
15
|
+
scroll.h1 text: 'Vertical panel with equal filling'
|
16
16
|
scroll.panels_vertical backgroundColor: '#b3bac2', height: 300, distribution: 'fillEqually', childViews: ->(panel) do
|
17
17
|
panel.button text: 'Button1'
|
18
18
|
panel.button text: 'Button2'
|
@@ -20,12 +20,21 @@ json_ui_page json do |page|
|
|
20
20
|
end
|
21
21
|
|
22
22
|
scroll.label text: "\n"
|
23
|
-
scroll.h1 text: 'Vertical
|
23
|
+
scroll.h1 text: 'Vertical panel with equal spacing'
|
24
24
|
scroll.panels_vertical backgroundColor: '#b3bac2', height: 300, distribution: 'spaceEqually', childViews: ->(panel) do
|
25
25
|
panel.button text: 'Button1'
|
26
26
|
panel.button text: 'Button2'
|
27
27
|
panel.button text: 'Button3'
|
28
28
|
end
|
29
29
|
|
30
|
+
scroll.label text: "\n"
|
31
|
+
scroll.h1 text: 'Vertical panel with alignment'
|
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
|
+
|
30
39
|
end
|
31
40
|
end
|
@@ -1,29 +1,34 @@
|
|
1
1
|
|
2
2
|
json.events do
|
3
|
+
|
3
4
|
json.child! do
|
4
|
-
json.
|
5
|
-
json.
|
5
|
+
json.start '2018-12-14'
|
6
|
+
json.end '2018-12-17'
|
7
|
+
json.text 'Hackathon'
|
6
8
|
json.onClick do
|
7
9
|
json.action 'dialogs/alert-v1'
|
8
|
-
json.message 'At
|
10
|
+
json.message 'At Town Hall'
|
9
11
|
end
|
10
12
|
end
|
11
13
|
|
12
14
|
json.child! do
|
13
|
-
json.
|
14
|
-
json.
|
15
|
+
json.start '2018-12-30'
|
16
|
+
json.end '2018-12-30'
|
17
|
+
json.text 'Birthday'
|
15
18
|
json.onClick do
|
16
19
|
json.action 'dialogs/alert-v1'
|
17
|
-
json.message '
|
20
|
+
json.message 'At home'
|
18
21
|
end
|
19
22
|
end
|
20
|
-
|
23
|
+
|
21
24
|
json.child! do
|
22
|
-
json.
|
23
|
-
json.
|
25
|
+
json.start '2018-12-31'
|
26
|
+
json.end '2018-12-31'
|
27
|
+
json.text 'Conference'
|
24
28
|
json.onClick do
|
25
29
|
json.action 'dialogs/alert-v1'
|
26
|
-
json.message '
|
30
|
+
json.message 'In Perth'
|
27
31
|
end
|
28
32
|
end
|
33
|
+
|
29
34
|
end
|
@@ -6,12 +6,12 @@ json_ui_page json do |page|
|
|
6
6
|
page.scroll padding: json_padding_body, childViews: ->(scroll) do
|
7
7
|
scroll.h2 text: 'Avatar'
|
8
8
|
scroll.spacer height: 6
|
9
|
-
scroll.avatar url:
|
9
|
+
scroll.avatar url: json_image_avatar_url
|
10
10
|
|
11
11
|
scroll.spacer height: 20
|
12
12
|
scroll.h2 text: 'Image with URL'
|
13
13
|
scroll.spacer height: 6
|
14
|
-
scroll.image width: 100, url:
|
14
|
+
scroll.image width: 100, url: json_image_standard_url
|
15
15
|
|
16
16
|
scroll.spacer height: 20
|
17
17
|
scroll.h2 text: 'Image with base64 data'
|
@@ -28,5 +28,6 @@ json_ui_page json do |page|
|
|
28
28
|
else
|
29
29
|
scroll.label text: 'Include "rqrcode" gem to enable this'
|
30
30
|
end
|
31
|
+
|
31
32
|
end
|
32
33
|
end
|
@@ -17,6 +17,9 @@ json_ui_page json do |page|
|
|
17
17
|
template.thumbnail title: 'Charts', onClick: ->(action) do
|
18
18
|
action.windows_open url: json_ui_garage_url(path: 'views/charts')
|
19
19
|
end
|
20
|
+
template.thumbnail title: 'Links', onClick: ->(action) do
|
21
|
+
action.windows_open url: json_ui_garage_url(path: 'views/links')
|
22
|
+
end
|
20
23
|
end
|
21
24
|
|
22
25
|
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
json.title 'Views'
|
2
|
+
|
3
|
+
json_ui_page json do |page|
|
4
|
+
render "#{@path_prefix}/nav_menu", json: json, page: page
|
5
|
+
|
6
|
+
page.scroll padding: json_padding_body, childViews: ->(scroll) do
|
7
|
+
|
8
|
+
scroll.h2 text: 'Standard button'
|
9
|
+
scroll.spacer height: 6
|
10
|
+
scroll.button text: 'Button', onClick: ->(action) do
|
11
|
+
action.windows_openWeb url: 'https://www.google.com/'
|
12
|
+
end
|
13
|
+
|
14
|
+
scroll.spacer height: 20
|
15
|
+
scroll.h2 text: 'Button with link style'
|
16
|
+
scroll.spacer height: 6
|
17
|
+
scroll.button text: 'Link', styleClass: 'link', onClick: ->(action) do
|
18
|
+
action.windows_openWeb url: 'https://www.google.com/'
|
19
|
+
end
|
20
|
+
|
21
|
+
scroll.spacer height: 20
|
22
|
+
scroll.h2 text: 'Avatar with onClick'
|
23
|
+
# TODO: Make sure "open in new tab" works
|
24
|
+
scroll.spacer height: 10
|
25
|
+
scroll.avatar url: json_image_avatar_url, styleClass: 'link', onClick: ->(action) do
|
26
|
+
action.windows_openWeb url: 'https://www.google.com/'
|
27
|
+
end
|
28
|
+
|
29
|
+
scroll.spacer height: 20
|
30
|
+
scroll.h2 text: 'Image with onClick'
|
31
|
+
# TODO: Make sure "open in new tab" works
|
32
|
+
scroll.spacer height: 10
|
33
|
+
scroll.image width: 100, url: json_image_standard_url, styleClass: 'link', onClick: ->(action) do
|
34
|
+
action.windows_openWeb url: 'https://www.google.com/'
|
35
|
+
end
|
36
|
+
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: glib-web
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ''
|
@@ -91,6 +91,7 @@ files:
|
|
91
91
|
- app/views/json_ui/garage/views/charts.json.jbuilder
|
92
92
|
- app/views/json_ui/garage/views/images.json.jbuilder
|
93
93
|
- app/views/json_ui/garage/views/index.json.jbuilder
|
94
|
+
- app/views/json_ui/garage/views/links.json.jbuilder
|
94
95
|
- app/views/json_ui/garage/views/map_data.json.jbuilder
|
95
96
|
- config/routes.rb
|
96
97
|
- lib/glib-web.rb
|