diff --git a/package-lock.json b/package-lock.json
index 4ad89292..3ae5d422 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1065,9 +1065,9 @@
}
},
"@electron/get": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.10.0.tgz",
- "integrity": "sha512-hlueNXU51c3CwQjBw/i5fwt+VfQgSQVUTdicpCHkhEjNZaa4CXJ5W1GaxSwtLE2dvRmAHjpIjUMHTqJ53uojfg==",
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.12.2.tgz",
+ "integrity": "sha512-vAuHUbfvBQpYTJ5wB7uVIDq5c/Ry0fiTBMs7lnEYAo/qXXppIVcWdfBr57u6eRnKdVso7KSiH6p/LbQAG6Izrg==",
"dev": true,
"requires": {
"debug": "^4.1.1",
@@ -3894,9 +3894,9 @@
}
},
"electron": {
- "version": "8.2.4",
- "resolved": "https://registry.npmjs.org/electron/-/electron-8.2.4.tgz",
- "integrity": "sha512-Lle0InIgSAHZxD5KDY0wZ1A2Zlc6GHwMhAxoHMzn05mndyP1YBkCYHc0TDDofzUTrsLFofduPjlknO5Oj9fTPA==",
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/electron/-/electron-8.3.0.tgz",
+ "integrity": "sha512-XRjiIJICZCgUr2vKSUI2PTkfP0gPFqCtqJUaTJSfCTuE3nTrxBKOUNeRMuCzEqspKkpFQU3SB3MdbMSHmZARlQ==",
"dev": true,
"requires": {
"@electron/get": "^1.0.1",
@@ -9302,24 +9302,24 @@
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
},
"pg": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/pg/-/pg-8.2.0.tgz",
- "integrity": "sha512-EQeWKZv7qBTQZQa7EraR61AOi0bpizvlZLvrPdgAGaraX4YI+y40iQnL39XjPMXVnHOOG3jV6kAGtc0WSJn/+A==",
+ "version": "8.2.1",
+ "resolved": "https://registry.npmjs.org/pg/-/pg-8.2.1.tgz",
+ "integrity": "sha512-DKzffhpkWRr9jx7vKxA+ur79KG+SKw+PdjMb1IRhMiKI9zqYUGczwFprqy+5Veh/DCcFs1Y6V8lRLN5I1DlleQ==",
"requires": {
"buffer-writer": "2.0.0",
"packet-reader": "1.0.0",
- "pg-connection-string": "^2.2.2",
- "pg-pool": "^3.2.0",
- "pg-protocol": "^1.2.3",
+ "pg-connection-string": "^2.2.3",
+ "pg-pool": "^3.2.1",
+ "pg-protocol": "^1.2.4",
"pg-types": "^2.1.0",
"pgpass": "1.x",
"semver": "4.3.2"
},
"dependencies": {
"pg-connection-string": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.2.2.tgz",
- "integrity": "sha512-+hel4DGuSZCjCZwglAuyi+XlodHnKmrbyTw0hVWlmGN2o4AfJDkDo5obAFzblS5M5PFBMx0uDt5Y1QjlNC+tqg=="
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.2.3.tgz",
+ "integrity": "sha512-I/KCSQGmOrZx6sMHXkOs2MjddrYcqpza3Dtsy0AjIgBr/bZiPJRK9WhABXN1Uy1UDazRbi9gZEzO2sAhL5EqiQ=="
},
"semver": {
"version": "4.3.2",
@@ -9339,14 +9339,14 @@
"integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw=="
},
"pg-pool": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.2.0.tgz",
- "integrity": "sha512-7BLwDNDEfPFjE9vmZLcJPLFwuDAVGZ5lIZo2MeQfwYG7EPGfdNVis/dz6obI/yKqvQIx2sf6QBKXMLB+y/ftgA=="
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.2.1.tgz",
+ "integrity": "sha512-BQDPWUeKenVrMMDN9opfns/kZo4lxmSWhIqo+cSAF7+lfi9ZclQbr9vfnlNaPr8wYF3UYjm5X0yPAhbcgqNOdA=="
},
"pg-protocol": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.2.3.tgz",
- "integrity": "sha512-erHFURS0mPmTbq18cn/zNL3Y4IzNCrU4sgCim0qy7zAPe3Vc0rvK5cImJR6lDvIaz3fJU2R1R9FNOlnUtyF10Q=="
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.2.4.tgz",
+ "integrity": "sha512-/8L/G+vW/VhWjTGXpGh8XVkXOFx1ZDY+Yuz//Ab8CfjInzFkreI+fDG3WjCeSra7fIZwAFxzbGptNbm8xSXenw=="
},
"pg-types": {
"version": "2.2.0",
@@ -12582,9 +12582,9 @@
}
},
"vue-i18n": {
- "version": "8.17.4",
- "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.17.4.tgz",
- "integrity": "sha512-wpk/drIkPf6gHCtvHc8zAZ1nsWBZ+/OOJYtJxqhYD6CKT0FJAG5oypwgF9kABt30FBWhl8NEb/QY+vaaBARlFg=="
+ "version": "8.17.6",
+ "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.17.6.tgz",
+ "integrity": "sha512-SsKL5D9Ii3zJPsFhUSllY754XuZvP8uCouUm+Mbylu95h3OwenV09uzIIEjkT7EtWyDQuWSMWObrNaD4ukBGZw=="
},
"vue-loader": {
"version": "15.9.1",
@@ -12626,9 +12626,9 @@
"dev": true
},
"vuex": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.3.0.tgz",
- "integrity": "sha512-1MfcBt+YFd20DPwKe0ThhYm1UEXZya4gVKUvCy7AtS11YAOUR+9a6u4fsv1Rr6ePZCDNxW/M1zuIaswp6nNv8Q=="
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.4.0.tgz",
+ "integrity": "sha512-ajtqwEW/QhnrBZQsZxCLHThZZaa+Db45c92Asf46ZDXu6uHXgbfVuBaJ4gzD2r4UX0oMJHstFwd2r2HM4l8umg=="
},
"vuex-persist": {
"version": "2.2.0",
diff --git a/package.json b/package.json
index 291c4219..5945318c 100644
--- a/package.json
+++ b/package.json
@@ -32,16 +32,16 @@
"material-design-icons": "^3.0.1",
"mssql": "^6.2.0",
"mysql": "^2.18.1",
- "pg": "^8.2.0",
+ "pg": "^8.2.1",
"source-map-support": "^0.5.16",
"spectre.css": "^0.5.8",
- "vue-i18n": "^8.17.4",
- "vuex": "^3.3.0",
+ "vue-i18n": "^8.17.6",
+ "vuex": "^3.4.0",
"vuex-persist": "^2.2.0"
},
"devDependencies": {
"babel-eslint": "^10.1.0",
- "electron": "^8.2.4",
+ "electron": "^8.3.0",
"electron-builder": "^22.4.1",
"electron-devtools-installer": "^3.0.0",
"electron-webpack": "^2.8.2",
diff --git a/src/main/ipc-handlers/connection.js b/src/main/ipc-handlers/connection.js
index 628d8c54..19612ebb 100644
--- a/src/main/ipc-handlers/connection.js
+++ b/src/main/ipc-handlers/connection.js
@@ -30,8 +30,8 @@ export default () => {
});
ipcMain.handle('connect', async (event, conn) => {
- // TODO: make a test before
- connections[conn.uid] = knex({
+ let structure;
+ const connection = knex({
client: conn.client,
connection: {
host: conn.host,
@@ -45,6 +45,14 @@ export default () => {
}
});
- return await InformationSchema.getStructure(connections[conn.uid]);
+ try {
+ structure = await InformationSchema.getStructure(connection);
+ }
+ catch (err) {
+ return { status: 'error', response: err.toString() };
+ }
+
+ connections[conn.uid] = connection;
+ return { status: 'success', response: structure };
});
};
diff --git a/src/renderer/components/BaseNotification.vue b/src/renderer/components/BaseNotification.vue
index 1c1e349a..9724240c 100644
--- a/src/renderer/components/BaseNotification.vue
+++ b/src/renderer/components/BaseNotification.vue
@@ -1,15 +1,20 @@
{{ connection }}
@@ -27,23 +27,32 @@ export default { }, computed: { ...mapGetters({ - selectedConnection: 'connections/getSelected' + selectedWorkspace: 'workspaces/getSelected', + getConnected: 'workspaces/getConnected' }) }, async created () { - this.isConnected = await Connection.checkConnection(this.connection.uid); - if (this.isConnected) { + const isInitiated = await Connection.checkConnection(this.connection.uid); + if (isInitiated) { try { - this.structure = await Connection.connect(this.connection);// TODO: use refresh + const { status, response } = await Connection.connect(this.connection); + if (status === 'success') { + this.structure = response; + this.addConnected(this.connection.uid); + } + else + this.addNotification({ status, message: response }); } catch (err) { - this.addNotification({ status: 'error', message: err.stack }); + this.addNotification({ status: 'error', message: err.toString() }); } } }, methods: { ...mapActions({ - addNotification: 'notifications/addNotification' + addNotification: 'notifications/addNotification', + addConnected: 'workspaces/addConnected', + removeConnected: 'workspaces/removeConnected' }) } }; diff --git a/src/renderer/components/TheNotificationsBoard.vue b/src/renderer/components/TheNotificationsBoard.vue index 25f34961..99548f07 100644 --- a/src/renderer/components/TheNotificationsBoard.vue +++ b/src/renderer/components/TheNotificationsBoard.vue @@ -5,7 +5,6 @@ v-for="notification in latestNotifications" :key="notification.uid" :message="notification.message" - :title="notification.message" :status="notification.status" @close="removeNotification(notification.uid)" /> @@ -42,7 +41,7 @@ export default { #notifications-board{ position: absolute; z-index: 9; - right: 1rem; + right: .8rem; bottom: $footer-height+1rem; } diff --git a/src/renderer/components/TheSettingBar.vue b/src/renderer/components/TheSettingBar.vue index e2f33235..615628f1 100644 --- a/src/renderer/components/TheSettingBar.vue +++ b/src/renderer/components/TheSettingBar.vue @@ -6,11 +6,11 @@ v-for="connection in connections" :key="connection.uid" class="settingbar-element btn btn-link tooltip tooltip-right" - :class="{'selected': connection.uid === selectedConnection}" + :class="{'selected': connection.uid === selectedWorkspace}" :data-tooltip="`${connection.user}@${connection.host}:${connection.port}`" - @click="selectConnection(connection.uid)" + @click="selectWorkspace(connection.uid)" > - +