mirror of
https://github.com/moodle/moodle.git
synced 2025-01-19 06:18:28 +01:00
MDL-57139 mod_lti: ensure promise best practices
This commit is contained in:
parent
7efdac5fc3
commit
1fea12b0eb
@ -46,42 +46,41 @@ define(
|
||||
* @param {object} postData The data to be sent for the content item selection request.
|
||||
*/
|
||||
init: function(url, postData) {
|
||||
var dialogueTitle = '';
|
||||
var context = {
|
||||
url: url,
|
||||
postData: postData
|
||||
};
|
||||
var bodyPromise = templates.render('mod_lti/contentitem', context);
|
||||
|
||||
if (dialogue) {
|
||||
// Set dialogue body.
|
||||
dialogue.setBody(bodyPromise);
|
||||
// Display the dialogue.
|
||||
dialogue.show();
|
||||
return;
|
||||
}
|
||||
|
||||
str.get_string('selectcontent', 'lti').then(function(title) {
|
||||
dialogueTitle = title;
|
||||
var context = {
|
||||
url: url,
|
||||
postData: postData
|
||||
};
|
||||
return ModalFactory.create({
|
||||
title: title,
|
||||
body: bodyPromise,
|
||||
large: true
|
||||
});
|
||||
}).then(function(modal) {
|
||||
dialogue = modal;
|
||||
// On hide handler.
|
||||
modal.getRoot().on(ModalEvents.hidden, function() {
|
||||
// Empty modal contents when it's hidden.
|
||||
modal.setBody('');
|
||||
|
||||
var body = templates.render('mod_lti/contentitem', context);
|
||||
if (dialogue) {
|
||||
// Set dialogue body.
|
||||
dialogue.setBody(body);
|
||||
// Display the dialogue.
|
||||
dialogue.show();
|
||||
} else {
|
||||
ModalFactory.create({
|
||||
title: dialogueTitle,
|
||||
body: body,
|
||||
large: true
|
||||
}).done(function(modal) {
|
||||
dialogue = modal;
|
||||
// Fetch notifications.
|
||||
notification.fetchNotifications();
|
||||
});
|
||||
|
||||
// Display the dialogue.
|
||||
dialogue.show();
|
||||
|
||||
// On hide handler.
|
||||
modal.getRoot().on(ModalEvents.hidden, function() {
|
||||
// Empty modal contents when it's hidden.
|
||||
modal.setBody('');
|
||||
|
||||
// Fetch notifications.
|
||||
notification.fetchNotifications();
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
// Display the dialogue.
|
||||
modal.show();
|
||||
return;
|
||||
}).catch(notification.exception);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -477,21 +477,19 @@ define(['jquery', 'core/ajax', 'core/notification', 'core/templates', 'mod_lti/t
|
||||
state: toolType.constants.state.configured
|
||||
});
|
||||
|
||||
promise.done(function(toolTypeData) {
|
||||
promise.then(function(toolTypeData) {
|
||||
stopLoading(element);
|
||||
announceSuccess(element);
|
||||
return toolTypeData;
|
||||
}).then(function(toolTypeData) {
|
||||
return templates.render('mod_lti/tool_card', toolTypeData);
|
||||
}).then(function(renderResult) {
|
||||
var html = renderResult[0];
|
||||
var js = renderResult[1];
|
||||
|
||||
var announcePromise = announceSuccess(element);
|
||||
var renderPromise = templates.render('mod_lti/tool_card', toolTypeData);
|
||||
|
||||
$.when(renderPromise, announcePromise).then(function(renderResult) {
|
||||
var html = renderResult[0];
|
||||
var js = renderResult[1];
|
||||
|
||||
templates.replaceNode(element, html, js);
|
||||
});
|
||||
});
|
||||
|
||||
promise.fail(function() {
|
||||
templates.replaceNode(element, html, js);
|
||||
return;
|
||||
}).catch(function() {
|
||||
stopLoading(element);
|
||||
announceFailure(element);
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user