998c35dcb3
Also, we're now handling config ourselves instead of using electron-config and config dependencies.
82 lines
2.1 KiB
JavaScript
82 lines
2.1 KiB
JavaScript
/* global i18n: false */
|
|
/* global Whisper: false */
|
|
|
|
/* eslint-disable no-new */
|
|
|
|
// eslint-disable-next-line func-names
|
|
(function() {
|
|
'use strict';
|
|
|
|
window.Whisper = window.Whisper || {};
|
|
const { Database } = window.Whisper;
|
|
const { Logs } = window.Signal;
|
|
|
|
const CLEAR_DATA_STEPS = {
|
|
CHOICE: 1,
|
|
DELETING: 2,
|
|
};
|
|
window.Whisper.ClearDataView = Whisper.View.extend({
|
|
templateName: 'clear-data',
|
|
className: 'full-screen-flow overlay',
|
|
events: {
|
|
'click .cancel': 'onCancel',
|
|
'click .delete-all-data': 'onDeleteAllData',
|
|
},
|
|
initialize() {
|
|
this.step = CLEAR_DATA_STEPS.CHOICE;
|
|
},
|
|
onCancel() {
|
|
this.remove();
|
|
},
|
|
async onDeleteAllData() {
|
|
window.log.info('Deleting everything!');
|
|
this.step = CLEAR_DATA_STEPS.DELETING;
|
|
this.render();
|
|
|
|
try {
|
|
await Database.clear();
|
|
await Database.close();
|
|
window.log.info(
|
|
'All database connections closed. Starting database drop.'
|
|
);
|
|
await Database.drop();
|
|
} catch (error) {
|
|
window.log.error(
|
|
'Something went wrong deleting IndexedDB data then dropping database.'
|
|
);
|
|
}
|
|
|
|
this.clearAllData();
|
|
},
|
|
async clearAllData() {
|
|
try {
|
|
await Logs.deleteAll();
|
|
|
|
// SQLCipher
|
|
await window.Signal.Data.removeAll();
|
|
await window.Signal.Data.close();
|
|
await window.Signal.Data.removeDB();
|
|
|
|
await window.Signal.Data.removeOtherData();
|
|
} catch (error) {
|
|
window.log.error(
|
|
'Something went wrong deleting all data:',
|
|
error && error.stack ? error.stack : error
|
|
);
|
|
}
|
|
window.restart();
|
|
},
|
|
render_attributes() {
|
|
return {
|
|
isStep1: this.step === CLEAR_DATA_STEPS.CHOICE,
|
|
header: i18n('deleteAllDataHeader'),
|
|
body: i18n('deleteAllDataBody'),
|
|
cancelButton: i18n('cancel'),
|
|
deleteButton: i18n('deleteAllDataButton'),
|
|
|
|
isStep2: this.step === CLEAR_DATA_STEPS.DELETING,
|
|
deleting: i18n('deleteAllDataProgress'),
|
|
};
|
|
},
|
|
});
|
|
})();
|