/*Canopy - The next generation of stoner streaming software Copyright (C) 2024 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see .*/ class channelSettingsPrompt{ constructor(){ this.channel = window.location.pathname.slice(3).replace('/settings',''); this.hidden = document.querySelector("#channel-hidden"); this.delete = document.querySelector("#channel-delete"); this.hidden.addEventListener('change', this.submitUpdate.bind(this)); this.delete.addEventListener('click', this.promptDelete.bind(this)); } async submitUpdate(event){ //probably not the cleanest way to get the chan name :P const key = event.target.id.split("-").pop(); const value = event.target.type == "checkbox" ? event.target.checked : event.target.value; const settingsMap = new Map([ [key, value] ]); this.handleUpdate(await utils.ajax.setChannelSetting(this.channel, settingsMap)); } handleUpdate(updateObj){ this.hidden.checked = updateObj.hidden; } promptDelete(){ var confirm = window.prompt(`Warning: You are about to nuke ${this.channel} off of the face of the fucking planet, no taksie-backsies. \n \n Type in ${this.channel} to confirm.`); this.deleteChannel(confirm); } async deleteChannel(confirm){ if(this.channel === confirm){ utils.ajax.deleteChannel(this.channel, confirm); } } } new channelSettingsPrompt();