Merge pull request #4831 from gdpelican/image-gallery
FEATURE: Use image gallery functionality in magnific
This commit is contained in:
commit
64787e7fa4
|
@ -2,47 +2,47 @@ import loadScript from 'discourse/lib/load-script';
|
||||||
import { escapeExpression } from 'discourse/lib/utilities';
|
import { escapeExpression } from 'discourse/lib/utilities';
|
||||||
|
|
||||||
export default function($elem) {
|
export default function($elem) {
|
||||||
$("a.lightbox", $elem).each(function(i, e) {
|
if (!$elem) { return; }
|
||||||
loadScript("/javascripts/jquery.magnific-popup-min.js").then(function() {
|
loadScript("/javascripts/jquery.magnific-popup.min.js").then(function() {
|
||||||
const $e = $(e);
|
const spoilers = $elem.find('.spoiler a.lightbox, .spoiled a.lightbox');
|
||||||
// do not lightbox spoiled images
|
$elem.find('a.lightbox').not(spoilers).magnificPopup({
|
||||||
if ($e.parents(".spoiler").length > 0 || $e.parents(".spoiled").length > 0) { return; }
|
type: "image",
|
||||||
|
closeOnContentClick: false,
|
||||||
|
removalDelay: 300,
|
||||||
|
mainClass: "mfp-zoom-in",
|
||||||
|
|
||||||
$e.magnificPopup({
|
gallery: {
|
||||||
type: "image",
|
enabled: true
|
||||||
closeOnContentClick: false,
|
},
|
||||||
removalDelay: 300,
|
|
||||||
mainClass: "mfp-zoom-in",
|
|
||||||
|
|
||||||
callbacks: {
|
callbacks: {
|
||||||
open() {
|
open() {
|
||||||
const wrap = this.wrap,
|
const wrap = this.wrap,
|
||||||
img = this.currItem.img,
|
img = this.currItem.img,
|
||||||
maxHeight = img.css("max-height");
|
maxHeight = img.css("max-height");
|
||||||
|
|
||||||
wrap.on("click.pinhandler", "img", function() {
|
wrap.on("click.pinhandler", "img", function() {
|
||||||
wrap.toggleClass("mfp-force-scrollbars");
|
wrap.toggleClass("mfp-force-scrollbars");
|
||||||
img.css("max-height", wrap.hasClass("mfp-force-scrollbars") ? "none" : maxHeight);
|
img.css("max-height", wrap.hasClass("mfp-force-scrollbars") ? "none" : maxHeight);
|
||||||
});
|
});
|
||||||
},
|
|
||||||
beforeClose() {
|
|
||||||
this.wrap.off("click.pinhandler");
|
|
||||||
this.wrap.removeClass("mfp-force-scrollbars");
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
beforeClose() {
|
||||||
image: {
|
this.wrap.off("click.pinhandler");
|
||||||
titleSrc(item) {
|
this.wrap.removeClass("mfp-force-scrollbars");
|
||||||
const href = item.el.data("download-href") || item.src;
|
|
||||||
let src = [escapeExpression(item.el.attr("title")), $("span.informations", item.el).text().replace('x', '×')];
|
|
||||||
if (!Discourse.SiteSettings.prevent_anons_from_downloading_files || Discourse.User.current()) {
|
|
||||||
src.push('<a class="image-source-link" href="' + href + '">' + I18n.t("lightbox.download") + '</a>');
|
|
||||||
}
|
|
||||||
return src.join(' · ');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
image: {
|
||||||
|
titleSrc(item) {
|
||||||
|
const href = item.el.data("download-href") || item.src;
|
||||||
|
let src = [escapeExpression(item.el.attr("title")), $("span.informations", item.el).text().replace('x', '×')];
|
||||||
|
if (!Discourse.SiteSettings.prevent_anons_from_downloading_files || Discourse.User.current()) {
|
||||||
|
src.push('<a class="image-source-link" href="' + href + '">' + I18n.t("lightbox.download") + '</a>');
|
||||||
|
}
|
||||||
|
return src.join(' · ');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -39,7 +39,7 @@
|
||||||
//= require plugin_tests
|
//= require plugin_tests
|
||||||
//= require_self
|
//= require_self
|
||||||
//
|
//
|
||||||
//= require jquery.magnific-popup-min.js
|
//= require jquery.magnific-popup.min.js
|
||||||
|
|
||||||
window.inTestEnv = true;
|
window.inTestEnv = true;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue