From c86acc10ca44d4e4bbd48101cd14d25b97dff631 Mon Sep 17 00:00:00 2001 From: ydb5755 Date: Tue, 24 Sep 2024 11:41:46 +0300 Subject: [PATCH] admin buttons --- app/admin/static/admin.js | 55 +++++++++++++++++++++++++++++++-------- 1 file changed, 44 insertions(+), 11 deletions(-) diff --git a/app/admin/static/admin.js b/app/admin/static/admin.js index 8f31797..086db81 100644 --- a/app/admin/static/admin.js +++ b/app/admin/static/admin.js @@ -1,9 +1,18 @@ 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; @@ -25,9 +34,19 @@ function activateActiveStatusCheckboxes(){ } } -async function updateActiveStatus(id, status) { - deactivateActiveStatusCheckboxes() +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){ @@ -36,19 +55,28 @@ async function updateActiveStatus(id, status) { status = 'False' } document.getElementById(`${id}-active-status`).innerText = status; - activateActiveStatusCheckboxes() - activateArchiveButtons() - + activateAllButtons() } async function archiveCampaign(id){ - deactivateActiveStatusCheckboxes() - deactivateArchiveButtons() + deactivateAllButtons() var result = await fetch(`/campaigns/campaign_api/archive_campaign/${id}`, {method:'PUT'}); var data = await result.json(); document.getElementById(`${id}-row`).remove(); - activateActiveStatusCheckboxes() - activateArchiveButtons() + 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) => { @@ -62,4 +90,9 @@ document.addEventListener("DOMContentLoaded", (event) => { 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) + }) + } });