aboutsummaryrefslogtreecommitdiff
path: root/instance-manager.js
blob: 96151aba74d6609bf95a47c528d64e11a53407d1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
"use strict";

const { ipcRenderer } = require('electron');
const TabGroup = require("electron-tabs");
const $ = window.jQuery = require("jquery");

const tabGroup = new TabGroup();

function createNewConnection() {
  ipcRenderer.send("instanceManager.openNewConnectionDialog");
}

function registerNewInstance(payload) {
  tabGroup.addTab({
    title: getTabTitle(payload.connectionConfig),
    src: "file://" + __dirname + "/editor-instance.html",
    visible: true,
    active: true,
    webviewAttributes: {"nodeintegration":true},
    ready: tab => {
      let webview = tab.webview;
      if (!!webview) {
        webview.addEventListener("dom-ready", () => {
          webview.send("editorInstance.registerQueryExecutor", payload.assignedQueryExecutorId);
        })
      }
    }
  });
}

function getTabTitle(connectionConfig) {
  if(connectionConfig.name) {
    return connectionConfig.name;
  }
  else {
    return connectionConfig.hostname + ":" + connectionConfig.port;
  }
}

ipcRenderer.on("instanceManager.registerNewInstance", (event, payload) => {
  registerNewInstance(payload);
});


$(document).ready(() => {
  $("#new-connection").click(() => {
    createNewConnection();
  })
})