Something went wrong. Try again.
home to your local SPACEGIRL 💫 arimelody.space
Something went wrong. Try again.
3.6 kB · 106 lines
JavaScript
at dev
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107import { hijackClickEvent } from "./admin.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;
saveBtn.addEventListener("click", () => { fetch("/api/v1/music/" + releaseID, { method: "PUT", 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) { res.text().then(error => { console.error(error); alert("Failed to update release: " + error); }); return; }
location = location; });});
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 => { if (!res.ok) { res.text().then(error => { console.error(error); alert("Failed to delete release: " + error); }); return; }
location = "/admin"; });});
[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) { const reader = new FileReader(); reader.onload = e => { const data = e.target.result; artworkImg.src = data; artworkData = data; saveBtn.disabled = false; }; reader.readAsDataURL(artworkInput.files[0]); } }); artworkInput.click();});
removeArtworkBtn.addEventListener("click", () => { artworkImg.src = "/img/default-cover-art.png" artworkData = ""; saveBtn.disabled = false;});
document.addEventListener("readystatechange", () => { document.querySelectorAll("#credits .credit").forEach(el => { hijackClickEvent(el, el.querySelector(".artist-name a")); });});