-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathauthWindow.js
45 lines (42 loc) · 1.5 KB
/
authWindow.js
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
const electron = require('electron');
const BrowserWindow = electron.BrowserWindow;
const ipcMain = electron.ipcMain;
module.exports = { createAuthWindow: function(mainWindow, loginCallback) {
var loginWindow = new BrowserWindow({
frame: false,
height: 250,
modal: true,
parent: mainWindow,
movable: false,
resizable: false,
show: false,
width: 230,
});
loginWindow.once('ready-to-show', function() {
loginWindow.show();
loginWindow.focus();
loginWindow.webContents.executeJavaScript('\
var ipcRenderer = require("electron").ipcRenderer;\
const form = document.getElementById("login-form");\
document.getElementById("trigramme").focus();\
form.addEventListener("submit", function(event) {\
event.preventDefault();\
const username = document.getElementById("trigramme").value;\
const password = document.getElementById("password").value;\
ipcRenderer.send("login-message", [username, password]);\
});\
document.addEventListener("keydown", event => {\
if (event.key === "Escape" || event.keyCode === 27) {\
ipcRenderer.send("login-message");\
}\
});'
);
});
loginWindow.loadURL('http://localhost:2626/login');
ipcMain.once('login-message', function(event, usernameAndPassword) {
try {
loginWindow.close();
loginCallback(usernameAndPassword[0], usernameAndPassword[1]);
} catch(e) { /* Do nothing */ }
});
}};