99 lines
2.9 KiB
JavaScript
99 lines
2.9 KiB
JavaScript
const { ipcMain, app: electronApp, app, BrowserWindow } = require("electron");
|
|
|
|
const { default: ipcTypes } = require("../src/ipc.types.commonjs");
|
|
const { store } = require("./electron-store");
|
|
const log = require("electron-log");
|
|
const { ImportJobWithCloseDate } = require("./decoder/decoder");
|
|
const { ScrubEstimate } = require("./estimate-scrubber/estimate-scrubber");
|
|
|
|
//Import Ipc Handlers
|
|
require("./file-watcher/file-watcher-ipc");
|
|
require("./file-scan/file-scan-ipc");
|
|
require("./audit/audit-ipc");
|
|
|
|
console.log("*** Added IPC Handlers ***");
|
|
|
|
ipcMain.on("test", async (event, object) => {
|
|
console.log("Received test IPC Command");
|
|
event.reply("test-toRenderer", { status: 0, message: null });
|
|
});
|
|
|
|
ipcMain.on(ipcTypes.app.toMain.setAcceptableInsCoNm, (event, insCos) => {
|
|
store.set("accepted_ins_co", insCos);
|
|
});
|
|
|
|
ipcMain.on(ipcTypes.store.get, (event, key) => {
|
|
const val = store.get(key);
|
|
event.sender.send(ipcTypes.store.response, { [key]: val });
|
|
});
|
|
|
|
ipcMain.on(ipcTypes.store.set, (event, key, val) => {
|
|
store.set(key, val);
|
|
|
|
const st = store.get();
|
|
event.sender.send(ipcTypes.store.response, st);
|
|
});
|
|
|
|
ipcMain.on(ipcTypes.store.getAll, (event, obj) => {
|
|
const val = store.get();
|
|
event.sender.send(ipcTypes.store.response, val);
|
|
});
|
|
|
|
ipcMain.on(ipcTypes.app.toMain.getReleaseNotes, (event, obj) => {
|
|
const showNotes = store.get("showChangeLog");
|
|
if (showNotes) {
|
|
const rn = require("./changelog.json")[electronApp.getVersion()];
|
|
event.sender.send(ipcTypes.app.toRenderer.setReleaseNotes, rn);
|
|
} else {
|
|
event.sender.send(ipcTypes.app.toRenderer.setReleaseNotes, null);
|
|
}
|
|
});
|
|
|
|
ipcMain.on(ipcTypes.app.toMain.importJob, (event, { filepath, close_date }) => {
|
|
ImportJobWithCloseDate(filepath, close_date);
|
|
});
|
|
|
|
ipcMain.on(ipcTypes.app.toMain.log.debug, (event, ...obj) => {
|
|
log.debug(obj);
|
|
});
|
|
ipcMain.on(ipcTypes.app.toMain.log.info, (event, ...obj) => {
|
|
log.info(obj);
|
|
});
|
|
ipcMain.on(ipcTypes.app.toMain.log.warn, (event, ...obj) => {
|
|
log.warn(obj);
|
|
});
|
|
ipcMain.on(ipcTypes.app.toMain.log.error, (event, ...obj) => {
|
|
log.error(obj);
|
|
});
|
|
|
|
ipcMain.on(ipcTypes.app.toMain.getAppVersion, (event, obj) => {
|
|
event.sender.send(ipcTypes.app.toRenderer.appVersion, app.getVersion());
|
|
});
|
|
|
|
ipcMain.handle(ipcTypes.app.toMain.scrubEstimate, (event, { job }) => {
|
|
return ScrubEstimate({ job })
|
|
});
|
|
|
|
ipcMain.on(ipcTypes.app.toMain.openExternalWindow, (event, url) => {
|
|
const externalWindow = new BrowserWindow({
|
|
width: 1200,
|
|
height: 800,
|
|
webPreferences: {
|
|
nodeIntegration: false,
|
|
contextIsolation: true
|
|
}
|
|
});
|
|
|
|
externalWindow.loadURL(url);
|
|
|
|
// Optional: Open external links in default browser
|
|
externalWindow.webContents.setWindowOpenHandler(({ url }) => {
|
|
require('electron').shell.openExternal(url);
|
|
return { action: 'deny' };
|
|
});
|
|
});
|
|
|
|
|
|
ipcMain.on(ipcTypes.app.toMain.setInsRuleSet, (event, ins_rule_set) => {
|
|
store.set("ins_rule_set", ins_rule_set);
|
|
}); |