diff --git a/src/public/javascripts/services/messaging.js b/src/public/javascripts/services/messaging.js index 8ecd2e081..09c7556ac 100644 --- a/src/public/javascripts/services/messaging.js +++ b/src/public/javascripts/services/messaging.js @@ -67,12 +67,9 @@ function connectWebSocket() { // use wss for secure messaging const ws = new WebSocket(protocol + "://" + location.host); - ws.onopen = event => console.debug(utils.now(), "Connected to server with WebSocket"); + ws.onopen = () => console.debug(utils.now(), "Connected to server with WebSocket"); ws.onmessage = handleMessage; - ws.onclose = function(){ - // Try to reconnect in 5 seconds - setTimeout(() => connectWebSocket(), 5000); - }; + // we're not handling ws.onclose here because reconnection is done in sendPing() return ws; } @@ -88,13 +85,17 @@ setTimeout(() => { console.log("Lost connection to server"); } - try { + if (ws.readyState === ws.OPEN) { ws.send(JSON.stringify({ type: 'ping', lastSyncId: lastSyncId })); } - catch (e) {} // if the connection is closed then this produces a lot of messages + else if (ws.readyState === ws.CLOSED || ws.readyState === ws.CLOSING) { + console.log("WS closed or closing, trying to reconnect"); + + ws = connectWebSocket(); + } }, 1000); }, 0); diff --git a/src/public/javascripts/services/tab_context.js b/src/public/javascripts/services/tab_context.js index 9eaf6a22c..d2d35e758 100644 --- a/src/public/javascripts/services/tab_context.js +++ b/src/public/javascripts/services/tab_context.js @@ -96,7 +96,7 @@ class TabContext { this.$unprotectButton = this.$tabContent.find(".unprotect-button"); this.$unprotectButton.click(protectedSessionService.unprotectNoteAndSendToServer); - console.log(`Created note tab ${this.tabId}`); + console.debug(`Created note tab ${this.tabId}`); } setNote(note, notePath) { @@ -131,7 +131,7 @@ class TabContext { this.showPaths(); - console.log(`Switched tab ${this.tabId} to ${this.noteId}`); + console.debug(`Switched tab ${this.tabId} to ${this.noteId}`); } show() { diff --git a/src/public/javascripts/services/tree.js b/src/public/javascripts/services/tree.js index fe2cad5b4..7bcd09a61 100644 --- a/src/public/javascripts/services/tree.js +++ b/src/public/javascripts/services/tree.js @@ -635,18 +635,18 @@ async function createNote(node, parentNoteId, target, extraOptions = {}) { }; if (target === 'after') { - console.log(`Appending node...`); // to debug duplicated nodes - await node.appendSibling(newNode).setActive(true); } else if (target === 'into') { if (!node.getChildren() && node.isFolder()) { + // folder is not loaded - load will bring up the note since it was already put into cache + await node.load(true); + await node.setExpanded(); } - - console.log(`Adding node as child...`); // to debug duplicated nodes - - node.addChildren(newNode); + else { + node.addChildren(newNode); + } await node.getLastChild().setActive(true); @@ -754,10 +754,12 @@ utils.bindShortcut('ctrl+o', async () => { async function createNoteInto() { const node = getActiveNode(); - await createNote(node, node.data.noteId, 'into', { - isProtected: node.data.isProtected, - saveSelection: true - }); + if (node) { + await createNote(node, node.data.noteId, 'into', { + isProtected: node.data.isProtected, + saveSelection: true + }); + } } async function checkFolderStatus(node) {