67 lines
2.0 KiB
JavaScript
67 lines
2.0 KiB
JavaScript
// static/js/11-media.js
|
|
"use strict";
|
|
|
|
window.Glow = window.Glow || {};
|
|
|
|
Glow.resetMediaModal = () => {
|
|
if (!Glow.els.mediaOverlay) return;
|
|
|
|
Glow.els.mediaImage.classList.add("hidden");
|
|
Glow.els.mediaAudio.classList.add("hidden");
|
|
Glow.els.mediaVideo.classList.add("hidden");
|
|
Glow.els.mediaFileFallback.classList.add("hidden");
|
|
|
|
Glow.els.mediaImage.removeAttribute("src");
|
|
Glow.els.mediaImage.alt = "";
|
|
|
|
Glow.els.mediaAudio.pause();
|
|
Glow.els.mediaAudio.removeAttribute("src");
|
|
Glow.els.mediaAudio.load();
|
|
|
|
Glow.els.mediaVideo.pause();
|
|
Glow.els.mediaVideo.removeAttribute("src");
|
|
Glow.els.mediaVideo.load();
|
|
|
|
Glow.els.mediaTitle.textContent = "Media";
|
|
Glow.els.mediaDownloadLink.href = "#";
|
|
Glow.els.mediaDownloadLink.removeAttribute("download");
|
|
Glow.els.mediaFallbackLink.href = "#";
|
|
};
|
|
|
|
Glow.openMediaModal = ({ url, name = "Media", mimeType = "" }) => {
|
|
if (!url || !Glow.els.mediaOverlay) return;
|
|
|
|
Glow.resetMediaModal();
|
|
|
|
const mime = String(mimeType || "").toLowerCase();
|
|
const compactName = String(name || "Media").trim() || "Media";
|
|
|
|
Glow.els.mediaTitle.textContent = compactName;
|
|
Glow.els.mediaTitle.title = compactName;
|
|
Glow.els.mediaDownloadLink.href = url;
|
|
Glow.els.mediaDownloadLink.download = compactName;
|
|
Glow.els.mediaFallbackLink.href = url;
|
|
|
|
if (mime.startsWith("image/")) {
|
|
Glow.els.mediaImage.src = url;
|
|
Glow.els.mediaImage.alt = compactName;
|
|
Glow.els.mediaImage.classList.remove("hidden");
|
|
} else if (mime.startsWith("audio/")) {
|
|
Glow.els.mediaAudio.src = url;
|
|
Glow.els.mediaAudio.classList.remove("hidden");
|
|
} else if (mime.startsWith("video/")) {
|
|
Glow.els.mediaVideo.src = url;
|
|
Glow.els.mediaVideo.classList.remove("hidden");
|
|
} else {
|
|
Glow.els.mediaFileFallback.classList.remove("hidden");
|
|
}
|
|
|
|
Glow.els.mediaOverlay.classList.remove("hidden");
|
|
};
|
|
|
|
Glow.closeMediaModal = () => {
|
|
if (!Glow.els.mediaOverlay) return;
|
|
|
|
Glow.els.mediaOverlay.classList.add("hidden");
|
|
Glow.resetMediaModal();
|
|
}; |