Compare commits
3 Commits
9c9a95206d
...
e318a2c058
| Author | SHA1 | Date | |
|---|---|---|---|
| e318a2c058 | |||
| c9795f816c | |||
| 01cd50abf7 |
@@ -182,11 +182,11 @@
|
|||||||
|
|
||||||
<!-- BUZZER CONTROLS -->
|
<!-- BUZZER CONTROLS -->
|
||||||
<div class="side-sec">
|
<div class="side-sec">
|
||||||
<div class="side-label">BUZZER CONTROLS</div>
|
<div class="side-label">ROUND CONTROL</div>
|
||||||
<div class="side-btn-group">
|
<div class="side-btn-group">
|
||||||
<button class="btn btn-g btn-full" onclick="ws_send({type:'open_round'})">▶ OPEN ROUND</button>
|
<button class="btn btn-g btn-full" id="mod-round-btn" onclick="toggleRound()">▶ OPEN ROUND</button>
|
||||||
<button class="btn btn-ghost btn-full" onclick="ws_send({type:'close_round'})">■ CLOSE ROUND</button>
|
<button class="btn btn-ghost btn-full" id="mod-resume-btn" style="display:none;" onclick="resumeRound()">▶ RESUME ROUND</button>
|
||||||
<button class="btn btn-yellow btn-full" onclick="ws_send({type:'reset_buzzer'})">↺ RESET BUZZER</button>
|
<button class="btn btn-yellow btn-full" onclick="resetBuzzer()">↺ RESET BUZZER</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -73,17 +73,26 @@ function handle(msg){
|
|||||||
break;
|
break;
|
||||||
case 'room_update':
|
case 'room_update':
|
||||||
room=msg.room;
|
room=msg.room;
|
||||||
if(role==='mod')renderMod();else renderPlayer();
|
if(role==='mod'){renderMod();renderRoundButtons();}else renderPlayer();
|
||||||
break;
|
break;
|
||||||
case 'settings_updated':
|
case 'settings_updated':
|
||||||
room=msg.room;
|
room=msg.room;
|
||||||
if(role==='mod'){renderMod();renderModSettings();}else renderPlayer();
|
if(role==='mod'){renderMod();renderRoundButtons();renderModSettings();}else renderPlayer();
|
||||||
break;
|
break;
|
||||||
case 'round_open':
|
case 'round_open':
|
||||||
room=msg.room;
|
room=msg.room;
|
||||||
if(role==='mod')renderMod();
|
if(role==='mod'){renderMod();renderRoundButtons();}
|
||||||
else{renderPlayerBuzzer();startPlayerTimer();toast('ROUND OPEN','ok');}
|
else{renderPlayerBuzzer();startPlayerTimer();toast('ROUND OPEN','ok');}
|
||||||
break;
|
break;
|
||||||
|
case 'round_closed':
|
||||||
|
room=msg.room;
|
||||||
|
if(role==='mod'){renderMod();renderRoundButtons();}
|
||||||
|
else{renderPlayerBuzzer();stopPlayerTimer();toast('ROUND CLOSED','warn');}
|
||||||
|
break;
|
||||||
|
case 'buzzer_reset':
|
||||||
|
room=msg.room;
|
||||||
|
if(role==='mod'){renderMod();renderRoundButtons();}else renderPlayerBuzzer();
|
||||||
|
break;
|
||||||
case 'round_closed':
|
case 'round_closed':
|
||||||
room=msg.room;
|
room=msg.room;
|
||||||
if(role==='mod')renderMod();
|
if(role==='mod')renderMod();
|
||||||
@@ -95,7 +104,7 @@ function handle(msg){
|
|||||||
break;
|
break;
|
||||||
case 'buzz_event':
|
case 'buzz_event':
|
||||||
room=msg.room;
|
room=msg.room;
|
||||||
if(role==='mod')renderModBuzz(msg);else{renderPlayerBuzzer();addFeed(msg);}
|
if(role==='mod'){renderMod();renderRoundButtons();}else{renderPlayerBuzzer();addFeed(msg);}
|
||||||
break;
|
break;
|
||||||
case 'buzz_rejected':
|
case 'buzz_rejected':
|
||||||
toast(msg.reason,'warn');break;
|
toast(msg.reason,'warn');break;
|
||||||
@@ -272,7 +281,6 @@ function createRoom(){
|
|||||||
// MOD TIMER
|
// MOD TIMER
|
||||||
// ══════════════════════════════════════════════════════
|
// ══════════════════════════════════════════════════════
|
||||||
function fmtTime(s){return Math.floor(s/60)+':'+(s%60<10?'0':'')+(s%60);}
|
function fmtTime(s){return Math.floor(s/60)+':'+(s%60<10?'0':'')+(s%60);}
|
||||||
|
|
||||||
function modTimerLoad(){
|
function modTimerLoad(){
|
||||||
modTimerRemaining=Math.max(5,parseInt(document.getElementById('mod-timer-set').value)||30);
|
modTimerRemaining=Math.max(5,parseInt(document.getElementById('mod-timer-set').value)||30);
|
||||||
modTimerRunning=false;
|
modTimerRunning=false;
|
||||||
@@ -330,6 +338,36 @@ function broadcastTimerToPlayers(sec,running){
|
|||||||
}catch{}
|
}catch{}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ══════════════════════════════════════════════════════
|
||||||
|
// MOD ROUND CONTROL
|
||||||
|
// ══════════════════════════════════════════════════════
|
||||||
|
function toggleRound(){
|
||||||
|
if(room.buzzerState.roundOpen){
|
||||||
|
ws_send({type:'close_round'});
|
||||||
|
} else {
|
||||||
|
ws_send({type:'open_round'});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function resumeRound(){
|
||||||
|
ws_send({type:'open_round'});
|
||||||
|
}
|
||||||
|
|
||||||
|
function renderRoundButtons(){
|
||||||
|
const openBtn=document.getElementById('mod-round-btn');
|
||||||
|
const resumeBtn=document.getElementById('mod-resume-btn');
|
||||||
|
|
||||||
|
if(room.buzzerState.roundOpen){
|
||||||
|
openBtn.innerHTML='■ CLOSE ROUND';
|
||||||
|
openBtn.className='btn btn-red btn-full';
|
||||||
|
resumeBtn.style.display='block';
|
||||||
|
} else {
|
||||||
|
openBtn.innerHTML='▶ OPEN ROUND';
|
||||||
|
openBtn.className='btn btn-g btn-full';
|
||||||
|
resumeBtn.style.display='none';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// ══════════════════════════════════════════════════════
|
// ══════════════════════════════════════════════════════
|
||||||
// MOD RENDER
|
// MOD RENDER
|
||||||
// ══════════════════════════════════════════════════════
|
// ══════════════════════════════════════════════════════
|
||||||
@@ -351,6 +389,7 @@ function renderMod(){
|
|||||||
renderModBuzz(null);
|
renderModBuzz(null);
|
||||||
renderModPlayerList();
|
renderModPlayerList();
|
||||||
renderModTeams();
|
renderModTeams();
|
||||||
|
renderRoundButtons();
|
||||||
}
|
}
|
||||||
|
|
||||||
function renderModBuzz(evt){
|
function renderModBuzz(evt){
|
||||||
@@ -453,6 +492,7 @@ function renderModSettings(){
|
|||||||
document.getElementById('ls-numteams').value=s.numTeams;
|
document.getElementById('ls-numteams').value=s.numTeams;
|
||||||
segActivate('ls-seg-mode',s.mode);
|
segActivate('ls-seg-mode',s.mode);
|
||||||
renderLiveTeamNames();
|
renderLiveTeamNames();
|
||||||
|
renderRoundButtons();
|
||||||
}
|
}
|
||||||
|
|
||||||
function segActivate(groupId,val){
|
function segActivate(groupId,val){
|
||||||
|
|||||||
Reference in New Issue
Block a user