Merge pull request #4831 from gdpelican/image-gallery

FEATURE: Use image gallery functionality in magnific
This commit is contained in:
Régis Hanol 2017-04-25 09:39:10 +02:00 committed by GitHub
commit 64787e7fa4
4 changed files with 40 additions and 39 deletions

View File

@ -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(' &middot; ');
}
} }
},
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', '&times;')];
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(' &middot; ');
}
}
});
}); });
}); });
} }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -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;