Skip to content

Commit d66cf4b

Browse files
committed
add confirmation dialogs
1 parent 850bf97 commit d66cf4b

File tree

3 files changed

+64
-15
lines changed

3 files changed

+64
-15
lines changed

draggable.js

Lines changed: 37 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,44 @@ function makeWindow(tag, vidcon, txt) {
22
var wrap = document.createElement("div");
33
wrap.className="draggable";
44
wrap.style.zIndex=++openWins;
5+
document.body.appendChild(wrap);
56
var hdrwrap = document.createElement("div");
67
hdrwrap.className="hdwrp";
78
var hdr = document.createElement("div");
89
hdr.className="dragheader";
910
hdr.textContent=txt;
11+
hdrwrap.appendChild(hdr);
12+
wrap.appendChild(hdrwrap);
13+
var cnfwrp=document.createElement("div");
14+
var btn_y=document.createElement("button");
15+
btn_y.appendChild(document.createTextNode("Accept"));
16+
btn_y.className="conf_btn accept_stream";
17+
cnfwrp.appendChild(btn_y);
18+
var btn_n=document.createElement("button");
19+
btn_n.appendChild(document.createTextNode("Reject"));
20+
btn_n.className="conf_btn reject_stream";
21+
cnfwrp.appendChild(btn_n);
22+
wrap.appendChild(cnfwrp);
23+
btn_n.onclick=function(){
24+
switch(tag){
25+
case "vid":
26+
vidcon.answer();
27+
vidcon.on('stream', function(peerstream) {
28+
setTimeout(function(){
29+
vidcon.close();
30+
document.body.removeChild(wrap);
31+
},0);
32+
});
33+
break;
34+
}
35+
}
36+
btn_y.onclick=function(){
37+
wrap.removeChild(cnfwrp);
1038
var clsr=document.createElement("div");
1139
clsr.className="closer";
1240
clsr.textContent="X";
1341
var cont = null;
14-
hdrwrap.appendChild(hdr);
1542
hdrwrap.appendChild(clsr);
16-
wrap.appendChild(hdrwrap);
1743
wrap.onmousedown = function(e){
1844
if(wrap.style.zIndex < openWins){
1945
wrap.style.zIndex = ++openWins;
@@ -47,16 +73,18 @@ function makeWindow(tag, vidcon, txt) {
4773

4874
switch(tag){
4975
case "vid":
50-
cont = document.createElement("video");
51-
cont.autoplay = true;
76+
vidcon.answer();
5277
vidcon.on('stream', function(peerstream) {
78+
cont = document.createElement("video");
79+
cont.autoplay = true;
80+
hdr.textContent=vidcon.metadata=="scrn"?"screen shared from "+conn.peer:"call with "+conn.peer;
5381
cont.srcObject = peerstream;
5482
wrap.appendChild(cont);
55-
document.body.appendChild(wrap);
5683
});
84+
wrap.style.resize="both";
5785
clsr.onclick=function(){
5886
let stream=cont.srcObject;
59-
closeMediaConn(stream)
87+
closeMediaConn(stream);
6088
vidcon.close();
6189
document.body.removeChild(wrap);
6290
}
@@ -65,5 +93,7 @@ function makeWindow(tag, vidcon, txt) {
6593
cont = document.createElement("img");
6694
break;
6795
}
68-
96+
97+
}
98+
6999
}

style.css

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,11 @@
9696
height:auto;
9797
}
9898

99+
.pic_cont{
100+
width:100%;
101+
height:auto;
102+
}
103+
99104
#fileProgress{
100105
display:none;
101106
}
@@ -117,14 +122,13 @@
117122
}
118123
.draggable {
119124
position: absolute;
120-
width:33%;
125+
min-width:20%;
121126
height:auto;
122-
top:0;
123-
left:33%;
127+
top:30%;
128+
left:40%;
124129
background-color: #f1f1f1;
125130
text-align: center;
126131
border: 1px solid #d3d3d3;
127-
resize: both;
128132
overflow:auto;
129133
}
130134

@@ -134,3 +138,17 @@
134138
cursor: move;
135139
color: #fff;
136140
}
141+
.conf_btn{
142+
font-size:120%;
143+
padding:1vh;
144+
margin:1vh;
145+
margin-bottom:2vh;
146+
color:white;
147+
}
148+
149+
.accept_stream{
150+
background-color:#4CAF50;
151+
}
152+
.reject_stream{
153+
background-color:red;
154+
}

webrtc.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -193,12 +193,12 @@
193193
var screenConnection = peer.call(conn.peer, captureStream, {metadata:"scrn"});
194194
screenConnection.on('close', function() {
195195
closeMediaConn(captureStream);
196-
});
196+
});
197197
}
198198

199199
function showScreen(scrcon){
200-
scrcon.answer();
201-
makeWindow("vid", scrcon, "Screen shared by "+conn.peer);
200+
201+
makeWindow("vid", scrcon, conn.peer+" wants to share a screen with you");
202202
}
203203

204204
//video call
@@ -228,10 +228,11 @@
228228
}
229229

230230
function showVid(vidcon){
231-
makeWindow("vid", vidcon, "Video Call with "+conn.peer);
231+
makeWindow("vid", vidcon, conn.peer+" wants to call you");
232232
}
233233

234234
function closeMediaConn(stream){
235+
console.log(stream)
235236
let tracks = stream.getTracks();
236237
tracks.forEach(track => track.stop());
237238
}

0 commit comments

Comments
 (0)