Sockets allowing for live updates rather than complete rebuilds #7
3 changed files with 23 additions and 10 deletions
|
|
@ -104,7 +104,7 @@ changes visibility with JS-->
|
|||
<input type="checkbox" title="playpausecheck" id="playpausesettingcheckbox"><label for="playpausesettingcheckbox">Play/pause</label><br>
|
||||
<input type="checkbox" title="partymodecheck" id="partymodesettingcheckbox"><label for="partymodesettingcheckbox">Toggle Party Mode</label><br>
|
||||
<input type="checkbox" title="volumechangecheck" id="volumechangesettingcheckbox"><label for="volumechangesettingcheckbox">Change volume</label><br>
|
||||
<input type="checkbox" title="duplicateallowcheck" id="duplicateallowesettingcheckbox"><label for="duplicateallowsettingcheck">Allow Duplicates</label><br>
|
||||
<input type="checkbox" title="duplicateallowcheck" id="duplicateallowesettingcheckbox"><label for="duplicateallowsettingcheck">Add duplicate songs</label><br>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -299,11 +299,17 @@ async function displayElapsedPlaylistTime(elapsed=0,length=-1) {
|
|||
async function updateSingleSetting(data) {
|
||||
let toBeChanged = data["settingToChange"];
|
||||
if (toBeChanged === "partymode") {
|
||||
|
||||
document.getElementById("partymode-button").textContent = data["newData"];
|
||||
} else if (toBeChanged === "perms") {
|
||||
|
||||
let currentAdminPerms = data["newData"];
|
||||
document.getElementById("addsongsettingcheckbox").checked = currentAdminPerms["AS"];
|
||||
document.getElementById("skipsongsettingcheckbox").checked = currentAdminPerms["SK"];
|
||||
document.getElementById("playpausesettingcheckbox").checked = currentAdminPerms["PP"];
|
||||
document.getElementById("partymodesettingcheckbox").checked = currentAdminPerms["PM"];
|
||||
document.getElementById("volumechangesettingcheckbox").checked = currentAdminPerms["VOL"];
|
||||
document.getElementById("duplicateallowesettingcheckbox").checked = currentAdminPerms["DUP"];
|
||||
} else if (toBeChanged === "volume") {
|
||||
|
||||
document.getElementById("volumerange").value = data["newData"];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -608,9 +614,10 @@ document.addEventListener('keydown', function(e){
|
|||
}})
|
||||
|
|
||||
document.getElementById("playlist-mode").style.display = "none";
|
||||
document.getElementById("settings-mode").style.display = "none";
|
||||
document.getElementById("volumerange").onchange = async function() {
|
||||
document.getElementById("volumerange").onchange = async function(e) {
|
||||
// there is no reason for this not to be a defined function
|
||||
// FIX THIS
|
||||
console.log(e);
|
||||
let returnValue = await getFromServer({setting:"volume",level:this.value}, "settings")
|
||||
if (returnValue["status"] == ERR_NO_ADMIN) {
|
||||
// alertText("Error: Admin restricted action");
|
||||
|
|
@ -716,6 +723,7 @@ socket.on("settingsChange",(data) => {
|
|||
console.log("working");
|
||||
justChangedSetting = false;
|
||||
} else {
|
||||
checkSettings();
|
||||
// checkSettings();
|
||||
updateSingleSetting(data);
|
||||
}
|
||||
});
|
||||
|
|
@ -190,8 +190,12 @@ def settingsControl():
|
|||
volumeLevel = int(recieveData["level"])
|
||||
if(volumeLevel <= 100 and volumeLevel >= 0):
|
||||
volumePassed = player.audio_set_volume(volumeLevel)
|
||||
socketio.emit("settingsChange")
|
||||
if(volumePassed == 0):
|
||||
# only emit a signal i the volume really changed
|
||||
socketio.emit("settingsChange",{"settingToChange":"volume","newData":volumeLevel})
|
||||
return {"error":"ok","data":{"volumePassed":volumePassed}},200
|
||||
else:
|
||||
return {"error":"VLC cannot take volume change requests at this time","data":None},500
|
||||
else:
|
||||
return {"error":"Invalid volume level","data":None},422
|
||||
else:
|
||||
|
|
@ -199,15 +203,16 @@ def settingsControl():
|
|||
elif recieveData["setting"] == "partymode-toggle":
|
||||
if ADMIN_PASS == recieveData['password'] or controlPerms["PM"]:
|
||||
partyMode = not(partyMode)
|
||||
socketio.emit("settingsChange")
|
||||
partyModeStr = "On" if partyMode else "Off"
|
||||
socketio.emit("settingsChange",{"settingToChange":"partymode","newData":partyModeStr})
|
||||
return ERR_200
|
||||
else:
|
||||
return ERR_NO_ADMIN
|
||||
elif recieveData["setting"] == "perms":
|
||||
if ADMIN_PASS == recieveData["password"]:
|
||||
socketio.emit("settingsChange")
|
||||
controlPerms = recieveData["admin"]
|
||||
# print(recieveData["admin"])
|
||||
socketio.emit("settingsChange",{"settingToChange":"perms","newData":controlPerms})
|
||||
return ERR_200
|
||||
else:
|
||||
return ERR_NO_ADMIN
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue
Leftover debug logging (
console.log(e)) in the volume slider handler will spam the console on every change. Remove this (or gate it behind a debug flag) before merging.