glib-web 0.4.65 → 0.4.66
Sign up to get free protection for your applications and to get access to all the features.
- 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
|