module.exports = () => { let socket = io(); socket.emit("GetScripts", {}); socket.on("updatedScriptList", (scriptList) => { let localScriptsHTML = ""; let remoteScriptsHTML = ""; for (let i = 0; i < scriptList.length; i++) { if (scriptList[i].loc !== "local") { continue; } let HTMLElem = "
  • {{script_name}}

    {{badges}}

    {{buttons}}
  • "; if (scriptList[i].loc === "local") { HTMLElem = HTMLElem.replace("{{badges}}", ""); HTMLElem = HTMLElem.replace("{{script_name}}", scriptList[i].name); HTMLElem = HTMLElem.replace("{{buttons}}", "play_arrow" + "edit" + "delete_forever" ); localScriptsHTML += HTMLElem; } else if (scriptList[i].loc === "remote") { HTMLElem = HTMLElem.replace("{{badges}}", "GitHub"); HTMLElem = HTMLElem.replace("{{script_name}}", scriptList[i].name); remoteScriptsHTML += HTMLElem; } } document.getElementById("local-scripts").innerHTML = localScriptsHTML; document.getElementById("remote-scripts").innerHTML = remoteScriptsHTML; }); /* The delays here with settimeout, is set to a second deliberately, because, rather than making a whole checking-thing. We just wait a second, and assume, that if it worked, the change should show now. Else, check the logViewer. */ function clickHandler(event) { let element = event.target.parentElement; if (element.className === "selectScript") { M.toast({html: "Now selecting script: " + element.dataset.path}); socket.emit("SelectScript", {"scriptPath": element.dataset.path}); } else if (element.className === "editScript") { window.location.href = ( "http://" + window.location.hostname + ":" + window.location.port + "/neo_ide?scriptName=" + btoa(element.dataset.path) ); } else if (element.className === "deleteScript") { if (confirm("Do you really want to delete this script?\n" + element.dataset.path + "\n\nYou can not undo this action, and the script will be lost forever...")) { M.toast({html: "Trying to create script. If no change after a second. Check the logViewer."}); socket.emit("DeleteScript", {"scriptPath": element.dataset.path}); setTimeout(() => {socket.emit("GetScripts", {})}, 1000); } } else if (element.id === "createEmptyScript") { var scriptName = prompt("Please enter the name of the new script:"); if (scriptName != null || scriptName != "") { M.toast({html: "Trying to create script. If no change after a second. Check the logViewer."}); socket.emit("CreateEmptyScript", {"scriptName": scriptName}); setTimeout(() => {socket.emit("GetScripts", {})}, 1000); } } } addEventListener("click", clickHandler, false); };