From 156f04088096bec39fb2264fd101e24412bcdaa0 Mon Sep 17 00:00:00 2001 From: zadam Date: Thu, 5 Dec 2019 21:25:36 +0100 Subject: [PATCH] added "backend log" dialog --- package-lock.json | 14 ++++---- package.json | 2 +- src/public/javascripts/dialogs/backend_log.js | 32 +++++++++++++++++++ .../javascripts/services/entrypoints.js | 5 +++ src/routes/api/backend_log.js | 15 +++++++++ src/routes/routes.js | 3 ++ src/services/keyboard_actions.js | 5 +++ src/views/desktop.ejs | 7 ++++ src/views/dialogs/backend_log.ejs | 18 +++++++++++ src/views/mobile.ejs | 1 + 10 files changed, 94 insertions(+), 8 deletions(-) create mode 100644 src/public/javascripts/dialogs/backend_log.js create mode 100644 src/routes/api/backend_log.js create mode 100644 src/views/dialogs/backend_log.ejs diff --git a/package-lock.json b/package-lock.json index a00d81204..2aa49222c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "trilium", - "version": "0.37.8", + "version": "0.38.0-beta", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -6996,9 +6996,9 @@ }, "dependencies": { "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -9307,9 +9307,9 @@ } }, "sqlite3": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-4.1.0.tgz", - "integrity": "sha512-RvqoKxq+8pDHsJo7aXxsFR18i+dU2Wp5o12qAJOV5LNcDt+fgJsc2QKKg3sIRfXrN9ZjzY1T7SNe/DFVqAXjaw==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-4.1.1.tgz", + "integrity": "sha512-CvT5XY+MWnn0HkbwVKJAyWEMfzpAPwnTiB3TobA5Mri44SrTovmmh499NPQP+gatkeOipqPlBLel7rn4E/PCQg==", "requires": { "nan": "^2.12.1", "node-pre-gyp": "^0.11.0", diff --git a/package.json b/package.json index b93478b52..aa6d42830 100644 --- a/package.json +++ b/package.json @@ -68,7 +68,7 @@ "session-file-store": "1.3.1", "simple-node-logger": "18.12.23", "sqlite": "3.0.3", - "sqlite3": "4.1.0", + "sqlite3": "4.1.1", "string-similarity": "3.0.0", "tar-stream": "2.1.0", "turndown": "5.0.3", diff --git a/src/public/javascripts/dialogs/backend_log.js b/src/public/javascripts/dialogs/backend_log.js new file mode 100644 index 000000000..f899b90e0 --- /dev/null +++ b/src/public/javascripts/dialogs/backend_log.js @@ -0,0 +1,32 @@ +import server from "../services/server.js"; +import utils from "../services/utils.js"; + +const $dialog = $("#backend-log-dialog"); +const $backendLogTextArea = $("#backend-log-textarea"); +const $refreshBackendLog = $("#refresh-backend-log-button"); + +export async function showDialog() { + utils.closeActiveDialog(); + + glob.activeDialog = $dialog; + + $dialog.modal(); + + load(); +} + +function scrollToBottom() { + $backendLogTextArea.scrollTop($backendLogTextArea[0].scrollHeight); +} + +async function load() { + const backendLog = await server.get('backend-log'); + + $backendLogTextArea.text(backendLog); + + scrollToBottom(); +} + +$refreshBackendLog.on('click', load); + +$dialog.on('shown.bs.modal', scrollToBottom); \ No newline at end of file diff --git a/src/public/javascripts/services/entrypoints.js b/src/public/javascripts/services/entrypoints.js index c31505350..d3d0604b2 100644 --- a/src/public/javascripts/services/entrypoints.js +++ b/src/public/javascripts/services/entrypoints.js @@ -17,6 +17,7 @@ const JUMP_TO_NOTE = "../dialogs/jump_to_note.js"; const NOTE_SOURCE = "../dialogs/note_source.js"; const RECENT_CHANGES = "../dialogs/recent_changes.js"; const SQL_CONSOLE = "../dialogs/sql_console.js"; +const BACKEND_LOG = "../dialogs/backend_log.js"; const ATTRIBUTES = "../dialogs/attributes.js"; const HELP = "../dialogs/help.js"; const NOTE_INFO = "../dialogs/note_info.js"; @@ -95,6 +96,10 @@ function registerEntrypoints() { $("#open-sql-console-button").on('click', showSqlConsoleDialog); keyboardActionService.setGlobalActionHandler("ShowSQLConsole", showSqlConsoleDialog); + const showBackendLogDialog = () => import(BACKEND_LOG).then(d => d.showDialog()); + $("#show-backend-log-button").on('click', showBackendLogDialog); + keyboardActionService.setGlobalActionHandler("ShowBackendLog", showBackendLogDialog); + $("#show-about-dialog-button").on('click', () => import(ABOUT).then(d => d.showDialog())); if (utils.isElectron()) { diff --git a/src/routes/api/backend_log.js b/src/routes/api/backend_log.js new file mode 100644 index 000000000..fa550cbd3 --- /dev/null +++ b/src/routes/api/backend_log.js @@ -0,0 +1,15 @@ +"use strict"; + +const fs = require('fs'); +const dateUtils = require('../../services/date_utils'); +const {LOG_DIR} = require('../../services/data_dir.js'); + +async function getBackendLog() { + const file = `${LOG_DIR}/trilium-${dateUtils.localNowDate()}.log`; + + return fs.readFileSync(file, 'utf8'); +} + +module.exports = { + getBackendLog +}; \ No newline at end of file diff --git a/src/routes/routes.js b/src/routes/routes.js index fb8f1ebdf..6a4f0d408 100644 --- a/src/routes/routes.js +++ b/src/routes/routes.js @@ -35,6 +35,7 @@ const linkMapRoute = require('./api/link_map'); const clipperRoute = require('./api/clipper'); const similarNotesRoute = require('./api/similar_notes'); const keysRoute = require('./api/keys'); +const backendLogRoute = require('./api/backend_log'); const log = require('../services/log'); const express = require('express'); @@ -247,6 +248,8 @@ function register(app) { apiRoute(GET, '/api/keyboard-actions', keysRoute.getKeyboardActions); apiRoute(GET, '/api/keyboard-shortcuts-for-notes', keysRoute.getShortcutsForNotes); + apiRoute(GET, '/api/backend-log', backendLogRoute.getBackendLog); + app.use('', router); } diff --git a/src/services/keyboard_actions.js b/src/services/keyboard_actions.js index dfdf6a8dc..862e82589 100644 --- a/src/services/keyboard_actions.js +++ b/src/services/keyboard_actions.js @@ -225,6 +225,11 @@ const DEFAULT_KEYBOARD_ACTIONS = [ defaultShortcuts: ["Alt+O"], description: "Shows SQL Console dialog" }, + { + actionName: "ShowBackendLog", + defaultShortcuts: [], + description: "Shows Backend Log dialog" + }, { actionName: "ShowHelp", defaultShortcuts: ["F1"], diff --git a/src/views/desktop.ejs b/src/views/desktop.ejs index 0cb7339cb..467b1b4ef 100644 --- a/src/views/desktop.ejs +++ b/src/views/desktop.ejs @@ -81,6 +81,12 @@ + + + Show backend log + + + Reload frontend @@ -187,6 +193,7 @@ <% include dialogs/link_map.ejs %> <% include dialogs/clone_to.ejs %> <% include dialogs/move_to.ejs %> + <% include dialogs/backend_log.ejs %>