glib-web 0.0.13 → 0.0.14
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/helpers/glib/json_ui/json_ui_helper.rb +75 -75
- data/app/helpers/glib/json_ui/list_builders.rb +5 -0
- data/app/helpers/glib/json_ui/view_builder/fields.rb +8 -0
- data/app/helpers/glib/json_ui/view_builder.rb +8 -0
- data/app/views/json_ui/garage/forms/basic.json.jbuilder +54 -42
- data/app/views/json_ui/garage/forms/file_upload.json.jbuilder +36 -28
- data/app/views/json_ui/garage/forms/floating_submit.json.jbuilder +47 -35
- data/app/views/json_ui/garage/forms/index.json.jbuilder +52 -32
- data/app/views/json_ui/garage/forms/submit_indicator.json.jbuilder +30 -20
- data/app/views/json_ui/garage/lists/index.json.jbuilder +30 -16
- data/app/views/json_ui/garage/lists/templating.json.jbuilder +51 -34
- data/app/views/json_ui/garage/views/basic.json.jbuilder +23 -15
- data/app/views/json_ui/garage/views/carousels.json.jbuilder +113 -82
- data/app/views/json_ui/garage/views/images.json.jbuilder +67 -46
- data/app/views/json_ui/garage/views/index.json.jbuilder +41 -24
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fc06c04993bc790fd9234381201fd24ce3ed1b8520aefee43633bed714b51ec5
|
4
|
+
data.tar.gz: 45a7e73f8a23d33da64bc9ab5936db68be9f1bd1b507205d54e97d1bf5abb1e1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cf337b7c9aa21d9a4e6b4a4dd2f7380ff5b88cfa3666d5fdf5d402d70c9d72d75211ed4725f31f61a064b2cae4aa158a75b7dd799c8f189c683c12a42cff3fb1
|
7
|
+
data.tar.gz: 7929fd151cce9c6a68666be64307ea9f5fd7936280134be466b54a306248cde897a8643807f655eaf8ad8dce014d9ea2ed44e66cae5f4887bb594225bcbca918
|
@@ -2,93 +2,93 @@ module Glib
|
|
2
2
|
module JsonUi
|
3
3
|
# TODO: Remove (deprecated)
|
4
4
|
module JsonUiHelper
|
5
|
-
class Builder
|
6
|
-
|
7
|
-
|
8
|
-
|
5
|
+
# class Builder
|
6
|
+
# def initialize(json)
|
7
|
+
# @json = json
|
8
|
+
# end
|
9
9
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
end
|
10
|
+
# def optional(options, *props)
|
11
|
+
# props.each do |prop|
|
12
|
+
# @json.set! prop, options[prop]
|
13
|
+
# end
|
14
|
+
# end
|
15
|
+
# end
|
16
16
|
|
17
|
-
def json_body_with_list(json, header = nil, footer = nil, options = {})
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
end
|
17
|
+
# def json_body_with_list(json, header = nil, footer = nil, options = {})
|
18
|
+
# json.header header
|
19
|
+
# json.content do
|
20
|
+
# json.childViews [1] do
|
21
|
+
# json.view 'panels/list-v1'
|
22
|
+
# json.width 'matchParent'
|
23
|
+
# json.nextPage options[:nextPage]
|
24
|
+
# json.sections [1] do
|
25
|
+
# yield
|
26
|
+
# end
|
27
|
+
# end
|
28
|
+
# end
|
29
|
+
# json.footer footer
|
30
|
+
# end
|
31
31
|
|
32
|
-
def json_body_with_scroll(json, header = nil, footer = nil, options = {})
|
33
|
-
|
32
|
+
# def json_body_with_scroll(json, header = nil, footer = nil, options = {})
|
33
|
+
# builder = Builder.new(json)
|
34
34
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
35
|
+
# json.header header
|
36
|
+
# json.content do
|
37
|
+
# json.childViews [1] do
|
38
|
+
# json.view 'panels/scroll-v1'
|
39
|
+
# json.width 'matchParent'
|
40
40
|
|
41
|
-
|
41
|
+
# builder.optional(options, :padding, :backgroundColor)
|
42
42
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
end
|
43
|
+
# json.childViews do
|
44
|
+
# yield
|
45
|
+
# end
|
46
|
+
# end
|
47
|
+
# end
|
48
|
+
# json.footer footer
|
49
|
+
# end
|
50
50
|
|
51
|
-
def json_body_with_form(json, header = nil, footer = nil, options = {})
|
52
|
-
|
53
|
-
|
54
|
-
|
51
|
+
# def json_body_with_form(json, header = nil, footer = nil, options = {})
|
52
|
+
# json.header header
|
53
|
+
# json_body_with_scroll json do
|
54
|
+
# method = options[:method].to_sym
|
55
55
|
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
56
|
+
# json.child! do
|
57
|
+
# json.view 'panels/form-v1'
|
58
|
+
# json.width 'matchParent'
|
59
|
+
# json.(options, :url)
|
60
60
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
61
|
+
# case method
|
62
|
+
# when :patch, :put, :delete
|
63
|
+
# json.method :post
|
64
|
+
# else
|
65
|
+
# json.method method
|
66
|
+
# end
|
67
67
|
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
68
|
+
# json.padding options[:padding]
|
69
|
+
# json.local options[:local]
|
70
|
+
# json.childViews do
|
71
|
+
# json.child! do
|
72
|
+
# json.view 'fields/hidden-v1'
|
73
|
+
# json.name 'authenticity_token'
|
74
|
+
# json.value form_authenticity_token
|
75
|
+
# end
|
76
76
|
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
77
|
+
# case method
|
78
|
+
# when :patch, :put, :delete
|
79
|
+
# json.child! do
|
80
|
+
# json.view 'fields/hidden-v1'
|
81
|
+
# json.name '_method'
|
82
|
+
# json.value method
|
83
|
+
# end
|
84
|
+
# end
|
85
85
|
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
end
|
86
|
+
# yield
|
87
|
+
# end
|
88
|
+
# end
|
89
|
+
# end
|
90
|
+
# json.footer footer
|
91
|
+
# end
|
92
92
|
end
|
93
93
|
end
|
94
94
|
end
|
@@ -50,6 +50,7 @@ module Glib
|
|
50
50
|
|
51
51
|
class Image < View
|
52
52
|
string :url
|
53
|
+
string :base64Data
|
53
54
|
action :onClick
|
54
55
|
end
|
55
56
|
|
@@ -57,6 +58,13 @@ module Glib
|
|
57
58
|
string :text
|
58
59
|
end
|
59
60
|
|
61
|
+
class Map < View
|
62
|
+
float :latitude
|
63
|
+
float :longitude
|
64
|
+
int :zoom
|
65
|
+
string :height
|
66
|
+
end
|
67
|
+
|
60
68
|
end
|
61
69
|
end
|
62
70
|
end
|
@@ -7,47 +7,59 @@ options = {
|
|
7
7
|
method: 'post',
|
8
8
|
padding: { top: 12, left: 20, right: 20, bottom: 12 }
|
9
9
|
}
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
json.child! do
|
19
|
-
json.view 'fields/email-v1'
|
20
|
-
json.name 'user[email]'
|
21
|
-
json.width 'matchParent'
|
22
|
-
json.label 'Email'
|
23
|
-
end
|
24
|
-
|
25
|
-
json.child! do
|
26
|
-
json.view 'fields/password-v1'
|
27
|
-
json.name 'user[password]'
|
28
|
-
json.width 'matchParent'
|
29
|
-
json.label 'Password'
|
30
|
-
end
|
31
|
-
|
32
|
-
json.child! do
|
33
|
-
json.view 'panels/split-v1'
|
34
|
-
json.width 'matchParent'
|
35
|
-
|
36
|
-
json.rightViews do
|
37
|
-
json.child! do
|
38
|
-
json.view 'button-v1'
|
39
|
-
json.text 'Submit'
|
40
|
-
json.onClick do
|
41
|
-
json.action 'forms/submit-v1'
|
42
|
-
|
43
|
-
# json.action 'forms/encode-v1'
|
44
|
-
# json.paramName 'formData'
|
45
|
-
# json.onEncoded do
|
46
|
-
# json.action 'http/post-v1'
|
47
|
-
# json.url json_ui_garage_url(path: 'forms/basic_post')
|
48
|
-
# end
|
49
|
-
end
|
50
|
-
end
|
10
|
+
|
11
|
+
json_ui_page json do |page|
|
12
|
+
page.form options.merge(childViews: ->(form) do
|
13
|
+
form.fields_text name: 'user[name]', width: 'matchParent', label: 'Name'
|
14
|
+
form.fields_email name: 'user[email]', width: 'matchParent', label: 'Email'
|
15
|
+
form.fields_password name: 'user[password]', width: 'matchParent', label: 'Password'
|
16
|
+
form.panels_split width: 'matchParent', rightViews: ->(split) do
|
17
|
+
split.button text: 'Submit', onClick: ->(action) { action.forms_submit }
|
51
18
|
end
|
52
|
-
end
|
19
|
+
end)
|
53
20
|
end
|
21
|
+
|
22
|
+
# json_body_with_form json, nil, nil, options do
|
23
|
+
# json.child! do
|
24
|
+
# json.view 'fields/text-v1'
|
25
|
+
# json.name 'user[name]'
|
26
|
+
# json.width 'matchParent'
|
27
|
+
# json.label 'Name'
|
28
|
+
# end
|
29
|
+
|
30
|
+
# json.child! do
|
31
|
+
# json.view 'fields/email-v1'
|
32
|
+
# json.name 'user[email]'
|
33
|
+
# json.width 'matchParent'
|
34
|
+
# json.label 'Email'
|
35
|
+
# end
|
36
|
+
|
37
|
+
# json.child! do
|
38
|
+
# json.view 'fields/password-v1'
|
39
|
+
# json.name 'user[password]'
|
40
|
+
# json.width 'matchParent'
|
41
|
+
# json.label 'Password'
|
42
|
+
# end
|
43
|
+
|
44
|
+
# json.child! do
|
45
|
+
# json.view 'panels/split-v1'
|
46
|
+
# json.width 'matchParent'
|
47
|
+
|
48
|
+
# json.rightViews do
|
49
|
+
# json.child! do
|
50
|
+
# json.view 'button-v1'
|
51
|
+
# json.text 'Submit'
|
52
|
+
# json.onClick do
|
53
|
+
# json.action 'forms/submit-v1'
|
54
|
+
|
55
|
+
# # json.action 'forms/encode-v1'
|
56
|
+
# # json.paramName 'formData'
|
57
|
+
# # json.onEncoded do
|
58
|
+
# # json.action 'http/post-v1'
|
59
|
+
# # json.url json_ui_garage_url(path: 'forms/basic_post')
|
60
|
+
# # end
|
61
|
+
# end
|
62
|
+
# end
|
63
|
+
# end
|
64
|
+
# end
|
65
|
+
# end
|
@@ -7,32 +7,40 @@ options = {
|
|
7
7
|
method: 'post',
|
8
8
|
padding: { top: 12, left: 20, right: 20, bottom: 12 }
|
9
9
|
}
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
json.value 'VALUE_OF_THE_PREVIOUS_IMAGE_WHICH_IS_USEFUL_WHEN_UPDATING_EXISTING_MODEL'
|
18
|
-
|
19
|
-
json.accepts "image/*"
|
20
|
-
# json.s3_bucket 'BUCKET_NAME'
|
21
|
-
# json.s3_path_prefix 'uploads/images'
|
22
|
-
json.s3_direct_upload_url rails_direct_uploads_path
|
23
|
-
|
24
|
-
# This is for security so we don't have to reveal key/secret in the json api
|
25
|
-
# json.s3_signature_url 'URL_TO_OUR_SERVER_TO_GET_GENERATED_SIGNATURE'
|
26
|
-
|
27
|
-
json.file_size_limit 5000 # 5 MB
|
28
|
-
json.file_size_limit_alert_text 'Too big!'
|
29
|
-
end
|
30
|
-
|
31
|
-
json.child! do
|
32
|
-
json.view 'button-v1'
|
33
|
-
json.text 'Submit'
|
34
|
-
json.onClick do
|
35
|
-
json.action 'forms/submit-v1'
|
36
|
-
end
|
37
|
-
end
|
10
|
+
|
11
|
+
json_ui_page json do |page|
|
12
|
+
page.form options.merge(childViews: ->(form) do
|
13
|
+
form.fields_file name: 'user[photo]', width: 'matchParent', label: 'Photo', accepts: "image/*", s3_direct_upload_url: rails_direct_uploads_path, file_size_limit: 5000, file_size_limit_alert_text: 'Too big!', value: 'VALUE_OF_THE_PREVIOUS_IMAGE_WHICH_IS_USEFUL_WHEN_UPDATING_EXISTING_MODEL'
|
14
|
+
form.button text: 'Submit', onClick: ->(action) { action.forms_submit }
|
15
|
+
end)
|
38
16
|
end
|
17
|
+
|
18
|
+
# json_body_with_form json, nil, nil, options do
|
19
|
+
# json.child! do
|
20
|
+
# json.view 'fields/file-v1'
|
21
|
+
# json.name 'user[photo]'
|
22
|
+
# json.width 'matchParent'
|
23
|
+
# json.label 'Photo'
|
24
|
+
|
25
|
+
# json.value 'VALUE_OF_THE_PREVIOUS_IMAGE_WHICH_IS_USEFUL_WHEN_UPDATING_EXISTING_MODEL'
|
26
|
+
|
27
|
+
# json.accepts "image/*"
|
28
|
+
# # json.s3_bucket 'BUCKET_NAME'
|
29
|
+
# # json.s3_path_prefix 'uploads/images'
|
30
|
+
# json.s3_direct_upload_url rails_direct_uploads_path
|
31
|
+
|
32
|
+
# # This is for security so we don't have to reveal key/secret in the json api
|
33
|
+
# # json.s3_signature_url 'URL_TO_OUR_SERVER_TO_GET_GENERATED_SIGNATURE'
|
34
|
+
|
35
|
+
# json.file_size_limit 5000 # 5 MB
|
36
|
+
# json.file_size_limit_alert_text 'Too big!'
|
37
|
+
# end
|
38
|
+
|
39
|
+
# json.child! do
|
40
|
+
# json.view 'button-v1'
|
41
|
+
# json.text 'Submit'
|
42
|
+
# json.onClick do
|
43
|
+
# json.action 'forms/submit-v1'
|
44
|
+
# end
|
45
|
+
# end
|
46
|
+
# end
|
@@ -2,47 +2,59 @@ json.title 'Forms'
|
|
2
2
|
|
3
3
|
render "#{@path_prefix}/nav_menu", json: json
|
4
4
|
|
5
|
-
footer = Jbuilder.new do |json|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
end
|
5
|
+
# footer = Jbuilder.new do |json|
|
6
|
+
# json.padding(top: 12, left: 20, right: 80, bottom: 12)
|
7
|
+
# json.backgroundColor '#b3bac2'
|
8
|
+
# json.subviews do
|
9
|
+
# json.child! do
|
10
|
+
# json.view 'label-v1'
|
11
|
+
# json.text 'Demonstrates the use Floating Action Button on a form with footer'
|
12
|
+
# end
|
13
|
+
# end
|
14
|
+
# end
|
15
15
|
|
16
16
|
options = {
|
17
17
|
url: json_ui_garage_url(path: 'forms/generic_post'),
|
18
18
|
method: 'post',
|
19
19
|
padding: { top: 12, left: 20, right: 20, bottom: 12 }
|
20
20
|
}
|
21
|
-
json_body_with_form json, nil, footer, options do
|
22
|
-
30.times do |i|
|
23
|
-
json.child! do
|
24
|
-
json.view 'fields/text-v1'
|
25
|
-
json.name "user[field#{i}]"
|
26
|
-
json.width 'matchParent'
|
27
|
-
json.label "Field#{i}"
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
json.child! do
|
32
|
-
json.view 'button-v1'
|
33
|
-
json.text 'Submit'
|
34
|
-
json.onClick do
|
35
|
-
json.action 'forms/submit-v1'
|
36
|
-
end
|
37
|
-
end
|
38
21
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
22
|
+
json_ui_page json do |page|
|
23
|
+
page.form options.merge(childViews: ->(form) do
|
24
|
+
form.label text: 'Demonstrates the use Floating Action Button on a form with footer'
|
25
|
+
30.times do |i|
|
26
|
+
form.fields_text name: "user[field#{i}]", width: 'matchParent', label: "Field#{i}"
|
43
27
|
end
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
end
|
28
|
+
form.button text: 'Submit', onClick: ->(action) { action.forms_submit }
|
29
|
+
form.fab icon: 'send', onClick: ->(action) { action.forms_submit }
|
30
|
+
end)
|
48
31
|
end
|
32
|
+
|
33
|
+
# json_body_with_form json, nil, footer, options do
|
34
|
+
# 30.times do |i|
|
35
|
+
# json.child! do
|
36
|
+
# json.view 'fields/text-v1'
|
37
|
+
# json.name "user[field#{i}]"
|
38
|
+
# json.width 'matchParent'
|
39
|
+
# json.label "Field#{i}"
|
40
|
+
# end
|
41
|
+
# end
|
42
|
+
|
43
|
+
# json.child! do
|
44
|
+
# json.view 'button-v1'
|
45
|
+
# json.text 'Submit'
|
46
|
+
# json.onClick do
|
47
|
+
# json.action 'forms/submit-v1'
|
48
|
+
# end
|
49
|
+
# end
|
50
|
+
|
51
|
+
# json.child! do
|
52
|
+
# json.view 'fab-v1'
|
53
|
+
# json.icon do
|
54
|
+
# json.materialName 'send'
|
55
|
+
# end
|
56
|
+
# json.onClick do
|
57
|
+
# json.action 'forms/submit-v1'
|
58
|
+
# end
|
59
|
+
# end
|
60
|
+
# end
|
@@ -2,42 +2,62 @@ json.title 'Forms'
|
|
2
2
|
|
3
3
|
render "#{@path_prefix}/nav_menu", json: json
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
json.onClick do
|
11
|
-
json.action 'windows/open-v1'
|
12
|
-
json.url json_ui_garage_url(path: 'forms/basic')
|
5
|
+
json_ui_page json do |page|
|
6
|
+
page.list firstSection: ->(section) do
|
7
|
+
section.rows do |row|
|
8
|
+
row.thumbnail title: 'Basic', onClick: ->(action) do
|
9
|
+
action.windows_open url: json_ui_garage_url(path: 'forms/basic')
|
13
10
|
end
|
14
|
-
|
15
|
-
|
16
|
-
json.child! do
|
17
|
-
json.template 'thumbnail-v1'
|
18
|
-
json.title 'Submit Indicator'
|
19
|
-
json.onClick do
|
20
|
-
json.action 'windows/open-v1'
|
21
|
-
json.url json_ui_garage_url(path: 'forms/submit_indicator')
|
11
|
+
row.thumbnail title: 'Submit Indicator', onClick: ->(action) do
|
12
|
+
action.windows_open url: json_ui_garage_url(path: 'forms/submit_indicator')
|
22
13
|
end
|
23
|
-
|
24
|
-
|
25
|
-
json.child! do
|
26
|
-
json.template 'thumbnail-v1'
|
27
|
-
json.title 'Floating Submit'
|
28
|
-
json.onClick do
|
29
|
-
json.action 'windows/open-v1'
|
30
|
-
json.url json_ui_garage_url(path: 'forms/floating_submit')
|
14
|
+
row.thumbnail title: 'Floating Submit', onClick: ->(action) do
|
15
|
+
action.windows_open url: json_ui_garage_url(path: 'forms/floating_submit')
|
31
16
|
end
|
32
|
-
|
33
|
-
|
34
|
-
json.child! do
|
35
|
-
json.template 'thumbnail-v1'
|
36
|
-
json.title 'File Upload'
|
37
|
-
json.onClick do
|
38
|
-
json.action 'windows/open-v1'
|
39
|
-
json.url json_ui_garage_url(path: 'forms/file_upload')
|
17
|
+
row.thumbnail title: 'File Upload', onClick: ->(action) do
|
18
|
+
action.windows_open url: json_ui_garage_url(path: 'forms/file_upload')
|
40
19
|
end
|
41
20
|
end
|
21
|
+
|
42
22
|
end
|
43
23
|
end
|
24
|
+
|
25
|
+
# json_body_with_list json do
|
26
|
+
# json.rows do
|
27
|
+
# json.child! do
|
28
|
+
# json.template 'thumbnail-v1'
|
29
|
+
# json.title 'Basic'
|
30
|
+
# json.onClick do
|
31
|
+
# json.action 'windows/open-v1'
|
32
|
+
# json.url json_ui_garage_url(path: 'forms/basic')
|
33
|
+
# end
|
34
|
+
# end
|
35
|
+
|
36
|
+
# json.child! do
|
37
|
+
# json.template 'thumbnail-v1'
|
38
|
+
# json.title 'Submit Indicator'
|
39
|
+
# json.onClick do
|
40
|
+
# json.action 'windows/open-v1'
|
41
|
+
# json.url json_ui_garage_url(path: 'forms/submit_indicator')
|
42
|
+
# end
|
43
|
+
# end
|
44
|
+
|
45
|
+
# json.child! do
|
46
|
+
# json.template 'thumbnail-v1'
|
47
|
+
# json.title 'Floating Submit'
|
48
|
+
# json.onClick do
|
49
|
+
# json.action 'windows/open-v1'
|
50
|
+
# json.url json_ui_garage_url(path: 'forms/floating_submit')
|
51
|
+
# end
|
52
|
+
# end
|
53
|
+
|
54
|
+
# json.child! do
|
55
|
+
# json.template 'thumbnail-v1'
|
56
|
+
# json.title 'File Upload'
|
57
|
+
# json.onClick do
|
58
|
+
# json.action 'windows/open-v1'
|
59
|
+
# json.url json_ui_garage_url(path: 'forms/file_upload')
|
60
|
+
# end
|
61
|
+
# end
|
62
|
+
# end
|
63
|
+
# end
|
@@ -7,26 +7,36 @@ options = {
|
|
7
7
|
method: 'post',
|
8
8
|
padding: { top: 12, left: 20, right: 20, bottom: 12 }
|
9
9
|
}
|
10
|
-
json_body_with_form json, nil, nil, options do
|
11
|
-
json.child! do
|
12
|
-
json.view 'fields/text-v1'
|
13
|
-
json.name 'user[name]'
|
14
|
-
json.width 'matchParent'
|
15
|
-
json.label 'Name'
|
16
|
-
end
|
17
10
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
json.right do
|
24
|
-
json.view 'button-v1'
|
25
|
-
json.text 'Submit'
|
26
|
-
json.onClick do
|
27
|
-
json.action 'forms/submit-v1'
|
28
|
-
end
|
29
|
-
end
|
11
|
+
json_ui_page json do |page|
|
12
|
+
page.form options.merge(childViews: ->(form) do
|
13
|
+
form.fields_text name: 'user[name]', width: 'matchParent', label: 'Name'
|
14
|
+
form.panels_split width: 'matchParent', rightViews: ->(split) do
|
15
|
+
split.button text: 'Submit', onClick: ->(action) { action.forms_submit }
|
30
16
|
end
|
31
|
-
end
|
17
|
+
end)
|
32
18
|
end
|
19
|
+
|
20
|
+
# json_body_with_form json, nil, nil, options do
|
21
|
+
# json.child! do
|
22
|
+
# json.view 'fields/text-v1'
|
23
|
+
# json.name 'user[name]'
|
24
|
+
# json.width 'matchParent'
|
25
|
+
# json.label 'Name'
|
26
|
+
# end
|
27
|
+
|
28
|
+
# json.child! do
|
29
|
+
# json.view 'panels/split-v1'
|
30
|
+
# json.width 'matchParent'
|
31
|
+
|
32
|
+
# json.content do
|
33
|
+
# json.right do
|
34
|
+
# json.view 'button-v1'
|
35
|
+
# json.text 'Submit'
|
36
|
+
# json.onClick do
|
37
|
+
# json.action 'forms/submit-v1'
|
38
|
+
# end
|
39
|
+
# end
|
40
|
+
# end
|
41
|
+
# end
|
42
|
+
# end
|
@@ -2,24 +2,38 @@ json.title 'Lists'
|
|
2
2
|
|
3
3
|
render "#{@path_prefix}/nav_menu", json: json
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
json.onClick do
|
11
|
-
json.action 'windows/open-v1'
|
12
|
-
json.url json_ui_garage_url(path: 'lists/templating')
|
5
|
+
json_ui_page json do |page|
|
6
|
+
page.list firstSection: ->(section) do
|
7
|
+
section.rows do |row|
|
8
|
+
row.thumbnail title: 'Templating', onClick: ->(action) do
|
9
|
+
action.windows_open url: json_ui_garage_url(path: 'lists/templating')
|
13
10
|
end
|
14
|
-
|
15
|
-
|
16
|
-
json.child! do
|
17
|
-
json.template 'thumbnail-v1'
|
18
|
-
json.title 'Infinite Scroll'
|
19
|
-
json.onClick do
|
20
|
-
json.action 'windows/open-v1'
|
21
|
-
json.url json_ui_garage_url(path: 'lists/infinite_scroll')
|
11
|
+
row.thumbnail title: 'Infinite Scroll', onClick: ->(action) do
|
12
|
+
action.windows_open url: json_ui_garage_url(path: 'lists/infinite_scroll')
|
22
13
|
end
|
23
14
|
end
|
15
|
+
|
24
16
|
end
|
25
17
|
end
|
18
|
+
|
19
|
+
# json_body_with_list json do
|
20
|
+
# json.rows do
|
21
|
+
# json.child! do
|
22
|
+
# json.template 'thumbnail-v1'
|
23
|
+
# json.title 'Templating'
|
24
|
+
# json.onClick do
|
25
|
+
# json.action 'windows/open-v1'
|
26
|
+
# json.url json_ui_garage_url(path: 'lists/templating')
|
27
|
+
# end
|
28
|
+
# end
|
29
|
+
|
30
|
+
# json.child! do
|
31
|
+
# json.template 'thumbnail-v1'
|
32
|
+
# json.title 'Infinite Scroll'
|
33
|
+
# json.onClick do
|
34
|
+
# json.action 'windows/open-v1'
|
35
|
+
# json.url json_ui_garage_url(path: 'lists/infinite_scroll')
|
36
|
+
# end
|
37
|
+
# end
|
38
|
+
# end
|
39
|
+
# end
|
@@ -2,44 +2,61 @@ json.title 'Lists'
|
|
2
2
|
|
3
3
|
render "#{@path_prefix}/nav_menu", json: json
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
json.view 'label-v1'
|
10
|
-
json.text 'Section Header'
|
11
|
-
end
|
5
|
+
json_ui_page json do |page|
|
6
|
+
page.list firstSection: ->(section) do
|
7
|
+
section.header(padding: { top: 12, left: 16, right: 16, bottom: 12 }) do |header|
|
8
|
+
header.label text: 'Section Header'
|
12
9
|
end
|
13
|
-
end
|
14
10
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
json.title 'Click me'
|
19
|
-
json.onClick do
|
20
|
-
json.action 'dialogs/alert-v1'
|
21
|
-
json.message 'Perform action'
|
11
|
+
section.rows do |row|
|
12
|
+
row.thumbnail title: 'Click me', onClick: ->(action) do
|
13
|
+
action.dialogs_alert message: 'Perform action'
|
22
14
|
end
|
15
|
+
row.thumbnail title: 'Item with subtitle', subtitle: 'Item subtitle'
|
16
|
+
row.thumbnail title: 'Item with subtitle', subtitle: 'Item subtitle', imageUrl: @sample_image_url
|
17
|
+
row.featured title: 'Item with subtitle', subtitle: 'Item subtitle', imageUrl: @sample_image_url
|
23
18
|
end
|
19
|
+
end
|
20
|
+
end
|
24
21
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
22
|
+
# json_body_with_list json do
|
23
|
+
# json.header do
|
24
|
+
# json.subviews do
|
25
|
+
# json.child! do
|
26
|
+
# json.view 'label-v1'
|
27
|
+
# json.text 'Section Header'
|
28
|
+
# end
|
29
|
+
# end
|
30
|
+
# end
|
30
31
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
32
|
+
# json.rows do
|
33
|
+
# json.child! do
|
34
|
+
# json.template 'thumbnail-v1'
|
35
|
+
# json.title 'Click me'
|
36
|
+
# json.onClick do
|
37
|
+
# json.action 'dialogs/alert-v1'
|
38
|
+
# json.message 'Perform action'
|
39
|
+
# end
|
40
|
+
# end
|
37
41
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
42
|
+
# json.child! do
|
43
|
+
# json.template 'thumbnail-v1'
|
44
|
+
# json.title 'Item with subtitle'
|
45
|
+
# json.subtitle 'Item subtitle'
|
46
|
+
# end
|
47
|
+
|
48
|
+
# json.child! do
|
49
|
+
# json.template 'thumbnail-v1'
|
50
|
+
# json.title 'Item with thumbnail image'
|
51
|
+
# json.subtitle 'Item subtitle'
|
52
|
+
# json.imageUrl @sample_image_url
|
53
|
+
# end
|
54
|
+
|
55
|
+
# json.child! do
|
56
|
+
# json.template 'featured-v1'
|
57
|
+
# json.title 'Featured with featured image'
|
58
|
+
# json.subtitle 'Item subtitle'
|
59
|
+
# json.imageUrl @sample_image_url
|
60
|
+
# end
|
61
|
+
# end
|
62
|
+
# end
|
@@ -2,20 +2,28 @@ json.title 'Views'
|
|
2
2
|
|
3
3
|
render "#{@path_prefix}/nav_menu", json: json
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
json.child! do
|
11
|
-
json.view 'h1-v1'
|
12
|
-
json.text 'Map'
|
13
|
-
end
|
14
|
-
json.child! do
|
15
|
-
json.view 'map-v1'
|
16
|
-
json.latitude 13.4837
|
17
|
-
json.longitude 144.7917
|
18
|
-
json.zoom 11
|
19
|
-
json.height '250px'
|
5
|
+
json_ui_page json do |page|
|
6
|
+
page.scroll childViews: ->(scroll) do
|
7
|
+
scroll.label text: "\n"
|
8
|
+
scroll.h1 text: 'Map'
|
9
|
+
scroll.map latitude: 13.4837, longitude: 144.7917, zoom: 11, height: '250px'
|
20
10
|
end
|
21
11
|
end
|
12
|
+
|
13
|
+
# json_body_with_scroll json do
|
14
|
+
# json.child! do
|
15
|
+
# json.view 'label-v1'
|
16
|
+
# json.text "\n"
|
17
|
+
# end
|
18
|
+
# json.child! do
|
19
|
+
# json.view 'h1-v1'
|
20
|
+
# json.text 'Map'
|
21
|
+
# end
|
22
|
+
# json.child! do
|
23
|
+
# json.view 'map-v1'
|
24
|
+
# json.latitude 13.4837
|
25
|
+
# json.longitude 144.7917
|
26
|
+
# json.zoom 11
|
27
|
+
# json.height '250px'
|
28
|
+
# end
|
29
|
+
# end
|
@@ -5,96 +5,127 @@ render "#{@path_prefix}/nav_menu", json: json
|
|
5
5
|
image_url1 = 'http://ichef.bbci.co.uk/news/976/cpsprodpb/18106/production/_97266589_gettyimages-474547165.jpg'
|
6
6
|
image_url2 = 'https://s.abcnews.com/images/International/Guam03-gty-jrl-170809_16x9_992.jpg'
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
end
|
17
|
-
json.child! do
|
18
|
-
json.view 'panels/carousel-v1'
|
19
|
-
json.childViews do
|
20
|
-
json.child! do
|
21
|
-
json.view 'label-v1'
|
22
|
-
json.text "Item 1"
|
23
|
-
end
|
8
|
+
json_ui_page json do |page|
|
9
|
+
page.scroll childViews: ->(scroll) do
|
10
|
+
scroll.label text: "\n"
|
11
|
+
scroll.h1 text: 'Carousel with labels'
|
12
|
+
scroll.panels_carousel width: 'matchParent', childViews: ->(carousel) do
|
13
|
+
carousel.label text: 'Item 1'
|
14
|
+
carousel.label text: 'Item 2'
|
15
|
+
end
|
24
16
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
17
|
+
scroll.label text: "\n"
|
18
|
+
scroll.h1 text: 'Carousel with images'
|
19
|
+
scroll.panels_carousel width: 'matchParent', childViews: ->(carousel) do
|
20
|
+
carousel.image url: image_url1, width: 'matchParent'
|
21
|
+
carousel.image url: image_url2, width: 'matchParent'
|
29
22
|
end
|
30
|
-
end
|
31
23
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
json.text 'Carousel with images'
|
39
|
-
end
|
40
|
-
json.child! do
|
41
|
-
json.view 'panels/carousel-v1'
|
42
|
-
json.childViews do
|
43
|
-
json.child! do
|
44
|
-
json.view 'image-v1'
|
45
|
-
json.url image_url1
|
24
|
+
scroll.label text: "\n"
|
25
|
+
scroll.h1 text: 'Carousel with complex layout'
|
26
|
+
scroll.panels_carousel width: 'matchParent', childViews: ->(carousel) do
|
27
|
+
carousel.panels_vertical childViews: ->(panel) do
|
28
|
+
panel.h3 text: 'Item 1'
|
29
|
+
panel.image url: image_url1, width: 'matchParent'
|
46
30
|
end
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
json.url image_url2
|
31
|
+
carousel.panels_vertical childViews: ->(panel) do
|
32
|
+
panel.h3 text: 'Item 2'
|
33
|
+
panel.image url: image_url2, width: 'matchParent'
|
51
34
|
end
|
52
35
|
end
|
53
36
|
end
|
37
|
+
end
|
54
38
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
json.view 'h3-v1'
|
72
|
-
json.text "Item 1"
|
73
|
-
end
|
74
|
-
json.child! do
|
75
|
-
json.view 'image-v1'
|
76
|
-
json.width 'matchParent'
|
77
|
-
json.url image_url1
|
78
|
-
end
|
79
|
-
end
|
80
|
-
end
|
39
|
+
# json_body_with_scroll json do
|
40
|
+
# json.child! do
|
41
|
+
# json.view 'label-v1'
|
42
|
+
# json.text "\n"
|
43
|
+
# end
|
44
|
+
# json.child! do
|
45
|
+
# json.view 'h1-v1'
|
46
|
+
# json.text 'Carousel with labels'
|
47
|
+
# end
|
48
|
+
# json.child! do
|
49
|
+
# json.view 'panels/carousel-v1'
|
50
|
+
# json.childViews do
|
51
|
+
# json.child! do
|
52
|
+
# json.view 'label-v1'
|
53
|
+
# json.text "Item 1"
|
54
|
+
# end
|
81
55
|
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
end
|
89
|
-
json.child! do
|
90
|
-
json.view 'image-v1'
|
91
|
-
json.width 'matchParent'
|
92
|
-
json.url image_url2
|
93
|
-
end
|
94
|
-
end
|
95
|
-
end
|
56
|
+
# json.child! do
|
57
|
+
# json.view 'label-v1'
|
58
|
+
# json.text "Item 2"
|
59
|
+
# end
|
60
|
+
# end
|
61
|
+
# end
|
96
62
|
|
97
|
-
|
98
|
-
|
63
|
+
# json.child! do
|
64
|
+
# json.view 'label-v1'
|
65
|
+
# json.text "\n"
|
66
|
+
# end
|
67
|
+
# json.child! do
|
68
|
+
# json.view 'h1-v1'
|
69
|
+
# json.text 'Carousel with images'
|
70
|
+
# end
|
71
|
+
# json.child! do
|
72
|
+
# json.view 'panels/carousel-v1'
|
73
|
+
# json.childViews do
|
74
|
+
# json.child! do
|
75
|
+
# json.view 'image-v1'
|
76
|
+
# json.url image_url1
|
77
|
+
# end
|
99
78
|
|
100
|
-
|
79
|
+
# json.child! do
|
80
|
+
# json.view 'image-v1'
|
81
|
+
# json.url image_url2
|
82
|
+
# end
|
83
|
+
# end
|
84
|
+
# end
|
85
|
+
|
86
|
+
# json.child! do
|
87
|
+
# json.view 'label-v1'
|
88
|
+
# json.text "\n"
|
89
|
+
# end
|
90
|
+
# json.child! do
|
91
|
+
# json.view 'h1-v1'
|
92
|
+
# json.text 'Carousel with complex layout'
|
93
|
+
# end
|
94
|
+
# json.child! do
|
95
|
+
# json.view 'panels/carousel-v1'
|
96
|
+
# json.width 'matchParent'
|
97
|
+
# json.childViews do
|
98
|
+
# json.child! do
|
99
|
+
# json.view 'panels/vertical-v1'
|
100
|
+
# json.childViews do
|
101
|
+
# json.child! do
|
102
|
+
# json.view 'h3-v1'
|
103
|
+
# json.text "Item 1"
|
104
|
+
# end
|
105
|
+
# json.child! do
|
106
|
+
# json.view 'image-v1'
|
107
|
+
# json.width 'matchParent'
|
108
|
+
# json.url image_url1
|
109
|
+
# end
|
110
|
+
# end
|
111
|
+
# end
|
112
|
+
|
113
|
+
# json.child! do
|
114
|
+
# json.view 'panels/vertical-v1'
|
115
|
+
# json.childViews do
|
116
|
+
# json.child! do
|
117
|
+
# json.view 'h3-v1'
|
118
|
+
# json.text "Item 2"
|
119
|
+
# end
|
120
|
+
# json.child! do
|
121
|
+
# json.view 'image-v1'
|
122
|
+
# json.width 'matchParent'
|
123
|
+
# json.url image_url2
|
124
|
+
# end
|
125
|
+
# end
|
126
|
+
# end
|
127
|
+
|
128
|
+
# end
|
129
|
+
# end
|
130
|
+
|
131
|
+
# end
|
@@ -2,55 +2,76 @@ json.title 'Views'
|
|
2
2
|
|
3
3
|
render "#{@path_prefix}/nav_menu", json: json
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
json.view 'image-v1'
|
16
|
-
json.width 100
|
17
|
-
json.url @sample_image_url
|
18
|
-
end
|
19
|
-
|
20
|
-
json.child! do
|
21
|
-
json.view 'label-v1'
|
22
|
-
json.text "\n"
|
23
|
-
end
|
24
|
-
json.child! do
|
25
|
-
json.view 'h1-v1'
|
26
|
-
json.text 'Image with base64 data'
|
27
|
-
end
|
28
|
-
json.child! do
|
29
|
-
json.view 'image-v1'
|
30
|
-
json.height 100
|
31
|
-
json.base64Data 'data:image/gif;base64,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'
|
32
|
-
end
|
5
|
+
json_ui_page json do |page|
|
6
|
+
page.scroll childViews: ->(scroll) do
|
7
|
+
scroll.label text: "\n"
|
8
|
+
scroll.h1 text: 'Image with URL'
|
9
|
+
scroll.image width: 100, url: @sample_image_url
|
10
|
+
scroll.label text: "\n"
|
11
|
+
scroll.h1 text: 'Image with base64 data'
|
12
|
+
scroll.image height: 100, base64Data: 'data:image/gif;base64,R0lGODlhPQBEAPeoAJosM//AwO/AwHVYZ/z595kzAP/s7P+goOXMv8+fhw/v739/f+8PD98fH/8mJl+fn/9ZWb8/PzWlwv///6wWGbImAPgTEMImIN9gUFCEm/gDALULDN8PAD6atYdCTX9gUNKlj8wZAKUsAOzZz+UMAOsJAP/Z2ccMDA8PD/95eX5NWvsJCOVNQPtfX/8zM8+QePLl38MGBr8JCP+zs9myn/8GBqwpAP/GxgwJCPny78lzYLgjAJ8vAP9fX/+MjMUcAN8zM/9wcM8ZGcATEL+QePdZWf/29uc/P9cmJu9MTDImIN+/r7+/vz8/P8VNQGNugV8AAF9fX8swMNgTAFlDOICAgPNSUnNWSMQ5MBAQEJE3QPIGAM9AQMqGcG9vb6MhJsEdGM8vLx8fH98AANIWAMuQeL8fABkTEPPQ0OM5OSYdGFl5jo+Pj/+pqcsTE78wMFNGQLYmID4dGPvd3UBAQJmTkP+8vH9QUK+vr8ZWSHpzcJMmILdwcLOGcHRQUHxwcK9PT9DQ0O/v70w5MLypoG8wKOuwsP/g4P/Q0IcwKEswKMl8aJ9fX2xjdOtGRs/Pz+Dg4GImIP8gIH0sKEAwKKmTiKZ8aB/f39Wsl+LFt8dgUE9PT5x5aHBwcP+AgP+WltdgYMyZfyywz78AAAAAAAD///8AAP9mZv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAKgALAAAAAA9AEQAAAj/AFEJHEiwoMGDCBMqXMiwocAbBww4nEhxoYkUpzJGrMixogkfGUNqlNixJEIDB0SqHGmyJSojM1bKZOmyop0gM3Oe2liTISKMOoPy7GnwY9CjIYcSRYm0aVKSLmE6nfq05QycVLPuhDrxBlCtYJUqNAq2bNWEBj6ZXRuyxZyDRtqwnXvkhACDV+euTeJm1Ki7A73qNWtFiF+/gA95Gly2CJLDhwEHMOUAAuOpLYDEgBxZ4GRTlC1fDnpkM+fOqD6DDj1aZpITp0dtGCDhr+fVuCu3zlg49ijaokTZTo27uG7Gjn2P+hI8+PDPERoUB318bWbfAJ5sUNFcuGRTYUqV/3ogfXp1rWlMc6awJjiAAd2fm4ogXjz56aypOoIde4OE5u/F9x199dlXnnGiHZWEYbGpsAEA3QXYnHwEFliKAgswgJ8LPeiUXGwedCAKABACCN+EA1pYIIYaFlcDhytd51sGAJbo3onOpajiihlO92KHGaUXGwWjUBChjSPiWJuOO/LYIm4v1tXfE6J4gCSJEZ7YgRYUNrkji9P55sF/ogxw5ZkSqIDaZBV6aSGYq/lGZplndkckZ98xoICbTcIJGQAZcNmdmUc210hs35nCyJ58fgmIKX5RQGOZowxaZwYA+JaoKQwswGijBV4C6SiTUmpphMspJx9unX4KaimjDv9aaXOEBteBqmuuxgEHoLX6Kqx+yXqqBANsgCtit4FWQAEkrNbpq7HSOmtwag5w57GrmlJBASEU18ADjUYb3ADTinIttsgSB1oJFfA63bduimuqKB1keqwUhoCSK374wbujvOSu4QG6UvxBRydcpKsav++Ca6G8A6Pr1x2kVMyHwsVxUALDq/krnrhPSOzXG1lUTIoffqGR7Goi2MAxbv6O2kEG56I7CSlRsEFKFVyovDJoIRTg7sugNRDGqCJzJgcKE0ywc0ELm6KBCCJo8DIPFeCWNGcyqNFE06ToAfV0HBRgxsvLThHn1oddQMrXj5DyAQgjEHSAJMWZwS3HPxT/QMbabI/iBCliMLEJKX2EEkomBAUCxRi42VDADxyTYDVogV+wSChqmKxEKCDAYFDFj4OmwbY7bDGdBhtrnTQYOigeChUmc1K3QTnAUfEgGFgAWt88hKA6aCRIXhxnQ1yg3BCayK44EWdkUQcBByEQChFXfCB776aQsG0BIlQgQgE8qO26X1h8cEUep8ngRBnOy74E9QgRgEAC8SvOfQkh7FDBDmS43PmGoIiKUUEGkMEC/PJHgxw0xH74yx/3XnaYRJgMB8obxQW6kL9QYEJ0FIFgByfIL7/IQAlvQwEpnAC7DtLNJCKUoO/w45c44GwCXiAFB/OXAATQryUxdN4LfFiwgjCNYg+kYMIEFkCKDs6PKAIJouyGWMS1FSKJOMRB/BoIxYJIUXFUxNwoIkEKPAgCBZSQHQ1A2EWDfDEUVLyADj5AChSIQW6gu10bE/JG2VnCZGfo4R4d0sdQoBAHhPjhIB94v/wRoRKQWGRHgrhGSQJxCS+0pCZbEhAAOw=='
|
13
|
+
scroll.label text: "\n"
|
14
|
+
scroll.h1 text: 'QR Code as base64 image'
|
33
15
|
|
34
|
-
|
35
|
-
json.view 'label-v1'
|
36
|
-
json.text "\n"
|
37
|
-
end
|
38
|
-
json.child! do
|
39
|
-
json.view 'h1-v1'
|
40
|
-
json.text 'QR Code as base64 image'
|
41
|
-
end
|
42
|
-
|
43
|
-
if defined? RQRCode
|
44
|
-
json.child! do
|
45
|
-
json.view 'image-v1'
|
16
|
+
if defined? RQRCode
|
46
17
|
qr_content = { version: 1, message: 'This is a test' }
|
47
18
|
qr = RQRCode::QRCode.new(qr_content.to_json)
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
json.child! do
|
52
|
-
json.view 'label-v1'
|
53
|
-
json.text 'Include "rqrcode" gem to enable this'
|
19
|
+
scroll.image base64Data: qr.as_png(size: 300).to_data_url
|
20
|
+
else
|
21
|
+
scroll.label text: 'Include "rqrcode" gem to enable this'
|
54
22
|
end
|
55
23
|
end
|
56
24
|
end
|
25
|
+
|
26
|
+
# json_body_with_scroll json do
|
27
|
+
# json.child! do
|
28
|
+
# json.view 'label-v1'
|
29
|
+
# json.text "\n"
|
30
|
+
# end
|
31
|
+
# json.child! do
|
32
|
+
# json.view 'h1-v1'
|
33
|
+
# json.text 'Image with URL'
|
34
|
+
# end
|
35
|
+
# json.child! do
|
36
|
+
# json.view 'image-v1'
|
37
|
+
# json.width 100
|
38
|
+
# json.url @sample_image_url
|
39
|
+
# end
|
40
|
+
|
41
|
+
# json.child! do
|
42
|
+
# json.view 'label-v1'
|
43
|
+
# json.text "\n"
|
44
|
+
# end
|
45
|
+
# json.child! do
|
46
|
+
# json.view 'h1-v1'
|
47
|
+
# json.text 'Image with base64 data'
|
48
|
+
# end
|
49
|
+
# json.child! do
|
50
|
+
# json.view 'image-v1'
|
51
|
+
# json.height 100
|
52
|
+
# json.base64Data 'data:image/gif;base64,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'
|
53
|
+
# end
|
54
|
+
|
55
|
+
# json.child! do
|
56
|
+
# json.view 'label-v1'
|
57
|
+
# json.text "\n"
|
58
|
+
# end
|
59
|
+
# json.child! do
|
60
|
+
# json.view 'h1-v1'
|
61
|
+
# json.text 'QR Code as base64 image'
|
62
|
+
# end
|
63
|
+
|
64
|
+
# if defined? RQRCode
|
65
|
+
# json.child! do
|
66
|
+
# json.view 'image-v1'
|
67
|
+
# qr_content = { version: 1, message: 'This is a test' }
|
68
|
+
# qr = RQRCode::QRCode.new(qr_content.to_json)
|
69
|
+
# json.base64Data qr.as_png(size: 300).to_data_url
|
70
|
+
# end
|
71
|
+
# else
|
72
|
+
# json.child! do
|
73
|
+
# json.view 'label-v1'
|
74
|
+
# json.text 'Include "rqrcode" gem to enable this'
|
75
|
+
# end
|
76
|
+
# end
|
77
|
+
# end
|
@@ -2,33 +2,50 @@ json.title 'Views'
|
|
2
2
|
|
3
3
|
render "#{@path_prefix}/nav_menu", json: json
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
json.onClick do
|
11
|
-
json.action 'windows/open-v1'
|
12
|
-
json.url json_ui_garage_url(path: 'views/basic')
|
5
|
+
json_ui_page json do |page|
|
6
|
+
page.list firstSection: ->(section) do
|
7
|
+
section.rows do |row|
|
8
|
+
row.thumbnail title: 'Basic', onClick: ->(action) do
|
9
|
+
action.windows_open url: json_ui_garage_url(path: 'views/basic')
|
13
10
|
end
|
14
|
-
|
15
|
-
|
16
|
-
json.child! do
|
17
|
-
json.template 'thumbnail-v1'
|
18
|
-
json.title 'Images'
|
19
|
-
json.onClick do
|
20
|
-
json.action 'windows/open-v1'
|
21
|
-
json.url json_ui_garage_url(path: 'views/images')
|
11
|
+
row.thumbnail title: 'Images', onClick: ->(action) do
|
12
|
+
action.windows_open url: json_ui_garage_url(path: 'views/images')
|
22
13
|
end
|
23
|
-
|
24
|
-
|
25
|
-
json.child! do
|
26
|
-
json.template 'thumbnail-v1'
|
27
|
-
json.title 'Carousels'
|
28
|
-
json.onClick do
|
29
|
-
json.action 'windows/open-v1'
|
30
|
-
json.url json_ui_garage_url(path: 'views/carousels')
|
14
|
+
row.thumbnail title: 'Carousel', onClick: ->(action) do
|
15
|
+
action.windows_open url: json_ui_garage_url(path: 'views/carousels')
|
31
16
|
end
|
32
17
|
end
|
18
|
+
|
33
19
|
end
|
34
20
|
end
|
21
|
+
|
22
|
+
# json_body_with_list json do
|
23
|
+
# json.rows do
|
24
|
+
# json.child! do
|
25
|
+
# json.template 'thumbnail-v1'
|
26
|
+
# json.title 'Basic'
|
27
|
+
# json.onClick do
|
28
|
+
# json.action 'windows/open-v1'
|
29
|
+
# json.url json_ui_garage_url(path: 'views/basic')
|
30
|
+
# end
|
31
|
+
# end
|
32
|
+
|
33
|
+
# json.child! do
|
34
|
+
# json.template 'thumbnail-v1'
|
35
|
+
# json.title 'Images'
|
36
|
+
# json.onClick do
|
37
|
+
# json.action 'windows/open-v1'
|
38
|
+
# json.url json_ui_garage_url(path: 'views/images')
|
39
|
+
# end
|
40
|
+
# end
|
41
|
+
|
42
|
+
# json.child! do
|
43
|
+
# json.template 'thumbnail-v1'
|
44
|
+
# json.title 'Carousels'
|
45
|
+
# json.onClick do
|
46
|
+
# json.action 'windows/open-v1'
|
47
|
+
# json.url json_ui_garage_url(path: 'views/carousels')
|
48
|
+
# end
|
49
|
+
# end
|
50
|
+
# end
|
51
|
+
# end
|