-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmain.js
More file actions
executable file
·104 lines (90 loc) · 2.6 KB
/
main.js
File metadata and controls
executable file
·104 lines (90 loc) · 2.6 KB
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
// Modules
const {app, BrowserWindow, ipcMain} = require('electron');
const mainWindow = require('./mainWindow');
const monitorWindow = require('./monitorWindow.js');
const datastore = require('./datastore');
let windows = {};
// Enable Electron-Reload
//require('electron-reload')(__dirname)
// [ Triggers ]
app.on('ready', async () => {
createWindow('main')
await datastore.initializeDataStore()
let activeSession = await checkActiveSession(windows.mainWindow)
if (!activeSession) {
setTimeout(() => {
mainWindow.loadPage('login.html')
}, 3000)
}
});
// Quit when all windows are closed.
app.on('window-all-closed', () => {
// On OS X 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 OS X 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 (mainWindow !== null) { return }
})
// [ IPC Commiunication ]
ipcMain.on('log-out', async (e, msg) => {
try{
await datastore.logOut()
windows.monitorWindow.close();
windows.monitorWindow = null;
createWindow('main', 'login.html')
} catch(error) {
console.log(error);
}
})
ipcMain.on('log-in', async (e, msg) => {
try {
let isLoggedIn = await datastore.loginUser(msg.user, msg.password, msg.isRemembered)
if (!isLoggedIn) {
e.sender.send('log-in', {error: "Incorrect username or password"})
return
}
createWindow('monitor');
} catch(error) {
console.log('error', error)
e.sender.send('log-in', {error: error})
}
})
// [ Methods ]
function createWindow(window, filename) {
switch(window) {
case 'main':
let mainBrowserWindow = new BrowserWindow({
width: 1000,
height: 800,
minWidth: 920,
minHeight: 730
})
windows.mainWindow = mainBrowserWindow;
mainWindow.createWindow(mainBrowserWindow, filename)
break;
case 'monitor':
let monitorBrowserWindow = new BrowserWindow({
width: 1000,
height: 800,
minWidth: 920,
minHeight: 730
})
windows.monitorWindow = monitorBrowserWindow;
monitorWindow.createWindow(monitorBrowserWindow);
windows.mainWindow.close();
windows.mainWindow = null;
break;
}
}
var checkActiveSession = async function(currentWin) {
await datastore.expireSessions();
let activeSession = await datastore.restoreSession();
if (!activeSession) {
return false
}
createWindow('monitor');
return true
}