54 lines
2.1 KiB
JavaScript
54 lines
2.1 KiB
JavaScript
/*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 <https://www.gnu.org/licenses/>.*/
|
|
|
|
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(); |