From f45e25172b1663e26614aecf82c3b9bcc48d2f61 Mon Sep 17 00:00:00 2001 From: zadam Date: Sun, 23 Jun 2019 13:25:00 +0200 Subject: [PATCH] opening links from the clipper --- src/public/javascripts/services/tree.js | 12 ++++++++++++ src/routes/api/clipper.js | 17 +++++++++++++++-- src/routes/routes.js | 1 + 3 files changed, 28 insertions(+), 2 deletions(-) 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);