* is closed.
*
* @method setUpTrigger
- * @param {object} modal The modal instance
+ * @param {Promise} modalPromise The modal instance
* @param {object} triggerElement The jQuery element to open the modal
*/
- var setUpTrigger = function(modal, triggerElement) {
+ var setUpTrigger = function(modalPromise, triggerElement) {
if (typeof triggerElement != 'undefined') {
if (Array.isArray(triggerElement)) {
var selector = triggerElement[1];
CustomEvents.define(triggerElement, [CustomEvents.events.activate]);
triggerElement.on(CustomEvents.events.activate, selector, function(e, data) {
- modal.show();
+ modalPromise.then(function(modal) {
+ modal.show();
+
+ return modal;
+ });
data.originalEvent.preventDefault();
});
} else {
CustomEvents.define(triggerElement, [CustomEvents.events.activate]);
triggerElement.on(CustomEvents.events.activate, function(e, data) {
- modal.show();
+ modalPromise.then(function(modal) {
+ modal.show();
+
+ return modal;
+ });
data.originalEvent.preventDefault();
});
}
- modal.getRoot().on(ModalEvents.hidden, function() {
- triggerElement.focus();
+ modalPromise.then(function(modal) {
+ modal.getRoot().on(ModalEvents.hidden, function() {
+ triggerElement.focus();
+ });
+
+ return modal;
});
}
};
* @param {object} triggerElement The trigger HTML jQuery object
* @return {object} Modal instance
*/
- var createFromElement = function(registryConf, modalElement, triggerElement) {
+ var createFromElement = function(registryConf, modalElement) {
modalElement = $(modalElement);
var module = registryConf.module;
var modal = new module(modalElement);
- setUpTrigger(modal, triggerElement);
return modal;
};
var createFromType = function(registryConf, templateContext, triggerElement) {
var templateName = registryConf.template;
- return Templates.render(templateName, templateContext)
+ var modalPromise = Templates.render(templateName, templateContext)
.then(function(html) {
var modalElement = $(html);
- return createFromElement(registryConf, modalElement, triggerElement);
+ return createFromElement(registryConf, modalElement);
})
.fail(Notification.exception);
+
+ setUpTrigger(modalPromise, triggerElement);
+
+ return modalPromise;
};
/**