python-gallery/onlylegs/static/js/groupPage.js
2023-09-24 15:42:26 +01:00

155 lines
5.3 KiB
JavaScript

function groupDeletePopup() {
let title = 'Yeet!';
let subtitle =
'Are you surrrre? This action is irreversible ' +
'and very final. This wont delete the images, ' +
'but it will remove them from this group.'
let body = null;
let deleteBtn = document.createElement('button');
deleteBtn.classList.add('btn-block');
deleteBtn.classList.add('critical');
deleteBtn.innerHTML = 'Dewww eeeet!';
deleteBtn.onclick = groupDeleteConfirm;
popupShow(title, subtitle, body, [popupCancelButton, deleteBtn]);
}
function groupDeleteConfirm(event) {
// AJAX takes control of subby form :3
event.preventDefault();
fetch('/group/' + group_data['id'], {
method: 'DELETE',
}).then(response => {
if (response.ok) {
window.location.href = '/group/';
} else {
addNotification('Server exploded, returned:' + response.status, 2);
}
}).catch(error => {
addNotification('Error yeeting group!' + error, 2);
});
}
function groupEditPopup() {
let title = 'Nothing stays the same';
let subtitle = 'Add, remove, or change, the power is in your hands...'
let formSubmitButton = document.createElement('button');
formSubmitButton.setAttribute('form', 'groupEditForm');
formSubmitButton.setAttribute('type', 'submit');
formSubmitButton.classList.add('btn-block');
formSubmitButton.classList.add('primary');
formSubmitButton.innerHTML = 'Saveeee';
// Create form
let body = document.createElement('form');
body.setAttribute('onsubmit', 'return groupEditConfirm(event);');
body.id = 'groupEditForm';
let formImageId = document.createElement('input');
formImageId.setAttribute('type', 'text');
formImageId.setAttribute('placeholder', 'Image ID');
formImageId.setAttribute('required', '');
formImageId.classList.add('input-block');
formImageId.id = 'groupFormImageId';
let formAction = document.createElement('input');
formAction.setAttribute('type', 'text');
formAction.setAttribute('value', 'add');
formAction.setAttribute('placeholder', '[add, remove]');
formAction.setAttribute('required', '');
formAction.classList.add('input-block');
formAction.id = 'groupFormAction';
body.appendChild(formImageId);
body.appendChild(formAction);
popupShow(title, subtitle, body, [popupCancelButton, formSubmitButton]);
}
function groupEditConfirm(event) {
// AJAX takes control of subby form :3
event.preventDefault();
let imageId = document.querySelector("#groupFormImageId").value;
let action = document.querySelector("#groupFormAction").value;
let formData = new FormData();
formData.append("imageId", imageId);
formData.append("action", action);
fetch('/group/' + group_data['id'], {
method: 'PUT',
body: formData
}).then(response => {
if (response.ok) {
window.location.reload();
} else {
addNotification('Server exploded, returned:' + response.status, 2);
}
}).catch(error => {
addNotification('Error!!!!! Panic!!!!' + error, 2);
});
}
function groupCreatePopup() {
let title = 'New stuff!';
let subtitle =
'Image groups are a simple way to ' +
'"group" images together, are you ready?'
let formSubmitButton = document.createElement('button');
formSubmitButton.setAttribute('form', 'groupCreateForm');
formSubmitButton.setAttribute('type', 'submit');
formSubmitButton.classList.add('btn-block');
formSubmitButton.classList.add('primary');
formSubmitButton.innerHTML = 'Huzzah!';
// Create form
let body = document.createElement('form');
body.setAttribute('onsubmit', 'return groupCreateConfirm(event);');
body.id = 'groupCreateForm';
let formName = document.createElement('input');
formName.setAttribute('type', 'text');
formName.setAttribute('placeholder', 'Group namey');
formName.setAttribute('required', '');
formName.classList.add('input-block');
formName.id = 'groupFormName';
let formDescription = document.createElement('input');
formDescription.setAttribute('type', 'text');
formDescription.setAttribute('placeholder', 'What it about????');
formDescription.classList.add('input-block');
formDescription.id = 'groupFormDescription';
body.appendChild(formName);
body.appendChild(formDescription);
popupShow(title, subtitle, body, [popupCancelButton, formSubmitButton]);
}
function groupCreateConfirm(event) {
// AJAX takes control of subby form :3
event.preventDefault();
let name = document.querySelector("#groupFormName").value;
let description = document.querySelector("#groupFormDescription").value;
let formData = new FormData();
formData.append("name", name);
formData.append("description", description);
fetch('/group/', {
method: 'POST',
body: formData
}).then(response => {
if (response.ok) {
window.location.reload();
} else {
addNotification('Server exploded, returned:' + response.status, 2);
}
}).catch(error => {
addNotification('Error summoning group!' + error, 2);
});
}