76 lines
1.7 KiB
JavaScript
76 lines
1.7 KiB
JavaScript
const electron = require("electron");
|
|
const { app, BrowserWindow } = electron;
|
|
const express = require("express");
|
|
const body = require("body-parser");
|
|
const fs = require("fs");
|
|
const backend = express();
|
|
|
|
let win = null;
|
|
|
|
backend.use(express.static(__dirname + "/dist"));
|
|
backend.use(body.json());
|
|
|
|
backend.post("/settings", (req, res) => {
|
|
var config = JSON.parse(
|
|
fs.readFileSync(__dirname + "/dist/config.json", "utf8")
|
|
);
|
|
config.backend = req.body.backend;
|
|
fs.writeFile(__dirname + "/dist/config.json", JSON.stringify(config), err => {
|
|
if (err) throw err;
|
|
});
|
|
res.end();
|
|
});
|
|
|
|
let server = backend.listen(0, () => {
|
|
console.log("LISTEN")
|
|
app.whenReady().then(() => {
|
|
createWindow()
|
|
app.on('activate', () => {
|
|
if (BrowserWindow.getAllWindows().length === 0) createWindow()
|
|
})
|
|
});
|
|
|
|
});
|
|
|
|
app.on("window-all-closed", () => {
|
|
if (process.platform != "darwin") {
|
|
app.quit();
|
|
}
|
|
});
|
|
|
|
function createWindow() {
|
|
console.log("CREATE WINDOW")
|
|
const WINDOW_WIDTH = 1200;
|
|
const WINDOW_HEIGHT = 680;
|
|
|
|
let bounds = electron.screen.getPrimaryDisplay().bounds;
|
|
let x = bounds.x + (bounds.width - WINDOW_WIDTH) / 2;
|
|
let y = bounds.y + (bounds.height - WINDOW_HEIGHT) / 2;
|
|
|
|
win = new BrowserWindow({
|
|
width: WINDOW_WIDTH,
|
|
height: WINDOW_HEIGHT,
|
|
x: x,
|
|
y: y,
|
|
icon: __dirname + "/dist/static/icon_48.png"
|
|
});
|
|
|
|
win.setMenuBarVisibility(false);
|
|
|
|
let session = win.webContents.session;
|
|
/* session.clearCache(() => {
|
|
let url = "http://localhost:" + server.address().port;
|
|
console.log(url)
|
|
win.loadURL(url);
|
|
});
|
|
*/
|
|
|
|
let url = "http://localhost:" + server.address().port;
|
|
console.log(url)
|
|
win.loadURL(url);
|
|
|
|
win.on("closed", () => {
|
|
win = null;
|
|
});
|
|
}
|