PilznoProduction/app/admin/static/admin.js
2024-09-24 11:41:46 +03:00

98 lines
3 KiB
JavaScript

const archiveButtons = document.getElementsByClassName('archive-button');
const activityButtons = document.getElementsByClassName('change-activity-btn');
const adminButtons = document.getElementsByClassName('change-admin-btn');
function deactivateAdminButtons(){
for (let i = 0; i < adminButtons.length; i++){
adminButtons[i].disabled=true;
}
}
function activateAdminButtons(){
for (let i = 0; i < adminButtons.length; i++){
adminButtons[i].disabled=false;
}
}
function deactivateArchiveButtons(){
for (let i = 0; i < archiveButtons.length; i++){
archiveButtons[i].disabled=true;
}
}
function activateArchiveButtons(){
for (let i = 0; i < archiveButtons.length; i++){
archiveButtons[i].disabled=false;
}
}
function deactivateActiveStatusCheckboxes(){
for (let i = 0; i < activityButtons.length; i++){
activityButtons[i].disabled=true;
}
}
function activateActiveStatusCheckboxes(){
for (let i = 0; i < activityButtons.length; i++){
activityButtons[i].disabled=false;
}
}
function activateAllButtons(){
activateAdminButtons()
activateArchiveButtons()
activateActiveStatusCheckboxes()
}
function deactivateAllButtons(){
deactivateAdminButtons()
deactivateArchiveButtons()
deactivateActiveStatusCheckboxes()
}
async function updateActiveStatus(id, status) {
deactivateAllButtons()
var result = await fetch(`/campaigns/campaign_api/update_active_status/${id}/${status}`, {method:'PUT'});
var data = await result.json();
if (status === true){
status = 'True'
} else {
status = 'False'
}
document.getElementById(`${id}-active-status`).innerText = status;
activateAllButtons()
}
async function archiveCampaign(id){
deactivateAllButtons()
var result = await fetch(`/campaigns/campaign_api/archive_campaign/${id}`, {method:'PUT'});
var data = await result.json();
document.getElementById(`${id}-row`).remove();
activateAllButtons()
}
async function updateAdminStatus(id, status) {
deactivateAllButtons()
var result = await fetch(`/users/users_api/update_admin_status/${id}/${status}`, {method:'PUT'});
var data = await result.json();
if (status === true){
status = 'True'
} else {
status = 'False'
}
document.getElementById(`${id}-admin-status`).innerText = status;
activateAllButtons()
}
document.addEventListener("DOMContentLoaded", (event) => {
for(let i = 0; i < activityButtons.length; i++){
activityButtons[i].addEventListener('change', e => {
updateActiveStatus(parseInt(e.target.value), e.target.checked)
})
}
for(let i = 0; i < archiveButtons.length; i++){
archiveButtons[i].addEventListener('click', e => {
archiveCampaign(parseInt(e.target.value))
})
}
for(let i = 0; i < adminButtons.length; i++){
adminButtons[i].addEventListener('change', e => {
updateAdminStatus(parseInt(e.target.value), e.target.checked)
})
}
});