Initial commit
This commit is contained in:
+44
@@ -0,0 +1,44 @@
|
||||
const BackgroundPollingModel = require('dashboard/data/background-polling/background-polling-model');
|
||||
|
||||
/**
|
||||
* Background polling model for the dashboard context.
|
||||
*/
|
||||
module.exports = BackgroundPollingModel.extend({
|
||||
|
||||
_onImportsStateChange: function (importsModel) {
|
||||
if (this._shouldRedirect(importsModel)) {
|
||||
this._redirectTo(importsModel.getRedirectUrl(this._userModel));
|
||||
return;
|
||||
}
|
||||
|
||||
if (importsModel.hasCompleted()) {
|
||||
this.trigger('importCompleted', importsModel, this);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Determines if the user can be redirected after the given
|
||||
* import has been completed. The following conditions must be true:
|
||||
* - Import has been completed
|
||||
* - No imports are still running
|
||||
* - No other imports have been previously completed
|
||||
* - Import has a redirect URL for the given user
|
||||
* - Import was NOT a twitter import
|
||||
* - Number of tables created:
|
||||
* - n if import was a .carto file
|
||||
* - 1 otherwise
|
||||
*/
|
||||
_shouldRedirect: function (importsModel) {
|
||||
return importsModel.hasCompleted() &&
|
||||
this.importsCollection.allImportsCompletedOrFailed() &&
|
||||
this.importsCollection.getCompletedItemsCount() === 1 &&
|
||||
!importsModel.isTwitterImport() &&
|
||||
importsModel.getRedirectUrl(this._userModel) &&
|
||||
(importsModel.getNumberOfTablesCreated() === 1 ||
|
||||
importsModel.isCartoImport());
|
||||
},
|
||||
|
||||
_redirectTo: function (url) {
|
||||
window.location = url;
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user