From 56259616cb32b25a6d86a73b385ddba671f27bd2 Mon Sep 17 00:00:00 2001 From: SiriusXT <1160925501@qq.com> Date: Tue, 3 Sep 2024 10:06:01 +0000 Subject: [PATCH 1/5] open in file manager of Trilium's data directory --- src/public/app/widgets/dialogs/about.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/public/app/widgets/dialogs/about.js b/src/public/app/widgets/dialogs/about.js index c381bacd3..a52a2d98d 100644 --- a/src/public/app/widgets/dialogs/about.js +++ b/src/public/app/widgets/dialogs/about.js @@ -72,7 +72,15 @@ export default class AboutDialog extends BasicWidget { this.$buildDate.text(appInfo.buildDate); this.$buildRevision.text(appInfo.buildRevision); this.$buildRevision.attr('href', `https://github.com/TriliumNext/Notes/commit/${appInfo.buildRevision}`); - this.$dataDirectory.text(appInfo.dataDirectory); + if (utils.isElectron()) { + this.$dataDirectory.html($('', { + href: 'file:///' + appInfo.dataDirectory, + text: appInfo.dataDirectory, + target: '_blank' // Optional: Opens the link in a new tab + })); + } else { + this.$dataDirectory.text(appInfo.dataDirectory); + } } async openAboutDialogEvent() { From bc4444d132b2e04facef331cd95bd5f888ded315 Mon Sep 17 00:00:00 2001 From: SiriusXT <1160925501@qq.com> Date: Tue, 3 Sep 2024 10:37:28 +0000 Subject: [PATCH 2/5] open in file manager of Trilium's data directory --- src/public/app/widgets/dialogs/about.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/public/app/widgets/dialogs/about.js b/src/public/app/widgets/dialogs/about.js index a52a2d98d..6b89e8b6a 100644 --- a/src/public/app/widgets/dialogs/about.js +++ b/src/public/app/widgets/dialogs/about.js @@ -76,7 +76,7 @@ export default class AboutDialog extends BasicWidget { this.$dataDirectory.html($('', { href: 'file:///' + appInfo.dataDirectory, text: appInfo.dataDirectory, - target: '_blank' // Optional: Opens the link in a new tab + target: '_blank' })); } else { this.$dataDirectory.text(appInfo.dataDirectory); From e66b865cd63776cf9b8092de7e7cffea7ace5919 Mon Sep 17 00:00:00 2001 From: SiriusXT <1160925501@qq.com> Date: Wed, 4 Sep 2024 11:08:04 +0000 Subject: [PATCH 3/5] open directory --- src/public/app/services/open.js | 23 ++++++++++++++++++++++- src/public/app/widgets/dialogs/about.js | 7 +++++-- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/src/public/app/services/open.js b/src/public/app/services/open.js index b3a1ae08b..9ecab753f 100644 --- a/src/public/app/services/open.js +++ b/src/public/app/services/open.js @@ -72,7 +72,7 @@ async function openCustom(type, entityId, mime) { const terminal = terminals[index]; if (!terminal) { console.error('Open Note custom: No terminal found!'); - open(getFileUrl(entityId), {url: true}); + open(getFileUrl(type, entityId), {url: true}); return; } exec(`which ${terminal}`, (error, stdout, stderr) => { @@ -166,6 +166,26 @@ function getHost() { return `${url.protocol}//${url.hostname}:${url.port}`; } +async function openDirectory(directory) { + try { + if (utils.isElectron()) { + const electron = utils.dynamicRequire('electron'); + const res = await electron.shell.openPath(directory); + if (res) { + console.error('Failed to open directory:', res); + } else { + console.log('Directory opened successfully.'); + } + } else { + console.error('Not running in an Electron environment.'); + } + } catch (err) { + // Handle file system errors (e.g. path does not exist or is inaccessible) + console.error('Error:', err.message); + } +} + + export default { download, downloadFileNote, @@ -176,4 +196,5 @@ export default { openAttachmentExternally, openNoteCustom, openAttachmentCustom, + openDirectory } diff --git a/src/public/app/widgets/dialogs/about.js b/src/public/app/widgets/dialogs/about.js index 6b89e8b6a..6e08cf402 100644 --- a/src/public/app/widgets/dialogs/about.js +++ b/src/public/app/widgets/dialogs/about.js @@ -2,6 +2,8 @@ import server from "../../services/server.js"; import utils from "../../services/utils.js"; import { t } from "../../services/i18n.js"; import BasicWidget from "../basic_widget.js"; +import openService from "../../services/open.js"; + const TPL = `