2017-12-09 22:26:26 +01:00
|
|
|
/**
|
2018-09-21 19:11:28 +02:00
|
|
|
* Handle full-size images with Bootstrap modal
|
2017-12-09 22:26:26 +01:00
|
|
|
**/
|
2018-09-21 19:11:28 +02:00
|
|
|
let img, video;
|
2017-12-09 22:26:26 +01:00
|
|
|
|
2017-12-01 17:08:40 +01:00
|
|
|
// set the media to display in #mediaFileView
|
2018-07-22 14:07:44 +02:00
|
|
|
function viewMediaFile(media, openModal = false) {
|
2018-09-21 19:11:28 +02:00
|
|
|
if (img === undefined || img === "undefined" || img === null) {
|
|
|
|
img = document.getElementById("mediaFullScreen");
|
|
|
|
video = document.getElementById("videoFullScreen");
|
|
|
|
}
|
|
|
|
|
2023-09-03 11:53:33 +02:00
|
|
|
let tagName = media.tagName.toUpperCase();
|
|
|
|
if (tagName !== "IMG" && tagName !== "VIDEO") {
|
|
|
|
media = media.querySelector("img, video")
|
|
|
|
}
|
|
|
|
|
2018-09-21 19:11:28 +02:00
|
|
|
let attr = media.getAttribute("src");
|
|
|
|
|
2023-09-03 11:53:33 +02:00
|
|
|
switch (media.tagName.toUpperCase()) {
|
2018-09-21 19:11:28 +02:00
|
|
|
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
|
|
|
}
|
2017-12-01 17:08:40 +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) {
|
2018-09-21 19:11:28 +02:00
|
|
|
let button = e.relatedTarget;
|
2018-02-04 17:21:55 +01:00
|
|
|
if ($(button).hasClass('media-download') || $(button).hasClass('author')) {
|
2017-12-01 17:08:40 +01:00
|
|
|
e.stopPropegation();
|
|
|
|
}
|
2017-12-09 22:26:26 +01:00
|
|
|
});
|
|
|
|
|
|
|
|
// close #mediaFileView (modal) with escape key
|
|
|
|
$(document).keyup(function(e) {
|
2018-09-21 19:11:28 +02:00
|
|
|
if (e.keyCode === 27) { // escape key := keycode `27`
|
2017-12-09 22:26:26 +01:00
|
|
|
$('#mediaFileView').modal('hide');
|
|
|
|
}
|
2023-09-03 11:53:33 +02:00
|
|
|
});
|
|
|
|
|
|
|
|
$(document).ready(function () {
|
|
|
|
$('[data-action="view-media-file"]').click(function () {
|
|
|
|
viewMediaFile(this)
|
|
|
|
});
|
2017-11-24 13:41:55 +01:00
|
|
|
});
|