1
0
mirror of https://github.com/TeamNewPipe/website synced 2025-10-06 00:22:38 +02:00
Files
website/js/mediaview.js
TobiGr fb7dee30dc Fix enlarging images and videos
Script was blocked by Content-Security-Policy
2023-09-03 11:53:33 +02:00

54 lines
1.6 KiB
JavaScript

/**
* Handle full-size images with Bootstrap modal
**/
let img, video;
// set the media to display in #mediaFileView
function viewMediaFile(media, openModal = false) {
if (img === undefined || img === "undefined" || img === null) {
img = document.getElementById("mediaFullScreen");
video = document.getElementById("videoFullScreen");
}
let tagName = media.tagName.toUpperCase();
if (tagName !== "IMG" && tagName !== "VIDEO") {
media = media.querySelector("img, video")
}
let attr = media.getAttribute("src");
switch (media.tagName.toUpperCase()) {
case "IMG":
img.src = (attr != null && attr !== 'undefined') ? attr : media.getElementsByTagName("img")[0].getAttribute("src");
break;
case "VIDEO":
video.src = (attr != null && attr !== 'undefined') ? attr : media.getElementsByTagName("video")[0].getAttribute("src");
video.play();
video.loop = !!media.loop;
break;
}
if (openModal) $('#mediaFileView').modal('show');
}
// prevent opening #mediaFileView (modal) when a download link is clicked
$('#mediaFileView').on('show.bs.modal', function (e) {
let button = e.relatedTarget;
if ($(button).hasClass('media-download') || $(button).hasClass('author')) {
e.stopPropegation();
}
});
// close #mediaFileView (modal) with escape key
$(document).keyup(function(e) {
if (e.keyCode === 27) { // escape key := keycode `27`
$('#mediaFileView').modal('hide');
}
});
$(document).ready(function () {
$('[data-action="view-media-file"]').click(function () {
viewMediaFile(this)
});
});