lots of post-DB cleanup
This commit is contained in:
parent
965d6f5c3e
commit
c9d950d2b2
23 changed files with 412 additions and 550 deletions
|
@ -18,8 +18,8 @@ input[type="text"] {
|
|||
|
||||
.release-artwork {
|
||||
width: 200px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.release-artwork img {
|
||||
width: 100%;
|
||||
aspect-ratio: 1;
|
||||
|
@ -28,6 +28,9 @@ input[type="text"] {
|
|||
outline: 1px solid #808080;
|
||||
cursor: pointer;
|
||||
}
|
||||
.release-artwork #remove-artwork {
|
||||
padding: .3em .4em;
|
||||
}
|
||||
|
||||
.release-info {
|
||||
width: 0;
|
||||
|
@ -342,7 +345,7 @@ dialog div.dialog-actions {
|
|||
background-color: #8cff83
|
||||
}
|
||||
|
||||
.card.links a.button[data-name="applemusic"] {
|
||||
.card.links a.button[data-name="apple music"] {
|
||||
background-color: #8cd9ff
|
||||
}
|
||||
|
||||
|
|
|
@ -3,45 +3,36 @@ import Stateful from "/script/silver.min.js"
|
|||
const releaseID = document.getElementById("release").dataset.id;
|
||||
const titleInput = document.getElementById("title");
|
||||
const artworkImg = document.getElementById("artwork");
|
||||
const removeArtworkBtn = document.getElementById("remove-artwork");
|
||||
const artworkInput = document.getElementById("artwork-file");
|
||||
const typeInput = document.getElementById("type");
|
||||
const descInput = document.getElementById("description");
|
||||
const dateInput = document.getElementById("release-date");
|
||||
const buynameInput = document.getElementById("buyname");
|
||||
const buylinkInput = document.getElementById("buylink");
|
||||
const copyrightInput = document.getElementById("copyright");
|
||||
const copyrightURLInput = document.getElementById("copyright-url");
|
||||
const visInput = document.getElementById("visibility");
|
||||
const saveBtn = document.getElementById("save");
|
||||
const deleteBtn = document.getElementById("delete");
|
||||
|
||||
var artworkData = artworkImg.attributes.src.value;
|
||||
var edited = new Stateful(false);
|
||||
var releaseData = updateData(undefined);
|
||||
|
||||
function updateData(old) {
|
||||
var releaseData = {
|
||||
visible: visInput.value === "true",
|
||||
title: titleInput.value,
|
||||
description: descInput.value,
|
||||
type: typeInput.value,
|
||||
releaseDate: dateInput.value,
|
||||
artwork: artworkData,
|
||||
buyname: buynameInput.value,
|
||||
buylink: buylinkInput.value,
|
||||
};
|
||||
|
||||
if (releaseData && releaseData != old) {
|
||||
edited.set(true);
|
||||
}
|
||||
|
||||
return releaseData;
|
||||
}
|
||||
|
||||
function saveRelease() {
|
||||
console.table(releaseData);
|
||||
|
||||
saveBtn.addEventListener("click", () => {
|
||||
fetch("/api/v1/music/" + releaseID, {
|
||||
method: "PUT",
|
||||
body: JSON.stringify(releaseData),
|
||||
body: JSON.stringify({
|
||||
visible: visInput.value === "true",
|
||||
title: titleInput.value,
|
||||
description: descInput.value,
|
||||
type: typeInput.value,
|
||||
releaseDate: dateInput.value + ":00Z",
|
||||
artwork: artworkData,
|
||||
buyname: buynameInput.value,
|
||||
buylink: buylinkInput.value,
|
||||
copyright: copyrightInput.value,
|
||||
copyrightURL: copyrightURLInput.value,
|
||||
}),
|
||||
headers: { "Content-Type": "application/json" }
|
||||
}).then(res => {
|
||||
if (!res.ok) {
|
||||
|
@ -54,9 +45,13 @@ function saveRelease() {
|
|||
|
||||
location = location;
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
function deleteRelease() {
|
||||
deleteBtn.addEventListener("click", () => {
|
||||
if (releaseID != prompt(
|
||||
"You are about to permanently delete " + releaseID + ". " +
|
||||
"This action is irreversible. " +
|
||||
"Please enter \"" + releaseID + "\" to continue.")) return;
|
||||
fetch("/api/v1/music/" + releaseID, {
|
||||
method: "DELETE",
|
||||
}).then(res => {
|
||||
|
@ -70,15 +65,17 @@ function deleteRelease() {
|
|||
|
||||
location = "/admin";
|
||||
});
|
||||
}
|
||||
|
||||
edited.onUpdate(edited => {
|
||||
saveBtn.disabled = !edited;
|
||||
})
|
||||
|
||||
titleInput.addEventListener("change", () => {
|
||||
releaseData = updateData(releaseData);
|
||||
});
|
||||
|
||||
[titleInput, typeInput, descInput, dateInput, buynameInput, buylinkInput, copyrightInput, copyrightURLInput, visInput].forEach(input => {
|
||||
input.addEventListener("change", () => {
|
||||
saveBtn.disabled = false;
|
||||
});
|
||||
input.addEventListener("keypress", () => {
|
||||
saveBtn.disabled = false;
|
||||
});
|
||||
});
|
||||
|
||||
artworkImg.addEventListener("click", () => {
|
||||
artworkInput.addEventListener("change", () => {
|
||||
if (artworkInput.files.length > 0) {
|
||||
|
@ -87,41 +84,17 @@ artworkImg.addEventListener("click", () => {
|
|||
const data = e.target.result;
|
||||
artworkImg.src = data;
|
||||
artworkData = data;
|
||||
releaseData = updateData(releaseData);
|
||||
saveBtn.disabled = false;
|
||||
};
|
||||
reader.readAsDataURL(artworkInput.files[0]);
|
||||
}
|
||||
});
|
||||
artworkInput.click();
|
||||
});
|
||||
typeInput.addEventListener("change", () => {
|
||||
releaseData = updateData(releaseData);
|
||||
});
|
||||
descInput.addEventListener("change", () => {
|
||||
releaseData = updateData(releaseData);
|
||||
});
|
||||
dateInput.addEventListener("change", () => {
|
||||
releaseData = updateData(releaseData);
|
||||
});
|
||||
buynameInput.addEventListener("change", () => {
|
||||
releaseData = updateData(releaseData);
|
||||
});
|
||||
buylinkInput.addEventListener("change", () => {
|
||||
releaseData = updateData(releaseData);
|
||||
});
|
||||
visInput.addEventListener("change", () => {
|
||||
releaseData = updateData(releaseData);
|
||||
});
|
||||
|
||||
saveBtn.addEventListener("click", () => {
|
||||
if (!edited.get()) return;
|
||||
saveRelease();
|
||||
});
|
||||
|
||||
deleteBtn.addEventListener("click", () => {
|
||||
if (releaseID != prompt(
|
||||
"You are about to permanently delete " + releaseID + ". " +
|
||||
"This action is irreversible. " +
|
||||
"Please enter \"" + releaseID + "\" to continue.")) return;
|
||||
deleteRelease();
|
||||
removeArtworkBtn.addEventListener("click", () => {
|
||||
artworkImg.src = "/img/default-cover-art.png"
|
||||
artworkData = "";
|
||||
saveBtn.disabled = false;
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue