83 lines
2.4 KiB
JavaScript
83 lines
2.4 KiB
JavaScript
define(['jquery'], function($) {
|
|
/**
|
|
* Hides the modal and modal cover, using the standard selectors.
|
|
* Note though that the class "is-fixed" on the modal cover
|
|
* prevents the closing operation.
|
|
*/
|
|
var hideModal = function(e) {
|
|
if (e) {
|
|
e.preventDefault();
|
|
}
|
|
|
|
var $modalCover = getModalCover();
|
|
|
|
// Unit editors (module_edit) do not want the modal cover to hide when users click outside
|
|
// of the editor. Users must press Cancel or Save to exit the editor.
|
|
if (!$modalCover.hasClass('is-fixed')) {
|
|
getModal().hide();
|
|
hideModalCover($modalCover);
|
|
}
|
|
};
|
|
|
|
/**
|
|
* Hides just the modal cover. Caller can pass in a specific
|
|
* element as the modal cover, otherwise the standard selector will be used.
|
|
*
|
|
* This method also unbinds the click handler on the modal cover.
|
|
*/
|
|
var hideModalCover = function(modalCover) {
|
|
if (modalCover == undefined) {
|
|
modalCover = getModalCover();
|
|
}
|
|
modalCover.hide();
|
|
modalCover.removeClass('is-fixed');
|
|
modalCover.unbind('click');
|
|
};
|
|
|
|
/**
|
|
* Shows the modal and modal cover, using the standard selectors.
|
|
*/
|
|
var showModal = function() {
|
|
getModal().show();
|
|
showModalCover();
|
|
};
|
|
|
|
/**
|
|
* Shows just the modal cover. The caller can optionally choose
|
|
* to have the class "is-fixed" added to the cover, and
|
|
* the user can also choose to specify a custom click handler
|
|
* for the modal cover.
|
|
*
|
|
* This method returns the modal cover element.
|
|
*/
|
|
var showModalCover = function(addFixed, clickHandler) {
|
|
var $modalCover = getModalCover();
|
|
$modalCover.show();
|
|
if (addFixed) {
|
|
$modalCover.addClass('is-fixed');
|
|
}
|
|
$modalCover.unbind('click');
|
|
if (clickHandler) {
|
|
$modalCover.bind('click', clickHandler);
|
|
} else {
|
|
$modalCover.bind('click', hideModal);
|
|
}
|
|
return $modalCover;
|
|
};
|
|
|
|
var getModalCover = function() {
|
|
return $('.modal-cover');
|
|
};
|
|
|
|
var getModal = function() {
|
|
return $('.modal, .showAsModal');
|
|
};
|
|
|
|
return {
|
|
showModal: showModal,
|
|
hideModal: hideModal,
|
|
showModalCover: showModalCover,
|
|
hideModalCover: hideModalCover
|
|
};
|
|
});
|