mirror of
https://github.com/zadam/trilium.git
synced 2025-03-01 14:22:32 +01:00
refactoring
This commit is contained in:
parent
0a10764ed4
commit
6081c3540e
@ -64,7 +64,7 @@ export default class DialogCommandExecutor extends Component {
|
|||||||
|
|
||||||
const tabContext = await appContext.tabManager.openTabWithNote(sqlConsoleNote.noteId, true);
|
const tabContext = await appContext.tabManager.openTabWithNote(sqlConsoleNote.noteId, true);
|
||||||
|
|
||||||
appContext.triggerCommand('focusOnDetail', {tabId: tabContext.tabId});
|
appContext.triggerEvent('focusOnDetail', {tabId: tabContext.tabId});
|
||||||
}
|
}
|
||||||
|
|
||||||
async searchNotesCommand({searchString, ancestorNoteId}) {
|
async searchNotesCommand({searchString, ancestorNoteId}) {
|
||||||
|
@ -56,10 +56,10 @@ async function createNote(parentNoteId, options = {}) {
|
|||||||
await activeTabContext.setNote(note.noteId);
|
await activeTabContext.setNote(note.noteId);
|
||||||
|
|
||||||
if (options.focus === 'title') {
|
if (options.focus === 'title') {
|
||||||
appContext.triggerCommand('focusAndSelectTitle');
|
appContext.triggerEvent('focusAndSelectTitle');
|
||||||
}
|
}
|
||||||
else if (options.focus === 'content') {
|
else if (options.focus === 'content') {
|
||||||
appContext.triggerCommand('focusOnDetail', {tabId: activeTabContext.tabId});
|
appContext.triggerEvent('focusOnDetail', {tabId: activeTabContext.tabId});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,31 +26,10 @@ class TabContext extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async setNote(inputNotePath, triggerSwitchEvent = true) {
|
async setNote(inputNotePath, triggerSwitchEvent = true) {
|
||||||
const noteId = treeService.getNoteIdFromNotePath(inputNotePath);
|
const resolvedNotePath = await this.getResolvedNotePath(inputNotePath);
|
||||||
let resolvedNotePath;
|
|
||||||
|
|
||||||
if ((await treeCache.getNote(noteId)).isDeleted) {
|
if (!resolvedNotePath) {
|
||||||
// no point in trying to resolve canonical notePath
|
return;
|
||||||
resolvedNotePath = inputNotePath;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
resolvedNotePath = await treeService.resolveNotePath(inputNotePath);
|
|
||||||
|
|
||||||
if (!resolvedNotePath) {
|
|
||||||
logError(`Cannot resolve note path ${inputNotePath}`);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (resolvedNotePath === this.notePath) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (await hoistedNoteService.checkNoteAccess(resolvedNotePath, this) === false) {
|
|
||||||
return; // note is outside of hoisted subtree and user chose not to unhoist
|
|
||||||
}
|
|
||||||
|
|
||||||
// if user choise to unhoist, cache was reloaded, but might not contain this note (since it's on unexpanded path)
|
|
||||||
await treeCache.getNote(noteId);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
await this.triggerEvent('beforeNoteSwitch', {tabContext: this});
|
await this.triggerEvent('beforeNoteSwitch', {tabContext: this});
|
||||||
@ -58,20 +37,12 @@ class TabContext extends Component {
|
|||||||
utils.closeActiveDialog();
|
utils.closeActiveDialog();
|
||||||
|
|
||||||
this.notePath = resolvedNotePath;
|
this.notePath = resolvedNotePath;
|
||||||
this.noteId = noteId;
|
this.noteId = treeService.getNoteIdFromNotePath(resolvedNotePath);
|
||||||
|
|
||||||
this.textPreviewDisabled = false;
|
this.textPreviewDisabled = false;
|
||||||
this.codePreviewDisabled = false;
|
this.codePreviewDisabled = false;
|
||||||
|
|
||||||
setTimeout(async () => {
|
this.saveToRecentNotes(resolvedNotePath);
|
||||||
// we include the note into recent list only if the user stayed on the note at least 5 seconds
|
|
||||||
if (resolvedNotePath && resolvedNotePath === this.notePath) {
|
|
||||||
await server.post('recent-notes', {
|
|
||||||
noteId: this.note.noteId,
|
|
||||||
notePath: this.notePath
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}, 5000);
|
|
||||||
|
|
||||||
protectedSessionHolder.touchProtectedSessionIfNecessary(this.note);
|
protectedSessionHolder.touchProtectedSessionIfNecessary(this.note);
|
||||||
|
|
||||||
@ -88,6 +59,47 @@ class TabContext extends Component {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
saveToRecentNotes(resolvedNotePath) {
|
||||||
|
setTimeout(async () => {
|
||||||
|
// we include the note into recent list only if the user stayed on the note at least 5 seconds
|
||||||
|
if (resolvedNotePath && resolvedNotePath === this.notePath) {
|
||||||
|
await server.post('recent-notes', {
|
||||||
|
noteId: this.note.noteId,
|
||||||
|
notePath: this.notePath
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, 5000);
|
||||||
|
}
|
||||||
|
|
||||||
|
async getResolvedNotePath(inputNotePath) {
|
||||||
|
const noteId = treeService.getNoteIdFromNotePath(inputNotePath);
|
||||||
|
|
||||||
|
if ((await treeCache.getNote(noteId)).isDeleted) {
|
||||||
|
// no point in trying to resolve canonical notePath
|
||||||
|
return inputNotePath;
|
||||||
|
}
|
||||||
|
|
||||||
|
const resolvedNotePath = await treeService.resolveNotePath(inputNotePath);
|
||||||
|
|
||||||
|
if (!resolvedNotePath) {
|
||||||
|
logError(`Cannot resolve note path ${inputNotePath}`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (resolvedNotePath === this.notePath) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (await hoistedNoteService.checkNoteAccess(resolvedNotePath, this) === false) {
|
||||||
|
return; // note is outside of hoisted subtree and user chose not to unhoist
|
||||||
|
}
|
||||||
|
|
||||||
|
// if user choise to unhoist, cache was reloaded, but might not contain this note (since it's on unexpanded path)
|
||||||
|
await treeCache.getNote(noteId);
|
||||||
|
|
||||||
|
return resolvedNotePath;
|
||||||
|
}
|
||||||
|
|
||||||
/** @property {NoteShort} */
|
/** @property {NoteShort} */
|
||||||
get note() {
|
get note() {
|
||||||
if (this.noteId && !(this.noteId in treeCache.notes)) {
|
if (this.noteId && !(this.noteId in treeCache.notes)) {
|
||||||
|
@ -485,7 +485,7 @@ export default class AttributeEditorWidget extends TabAwareWidget {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
this.triggerCommand('focusOnDetail', {tabId: this.tabContext.tabId});
|
this.triggerEvent('focusOnDetail', {tabId: this.tabContext.tabId});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -249,7 +249,6 @@ export default class NoteDetailWidget extends TabAwareWidget {
|
|||||||
loadCSS: [
|
loadCSS: [
|
||||||
"libraries/codemirror/codemirror.css",
|
"libraries/codemirror/codemirror.css",
|
||||||
"libraries/ckeditor/ckeditor-content.css",
|
"libraries/ckeditor/ckeditor-content.css",
|
||||||
"libraries/ckeditor/ckeditor-content.css",
|
|
||||||
"libraries/bootstrap/css/bootstrap.min.css",
|
"libraries/bootstrap/css/bootstrap.min.css",
|
||||||
"libraries/katex/katex.min.css",
|
"libraries/katex/katex.min.css",
|
||||||
"stylesheets/print.css",
|
"stylesheets/print.css",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user