diff options
| -rw-r--r-- | main.js | 33 | ||||
| -rw-r--r-- | package-lock.json | 139 | ||||
| -rw-r--r-- | package.json | 3 |
3 files changed, 169 insertions, 6 deletions
@@ -1,11 +1,13 @@ -const { app, BrowserWindow, ipcMain } = require('electron'); - +const { app, BrowserWindow, ipcMain, webContents } = require('electron'); const path = require("path"); const url = require("url"); +const Store = require("electron-store"); +const connectionStore = new Store(); let uiWindow; let newConnectionDialog; let queryExecutors = []; +let savedConnections = []; function createMainWindow() { uiWindow = new BrowserWindow({ @@ -26,6 +28,8 @@ function createMainWindow() { app.on("ready", () => { createMainWindow(); + restoreSavedConnections(); + console.log(savedConnections); }); app.on("window-all-closed", () => { @@ -86,6 +90,7 @@ ipcMain.on("newConnection.createConnection", (event, payload) => { ipcMain.on("queryExecutor.initialiseConnectionCallback", (event, payload) => { if (payload.error !== undefined) { + console.log(payload.error); queryExecutors.pop().close(); newConnectionDialog.webContents.send("newConnection.initialisationFailed", payload.error); } @@ -96,9 +101,15 @@ ipcMain.on("queryExecutor.initialiseConnectionCallback", (event, payload) => { newConnectionDialog.webContents.send("newConnection.connectionTestOk"); queryExecutors.pop().close(); } - else{ + else { uiWindow.webContents.send("instanceManager.registerNewInstance", { assignedQueryExecutorId: payload.executorId, connectionConfig: connectionConfig }); - newConnectionDialog.close(); + + persistConnection(connectionConfig); + + if (newConnectionDialog) { + newConnectionDialog.close(); + } + } } @@ -110,7 +121,19 @@ function getQueryExecutorInstance() { return queryExecutors[queryExecutors.length - 1]; } -const { webContents } = require('electron'); +function persistConnection(connectionConfig) { + savedConnections.push(connectionConfig); + + connectionStore.set(savedConnections); + + console.log(connectionStore.store); +} + +function restoreSavedConnections() { + for (let connection of connectionStore) { + createQueryExecutor(connection[1]); + } +} // TODO - only send messages to instance manager which will route request to correct webView, rather than // sending to all webViews diff --git a/package-lock.json b/package-lock.json index b05f744..3ad9ecc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -215,6 +215,19 @@ } } }, + "conf": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/conf/-/conf-1.4.0.tgz", + "integrity": "sha512-bzlVWS2THbMetHqXKB8ypsXN4DQ/1qopGwNJi1eYbpwesJcd86FBjFciCQX/YwAhp9bM7NVnPFqZ5LpV7gP0Dg==", + "dev": true, + "requires": { + "dot-prop": "4.2.0", + "env-paths": "1.0.0", + "make-dir": "1.2.0", + "pkg-up": "2.0.0", + "write-file-atomic": "2.3.0" + } + }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -286,6 +299,15 @@ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true }, + "dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "dev": true, + "requires": { + "is-obj": "1.0.1" + } + }, "ecc-jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", @@ -324,12 +346,27 @@ "sumchecker": "1.3.1" } }, + "electron-store": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/electron-store/-/electron-store-1.3.0.tgz", + "integrity": "sha512-r1Pdl5MwpiCxgbsl0qnwv/GABO5+J/JTO16+KyqL+bOITIk9o3cq3Sw69uO9NgPkpfcKeEwxtJFbtbiBlGTiDA==", + "dev": true, + "requires": { + "conf": "1.4.0" + } + }, "electron-tabs": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/electron-tabs/-/electron-tabs-0.9.0.tgz", "integrity": "sha1-kb+L66dftJjp0vjf5WHhH6cLm34=", "dev": true }, + "env-paths": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-1.0.0.tgz", + "integrity": "sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA=", + "dev": true + }, "error-ex": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", @@ -528,6 +565,12 @@ "sshpk": "1.13.1" } }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, "indent-string": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", @@ -592,6 +635,12 @@ "number-is-nan": "1.0.1" } }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true + }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", @@ -708,6 +757,24 @@ "strip-bom": "2.0.0" } }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "2.0.0", + "path-exists": "3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } + } + }, "loud-rejection": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", @@ -718,6 +785,23 @@ "signal-exit": "3.0.2" } }, + "make-dir": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.2.0.tgz", + "integrity": "sha512-aNUAa4UMg/UougV25bbrU4ZaaKNjJ/3/xnvg/twpmKROPdKZPZ9wGgI0opdZzO8q/zUFawoUuixuOv33eZ61Iw==", + "dev": true, + "requires": { + "pify": "3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, "map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", @@ -855,6 +939,30 @@ "wrappy": "1.0.2" } }, + "p-limit": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", + "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", + "dev": true, + "requires": { + "p-try": "1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "1.2.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, "packet-reader": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-0.3.1.tgz", @@ -986,6 +1094,26 @@ "pinkie": "2.0.4" } }, + "pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "dev": true, + "requires": { + "find-up": "2.1.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "2.0.0" + } + } + } + }, "postgres-array": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-1.0.2.tgz", @@ -1420,6 +1548,17 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, + "write-file-atomic": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", + "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "signal-exit": "3.0.2" + } + }, "xtend": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", diff --git a/package.json b/package.json index 5dd96cb..d8fe84d 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "jquery.tabulator": "3.4.2", "electron-tabs": "0.9.0", "uuid": "3.2.1", - "bulma": "0.6.2" + "bulma": "0.6.2", + "electron-store": "1.3.0" } } |