Files
edx-platform/cms/static/js/factories/export.js
2017-03-13 09:00:11 -04:00

58 lines
1.9 KiB
JavaScript

define([
'domReady', 'js/views/export', 'jquery', 'gettext'
], function(domReady, Export, $, gettext) {
'use strict';
return function(courselikeHomeUrl, library, statusUrl) {
var $submitBtn = $('.action-export'),
unloading = false,
previousExport = Export.storedExport(courselikeHomeUrl);
var onComplete = function() {
$submitBtn.show();
};
var startExport = function(e) {
e.preventDefault();
$submitBtn.hide();
Export.reset(library);
Export.start(statusUrl).then(onComplete);
$.ajax({
type: 'POST',
url: window.location.pathname,
data: {},
success: function(result, textStatus, xhr) {
if (xhr.status === 200) {
setTimeout(function() { Export.pollStatus(result); }, 1000);
} else {
// 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
if (!unloading) {
$(window).off('beforeunload.import');
Export.reset(library);
onComplete();
Export.showError(gettext('Your export has failed.'));
}
}
}
});
};
$(window).on('beforeunload', function() { unloading = true; });
// Display the status of last file upload on page load
if (previousExport) {
if (previousExport.completed !== true) {
$submitBtn.hide();
}
Export.resume(library).then(onComplete);
}
domReady(function() {
// export form setup
$submitBtn.bind('click', startExport);
});
};
});