Notes/src/public/app/components/root_command_executor.js

158 lines
4.7 KiB
JavaScript
Raw Normal View History

2022-12-01 13:07:23 +01:00
import Component from "./component.js";
2020-02-17 22:14:39 +01:00
import appContext from "./app_context.js";
import dateNoteService from "../services/date_notes.js";
2020-12-05 23:00:28 +01:00
import treeService from "../services/tree.js";
2022-12-01 13:07:23 +01:00
import openService from "../services/open.js";
import protectedSessionService from "../services/protected_session.js";
import options from "../services/options.js";
import froca from "../services/froca.js";
2020-01-20 22:35:52 +01:00
export default class RootCommandExecutor extends Component {
editReadOnlyNoteCommand() {
const noteContext = appContext.tabManager.getActiveContext();
noteContext.viewScope.readOnlyTemporarilyDisabled = true;
appContext.triggerEvent("readOnlyTemporarilyDisabled", { noteContext });
}
async showSQLConsoleCommand() {
const sqlConsoleNote = await dateNoteService.createSqlConsole();
const noteContext = await appContext.tabManager.openTabWithNoteWithHoisting(sqlConsoleNote.noteId, { activate: true });
2021-05-22 12:26:45 +02:00
appContext.triggerEvent('focusOnDetail', {ntxId: noteContext.ntxId});
}
async searchNotesCommand({searchString, ancestorNoteId}) {
const searchNote = await dateNoteService.createSearchNote({searchString, ancestorNoteId});
// force immediate search
await froca.loadSearchNote(searchNote.noteId);
const noteContext = await appContext.tabManager.openTabWithNoteWithHoisting(searchNote.noteId, {
activate: true
});
2021-05-22 12:26:45 +02:00
appContext.triggerCommand('focusOnSearchDefinition', {ntxId: noteContext.ntxId});
}
2020-12-05 23:00:28 +01:00
async searchInSubtreeCommand({notePath}) {
const noteId = treeService.getNoteIdFromUrl(notePath);
2020-12-05 23:00:28 +01:00
this.searchNotesCommand({ancestorNoteId: noteId});
2020-12-05 23:00:28 +01:00
}
openNoteExternallyCommand() {
2021-05-22 12:35:41 +02:00
const noteId = appContext.tabManager.getActiveContextNoteId();
const mime = appContext.tabManager.getActiveContextNoteMime()
2022-12-01 13:07:23 +01:00
if (noteId) {
openService.openNoteExternally(noteId, mime);
}
}
2023-05-17 23:57:32 +02:00
2023-05-16 11:57:28 +00:00
openNoteCustomCommand() {
const noteId = appContext.tabManager.getActiveContextNoteId();
if (noteId) {
2023-05-17 23:57:32 +02:00
openService.openNoteCustom(noteId);
2023-05-16 11:57:28 +00:00
}
}
2021-05-18 22:14:35 +02:00
enterProtectedSessionCommand() {
protectedSessionService.enterProtectedSession();
}
leaveProtectedSessionCommand() {
protectedSessionService.leaveProtectedSession();
}
hideLeftPaneCommand() {
options.save(`leftPaneVisible`, "false");
}
showLeftPaneCommand() {
options.save(`leftPaneVisible`, "true");
}
toggleLeftPaneCommand() {
options.toggle('leftPaneVisible');
}
2022-08-04 23:00:32 +02:00
2022-12-15 16:38:05 +01:00
async showBackendLogCommand() {
await appContext.tabManager.openTabWithNoteWithHoisting('_backendLog', { activate: true });
2022-12-15 16:38:05 +01:00
}
2022-12-01 10:03:04 +01:00
async showLaunchBarSubtreeCommand() {
2022-12-21 16:11:00 +01:00
await this.showAndHoistSubtree('_lbRoot');
2022-11-25 15:29:57 +01:00
}
2022-08-05 16:44:26 +02:00
2022-11-25 15:29:57 +01:00
async showShareSubtreeCommand() {
2022-12-21 16:11:00 +01:00
await this.showAndHoistSubtree('_share');
2022-11-25 15:29:57 +01:00
}
2022-08-05 16:44:26 +02:00
2022-11-25 15:29:57 +01:00
async showHiddenSubtreeCommand() {
2022-12-21 16:11:00 +01:00
await this.showAndHoistSubtree('_hidden');
2022-08-04 23:00:32 +02:00
}
2022-12-05 23:57:29 +01:00
2023-01-23 23:37:58 +01:00
async showOptionsCommand({section}) {
await appContext.tabManager.openContextWithNote(section || '_options', {
activate: true,
hoistedNoteId: '_options'
});
2022-12-15 16:38:05 +01:00
}
async showSQLConsoleHistoryCommand() {
2022-12-21 16:11:00 +01:00
await this.showAndHoistSubtree('_sqlConsole');
2022-12-15 16:38:05 +01:00
}
async showSearchHistoryCommand() {
2022-12-21 16:11:00 +01:00
await this.showAndHoistSubtree('_search');
2022-12-15 16:38:05 +01:00
}
async showAndHoistSubtree(subtreeNoteId) {
await appContext.tabManager.openContextWithNote(subtreeNoteId, {
activate: true,
hoistedNoteId: subtreeNoteId
});
}
2023-02-15 14:32:12 +01:00
async showNoteSourceCommand() {
const notePath = appContext.tabManager.getActiveContextNotePath();
if (notePath) {
await appContext.tabManager.openTabWithNoteWithHoisting(notePath, {
2023-04-03 23:47:24 +02:00
activate: true,
viewScope: {
viewMode: 'source'
}
});
}
2022-12-05 23:57:29 +01:00
}
2023-03-20 23:11:32 +01:00
async showAttachmentsCommand() {
const notePath = appContext.tabManager.getActiveContextNotePath();
if (notePath) {
await appContext.tabManager.openTabWithNoteWithHoisting(notePath, {
2023-04-03 23:47:24 +02:00
activate: true,
viewScope: {
viewMode: 'attachments'
}
});
}
}
async showAttachmentDetailCommand() {
const notePath = appContext.tabManager.getActiveContextNotePath();
if (notePath) {
await appContext.tabManager.openTabWithNoteWithHoisting(notePath, {
2023-04-03 23:47:24 +02:00
activate: true,
viewScope: {
viewMode: 'attachments'
}
});
2023-03-20 23:11:32 +01:00
}
}
2020-07-04 10:18:01 +02:00
}