From 3d9f970ee7de61116150c3182bac134ef681b3d4 Mon Sep 17 00:00:00 2001 From: James Barnett Date: Sun, 25 Feb 2018 18:33:10 +0000 Subject: Save connection config and restore on app start --- main.js | 33 ++++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) (limited to 'main.js') 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 -- cgit v1.2.3