glib-web 0.4.65 → 0.4.66
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/view_builder/panels.rb +9 -0
- data/app/views/json_ui/garage/forms/text_validation.json.jbuilder +3 -0
- data/app/views/json_ui/garage/notifications/index.json.jbuilder +55 -9
- data/app/views/json_ui/garage/notifications/web_socket.json.jbuilder +61 -0
- data/app/views/json_ui/garage/panels/responsive.json.jbuilder +1 -1
- data/app/views/json_ui/garage/services/index.json.jbuilder +10 -11
- 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: 79b0d05fad96e500e336fd3705ed09ff53199d4d
|
4
|
+
data.tar.gz: 6cec3284142a09fb31f2d65f797047be7909e769
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c8b9ab890ab1d8826d0839f1363102731a203ad82682e2846cb27a11e0caddb3144f9f10cb87d624a01837deb56a42878e5e81dd1d81e85ff46a1df60551b135
|
7
|
+
data.tar.gz: 5dadd52713ca918d748c1a57d574eb048b0667b4e69dfe9d0d8f764e14589c538d36f70522a95feb27ac3a5a81381f1cf90b2c9bbfa3cb7ac0241b4635602614
|
@@ -1,6 +1,8 @@
|
|
1
1
|
class Glib::JsonUi::ViewBuilder
|
2
2
|
module Panels
|
3
3
|
class Form < View
|
4
|
+
action :onSubmit
|
5
|
+
string :paramNameForFormData
|
4
6
|
# boolean :local
|
5
7
|
|
6
8
|
def is_array_association?(prop)
|
@@ -149,6 +151,7 @@ class Glib::JsonUi::ViewBuilder
|
|
149
151
|
|
150
152
|
class Responsive < View
|
151
153
|
views :childViews
|
154
|
+
string :align
|
152
155
|
end
|
153
156
|
|
154
157
|
class Column < View
|
@@ -188,6 +191,12 @@ class Glib::JsonUi::ViewBuilder
|
|
188
191
|
class Custom < View
|
189
192
|
string :template
|
190
193
|
hash :data
|
194
|
+
|
195
|
+
def content(block)
|
196
|
+
json.data do
|
197
|
+
block.call page.view_builder
|
198
|
+
end
|
199
|
+
end
|
191
200
|
end
|
192
201
|
|
193
202
|
class Ul < View
|
@@ -10,6 +10,9 @@ json_ui_page json do |page|
|
|
10
10
|
form.fields_password name: 'user[password]', width: 'matchParent', label: 'Password'
|
11
11
|
form.fields_textarea name: 'user[textarea]', width: 'matchParent', label: 'Textarea with maxLength', maxLength: 50, validation: { required: { message: 'Required' } }
|
12
12
|
|
13
|
+
options = ['male', 'female'].map { |i| { text: i.humanize, value: i } }
|
14
|
+
form.fields_select name: 'user[gender]', width: 'matchParent', label: 'Gender', validation: { required: { message: 'Required' } }, options: options
|
15
|
+
|
13
16
|
form.spacer height: 20
|
14
17
|
form.fields_stripeToken name: 'user[stripe_token]', width: 'matchParent', publicKey: 'pk_test_TYooMQauvdEDq54NiTphI7jx'
|
15
18
|
|
@@ -1,15 +1,61 @@
|
|
1
1
|
json.title 'Notifications'
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
3
|
+
# json.ws({
|
4
|
+
# "socket" => {
|
5
|
+
# "endpoint" => "/socket/websocket",
|
6
|
+
# "params" => {
|
7
|
+
# "vsn": "2.0.0"
|
8
|
+
# }
|
9
|
+
# },
|
10
|
+
# # "topic" => "room:30",
|
11
|
+
# # "event" => "comments_updated",
|
12
|
+
# "topic" => "links",
|
13
|
+
# "event" => "new_link_added",
|
14
|
+
# "header" => {
|
15
|
+
# "user_id" => 2,
|
16
|
+
# "prev_item_id" => nil,
|
17
|
+
# "last_item_id" => nil
|
18
|
+
# }
|
19
|
+
# })
|
20
|
+
|
21
|
+
page = json_ui_page json
|
22
|
+
render "#{@path_prefix}/nav_menu", json: json, page: page, top_nav: true
|
23
|
+
|
24
|
+
page.list firstSection: ->(section) do
|
25
|
+
section.rows builder: ->(template) do
|
26
|
+
template.thumbnail title: 'Send Desktop Notification', onClick: ->(action) do
|
27
|
+
action.dialogs_notification title: 'Hello World', message: 'This is a notification', onClick: ->(subaction) do
|
28
|
+
subaction.dialogs_alert message: 'Perform action'
|
12
29
|
end
|
13
30
|
end
|
31
|
+
|
32
|
+
template.thumbnail title: 'WebSocket Real-time Update', onClick: ->(action) do
|
33
|
+
action.windows_open url: json_ui_garage_url(path: 'notifications/web_socket')
|
34
|
+
# dialogs_notification title: 'Hello World', message: 'This is a notification', onClick: ->(subaction) do
|
35
|
+
# subaction.dialogs_alert message: 'Perform action'
|
36
|
+
# end
|
37
|
+
end
|
38
|
+
|
39
|
+
# template.thumbnail title: 'Send WebSocket Notification', onClick: ->(action) do
|
40
|
+
# json.action "ws/push"
|
41
|
+
# json.topic "links"
|
42
|
+
# json.event "new_link"
|
43
|
+
# json.payload({
|
44
|
+
# "club_id": "2",
|
45
|
+
# "room_id": "30",
|
46
|
+
# "user_id": "2"
|
47
|
+
# # title: "TITLE",
|
48
|
+
# # url: "URL"
|
49
|
+
# })
|
50
|
+
|
51
|
+
# # "topic": "room:30",
|
52
|
+
# # "event": "create_comment",
|
53
|
+
# # "payload": {
|
54
|
+
# # "club_id": "2",
|
55
|
+
# # "room_id": "30",
|
56
|
+
# # "user_id": "2"
|
57
|
+
# # }
|
58
|
+
|
59
|
+
# end
|
14
60
|
end
|
15
61
|
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
json.title 'Forms'
|
2
|
+
|
3
|
+
page = json_ui_page json
|
4
|
+
render "#{@path_prefix}/nav_menu", json: json, page: page
|
5
|
+
|
6
|
+
json.ws({
|
7
|
+
"socket" => {
|
8
|
+
"endpoint" => "/socket/websocket",
|
9
|
+
"params" => {
|
10
|
+
"vsn": "2.0.0"
|
11
|
+
}
|
12
|
+
},
|
13
|
+
# "topic" => "room:30",
|
14
|
+
# "event" => "comments_updated",
|
15
|
+
"topic" => "links",
|
16
|
+
"event" => "new_link_added",
|
17
|
+
"header" => {
|
18
|
+
"user_id" => 2,
|
19
|
+
"prev_item_id" => nil,
|
20
|
+
"last_item_id" => nil
|
21
|
+
}
|
22
|
+
})
|
23
|
+
|
24
|
+
page.form url: json_ui_garage_url(path: 'forms/basic_post'), method: 'post', padding: glib_json_padding_body, paramNameForFormData: 'formData', onSubmit: ->(action) do
|
25
|
+
# action.dialogs_alert
|
26
|
+
|
27
|
+
json.action "ws/push"
|
28
|
+
json.topic "links"
|
29
|
+
json.event "new_link"
|
30
|
+
json.payload({
|
31
|
+
"club_id": "2",
|
32
|
+
"room_id": "30",
|
33
|
+
"user_id": "2"
|
34
|
+
# title: "TITLE",
|
35
|
+
# url: "URL"
|
36
|
+
})
|
37
|
+
|
38
|
+
# "topic": "room:30",
|
39
|
+
# "event": "create_comment",
|
40
|
+
# "payload": {
|
41
|
+
# "club_id": "2",
|
42
|
+
# "room_id": "30",
|
43
|
+
# "user_id": "2"
|
44
|
+
# }
|
45
|
+
|
46
|
+
end, childViews: ->(form) do
|
47
|
+
form.fields_text name: 'user[name]', width: 'matchParent', label: 'Name'
|
48
|
+
form.fields_password name: 'user[password]', width: 'matchParent', label: 'Password'
|
49
|
+
|
50
|
+
form.panels_split width: 'matchParent', content: ->(split) do
|
51
|
+
# split.left childViews: ->(left) do
|
52
|
+
# if params[:mode] == 'dialog'
|
53
|
+
# left.button styleClass: 'link', text: 'cancel', onClick: ->(action) { action.dialogs_close }
|
54
|
+
# end
|
55
|
+
# end
|
56
|
+
split.right childViews: ->(right) do
|
57
|
+
right.button text: 'Submit', onClick: ->(action) { action.forms_submit }
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
@@ -54,7 +54,7 @@ page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
|
|
54
54
|
scroll.spacer height: 20
|
55
55
|
scroll.h2 text: 'With mixed components'
|
56
56
|
scroll.spacer height: 6
|
57
|
-
scroll.panels_responsive width: 'matchParent', childViews: ->(responsive) do
|
57
|
+
scroll.panels_responsive width: 'matchParent', align: 'center', childViews: ->(responsive) do
|
58
58
|
responsive.h4 text: 'Heading'
|
59
59
|
|
60
60
|
responsive.label text: 'Label'
|
@@ -1,18 +1,17 @@
|
|
1
1
|
json.title 'Dynamic Texts'
|
2
2
|
|
3
|
-
json_ui_page json
|
4
|
-
|
3
|
+
page = json_ui_page json
|
4
|
+
render "#{@path_prefix}/nav_menu", json: json, page: page, top_nav: true
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
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
|
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')
|
15
10
|
end
|
16
11
|
|
12
|
+
template.thumbnail title: 'Image', onClick: ->(action) do
|
13
|
+
action.windows_open url: json_ui_garage_url(path: 'services/image')
|
14
|
+
end
|
17
15
|
end
|
16
|
+
|
18
17
|
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.4.
|
4
|
+
version: 0.4.66
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ''
|
@@ -141,6 +141,7 @@ files:
|
|
141
141
|
- app/views/json_ui/garage/lists/infinite_scroll.json.jbuilder
|
142
142
|
- app/views/json_ui/garage/lists/templating.json.jbuilder
|
143
143
|
- app/views/json_ui/garage/notifications/index.json.jbuilder
|
144
|
+
- app/views/json_ui/garage/notifications/web_socket.json.jbuilder
|
144
145
|
- app/views/json_ui/garage/pages/flat_centered.json.jbuilder
|
145
146
|
- app/views/json_ui/garage/pages/full_width.json.jbuilder
|
146
147
|
- app/views/json_ui/garage/pages/full_width_height.json.jbuilder
|