@live-change/video-call-frontend 0.8.47 → 0.8.49
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.
- package/front/src/room/PeerVideo.vue +9 -5
- package/front/src/room/Room.vue +6 -0
- package/front/src/room/VideoWall.vue +2 -2
- package/front/src/router.js +1 -1
- package/package.json +38 -38
- package/server/init.js +12 -0
|
@@ -9,9 +9,11 @@
|
|
|
9
9
|
}">
|
|
10
10
|
</div>
|
|
11
11
|
|
|
12
|
-
<div v-if="(peerState?.
|
|
12
|
+
<div v-if="(peerState?.videoState !== 'enabled' || !stream) && !image"
|
|
13
13
|
class="absolute w-full h-full flex flex-column align-items-center justify-content-center identification">
|
|
14
14
|
<UserIdentification :ownerType="ownerType" :owner="owner" />
|
|
15
|
+
<!-- <pre>{{ peerState }}</pre>
|
|
16
|
+
<pre>[{{ ownerType }}]</pre>-->
|
|
15
17
|
</div>
|
|
16
18
|
|
|
17
19
|
<div v-if="stream">
|
|
@@ -26,8 +28,8 @@
|
|
|
26
28
|
</video>
|
|
27
29
|
</div>
|
|
28
30
|
|
|
29
|
-
<div
|
|
30
|
-
|
|
31
|
+
<div v-if="peerState"
|
|
32
|
+
class="absolute top-0 right-0 h-3rem pr-1 flex align-items-center">
|
|
31
33
|
<div v-if="peerState.audioState === 'muted'"
|
|
32
34
|
class="border-circle bg-black-alpha-40 mx-1
|
|
33
35
|
flex align-items-center justify-content-center w-2rem h-2rem">
|
|
@@ -65,6 +67,9 @@
|
|
|
65
67
|
.peer-video {
|
|
66
68
|
.identification {
|
|
67
69
|
& > span > span, a {
|
|
70
|
+
&:hover {
|
|
71
|
+
background: none !important;
|
|
72
|
+
}
|
|
68
73
|
display: flex !important;
|
|
69
74
|
flex-direction: column !important;
|
|
70
75
|
position: absolute;
|
|
@@ -77,11 +82,10 @@
|
|
|
77
82
|
height: 100%;
|
|
78
83
|
width: 100%;
|
|
79
84
|
img, i {
|
|
80
|
-
max-height:
|
|
85
|
+
max-height: 120px !important;
|
|
81
86
|
width: auto !important;
|
|
82
87
|
height: 50% !important;
|
|
83
88
|
aspect-ratio: 1/1;
|
|
84
|
-
border: 1px solid red;
|
|
85
89
|
}
|
|
86
90
|
span {
|
|
87
91
|
color: rgba(255,255,255,0.8);
|
package/front/src/room/Room.vue
CHANGED
|
@@ -151,17 +151,23 @@
|
|
|
151
151
|
const otherPeer = peer.value.otherPeers.find(peer => peer.id === peerId)
|
|
152
152
|
for(const remoteTrack of unref(connection.remoteTracks)) {
|
|
153
153
|
if(output.find(remoteStream => remoteStream.stream === remoteTrack.stream)) continue
|
|
154
|
+
const [ownerType, owner] = otherPeer.user
|
|
155
|
+
? ['user_User', otherPeer.user?.user]
|
|
156
|
+
: ['session_Session', otherPeer.session]
|
|
154
157
|
output.push({
|
|
155
158
|
id: remoteTrack.stream.id,
|
|
156
159
|
from: connection.to,
|
|
157
160
|
stream: remoteTrack.stream,
|
|
158
161
|
peerState: otherPeer?.peerState,
|
|
162
|
+
ownerType, owner
|
|
159
163
|
})
|
|
160
164
|
}
|
|
161
165
|
}
|
|
162
166
|
return output
|
|
163
167
|
})
|
|
164
168
|
|
|
169
|
+
globalThis.peer = peer
|
|
170
|
+
|
|
165
171
|
|
|
166
172
|
</script>
|
|
167
173
|
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
:id="tile.id" :image="tile.video?.image"
|
|
18
18
|
:mirror="tile.video?.mirror"
|
|
19
19
|
:peer-state="tile.video?.peerState"
|
|
20
|
-
:ownerType="tile.ownerType ?? 'unknown'"
|
|
21
|
-
:owner="tile.owner ?? 'unknown'"
|
|
20
|
+
:ownerType="tile.video?.ownerType ?? 'unknown'"
|
|
21
|
+
:owner="tile.video?.owner ?? 'unknown'"
|
|
22
22
|
@resize="ev => handleVideoResize(tile, ev)"
|
|
23
23
|
@click="ev => handleVideoClick(tile, ev)"
|
|
24
24
|
:style="videoStyles[tile.id]">
|
package/front/src/router.js
CHANGED
|
@@ -16,7 +16,7 @@ export function videoCallRoutes(config = {}) {
|
|
|
16
16
|
const { prefix = '/', route = (r) => r } = config
|
|
17
17
|
return [
|
|
18
18
|
route({
|
|
19
|
-
name: 'video-call:room', path: prefix+ '/room/:room', meta: { }, props:true,
|
|
19
|
+
name: 'video-call:room', path: prefix+ '/room/:room', meta: { raw: true }, props:true,
|
|
20
20
|
component: () => import("./room/Room.vue"),
|
|
21
21
|
}),
|
|
22
22
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@live-change/video-call-frontend",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.49",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"memDev": "node server/start.js memDev --enableSessions --initScript ./init.js --dbAccess",
|
|
6
6
|
"localDevInit": "rm tmp.db; node server/start.js localDev --enableSessions --initScript ./init.js",
|
|
@@ -35,41 +35,41 @@
|
|
|
35
35
|
"@codemirror/language": "6.10.1",
|
|
36
36
|
"@dotenvx/dotenvx": "0.27.0",
|
|
37
37
|
"@fortawesome/fontawesome-free": "^6.5.2",
|
|
38
|
-
"@live-change/access-control-frontend": "^0.8.
|
|
39
|
-
"@live-change/access-control-service": "^0.8.
|
|
40
|
-
"@live-change/backup-service": "^0.8.
|
|
41
|
-
"@live-change/blog-frontend": "^0.8.
|
|
42
|
-
"@live-change/blog-service": "^0.8.
|
|
43
|
-
"@live-change/cli": "^0.8.
|
|
44
|
-
"@live-change/content-frontend": "^0.8.
|
|
45
|
-
"@live-change/content-service": "^0.8.
|
|
46
|
-
"@live-change/dao": "^0.8.
|
|
47
|
-
"@live-change/dao-vue3": "^0.8.
|
|
48
|
-
"@live-change/dao-websocket": "^0.8.
|
|
49
|
-
"@live-change/db-client": "^0.8.
|
|
50
|
-
"@live-change/email-service": "^0.8.
|
|
51
|
-
"@live-change/framework": "^0.8.
|
|
52
|
-
"@live-change/frontend-auto-form": "^0.8.
|
|
53
|
-
"@live-change/frontend-base": "^0.8.
|
|
54
|
-
"@live-change/geoip-service": "^0.8.
|
|
55
|
-
"@live-change/image-frontend": "^0.8.
|
|
56
|
-
"@live-change/locale-settings-service": "^0.8.
|
|
57
|
-
"@live-change/password-authentication-service": "^0.8.
|
|
58
|
-
"@live-change/peer-connection-service": "^0.8.
|
|
59
|
-
"@live-change/prosemirror-service": "^0.8.
|
|
60
|
-
"@live-change/secret-code-service": "^0.8.
|
|
61
|
-
"@live-change/secret-link-service": "^0.8.
|
|
62
|
-
"@live-change/session-service": "^0.8.
|
|
63
|
-
"@live-change/task-service": "^0.8.
|
|
64
|
-
"@live-change/upload-frontend": "^0.8.
|
|
65
|
-
"@live-change/url-frontend": "^0.8.
|
|
66
|
-
"@live-change/url-service": "^0.8.
|
|
67
|
-
"@live-change/user-frontend": "^0.8.
|
|
68
|
-
"@live-change/user-identification-service": "^0.8.
|
|
69
|
-
"@live-change/user-service": "^0.8.
|
|
70
|
-
"@live-change/vote-service": "^0.8.
|
|
71
|
-
"@live-change/vue3-components": "^0.8.
|
|
72
|
-
"@live-change/vue3-ssr": "^0.8.
|
|
38
|
+
"@live-change/access-control-frontend": "^0.8.49",
|
|
39
|
+
"@live-change/access-control-service": "^0.8.49",
|
|
40
|
+
"@live-change/backup-service": "^0.8.49",
|
|
41
|
+
"@live-change/blog-frontend": "^0.8.49",
|
|
42
|
+
"@live-change/blog-service": "^0.8.49",
|
|
43
|
+
"@live-change/cli": "^0.8.49",
|
|
44
|
+
"@live-change/content-frontend": "^0.8.49",
|
|
45
|
+
"@live-change/content-service": "^0.8.49",
|
|
46
|
+
"@live-change/dao": "^0.8.49",
|
|
47
|
+
"@live-change/dao-vue3": "^0.8.49",
|
|
48
|
+
"@live-change/dao-websocket": "^0.8.49",
|
|
49
|
+
"@live-change/db-client": "^0.8.49",
|
|
50
|
+
"@live-change/email-service": "^0.8.49",
|
|
51
|
+
"@live-change/framework": "^0.8.49",
|
|
52
|
+
"@live-change/frontend-auto-form": "^0.8.49",
|
|
53
|
+
"@live-change/frontend-base": "^0.8.49",
|
|
54
|
+
"@live-change/geoip-service": "^0.8.49",
|
|
55
|
+
"@live-change/image-frontend": "^0.8.49",
|
|
56
|
+
"@live-change/locale-settings-service": "^0.8.49",
|
|
57
|
+
"@live-change/password-authentication-service": "^0.8.49",
|
|
58
|
+
"@live-change/peer-connection-service": "^0.8.49",
|
|
59
|
+
"@live-change/prosemirror-service": "^0.8.49",
|
|
60
|
+
"@live-change/secret-code-service": "^0.8.49",
|
|
61
|
+
"@live-change/secret-link-service": "^0.8.49",
|
|
62
|
+
"@live-change/session-service": "^0.8.49",
|
|
63
|
+
"@live-change/task-service": "^0.8.49",
|
|
64
|
+
"@live-change/upload-frontend": "^0.8.49",
|
|
65
|
+
"@live-change/url-frontend": "^0.8.49",
|
|
66
|
+
"@live-change/url-service": "^0.8.49",
|
|
67
|
+
"@live-change/user-frontend": "^0.8.49",
|
|
68
|
+
"@live-change/user-identification-service": "^0.8.49",
|
|
69
|
+
"@live-change/user-service": "^0.8.49",
|
|
70
|
+
"@live-change/vote-service": "^0.8.49",
|
|
71
|
+
"@live-change/vue3-components": "^0.8.49",
|
|
72
|
+
"@live-change/vue3-ssr": "^0.8.49",
|
|
73
73
|
"@vueuse/core": "^10.11.0",
|
|
74
74
|
"boxicons": "^2.1.4",
|
|
75
75
|
"codeceptjs-assert": "^0.0.5",
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
"vue3-scroll-border": "0.1.6"
|
|
94
94
|
},
|
|
95
95
|
"devDependencies": {
|
|
96
|
-
"@live-change/codeceptjs-helper": "^0.8.
|
|
96
|
+
"@live-change/codeceptjs-helper": "^0.8.49",
|
|
97
97
|
"codeceptjs": "^3.5.12",
|
|
98
98
|
"generate-password": "1.7.1",
|
|
99
99
|
"playwright": "^1.41.2",
|
|
@@ -104,5 +104,5 @@
|
|
|
104
104
|
"author": "Michał Łaszczewski <michal@laszczewski.pl>",
|
|
105
105
|
"license": "ISC",
|
|
106
106
|
"description": "",
|
|
107
|
-
"gitHead": "
|
|
107
|
+
"gitHead": "568f730f1c8a6ce0247d1d8e49fcea110604800c"
|
|
108
108
|
}
|
package/server/init.js
CHANGED
|
@@ -20,4 +20,16 @@ export default async function(services) {
|
|
|
20
20
|
sessionRoles: ['speaker']
|
|
21
21
|
})
|
|
22
22
|
|
|
23
|
+
|
|
24
|
+
const user = '[testUser]'
|
|
25
|
+
const email = 'tester@test.com'
|
|
26
|
+
const email2 = 'tester2@test.com'
|
|
27
|
+
const password = 'Testy123'
|
|
28
|
+
const passwordHash = services.passwordAuthentication.models.PasswordAuthentication
|
|
29
|
+
.definition.properties.passwordHash.preFilter(password)
|
|
30
|
+
await services.user.models.User.create({ id: user, roles: [] })
|
|
31
|
+
await services.passwordAuthentication.models.PasswordAuthentication.create({ id: user, user, passwordHash })
|
|
32
|
+
await services.email.models.Email.create({ id: email, email, user })
|
|
33
|
+
await services.email.models.Email.create({ id: email2, email: email2, user })
|
|
34
|
+
|
|
23
35
|
}
|