mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-04 13:39:01 +01:00 
			
		
		
		
	wip
This commit is contained in:
		
							parent
							
								
									3ab2b41e8c
								
							
						
					
					
						commit
						95d1952896
					
				@ -69,9 +69,7 @@ export default class Entrypoints extends Component {
 | 
			
		||||
 | 
			
		||||
        await treeService.expandToNote(note.noteId);
 | 
			
		||||
 | 
			
		||||
        const tabContext = appContext.tabManager.openEmptyTab();
 | 
			
		||||
        appContext.tabManager.activateTab(tabContext.tabId);
 | 
			
		||||
        await tabContext.setNote(note.noteId);
 | 
			
		||||
        const tabContext = await appContext.tabManager.openTabWithNote(note.noteId, true);
 | 
			
		||||
 | 
			
		||||
        appContext.triggerCommand('focusAndSelectTitle');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -77,8 +77,7 @@ function goToLink(e) {
 | 
			
		||||
 | 
			
		||||
    if (notePath) {
 | 
			
		||||
        if ((e.which === 1 && e.ctrlKey) || e.which === 2) {
 | 
			
		||||
            const tabContext = appContext.tabManager.openEmptyTab();
 | 
			
		||||
            tabContext.setNote(notePath);
 | 
			
		||||
            appContext.tabManager.openTabWithNote(notePath);
 | 
			
		||||
        }
 | 
			
		||||
        else if (e.which === 1) {
 | 
			
		||||
            const activeTabContext = appContext.tabManager.getActiveTabContext();
 | 
			
		||||
@ -118,8 +117,7 @@ function newTabContextMenu(e) {
 | 
			
		||||
        ],
 | 
			
		||||
        selectMenuItemHandler: ({command}) => {
 | 
			
		||||
            if (command === 'openNoteInNewTab') {
 | 
			
		||||
                const tabContext = appContext.tabManager.openEmptyTab();
 | 
			
		||||
                tabContext.setNote(notePath);
 | 
			
		||||
                appContext.tabManager.openTabWithNote(notePath);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
@ -139,8 +137,7 @@ $(document).on('mousedown', '.note-detail-text a', function (e) {
 | 
			
		||||
        e.preventDefault();
 | 
			
		||||
 | 
			
		||||
        if (notePath) {
 | 
			
		||||
            const tabContext = appContext.tabManager.openEmptyTab();
 | 
			
		||||
            tabContext.setNote(notePath);
 | 
			
		||||
            appContext.tabManager.openTabWithNote(notePath, false);
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
            const address = $link.attr('href');
 | 
			
		||||
 | 
			
		||||
@ -163,31 +163,31 @@ export default class TabManager extends Component {
 | 
			
		||||
 | 
			
		||||
    async switchToTab(tabId, notePath) {
 | 
			
		||||
        const tabContext = this.tabContexts.find(tc => tc.tabId === tabId)
 | 
			
		||||
            || this.openEmptyTab();
 | 
			
		||||
            || await this.openEmptyTab();
 | 
			
		||||
 | 
			
		||||
        this.activateTab(tabContext.tabId);
 | 
			
		||||
        await tabContext.setNote(notePath);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    async openAndActivateEmptyTab() {
 | 
			
		||||
        const tabContext = this.openEmptyTab();
 | 
			
		||||
        const tabContext = await this.openEmptyTab();
 | 
			
		||||
 | 
			
		||||
        await this.activateTab(tabContext.tabId);
 | 
			
		||||
 | 
			
		||||
        await tabContext.setEmpty();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    openEmptyTab(tabId) {
 | 
			
		||||
    async openEmptyTab(tabId) {
 | 
			
		||||
        const tabContext = new TabContext(tabId);
 | 
			
		||||
        this.child(tabContext);
 | 
			
		||||
 | 
			
		||||
        this.triggerEvent('newTabOpened', {tabId: tabContext.tabId});
 | 
			
		||||
        await this.triggerEvent('newTabOpened', {tabId: tabContext.tabId});
 | 
			
		||||
 | 
			
		||||
        return tabContext;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    async openTabWithNote(notePath, activate, tabId = null) {
 | 
			
		||||
        const tabContext = this.openEmptyTab(tabId);
 | 
			
		||||
        const tabContext = await this.openEmptyTab(tabId);
 | 
			
		||||
 | 
			
		||||
        await tabContext.setNote(notePath, !activate); // if activate is false then send normal noteSwitched event
 | 
			
		||||
 | 
			
		||||
@ -211,8 +211,7 @@ export default class TabManager extends Component {
 | 
			
		||||
 | 
			
		||||
        // if no tab with this note has been found we'll create new tab
 | 
			
		||||
 | 
			
		||||
        const tabContext = this.openEmptyTab();
 | 
			
		||||
        await tabContext.setNote(noteId);
 | 
			
		||||
        await this.openTabWithNote(noteId);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    activateTab(tabId, triggerEvent = true) {
 | 
			
		||||
 | 
			
		||||
@ -108,8 +108,7 @@ class TreeContextMenu {
 | 
			
		||||
        const notePath = treeService.getNotePath(this.node);
 | 
			
		||||
 | 
			
		||||
        if (command === 'openInTab') {
 | 
			
		||||
            const tabContext = appContext.tabManager.openEmptyTab();
 | 
			
		||||
            tabContext.setNote(notePath);
 | 
			
		||||
            appContext.tabManager.openTabWithNote(notePath);
 | 
			
		||||
        }
 | 
			
		||||
        else if (command === "insertNoteAfter") {
 | 
			
		||||
            const parentNoteId = this.node.data.parentNoteId;
 | 
			
		||||
 | 
			
		||||
@ -47,8 +47,7 @@ export default class NoteTreeWidget extends TabAwareWidget {
 | 
			
		||||
                const notePath = treeService.getNotePath(node);
 | 
			
		||||
 | 
			
		||||
                if (notePath) {
 | 
			
		||||
                    const tabContext = appContext.tabManager.openEmptyTab();
 | 
			
		||||
                    tabContext.setNote(notePath);
 | 
			
		||||
                    appContext.tabManager.openTabWithNote(notePath);
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                e.stopPropagation();
 | 
			
		||||
@ -81,9 +80,8 @@ export default class NoteTreeWidget extends TabAwareWidget {
 | 
			
		||||
                        node.setFocus(true);
 | 
			
		||||
                    }
 | 
			
		||||
                    else if (event.ctrlKey) {
 | 
			
		||||
                        const tabContext = appContext.tabManager.openEmptyTab();
 | 
			
		||||
                        const notePath = treeService.getNotePath(node);
 | 
			
		||||
                        tabContext.setNote(notePath);
 | 
			
		||||
                        appContext.tabManager.openTabWithNote(notePath);
 | 
			
		||||
                    }
 | 
			
		||||
                    else {
 | 
			
		||||
                        node.setActive();
 | 
			
		||||
 | 
			
		||||
@ -28,6 +28,23 @@ export default class TabCachingWidget extends TabAwareWidget {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    async newTabOpenedEvent({tabId}) {
 | 
			
		||||
        if (this.widgets[tabId]) {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        this.widgets[tabId] = this.widgetFactory();
 | 
			
		||||
 | 
			
		||||
        const $renderedWidget = this.widgets[tabId].render();
 | 
			
		||||
        this.$widget.after($renderedWidget);
 | 
			
		||||
 | 
			
		||||
        keyboardActionsService.updateDisplayedShortcuts($renderedWidget);
 | 
			
		||||
 | 
			
		||||
        await this.widgets[tabId].handleEvent('setTabContext', {tabContext: this.tabContext});
 | 
			
		||||
 | 
			
		||||
        this.child(this.widgets[tabId]); // add as child only once it is ready (rendered with tabContext)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    async refreshWithNote() {
 | 
			
		||||
        for (const widget of Object.values(this.widgets)) {
 | 
			
		||||
            widget.toggle(false);
 | 
			
		||||
@ -39,21 +56,14 @@ export default class TabCachingWidget extends TabAwareWidget {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        let widget = this.widgets[this.tabContext.tabId];
 | 
			
		||||
        const widget = this.widgets[this.tabContext.tabId];
 | 
			
		||||
 | 
			
		||||
        if (!widget) {
 | 
			
		||||
            widget = this.widgets[this.tabContext.tabId] = this.widgetFactory();
 | 
			
		||||
 | 
			
		||||
            const $renderedWidget = widget.render();
 | 
			
		||||
            this.$widget.after($renderedWidget);
 | 
			
		||||
 | 
			
		||||
            keyboardActionsService.updateDisplayedShortcuts($renderedWidget);
 | 
			
		||||
 | 
			
		||||
            this.child(widget); // add as child only once it is ready (also rendered)
 | 
			
		||||
            await widget.handleEvent('setTabContext', {tabContext: this.tabContext});
 | 
			
		||||
        if (widget) {
 | 
			
		||||
            widget.toggle(widget.isEnabled());
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
            console.error(`Widget for tab ${this.tabContext.tabId} not found.`);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        widget.toggle(widget.isEnabled());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    tabRemovedEvent({tabId}) {
 | 
			
		||||
 | 
			
		||||
@ -196,8 +196,7 @@ export default class RelationMapTypeWidget extends TypeWidget {
 | 
			
		||||
        const noteId = this.idToNoteId($noteBox.prop("id"));
 | 
			
		||||
 | 
			
		||||
        if (command === "openInNewTab") {
 | 
			
		||||
            const tabContext = appContext.tabManager.openEmptyTab();
 | 
			
		||||
            tabContext.setNote(noteId);
 | 
			
		||||
            appContext.tabManager.openTabWithNote(noteId);
 | 
			
		||||
        }
 | 
			
		||||
        else if (command === "remove") {
 | 
			
		||||
            const confirmDialog = await import('../../dialogs/confirm.js');
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user