mirror of
https://github.com/discourse/discourse.git
synced 2025-02-14 07:42:45 +08:00
52 lines
1.5 KiB
JavaScript
52 lines
1.5 KiB
JavaScript
/**
|
|
Helper object for lightboxes.
|
|
|
|
@class Lightbox
|
|
@namespace Discourse
|
|
@module Discourse
|
|
**/
|
|
Discourse.Lightbox = {
|
|
apply: function($elem) {
|
|
$LAB.script("/javascripts/jquery.magnific-popup-min.js").wait(function() {
|
|
$("a.lightbox", $elem).each(function(i, e) {
|
|
var $e = $(e);
|
|
// do not lightbox spoiled images
|
|
if ($e.parents(".spoiler").length > 0 || $e.parents(".spoiled").length > 0) { return; }
|
|
|
|
$e.magnificPopup({
|
|
type: "image",
|
|
closeOnContentClick: false,
|
|
|
|
callbacks: {
|
|
open: function() {
|
|
var wrap = this.wrap,
|
|
img = this.currItem.img,
|
|
maxHeight = img.css("max-height");
|
|
|
|
wrap.on("click.pinhandler", "img", function() {
|
|
wrap.toggleClass("mfp-force-scrollbars");
|
|
img.css("max-height", wrap.hasClass("mfp-force-scrollbars") ? "none" : maxHeight);
|
|
});
|
|
},
|
|
beforeClose: function() {
|
|
this.wrap.off("click.pinhandler");
|
|
this.wrap.removeClass("mfp-force-scrollbars");
|
|
}
|
|
},
|
|
|
|
image: {
|
|
titleSrc: function(item) {
|
|
return [
|
|
item.el.attr("title"),
|
|
$("span.informations", item.el).text(),
|
|
'<a class="image-source-link" href="' + item.src + '" target="_blank">' + I18n.t("lightbox.download") + '</a>'
|
|
].join(' · ');
|
|
}
|
|
}
|
|
|
|
});
|
|
});
|
|
});
|
|
}
|
|
};
|