Merge pull request 'reregister users on roll' (#38) from register-user-on-roll into main
All checks were successful
CI / deploy (push) Successful in 6m6s

Reviewed-on: #38
This commit is contained in:
arindy 2025-02-22 12:38:27 +01:00
commit c04b4f67d2
2 changed files with 30 additions and 29 deletions

View File

@ -14,6 +14,17 @@ function url() {
return window.location.protocol + '//' + window.location.hostname + (window.location.port?.length > 0 ? ':' + window.location.port : '');
}
function register() {
let httpRequest = new XMLHttpRequest();
httpRequest.open('POST', url() + '/dice/' + document.getElementById('room').value + '/register')
httpRequest.setRequestHeader('Content-Type', 'application/json')
httpRequest.send(JSON.stringify({
name: document.getElementById('name').value,
overlay: document.getElementById('overlayId').value,
id: document.getElementById('room').value + ':' + localStorage.getItem('userId')
}))
}
function start(event = undefined) {
if ((!event || event.keyCode === 13) && document.getElementById('name').value.length > 0 && document.getElementById('room').value.length > 0) {
document.getElementById('overlayId').value = url() + '/overlay/' + document.getElementById('room').value + ':' + localStorage.getItem('userId') + '?scale=10&clearAfter=30';
@ -61,14 +72,7 @@ function start(event = undefined) {
localStorage.setItem(document.getElementById('name').value + '-started', "true")
let httpRequest = new XMLHttpRequest();
httpRequest.open('POST', url() + '/dice/' + document.getElementById('room').value + '/register')
httpRequest.setRequestHeader('Content-Type', 'application/json')
httpRequest.send(JSON.stringify({
name: document.getElementById('name').value,
overlay: document.getElementById('overlayId').value,
id: document.getElementById('room').value + ':' + localStorage.getItem('userId')
}))
register();
if (document.getElementById('gm').checked) {
document.getElementById('resultSwitch').checked = true;
document.getElementById('resultFrame').src = document.getElementById('resultsId').value;
@ -98,18 +102,21 @@ function start(event = undefined) {
newOverlay.appendChild(newInput);
overlays.appendChild(newOverlay);
let dice = document.createElement('iframe');
dice.id = data.id + '-diceFrame'
dice.style.width = "50%";
dice.style.height = "100%";
dice.style.overflow = "hidden";
dice.style.border = "0";
dice.style.zIndex = "4";
dice.style.position = "absolute";
dice.style.top = "0";
dice.style.left = "50%";
dice.src = data.overlay;
document.getElementById('results-dice').appendChild(dice)
if (!document.getElementById(data.id + '-diceFrame')) {
let dice = document.createElement('iframe');
dice.id = data.id + '-diceFrame'
dice.style.width = "50%";
dice.style.height = "100%";
dice.style.overflow = "hidden";
dice.style.border = "0";
dice.style.zIndex = "4";
dice.style.position = "absolute";
dice.style.top = "0";
dice.style.left = "50%";
dice.src = data.overlay;
document.getElementById('results-dice').appendChild(dice)
}
}
configurePopover();
@ -125,6 +132,7 @@ function rollEasy(dice) {
function roll(event) {
if ((!event || event.keyCode === 13) && document.getElementById('command').value?.length > 0) {
register()
let httpRequest = new XMLHttpRequest();
httpRequest.open('POST', url() + '/dice/' + document.getElementById('room').value + ':' + localStorage.getItem(`userId`))
httpRequest.setRequestHeader('Content-Type', 'application/json')
@ -207,11 +215,7 @@ document.addEventListener("DOMContentLoaded", async () => {
})
document.getElementById('resultDiceSwitch').addEventListener('change', function () {
if (!this.checked) {
document.getElementById('results-dice').hidden = true
} else {
document.getElementById('results-dice').hidden = false
}
document.getElementById('results-dice').hidden = !this.checked;
})
document.getElementById('chatOverlayLink').href = url() + '/chatoverlay'

View File

@ -202,11 +202,8 @@
<h2 style="text-align: center">How-To</h2>
<ul>
<li>
Join a room by entering your character name and the name of the room.<br/>
<strong>If you are a GM, make sure to join the room first or let all other players rejoin to get all
Overlay-URLs.</strong>
Join a room by entering your character name and the name of the room
</li>
<li>Open your Dice-Overlay either in a new Tab or as a browser source in OBS</li>
<ul>
<li>You can configure your Overlay with query parameters (for more information hover over the link)