diff --git a/package-lock.json b/package-lock.json index 3ae5d422..d8341fc6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1121,9 +1121,9 @@ "dev": true }, "@types/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-UoOfVEzAUpeSPmjm7h1uk5MH6KZma2z2O7a75onTGjnNvAvMVrPzPL/vBbT65iIGHWj6rokwfmYcmxmlSf2uwg==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.1.tgz", + "integrity": "sha512-TcUlBem321DFQzBNuz8p0CLLKp0VvF/XH9E4KHNmgwyp4E3AfgI5cjiIVZWlbfThBop2qxFIh4+LeY6hVWWZ2w==", "dev": true, "requires": { "@types/node": "*" @@ -1227,9 +1227,9 @@ } }, "@types/yargs": { - "version": "15.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.4.tgz", - "integrity": "sha512-9T1auFmbPZoxHz0enUFlUuKRy3it01R+hlggyVUMtnCTQRunsQYifnSGb8hET4Xo8yiC0o0r1paW3ud5+rbURg==", + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", + "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", "dev": true, "requires": { "@types/yargs-parser": "*" @@ -1664,27 +1664,27 @@ } }, "app-builder-bin": { - "version": "3.5.8", - "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.5.8.tgz", - "integrity": "sha512-ni3q7QTfQNWHNWuyn5x3FZu6GnQZv+TFnfgk5++svqleKEhHGqS1mIaKsh7x5pBX6NFXU3/+ktk98wA/AW4EXw==", + "version": "3.5.9", + "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.5.9.tgz", + "integrity": "sha512-NSjtqZ3x2kYiDp3Qezsgukx/AUzKPr3Xgf9by4cYt05ILWGAptepeeu0Uv+7MO+41o6ujhLixTou8979JGg2Kg==", "dev": true }, "app-builder-lib": { - "version": "22.6.0", - "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.6.0.tgz", - "integrity": "sha512-ky2aLYy92U+Gh6dKq/e8/bNmCotp6/GMhnX8tDZPv9detLg9WuBnWWi1ktBPlpbl1DREusy+TIh+9rgvfduQoA==", + "version": "22.6.1", + "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.6.1.tgz", + "integrity": "sha512-ENL7r+H7IBfDb4faeLASgndsXrAT7AV7m7yJjcpbFDXYma6an7ZWGFIvR0HJrsfiC5TIB8kdLJ/aMSImrrSi/Q==", "dev": true, "requires": { "7zip-bin": "~5.0.3", "@develar/schema-utils": "~2.6.5", "async-exit-hook": "^2.0.1", "bluebird-lst": "^1.0.9", - "builder-util": "22.6.0", + "builder-util": "22.6.1", "builder-util-runtime": "8.7.0", "chromium-pickle-js": "^0.2.0", "debug": "^4.1.1", "ejs": "^3.1.2", - "electron-publish": "22.6.0", + "electron-publish": "22.6.1", "fs-extra": "^9.0.0", "hosted-git-info": "^3.0.4", "is-ci": "^2.0.0", @@ -2499,15 +2499,15 @@ "dev": true }, "builder-util": { - "version": "22.6.0", - "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.6.0.tgz", - "integrity": "sha512-jgdES2ExJYkuXC3DEaGAjFctKNA81C4QDy8zdoc+rqdSqheTizuDNtZg02uMFklmUES4V4fggmqds+Y7wraqng==", + "version": "22.6.1", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.6.1.tgz", + "integrity": "sha512-A9cF+bSHqRTSKIUHEyE92Tl0Uh12N7yZRH9bccIL3gRUwtp6ulF28LsjNIWTSQ1clZo2M895cT5PCrKzjPQFVg==", "dev": true, "requires": { "7zip-bin": "~5.0.3", "@types/debug": "^4.1.5", "@types/fs-extra": "^8.1.0", - "app-builder-bin": "3.5.8", + "app-builder-bin": "3.5.9", "bluebird-lst": "^1.0.9", "builder-util-runtime": "8.7.0", "chalk": "^4.0.0", @@ -3684,13 +3684,13 @@ } }, "dmg-builder": { - "version": "22.6.0", - "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.6.0.tgz", - "integrity": "sha512-rJxuGhHIpcuDGBtWZMM8aLxkbZNgYO2MO5dUerDIBXebhX1K8DA23iz/uZ8ahcRNgWEv57b8GDqJbXKEfr5T0A==", + "version": "22.6.1", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.6.1.tgz", + "integrity": "sha512-jUTN0acP15puzevtQASj7QEPgUGpedWSuSnOwR/++JbeYRTwU2oro09h/KZnaeMcxgxjdmT3tYLJeY1XUfPbRg==", "dev": true, "requires": { - "app-builder-lib": "22.6.0", - "builder-util": "22.6.0", + "app-builder-lib": "22.6.1", + "builder-util": "22.6.1", "fs-extra": "^9.0.0", "iconv-lite": "^0.5.1", "js-yaml": "^3.13.1", @@ -3885,9 +3885,9 @@ "dev": true }, "ejs": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.2.tgz", - "integrity": "sha512-zFuywxrAWtX5Mk2KAuoJNkXXbfezpNA0v7i+YC971QORguPekpjpAgeOv99YWSdKXwj7JxI2QAWDeDkE8fWtXw==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.3.tgz", + "integrity": "sha512-wmtrUGyfSC23GC/B1SMv2ogAUgbQEtDmTIhfqielrG5ExIM9TP4UoYdi90jLF1aTcsWCJNEO0UrgKzP0y3nTSg==", "dev": true, "requires": { "jake": "^10.6.1" @@ -3905,18 +3905,18 @@ } }, "electron-builder": { - "version": "22.6.0", - "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.6.0.tgz", - "integrity": "sha512-aLHlB6DTfjJ3MI4AUIFeWnwIozNgNlbOk2c2sTHxB10cAKp0dBVSPZ7xF5NK0uwDhElvRzJQubnHtJD6zKg42Q==", + "version": "22.6.1", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.6.1.tgz", + "integrity": "sha512-3/VNg9GfXKHM53TilFtfF1+bsAR8THK1XHgeqCpsiequa02J9jTPc/DhpCUKQPkrs6/EIGxP7uboop7XYoew0Q==", "dev": true, "requires": { - "@types/yargs": "^15.0.4", - "app-builder-lib": "22.6.0", + "@types/yargs": "^15.0.5", + "app-builder-lib": "22.6.1", "bluebird-lst": "^1.0.9", - "builder-util": "22.6.0", + "builder-util": "22.6.1", "builder-util-runtime": "8.7.0", "chalk": "^4.0.0", - "dmg-builder": "22.6.0", + "dmg-builder": "22.6.1", "fs-extra": "^9.0.0", "is-ci": "^2.0.0", "lazy-val": "^1.0.4", @@ -3979,19 +3979,19 @@ } }, "electron-publish": { - "version": "22.6.0", - "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.6.0.tgz", - "integrity": "sha512-+v05SBf9qR7Os5au+fifloNHy5QxHQkUGudBj68YaTb43Pn37UkwRxSc49Lf13s4wW32ohM45g8BOVInPJEdnA==", + "version": "22.6.1", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.6.1.tgz", + "integrity": "sha512-/MkS47ospdSfAFW5Jp52OzYou14HhGJpZ51uAc3GJ5rCfACeqpimC/n1ajRLE3hcXxTWfd3t9MCuClq5jrUO5w==", "dev": true, "requires": { "@types/fs-extra": "^8.1.0", "bluebird-lst": "^1.0.9", - "builder-util": "22.6.0", + "builder-util": "22.6.1", "builder-util-runtime": "8.7.0", "chalk": "^4.0.0", "fs-extra": "^9.0.0", "lazy-val": "^1.0.4", - "mime": "^2.4.4" + "mime": "^2.4.5" }, "dependencies": { "fs-extra": { @@ -4016,6 +4016,12 @@ "universalify": "^1.0.0" } }, + "mime": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.5.tgz", + "integrity": "sha512-3hQhEUF027BuxZjQA3s7rIv/7VCQPa27hN9u9g87sEkWaKwQPuXOkVKtOeiyUrnWqTDiOs8Ed2rwg733mB0R5w==", + "dev": true + }, "universalify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", @@ -4821,9 +4827,9 @@ "dev": true }, "eventemitter3": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz", - "integrity": "sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", "dev": true }, "events": { @@ -6753,9 +6759,9 @@ "dev": true }, "http-proxy": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.0.tgz", - "integrity": "sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ==", + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, "requires": { "eventemitter3": "^4.0.0", @@ -12582,9 +12588,9 @@ } }, "vue-i18n": { - "version": "8.17.6", - "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.17.6.tgz", - "integrity": "sha512-SsKL5D9Ii3zJPsFhUSllY754XuZvP8uCouUm+Mbylu95h3OwenV09uzIIEjkT7EtWyDQuWSMWObrNaD4ukBGZw==" + "version": "8.17.7", + "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.17.7.tgz", + "integrity": "sha512-7IQJ+72IIIxfR6Mt+X6EDmMP1i5oETFpc0FttnWKA9cgacf1DAlyho1aTItekG+AkbNs6nz4q3sYrXaPdC0irA==" }, "vue-loader": { "version": "15.9.1", diff --git a/package.json b/package.json index 5945318c..9a905807 100644 --- a/package.json +++ b/package.json @@ -35,14 +35,14 @@ "pg": "^8.2.1", "source-map-support": "^0.5.16", "spectre.css": "^0.5.8", - "vue-i18n": "^8.17.6", + "vue-i18n": "^8.17.7", "vuex": "^3.4.0", "vuex-persist": "^2.2.0" }, "devDependencies": { "babel-eslint": "^10.1.0", "electron": "^8.3.0", - "electron-builder": "^22.4.1", + "electron-builder": "^22.6.1", "electron-devtools-installer": "^3.0.0", "electron-webpack": "^2.8.2", "electron-webpack-vue": "^2.4.0", diff --git a/src/main/ipc-handlers/connection.js b/src/main/ipc-handlers/connection.js index cb5a90e7..bc50cbc1 100644 --- a/src/main/ipc-handlers/connection.js +++ b/src/main/ipc-handlers/connection.js @@ -30,7 +30,6 @@ export default () => { }); ipcMain.handle('connect', async (event, conn) => { - let structure; const connection = knex({ client: conn.client, connection: { @@ -46,14 +45,13 @@ export default () => { }); try { - structure = await InformationSchema.getStructure(connection); + const structure = await InformationSchema.getStructure(connection); + connections[conn.uid] = connection; + return { status: 'success', response: structure }; } catch (err) { return { status: 'error', response: err.toString() }; } - - connections[conn.uid] = connection; - return { status: 'success', response: structure }; }); ipcMain.handle('disconnect', (event, uid) => { @@ -63,12 +61,12 @@ export default () => { ipcMain.handle('refresh', async (event, uid) => { try { - structure = await InformationSchema.getStructure(connection); + const structure = await InformationSchema.getStructure(connections[uid]); + return { status: 'success', response: structure }; } catch (err) { + console.log(err); return { status: 'error', response: err.toString() }; } - - return { status: 'success', response: structure }; }); }; diff --git a/src/renderer/components/DatabaseExploreBar.vue b/src/renderer/components/DatabaseExploreBar.vue index 56475066..04d44cbd 100644 --- a/src/renderer/components/DatabaseExploreBar.vue +++ b/src/renderer/components/DatabaseExploreBar.vue @@ -2,16 +2,21 @@
@@ -27,18 +32,29 @@ export default { props: { connection: Object }, + data () { + return { + isRefreshing: false + }; + }, computed: { ...mapGetters({ - connected: 'workspaces/getConnected' + getWorkspace: 'workspaces/getWorkspace' }), - isConnected () { - return this.connected.includes(this.connection.uid); + workspace () { + return this.getWorkspace(this.connection.uid); } }, methods: { ...mapActions({ - disconnectWorkspace: 'workspaces/removeConnected' - }) + disconnectWorkspace: 'workspaces/removeConnected', + refreshStructure: 'workspaces/refreshStructure' + }), + async refresh () { + this.isRefreshing = true; + await this.refreshStructure(this.connection.uid); + this.isRefreshing = false; + } } }; @@ -76,14 +92,23 @@ export default { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; + display: flex; + align-items: center; } - .workspace-explorebar-tools > i{ - opacity: .6; - transition: opacity .2s;; + .workspace-explorebar-tools { + display: flex; + align-items: center; - &:hover{ - opacity: 1; + > i{ + opacity: .6; + transition: opacity .2s; + display: flex; + align-items: center; + + &:hover{ + opacity: 1; + } } } } diff --git a/src/renderer/components/DatabaseWorkspace.vue b/src/renderer/components/DatabaseWorkspace.vue index 5ab81ae7..69b4144d 100644 --- a/src/renderer/components/DatabaseWorkspace.vue +++ b/src/renderer/components/DatabaseWorkspace.vue @@ -2,7 +2,7 @@{{ JSON.stringify(connection, null, 3) }}+
{{ JSON.stringify(workspace.structure, null, 3) }}