refactoring

This commit is contained in:
zadam 2021-01-29 22:44:59 +01:00
parent 0a10764ed4
commit 6081c3540e
5 changed files with 50 additions and 39 deletions

View File

@ -64,7 +64,7 @@ export default class DialogCommandExecutor extends Component {
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}) {

View File

@ -56,10 +56,10 @@ async function createNote(parentNoteId, options = {}) {
await activeTabContext.setNote(note.noteId);
if (options.focus === 'title') {
appContext.triggerCommand('focusAndSelectTitle');
appContext.triggerEvent('focusAndSelectTitle');
}
else if (options.focus === 'content') {
appContext.triggerCommand('focusOnDetail', {tabId: activeTabContext.tabId});
appContext.triggerEvent('focusOnDetail', {tabId: activeTabContext.tabId});
}
}

View File

@ -26,15 +26,60 @@ class TabContext extends Component {
}
async setNote(inputNotePath, triggerSwitchEvent = true) {
const resolvedNotePath = await this.getResolvedNotePath(inputNotePath);
if (!resolvedNotePath) {
return;
}
await this.triggerEvent('beforeNoteSwitch', {tabContext: this});
utils.closeActiveDialog();
this.notePath = resolvedNotePath;
this.noteId = treeService.getNoteIdFromNotePath(resolvedNotePath);
this.textPreviewDisabled = false;
this.codePreviewDisabled = false;
this.saveToRecentNotes(resolvedNotePath);
protectedSessionHolder.touchProtectedSessionIfNecessary(this.note);
if (triggerSwitchEvent) {
await this.triggerEvent('tabNoteSwitched', {
tabContext: this,
notePath: this.notePath
});
}
if (utils.isDesktop()) {
// close dangling autocompletes after closing the tab
$(".aa-input").autocomplete("close");
}
}
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);
let resolvedNotePath;
if ((await treeCache.getNote(noteId)).isDeleted) {
// no point in trying to resolve canonical notePath
resolvedNotePath = inputNotePath;
return inputNotePath;
}
else {
resolvedNotePath = await treeService.resolveNotePath(inputNotePath);
const resolvedNotePath = await treeService.resolveNotePath(inputNotePath);
if (!resolvedNotePath) {
logError(`Cannot resolve note path ${inputNotePath}`);
@ -51,41 +96,8 @@ class TabContext extends Component {
// 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});
utils.closeActiveDialog();
this.notePath = resolvedNotePath;
this.noteId = noteId;
this.textPreviewDisabled = false;
this.codePreviewDisabled = false;
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);
protectedSessionHolder.touchProtectedSessionIfNecessary(this.note);
if (triggerSwitchEvent) {
await this.triggerEvent('tabNoteSwitched', {
tabContext: this,
notePath: this.notePath
});
}
if (utils.isDesktop()) {
// close dangling autocompletes after closing the tab
$(".aa-input").autocomplete("close");
}
return resolvedNotePath;
}
/** @property {NoteShort} */

View File

@ -485,7 +485,7 @@ export default class AttributeEditorWidget extends TabAwareWidget {
});
}
else {
this.triggerCommand('focusOnDetail', {tabId: this.tabContext.tabId});
this.triggerEvent('focusOnDetail', {tabId: this.tabContext.tabId});
}
}
}

View File

@ -249,7 +249,6 @@ export default class NoteDetailWidget extends TabAwareWidget {
loadCSS: [
"libraries/codemirror/codemirror.css",
"libraries/ckeditor/ckeditor-content.css",
"libraries/ckeditor/ckeditor-content.css",
"libraries/bootstrap/css/bootstrap.min.css",
"libraries/katex/katex.min.css",
"stylesheets/print.css",