1
1
const { ipcRenderer } = require ( 'electron' ) ;
2
2
3
- const keyStore = import ( './src/keystore.js' ) ;
4
-
5
3
ipcRenderer . on ( 'new-task' , ( ) => {
6
4
document . querySelector ( '.Omnibutton' ) . click ( ) ;
7
5
document . querySelector ( '.Omnibutton-task' ) . click ( ) ;
@@ -11,58 +9,3 @@ ipcRenderer.on('show-preferences', () => {
11
9
document . querySelector ( '.TopbarSettingsMenuButton' ) ?. click ( ) ;
12
10
document . querySelector ( '.TopbarSettingsMenu-settings' ) ?. click ( ) ;
13
11
} ) ;
14
-
15
- document . addEventListener ( 'readystatechange' , async ( ) => {
16
- const DomHooks = {
17
- loginform : '.LoginEmailPasswordForm' ,
18
- loginusername : 'input[name=e]' ,
19
- loginpassword : 'input[name=p]' ,
20
- loginbutton : '[role=button]' ,
21
- } ;
22
-
23
- if ( document . location . pathname . endsWith ( '/login' ) ) {
24
- const loginform = document . querySelector ( DomHooks . loginform ) ;
25
- const loginusername = loginform . querySelector ( DomHooks . loginusername ) ;
26
- const loginpassword = loginform . querySelector ( DomHooks . loginpassword ) ;
27
-
28
- // try using saved login
29
- const loginkeys = await keyStore . getKey ( ) ;
30
-
31
- // Trigger the attached `change` event to get the values into the Virtual DOM (as Asana runs React/Nuxt.js)
32
- const event = new Event ( 'HTMLEvents' ) ;
33
- event . initEvent ( 'change' , true , false ) ;
34
-
35
- if ( loginkeys ?. username ) {
36
- loginusername . value = loginkeys . username ;
37
- loginusername . dispatchEvent ( event ) ;
38
- }
39
-
40
- if ( loginkeys ?. password ) {
41
- loginpassword . value = loginkeys . password ;
42
- loginpassword . dispatchEvent ( event ) ;
43
- }
44
-
45
- const loginsubmitted = async ( ) => {
46
- const username = loginusername . value ;
47
- const password = loginpassword . value ;
48
-
49
- if ( username && password ) {
50
- await keyStore . deleteKeys ( ) ; // delete any exiting logins
51
- await keyStore . addKey ( username , password ) ; // store the users details for auto-login next time
52
- }
53
- } ;
54
-
55
- // add a listener to the form to capture login details and store them
56
- // would be nice to add to just the <FORM> submit event, but React/Nuxt (used by Asana) captures the events lower in the DOM
57
- // loginform.addEventListener('submit', loginsubmitted);
58
- loginform
59
- . querySelector ( DomHooks . loginbutton )
60
- . addEventListener ( 'click' , loginsubmitted ) ;
61
- loginusername . addEventListener ( 'keyup' , ( e ) => {
62
- if ( e . code === 'Enter' ) loginsubmitted ( ) ;
63
- } ) ;
64
- loginpassword . addEventListener ( 'keyup' , ( e ) => {
65
- if ( e . code === 'Enter' ) loginsubmitted ( ) ;
66
- } ) ;
67
- }
68
- } ) ;
0 commit comments