Add cancel() on object interface

TNL-925
This commit is contained in:
Alessandro Verdura
2015-05-27 17:26:11 +02:00
parent 9603711196
commit 8f6abbfd97
2 changed files with 28 additions and 18 deletions

View File

@@ -84,7 +84,7 @@ define([
if (serverMsg.hasOwnProperty('Stage')) {
stage = Math.abs(serverMsg.Stage);
Import.error(defaults[stage] + errMsg, stage);
Import.cancel(defaults[stage] + errMsg, stage);
}
// It could be that the user is simply refreshing the page
// so we need to be sure this is an actual error from the server

View File

@@ -55,6 +55,27 @@ define(
$dom.wrapper.removeClass('is-hidden');
};
/**
* Sets the Import in the "error" status.
*
* Immediately stops any further polling from the server.
* Displays the error message at the list element that corresponds
* to the stage where the error occurred.
*
* @param {string} msg Error message to display.
* @param {int} [stage=current.stage] Stage of import process at which error occurred.
*/
var error = function (msg, stage) {
current.stage = Math.abs(stage || current.stage); // Could be negative
current.state = STATE.ERROR;
destroyEventListeners();
clearTimeout(timeout.id);
updateFeedbackList(msg);
deferred.resolve();
};
/**
* Initializes the event listeners
*
@@ -190,24 +211,13 @@ define(
var CourseImport = {
/**
* Sets the Import in the "error" status.
*
* Immediately stops any further polling from the server.
* Displays the error message at the list element that corresponds
* to the stage where the error occurred.
* Cancels the import and sets the Object to the error state
*
* @param {string} msg Error message to display.
* @param {int} [stage=current.stage] Stage of import process at which error occurred.
* @param {int} stage Stage of import process at which error occurred.
*/
error: function (msg, stage) {
current.stage = Math.abs(stage || current.stage); // Could be negative
current.state = STATE.ERROR;
destroyEventListeners();
clearTimeout(timeout.id);
updateFeedbackList(msg);
deferred.resolve();
cancel: function (msg, stage) {
error(msg, stage);
},
/**
@@ -228,7 +238,7 @@ define(
if (current.stage === STAGE.SUCCESS) {
success();
} else if (current.stage < STAGE.UPLOADING) { // Failed
this.error(gettext("Error importing course"));
error(gettext("Error importing course"));
} else { // In progress
updateFeedbackList();
@@ -273,7 +283,7 @@ define(
this.pollStatus(current.stage);
} else {
// An import in the upload stage cannot be resumed
this.error(gettext("There was an error with the upload"));
error(gettext("There was an error with the upload"));
}
}.bind(this));