diff --git a/src/public/javascripts/services/tree.js b/src/public/javascripts/services/tree.js index 4a3a236e7..39c709023 100644 --- a/src/public/javascripts/services/tree.js +++ b/src/public/javascripts/services/tree.js @@ -707,6 +707,18 @@ messagingService.subscribeToMessages(message => { if (message.type === 'refresh-tree') { reload(); } + else if (message.type === 'open-note') { + noteDetailService.loadNoteDetail(message.noteId, { + newTab: true, + activate: true + }); + + if (utils.isElectron()) { + const currentWindow = require("electron").remote.getCurrentWindow(); + + currentWindow.show(); + } + } }); messagingService.subscribeToSyncMessages(syncData => { diff --git a/src/routes/api/clipper.js b/src/routes/api/clipper.js index d59fbcaca..5cb5099e7 100644 --- a/src/routes/api/clipper.js +++ b/src/routes/api/clipper.js @@ -4,6 +4,7 @@ const noteService = require('../../services/notes'); const dateNoteService = require('../../services/date_notes'); const dateUtils = require('../../services/date_utils'); const imageService = require('../../services/image'); +const messagingService = require('../../services/messaging'); const log = require('../../services/log'); const path = require('path'); const Link = require('../../entities/link'); @@ -52,7 +53,9 @@ async function createNote(req) { await note.setContent(rewrittenHtml); - return {}; + return { + noteId: note.noteId + }; } async function createImage(req) { @@ -92,7 +95,16 @@ async function createImage(req) { await note.setLabel('pageUrl', pageUrl); } - return {}; + return { + noteId: note.noteId + }; +} + +async function openNote(req) { + messagingService.sendMessageToAllClients({ + type: 'open-note', + noteId: req.params.noteId + }); } async function ping(req, res) { @@ -104,5 +116,6 @@ async function ping(req, res) { module.exports = { createNote, createImage, + openNote, ping }; \ No newline at end of file diff --git a/src/routes/routes.js b/src/routes/routes.js index 5f20a1268..b38f5357d 100644 --- a/src/routes/routes.js +++ b/src/routes/routes.js @@ -226,6 +226,7 @@ function register(app) { route(POST, '/api/clipper/notes', [], clipperRoute.createNote, apiResultHandler); route(POST, '/api/clipper/image', [], clipperRoute.createImage, apiResultHandler); + route(POST, '/api/clipper/open/:noteId', [], clipperRoute.openNote, apiResultHandler); route(GET, '/api/clipper/ping', [], clipperRoute.ping); app.use('', router);