glib-web 0.5.49 → 0.5.51
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/channels/glib/channel/is_typing_channel.rb +28 -0
- data/app/controllers/concerns/glib/json/traversal.rb +0 -0
- data/app/controllers/glib/home_controller.rb +0 -0
- data/app/helpers/glib/json_ui/abstract_builder.rb +0 -0
- data/app/helpers/glib/json_ui/action_builder.rb +1 -0
- data/app/helpers/glib/json_ui/list_builders.rb +0 -0
- data/app/helpers/glib/json_ui/page_helper.rb +0 -0
- data/app/helpers/glib/json_ui/response_helper.rb +0 -0
- data/app/helpers/glib/json_ui/view_builder.rb +1 -0
- data/app/helpers/glib/json_ui/view_builder/fields.rb +2 -0
- data/app/helpers/glib/json_ui/view_builder/panels.rb +0 -0
- data/app/views/json_ui/garage/actions/index.json.jbuilder +0 -0
- data/app/views/json_ui/garage/forms/_alert_post_data.json.jbuilder +0 -0
- data/app/views/json_ui/garage/forms/conditional_value.json.jbuilder +0 -0
- data/app/views/json_ui/garage/forms/pickers.json.jbuilder +0 -0
- data/app/views/json_ui/garage/forms/selects.json.jbuilder +0 -0
- data/app/views/json_ui/garage/forms/show_hide.json.jbuilder +0 -0
- data/app/views/json_ui/garage/forms/styled_boxes.json.jbuilder +0 -0
- data/app/views/json_ui/garage/home/index.json.jbuilder +0 -0
- data/app/views/json_ui/garage/lists/_autoload_section.json.jbuilder +0 -0
- data/app/views/json_ui/garage/lists/edit_actions.json.jbuilder +0 -0
- data/app/views/json_ui/garage/lists/index.json.jbuilder +0 -0
- data/app/views/json_ui/garage/lists/reordering.json.jbuilder +0 -0
- data/app/views/json_ui/garage/notifications/action_cable.json.jbuilder +77 -6
- data/app/views/json_ui/garage/notifications/android_post.json.jbuilder +0 -0
- data/app/views/json_ui/garage/views/maps.json.jbuilder +0 -0
- data/lib/glib/json_crawler/router.rb +0 -0
- data/lib/glib/test_helpers.rb +0 -0
- metadata +23 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 54ec1ebfb9977b82473a2a4677d83e0bd82975dbd39a2a3a2ffd4bd901903fb8
|
4
|
+
data.tar.gz: 322cfff138b7fa5e99e25b48512d7c56e4426edd94ea9638fad0695f6b4f5f11
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1462c3983c1a0a344e39171f7a5e41d5d394ff13fb7fa4f0ad62f27ac07e6ef272fe487090a502361305542e406bbc3f22d4d2001e014e1f87a4ef5b4a9ae959
|
7
|
+
data.tar.gz: 4c337b87a009042358b5848e902d41f2b03229679acbb93ff482246d57fae3fc0855bebb3902204b8fad12b4c36ff78a9aec788ff50f5db97a3fa77780d15c7d
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Glib
|
2
|
+
module Channel
|
3
|
+
class IsTypingChannel < ApplicationCable::Channel
|
4
|
+
class << self
|
5
|
+
attr_accessor :channel_name
|
6
|
+
end
|
7
|
+
|
8
|
+
def channel_name
|
9
|
+
self.class.channel_name
|
10
|
+
end
|
11
|
+
|
12
|
+
def subscribed
|
13
|
+
stream_from "#{self.class.channel_name}_#{params['conversation_id']}"
|
14
|
+
end
|
15
|
+
|
16
|
+
def typing(data)
|
17
|
+
ActionCable.server.broadcast \
|
18
|
+
"#{self.class.channel_name}_#{params['conversation_id']}",
|
19
|
+
action: {
|
20
|
+
action: 'component/set',
|
21
|
+
name: User.find(data['user_id']).full_name,
|
22
|
+
status: data['status'],
|
23
|
+
user_id: data['user_id']
|
24
|
+
}
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -1,3 +1,4 @@
|
|
1
|
+
json.title 'ActionCable Real-time Update'
|
1
2
|
page = json_ui_page json
|
2
3
|
|
3
4
|
# Implement a page that shows how ActionCable works in json_ui
|
@@ -9,14 +10,16 @@ page = json_ui_page json
|
|
9
10
|
# end
|
10
11
|
# end
|
11
12
|
|
12
|
-
#
|
13
|
-
#
|
14
|
-
#
|
15
|
-
#
|
16
|
-
#
|
17
|
-
#
|
13
|
+
# page.form url: json_ui_garage_url(path: 'forms/basic_post'), method: 'post', padding: glib_json_padding_body, childViews: ->(form) do
|
14
|
+
# form.fields_textarea \
|
15
|
+
# width: 'matchParent',
|
16
|
+
# label: 'Message',
|
17
|
+
# onKeyUp: ->(action) do
|
18
|
+
# action.cables_push channel: 'isTypingChannel', data: { conversationId: 1, userId: 1 }
|
19
|
+
# end
|
18
20
|
# end
|
19
21
|
|
22
|
+
|
20
23
|
# 3. Example for online status
|
21
24
|
# - TODO: Implement "repeat: true" in glib-web-npm
|
22
25
|
# page.on load: ->(action) do
|
@@ -24,3 +27,71 @@ page = json_ui_page json
|
|
24
27
|
# subaction.cables_push channel: 'message', event: 'online'
|
25
28
|
# end
|
26
29
|
# end
|
30
|
+
|
31
|
+
|
32
|
+
# put on app/channels/is_typing_channel.rb
|
33
|
+
# class IsTypingChannel < Glib::Channel::IsTypingChannel
|
34
|
+
# self.channel_name = 'IsTypingChannel'
|
35
|
+
# end
|
36
|
+
|
37
|
+
page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
|
38
|
+
|
39
|
+
channel = 'IsTypingChannel'
|
40
|
+
first_user = User.first
|
41
|
+
second_user = User.offset(1).first
|
42
|
+
|
43
|
+
scroll.panels_split width: 'matchParent', content: ->(content) do
|
44
|
+
content.left childViews: ->(left) do
|
45
|
+
left.fields_textarea \
|
46
|
+
width: 'matchParent',
|
47
|
+
label: "Messages from #{first_user.full_name}",
|
48
|
+
onTypeStart: lambda { |action|
|
49
|
+
action.cables_push \
|
50
|
+
channel: channel, event: 'typing',
|
51
|
+
payload: { status: true, user_id: first_user.id }
|
52
|
+
},
|
53
|
+
onTypeEnd: lambda { |action|
|
54
|
+
action.cables_push \
|
55
|
+
channel: channel,
|
56
|
+
event: 'typing',
|
57
|
+
payload: { status: false, user_id: first_user.id }
|
58
|
+
}
|
59
|
+
left.spacer height: 10
|
60
|
+
|
61
|
+
socket_config = {
|
62
|
+
channel: channel,
|
63
|
+
filterKey: first_user.id,
|
64
|
+
params: {
|
65
|
+
conversation: 2
|
66
|
+
}
|
67
|
+
}
|
68
|
+
left.label actionCable: socket_config, text: ' '
|
69
|
+
end
|
70
|
+
content.right childViews: ->(right) do
|
71
|
+
right.fields_textarea \
|
72
|
+
width: 'matchParent',
|
73
|
+
label: "Messages from #{second_user.full_name}",
|
74
|
+
onTypeStart: lambda { |action|
|
75
|
+
action.cables_push \
|
76
|
+
channel: channel, event: 'typing',
|
77
|
+
payload: { status: true, user_id: second_user.id }
|
78
|
+
},
|
79
|
+
onTypeEnd: lambda { |action|
|
80
|
+
action.cables_push \
|
81
|
+
channel: channel,
|
82
|
+
event: 'typing',
|
83
|
+
payload: { status: false, user_id: second_user.id }
|
84
|
+
}
|
85
|
+
right.spacer height: 10
|
86
|
+
|
87
|
+
socket_config = {
|
88
|
+
channel: channel,
|
89
|
+
filterKey: second_user.id,
|
90
|
+
params: {
|
91
|
+
conversation: 2
|
92
|
+
}
|
93
|
+
}
|
94
|
+
right.label actionCable: socket_config, text: ' '
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
File without changes
|
File without changes
|
File without changes
|
data/lib/glib/test_helpers.rb
CHANGED
File without changes
|
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.5.
|
4
|
+
version: 0.5.51
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ''
|
@@ -17,9 +17,6 @@ dependencies:
|
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 5.2.3
|
20
|
-
- - "<"
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: 6.1.0
|
23
20
|
type: :runtime
|
24
21
|
prerelease: false
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -27,9 +24,6 @@ dependencies:
|
|
27
24
|
- - ">="
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: 5.2.3
|
30
|
-
- - "<"
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: 6.1.0
|
33
27
|
- !ruby/object:Gem::Dependency
|
34
28
|
name: pundit
|
35
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -58,12 +52,33 @@ dependencies:
|
|
58
52
|
- - "~>"
|
59
53
|
- !ruby/object:Gem::Version
|
60
54
|
version: '2.1'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: actioncable
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 6.0.1
|
62
|
+
- - "<"
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: 6.1.0
|
65
|
+
type: :runtime
|
66
|
+
prerelease: false
|
67
|
+
version_requirements: !ruby/object:Gem::Requirement
|
68
|
+
requirements:
|
69
|
+
- - ">="
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
version: 6.0.1
|
72
|
+
- - "<"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: 6.1.0
|
61
75
|
description:
|
62
76
|
email: ''
|
63
77
|
executables: []
|
64
78
|
extensions: []
|
65
79
|
extra_rdoc_files: []
|
66
80
|
files:
|
81
|
+
- app/channels/glib/channel/is_typing_channel.rb
|
67
82
|
- app/controllers/concerns/glib/analytics/funnel.rb
|
68
83
|
- app/controllers/concerns/glib/auth/policy.rb
|
69
84
|
- app/controllers/concerns/glib/json/dynamic_text.rb
|
@@ -254,8 +269,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
254
269
|
- !ruby/object:Gem::Version
|
255
270
|
version: '0'
|
256
271
|
requirements: []
|
257
|
-
|
258
|
-
rubygems_version: 2.7.6
|
272
|
+
rubygems_version: 3.1.4
|
259
273
|
signing_key:
|
260
274
|
specification_version: 4
|
261
275
|
summary: ''
|