1
0
mirror of https://github.com/TeamNewPipe/website synced 2025-10-06 08:23:35 +02:00
Files
website/js/mediaview.js

54 lines
1.6 KiB
JavaScript
Raw Permalink Normal View History

2017-12-09 22:26:26 +01:00
/**
* Handle full-size images with Bootstrap modal
2017-12-09 22:26:26 +01:00
**/
let img, video;
2017-12-09 22:26:26 +01:00
// 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');
2017-11-24 13:41:55 +01:00
}
// prevent opening #mediaFileView (modal) when a download link is clicked
2017-11-24 13:41:55 +01:00
$('#mediaFileView').on('show.bs.modal', function (e) {
let button = e.relatedTarget;
if ($(button).hasClass('media-download') || $(button).hasClass('author')) {
e.stopPropegation();
}
2017-12-09 22:26:26 +01:00
});
// close #mediaFileView (modal) with escape key
$(document).keyup(function(e) {
if (e.keyCode === 27) { // escape key := keycode `27`
2017-12-09 22:26:26 +01:00
$('#mediaFileView').modal('hide');
}
});
$(document).ready(function () {
$('[data-action="view-media-file"]').click(function () {
viewMediaFile(this)
});
2017-11-24 13:41:55 +01:00
});