airshipui/web/js/main.js
Matthew Fuller d29603860b Add external dashboard integration to Airship UI
This change allows Airship UI to be integrated with external
dashboards (i.e. ceph-mgr dashboard, Octant, Horizon, openATTIC)
by specifying their service URLs in $HOME/.airshipui/plugins.json

Change-Id: I1d2fe9f558f0455cf3df6fef4cad2f2690d62b94
2020-04-30 13:52:27 -07:00

71 lines
2.2 KiB
JavaScript
Executable File

/*
Copyright (c) 2020 AT&T. All Rights Reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
const { app, BrowserWindow } = require('electron')
function createWindow () {
// Create the browser window.
const win = new BrowserWindow({
webPreferences: {
nodeIntegration: true,
webviewTag: true
},
show: false
})
// start electron maximized
win.maximize();
win.show();
// disable the default menu bar
//win.setMenu(null);
// and load the index.html of the app.
win.loadFile('index.html')
// Open the DevTools.
// win.webContents.openDevTools()
}
// This method will be called when Electron has finished
// initialization and is ready to create browser windows.
// Some APIs can only be used after this event occurs.
app.whenReady().then(createWindow)
// Quit when all windows are closed.
app.on('window-all-closed', () => {
// On macOS it is common for applications and their menu bar
// to stay active until the user quits explicitly with Cmd + Q
if (process.platform !== 'darwin') {
app.quit()
}
})
app.on('activate', () => {
// On macOS it's common to re-create a window in the app when the
// dock icon is clicked and there are no other windows open.
if (BrowserWindow.getAllWindows().length === 0) {
createWindow()
}
})
// SSL/TSL: not a great idea, but this will allow linking to external dashboards
// that use self-signed certs for dev purposes. Electron will simply show a blank
// page with no errors in the console log if it encounters a self-signed cert
app.on('certificate-error', (event, webContents, url, error, certificate, callback) => {
event.preventDefault();
callback(true);
})