Two fixes for tricky import/register scenarios (#2072)
* Clear data on finish of new install, unless re-link/light import * Don't show setup options in file menu in middle of light import * Naming changes to address feedback
This commit is contained in:
parent
ae75390acc
commit
2a384cef7e
2 changed files with 34 additions and 8 deletions
|
@ -54,7 +54,7 @@
|
||||||
},
|
},
|
||||||
finishLightImport: function() {
|
finishLightImport: function() {
|
||||||
var options = {
|
var options = {
|
||||||
startStep: Whisper.InstallView.Steps.SCAN_QR_CODE,
|
hasExistingData: true
|
||||||
};
|
};
|
||||||
this.openInstaller(options);
|
this.openInstaller(options);
|
||||||
},
|
},
|
||||||
|
@ -65,7 +65,16 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
openInstaller: function(options) {
|
openInstaller: function(options) {
|
||||||
|
options = options || {};
|
||||||
|
|
||||||
|
// If we're in the middle of import, we don't want to show the menu options
|
||||||
|
// allowing the user to switch to other ways to set up the app. If they
|
||||||
|
// switched back and forth in the middle of a light import, they'd lose all
|
||||||
|
// that imported data.
|
||||||
|
if (!options.hasExistingData) {
|
||||||
window.addSetupMenuItems();
|
window.addSetupMenuItems();
|
||||||
|
}
|
||||||
|
|
||||||
this.resetViews();
|
this.resetViews();
|
||||||
var installView = this.installView = new Whisper.InstallView(options);
|
var installView = this.installView = new Whisper.InstallView(options);
|
||||||
this.openView(this.installView);
|
this.openView(this.installView);
|
||||||
|
|
|
@ -32,9 +32,8 @@
|
||||||
this.connect();
|
this.connect();
|
||||||
this.on('disconnected', this.reconnect);
|
this.on('disconnected', this.reconnect);
|
||||||
|
|
||||||
if (Whisper.Registration.everDone() || options.startStep) {
|
// Keep data around if it's a re-link, or the middle of a light import
|
||||||
this.selectStep(options.startStep || Steps.SCAN_QR_CODE);
|
this.shouldRetainData = Whisper.Registration.everDone() || options.hasExistingData;
|
||||||
}
|
|
||||||
},
|
},
|
||||||
render_attributes: function() {
|
render_attributes: function() {
|
||||||
var errorMessage;
|
var errorMessage;
|
||||||
|
@ -162,11 +161,29 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
this.selectStep(Steps.PROGRESS_BAR);
|
this.selectStep(Steps.PROGRESS_BAR);
|
||||||
|
|
||||||
|
var finish = function() {
|
||||||
resolve(name);
|
resolve(name);
|
||||||
|
};
|
||||||
|
|
||||||
|
// Delete all data from database unless we're in the middle
|
||||||
|
// of a re-link, or we are finishing a light import. Without this,
|
||||||
|
// app restarts at certain times can cause weird things to happen,
|
||||||
|
// like data from a previous incomplete light import showing up
|
||||||
|
// after a new install.
|
||||||
|
if (this.shouldRetainData) {
|
||||||
|
return finish();
|
||||||
|
}
|
||||||
|
|
||||||
|
Whisper.Backup.clearDatabase().then(finish, function(error) {
|
||||||
|
console.log(
|
||||||
|
'confirmNumber: error clearing database',
|
||||||
|
error && error.stack ? error.stack : error
|
||||||
|
);
|
||||||
|
finish();
|
||||||
|
});
|
||||||
}.bind(this));
|
}.bind(this));
|
||||||
}.bind(this));
|
}.bind(this));
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
Whisper.InstallView.Steps = Steps;
|
|
||||||
})();
|
})();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue