diff --git a/src/main/account.js b/src/main/account.js
index df51745e..06230af5 100644
--- a/src/main/account.js
+++ b/src/main/account.js
@@ -112,6 +112,19 @@ export default class Account {
})
}
+ removeAll () {
+ return new Promise((resolve, reject) => {
+ this.db.remove(
+ {},
+ { multi: true },
+ (err, numRemoved) => {
+ if (err) return reject(err)
+ resolve(numRemoved)
+ }
+ )
+ })
+ }
+
async forwardAccount (ac) {
if (ac.order <= 1) {
return ac.order
diff --git a/src/main/index.js b/src/main/index.js
index e247bd5a..7fe2c407 100644
--- a/src/main/index.js
+++ b/src/main/index.js
@@ -383,6 +383,18 @@ ipcMain.on('refresh-accounts', (event, _) => {
})
})
+ipcMain.on('remove-all-accounts', (event, _) => {
+ const account = new Account(accountDB)
+ account.removeAll()
+ .then(() => {
+ event.sender.send('response-remove-all-accounts')
+ })
+ .catch((err) => {
+ log.error(err)
+ event.sender.send('error-remove-all-accounts', err)
+ })
+})
+
// streaming
let userStreaming = null
diff --git a/src/renderer/components/Preferences/Account.vue b/src/renderer/components/Preferences/Account.vue
index 2a787669..358ef332 100644
--- a/src/renderer/components/Preferences/Account.vue
+++ b/src/renderer/components/Preferences/Account.vue
@@ -43,6 +43,19 @@
+
+
+ Are you sure to remove all associations?
+
+ cancel
+ confirm
+
+ Remove all associations
+
+
@@ -53,7 +66,8 @@ export default {
name: 'account',
data () {
return {
- openRemoveDialog: false
+ openRemoveDialog: false,
+ deletePopoverVisible: false
}
},
computed: {
@@ -103,6 +117,13 @@ export default {
.then(() => {
this.loadAccounts()
})
+ },
+ removeAllAssociations () {
+ this.deletePopoverVisible = false
+ this.$store.dispatch('Preferences/Account/removeAllAccounts')
+ .then(() => {
+ this.$router.push('/login')
+ })
}
}
}
@@ -124,6 +145,11 @@ export default {
.el-table::before {
background-color: var(--theme-border-color);
}
+
+ .reset {
+ margin: 24px 12px;
+ text-align: right;
+ }
}
.allow-up {
diff --git a/src/renderer/store/Preferences/Account.js b/src/renderer/store/Preferences/Account.js
index 82a69c50..dd06e0a3 100644
--- a/src/renderer/store/Preferences/Account.js
+++ b/src/renderer/store/Preferences/Account.js
@@ -67,6 +67,19 @@ const Account = {
resolve()
})
})
+ },
+ removeAllAccounts () {
+ return new Promise((resolve, reject) => {
+ ipcRenderer.send('remove-all-accounts')
+ ipcRenderer.once('error-remove-all-accounts', (event, err) => {
+ ipcRenderer.removeAllListeners('response-remove-all-accounts')
+ reject(err)
+ })
+ ipcRenderer.once('response-remove-all-accounts', (event) => {
+ ipcRenderer.removeAllListeners('error-remove-all-accounts')
+ resolve()
+ })
+ })
}
}
}