Pull modal cover and date utils into their own files.
Move overview-specific functions into overview.js.
This commit is contained in:
18
cms/static/js/utils/get_date.js
Normal file
18
cms/static/js/utils/get_date.js
Normal file
@@ -0,0 +1,18 @@
|
||||
define(["jquery", "jquery.ui", "jquery.timepicker"], function($) {
|
||||
var getDate = function (datepickerInput, timepickerInput) {
|
||||
// given a pair of inputs (datepicker and timepicker), return a JS Date
|
||||
// object that corresponds to the datetime.js that they represent. Assume
|
||||
// UTC timezone, NOT the timezone of the user's browser.
|
||||
var date = $(datepickerInput).datepicker("getDate");
|
||||
var time = $(timepickerInput).timepicker("getTime");
|
||||
if(date && time) {
|
||||
return new Date(Date.UTC(
|
||||
date.getFullYear(), date.getMonth(), date.getDate(),
|
||||
time.getHours(), time.getMinutes()
|
||||
));
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
};
|
||||
return getDate;
|
||||
});
|
||||
83
cms/static/js/utils/modal.js
Normal file
83
cms/static/js/utils/modal.js
Normal file
@@ -0,0 +1,83 @@
|
||||
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
|
||||
};
|
||||
});
|
||||
Reference in New Issue
Block a user