aboutsummaryrefslogtreecommitdiff
path: root/main.js
diff options
context:
space:
mode:
authorJames Barnett <noreply@jamesbarnett.xyz>2018-02-25 18:33:10 +0000
committerJames Barnett <noreply@jamesbarnett.xyz>2018-02-25 18:33:10 +0000
commit3d9f970ee7de61116150c3182bac134ef681b3d4 (patch)
tree968e34586a57368c6a34753aaf77c50353a13975 /main.js
parente561125e5be2c02095dfe8f4557f6b9a6676b588 (diff)
downloadsql-plus-plus-3d9f970ee7de61116150c3182bac134ef681b3d4.tar.xz
sql-plus-plus-3d9f970ee7de61116150c3182bac134ef681b3d4.zip
Save connection config and restore on app start
Diffstat (limited to 'main.js')
-rw-r--r--main.js33
1 files changed, 28 insertions, 5 deletions
diff --git a/main.js b/main.js
index 8a8842b..3bf20b4 100644
--- a/main.js
+++ b/main.js
@@ -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