mirror of
https://github.com/zulip/zulip.git
synced 2025-11-04 14:03:30 +00:00
This adds an image feed that you can scroll through with hotkeys in the lightbox. The left and right arrow keys along with the left and right arrows will go to the prev/next image, and clicking on an image will also take a user to that image.
78 lines
2.1 KiB
JavaScript
78 lines
2.1 KiB
JavaScript
var modals = (function () {
|
|
"use strict";
|
|
|
|
var exports = {
|
|
close: {
|
|
subscriptions: function () {
|
|
subs.close();
|
|
},
|
|
|
|
drafts: function () {
|
|
hashchange.exit_modal();
|
|
},
|
|
|
|
informationalOverlays: function () {
|
|
$(".informational-overlays").removeClass("show");
|
|
},
|
|
|
|
settings: function () {
|
|
hashchange.exit_modal();
|
|
},
|
|
|
|
lightbox: function () {
|
|
$(".player-container iframe").remove();
|
|
lightbox.is_open = false;
|
|
document.activeElement.blur();
|
|
},
|
|
|
|
invite: function () {
|
|
hashchange.exit_modal();
|
|
},
|
|
},
|
|
|
|
close_modal: function (name) {
|
|
$("[data-overlay='" + name + "']").removeClass("show");
|
|
|
|
if (exports.close[name]) {
|
|
exports.close[name]();
|
|
}
|
|
},
|
|
};
|
|
|
|
$(function () {
|
|
$("body").on("click", ".overlay, .overlay .exit", function (e) {
|
|
var $target = $(e.target);
|
|
|
|
// if the target is not the .overlay element, search up the node tree
|
|
// until it is found.
|
|
if ($target.is(".exit, .exit-sign, .overlay-content")) {
|
|
$target = $target.closest("[data-overlay]");
|
|
} else if (!$target.is(".overlay")) {
|
|
// not a valid click target then.
|
|
return;
|
|
}
|
|
|
|
var target_name = $target.attr("data-overlay");
|
|
|
|
$target.removeClass("show");
|
|
|
|
// if an appropriate clearing/closing function for a modal exists,
|
|
// execute it.
|
|
if (exports.close[target_name]) {
|
|
exports.close[target_name]();
|
|
} else {
|
|
blueslip.error("Tried to close unknown modal " + target_name);
|
|
}
|
|
|
|
e.preventDefault();
|
|
e.stopPropagation();
|
|
});
|
|
});
|
|
|
|
return exports;
|
|
}());
|
|
|
|
if (typeof module !== 'undefined') {
|
|
module.exports = modals;
|
|
}
|