handle server data deletion
Some checks are pending
Build and Push Docker Image / build (push) Waiting to run
Some checks are pending
Build and Push Docker Image / build (push) Waiting to run
This commit is contained in:
parent
841e24f508
commit
1d426dff26
@ -22,7 +22,7 @@ function getLoadedServer(options) {
|
||||
function getServerFromSnowflake(id) {
|
||||
server = getLoadedServer({id: id});
|
||||
if (!server.length) {
|
||||
throw new Error("No Server with that ID");
|
||||
return null;
|
||||
}
|
||||
|
||||
return server[0];
|
||||
@ -207,7 +207,7 @@ function selectServer(id) {
|
||||
if (!server) {
|
||||
$("#noSelectedServer").show();
|
||||
$("#selectedServerContainer").hide();
|
||||
selectServer = null;
|
||||
selectedServer = null;
|
||||
return;
|
||||
}
|
||||
|
||||
@ -265,7 +265,7 @@ $(document).on("selectedServerChange", async function() {
|
||||
|
||||
// region Load Servers
|
||||
|
||||
async function loadServers() {
|
||||
async function loadServers(generate=true) {
|
||||
|
||||
// Remove any previously loaded servers
|
||||
$(".sidebar .sidebar-item").closest("li").remove();
|
||||
@ -275,8 +275,12 @@ async function loadServers() {
|
||||
$(".sidebar .server-rate-limit").hide();
|
||||
|
||||
try {
|
||||
const servers = await ajaxRequest("/generate-servers/", "GET");
|
||||
servers.forEach(server => addToLoadedServers(server, false));
|
||||
let data = await ajaxRequest(
|
||||
generate ? "/generate-servers/" : "/api/servers/",
|
||||
"GET"
|
||||
);
|
||||
data = generate ? data : data.results; // api responds differently
|
||||
data.forEach(server => addToLoadedServers(server, false));
|
||||
}
|
||||
catch (error) {
|
||||
switch (error?.status) {
|
||||
@ -353,6 +357,34 @@ $(".js-serverHistoryBtn").on("click", () => {
|
||||
|
||||
// region Delete Server Data
|
||||
|
||||
const eraseServerData = async server => {
|
||||
const response = await ajaxRequest(`/api/servers/${server.id}/`, "DELETE");
|
||||
debugger
|
||||
|
||||
// Only server owners can delete all data at once
|
||||
if (response?.status === 403) {
|
||||
createModal({
|
||||
title: `Failed to Delete Data for ${server.name}`,
|
||||
texts: [{
|
||||
content: `Only the owner of <b>${server.name}</b> can erase all of it's data.`,
|
||||
html: true
|
||||
}],
|
||||
buttons: [{
|
||||
className: "btn-danger px-4",
|
||||
iconClass: "bi-arrow-return-right",
|
||||
closeModal: true
|
||||
}]
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
// Return to the 'select a server' screen
|
||||
selectServer(null);
|
||||
|
||||
// Refresh the sidebar server list
|
||||
await loadServers(false);
|
||||
}
|
||||
|
||||
$(".js-eraseServerBtn").on("click", () => {
|
||||
const server = selectedServer; // Store incase it changes
|
||||
const itemsToLose = arrayToHtmlList([
|
||||
@ -362,10 +394,6 @@ $(".js-eraseServerBtn").on("click", () => {
|
||||
"Tracked Content"
|
||||
]).addClass("mb-3").prop("outerHTML");
|
||||
|
||||
const eraseServerData = () => {
|
||||
alert("not implemented")
|
||||
}
|
||||
|
||||
createModal({
|
||||
title: `Delete Data for ${server.name}?`,
|
||||
texts: [
|
||||
@ -378,7 +406,7 @@ $(".js-eraseServerBtn").on("click", () => {
|
||||
className: "btn-danger me-3",
|
||||
iconClass: "bi-trash3",
|
||||
closeModal: true,
|
||||
onClick: eraseServerData
|
||||
onClick: () => eraseServerData(server)
|
||||
},
|
||||
{
|
||||
className: "btn-secondary px-4",
|
||||
|
Loading…
x
Reference in New Issue
Block a user