Initial commit.
This commit is contained in:
commit
f0c91b4e55
78 changed files with 5054 additions and 0 deletions
54
www/js/channelSettings.js
Normal file
54
www/js/channelSettings.js
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
/*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();
|
||||
Loading…
Add table
Add a link
Reference in a new issue