mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-04 05:28:59 +01:00 
			
		
		
		
	simplification of triggering events from links
This commit is contained in:
		
							parent
							
								
									55d1f9e9f0
								
							
						
					
					
						commit
						af5c623671
					
				@ -50,7 +50,7 @@ function FrontendScriptApi(startNote, currentNote, originEntity = null, tabConte
 | 
			
		||||
     */
 | 
			
		||||
    this.activateNote = async (notePath, noteLoadedListener) => {
 | 
			
		||||
        await treeService.activateNote(notePath, async () => {
 | 
			
		||||
            await appContext.getMainNoteTree().scrollToActiveNote();
 | 
			
		||||
            await appContext.getMainNoteTree().scrollToActiveNoteListener();
 | 
			
		||||
 | 
			
		||||
            if (noteLoadedListener) {
 | 
			
		||||
                noteLoadedListener();
 | 
			
		||||
 | 
			
		||||
@ -556,8 +556,6 @@ keyboardActionService.setGlobalActionHandler('CutIntoNote', () => createNoteInto
 | 
			
		||||
 | 
			
		||||
keyboardActionService.setGlobalActionHandler('CreateNoteInto', createNoteInto);
 | 
			
		||||
 | 
			
		||||
keyboardActionService.setGlobalActionHandler('ScrollToActiveNote', () => appContext.getMainNoteTree().scrollToActiveNote());
 | 
			
		||||
 | 
			
		||||
$(window).bind('hashchange', async function() {
 | 
			
		||||
    if (isNotePathInAddress()) {
 | 
			
		||||
        const [notePath, tabId] = getHashValueFromAddress();
 | 
			
		||||
 | 
			
		||||
@ -7,6 +7,12 @@ class BasicWidget extends Component {
 | 
			
		||||
 | 
			
		||||
        keyboardActionsService.updateDisplayedShortcuts($widget);
 | 
			
		||||
 | 
			
		||||
        $widget.find("[data-trigger-event]").on('click', e => {
 | 
			
		||||
            const eventName = $(e.target).attr('data-trigger-event');
 | 
			
		||||
 | 
			
		||||
            this.appContext.trigger(eventName);
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        return $widget;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -14,31 +14,30 @@ const WIDGET_TPL = `
 | 
			
		||||
</style>
 | 
			
		||||
 | 
			
		||||
<div class="global-buttons">
 | 
			
		||||
    <a title="Create new top level note" class="create-top-level-note-button icon-action bx bx-folder-plus"></a>
 | 
			
		||||
    <a data-trigger-event="createTopLevelNote"
 | 
			
		||||
       title="Create new top level note" 
 | 
			
		||||
       class="icon-action bx bx-folder-plus"></a>
 | 
			
		||||
 | 
			
		||||
    <a title="Collapse note tree" data-kb-action="CollapseTree" class="collapse-tree-button icon-action bx bx-layer-minus"></a>
 | 
			
		||||
    <a data-trigger-event="collapseTree"
 | 
			
		||||
       title="Collapse note tree" 
 | 
			
		||||
       data-kb-action="CollapseTree" 
 | 
			
		||||
       class="icon-action bx bx-layer-minus"></a>
 | 
			
		||||
 | 
			
		||||
    <a title="Scroll to active note" data-kb-action="ScrollToActiveNote" class="scroll-to-active-note-button icon-action bx bx-crosshair"></a>
 | 
			
		||||
    <a data-trigger-event="scrollToActiveNote"
 | 
			
		||||
       title="Scroll to active note" 
 | 
			
		||||
       data-kb-action="ScrollToActiveNote" 
 | 
			
		||||
       class="icon-action bx bx-crosshair"></a>
 | 
			
		||||
 | 
			
		||||
    <a title="Search in notes" data-kb-action="SearchNotes" class="toggle-search-button icon-action bx bx-search"></a>
 | 
			
		||||
    <a data-trigger-event="searchNotes"
 | 
			
		||||
       title="Search in notes"
 | 
			
		||||
       data-kb-action="SearchNotes"
 | 
			
		||||
       class="icon-action bx bx-search"></a>
 | 
			
		||||
</div>
 | 
			
		||||
`;
 | 
			
		||||
 | 
			
		||||
class GlobalButtonsWidget extends BasicWidget {
 | 
			
		||||
    doRender($widget) {
 | 
			
		||||
        $widget = $(WIDGET_TPL);
 | 
			
		||||
 | 
			
		||||
        const $createTopLevelNoteButton = $widget.find(".create-top-level-note-button");
 | 
			
		||||
        const $collapseTreeButton = $widget.find(".collapse-tree-button");
 | 
			
		||||
        const $scrollToActiveNoteButton = $widget.find(".scroll-to-active-note-button");
 | 
			
		||||
        const $toggleSearchButton = $widget.find(".toggle-search-button");
 | 
			
		||||
 | 
			
		||||
        $createTopLevelNoteButton.on('click', () => this.trigger('createTopLevelNote'));
 | 
			
		||||
        $collapseTreeButton.on('click', () => this.trigger('collapseTree'));
 | 
			
		||||
        $scrollToActiveNoteButton.on('click', () => appContext.getMainNoteTree().scrollToActiveNote());
 | 
			
		||||
        $toggleSearchButton.on('click', () => this.trigger('toggleSearch'));
 | 
			
		||||
 | 
			
		||||
        return $widget;
 | 
			
		||||
        return $(WIDGET_TPL);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,4 @@
 | 
			
		||||
import TabAwareWidget from "./tab_aware_widget.js";
 | 
			
		||||
import appContext from "../services/app_context.js";
 | 
			
		||||
import libraryLoader from "../services/library_loader.js";
 | 
			
		||||
import keyboardActionService from "../services/keyboard_actions.js";
 | 
			
		||||
 | 
			
		||||
const TPL = `
 | 
			
		||||
<div class="dropdown note-actions">
 | 
			
		||||
@ -10,14 +7,14 @@ const TPL = `
 | 
			
		||||
        <span class="caret"></span>
 | 
			
		||||
    </button>
 | 
			
		||||
    <div class="dropdown-menu dropdown-menu-right">
 | 
			
		||||
        <a class="dropdown-item show-note-revisions-button">Revisions</a>
 | 
			
		||||
        <a class="dropdown-item show-attributes-button"><kbd data-kb-action="ShowAttributes"></kbd> Attributes</a>
 | 
			
		||||
        <a class="dropdown-item show-link-map-button"><kbd data-kb-action="ShowLinkMap"></kbd> Link map</a>
 | 
			
		||||
        <a class="dropdown-item show-source-button"><kbd data-kb-action="ShowNoteSource"></kbd> Note source</a>
 | 
			
		||||
        <a data-trigger-event="showNoteRevisions" class="dropdown-item show-note-revisions-button">Revisions</a>
 | 
			
		||||
        <a data-trigger-event="showAttributes" class="dropdown-item show-attributes-button"><kbd data-kb-action="ShowAttributes"></kbd> Attributes</a>
 | 
			
		||||
        <a data-trigger-event="showLinkMap" class="dropdown-item show-link-map-button"><kbd data-kb-action="ShowLinkMap"></kbd> Link map</a>
 | 
			
		||||
        <a data-trigger-event="showNoteSource" class="dropdown-item show-source-button"><kbd data-kb-action="ShowNoteSource"></kbd> Note source</a>
 | 
			
		||||
        <a class="dropdown-item import-files-button">Import files</a>
 | 
			
		||||
        <a class="dropdown-item export-note-button">Export note</a>
 | 
			
		||||
        <a class="dropdown-item print-note-button"><kbd data-kb-action="PrintActiveNote"></kbd> Print note</a>
 | 
			
		||||
        <a class="dropdown-item show-note-info-button"><kbd data-kb-action="ShowNoteInfo"></kbd> Note info</a>
 | 
			
		||||
        <a data-trigger-event="printActiveNote" class="dropdown-item print-note-button"><kbd data-kb-action="PrintActiveNote"></kbd> Print note</a>
 | 
			
		||||
        <a data-trigger-event="showNoteInfo" class="dropdown-item show-note-info-button"><kbd data-kb-action="ShowNoteInfo"></kbd> Note info</a>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>`;
 | 
			
		||||
 | 
			
		||||
@ -25,23 +22,7 @@ export default class NoteActionsWidget extends TabAwareWidget {
 | 
			
		||||
    doRender() {
 | 
			
		||||
        this.$widget = $(TPL);
 | 
			
		||||
 | 
			
		||||
        this.$showRevisionsButton = this.$widget.find('.show-note-revisions-button');
 | 
			
		||||
        this.$showRevisionsButton.on('click', e => this.triggerEvent(e, 'showNoteRevisions'));
 | 
			
		||||
 | 
			
		||||
        this.$showAttributesButton = this.$widget.find('.show-attributes-button');
 | 
			
		||||
        this.$showAttributesButton.on('click', e => this.triggerEvent(e, 'showAttributes'));
 | 
			
		||||
 | 
			
		||||
        this.$showLinkMapButton = this.$widget.find('.show-link-map-button');
 | 
			
		||||
        this.$showLinkMapButton.on('click', e => this.triggerEvent(e, 'showLinkMap'));
 | 
			
		||||
 | 
			
		||||
        this.$showSourceButton = this.$widget.find('.show-source-button');
 | 
			
		||||
        this.$showSourceButton.on('click', e => this.triggerEvent(e, 'showNoteSource'));
 | 
			
		||||
 | 
			
		||||
        this.$showNoteInfoButton = this.$widget.find('.show-note-info-button');
 | 
			
		||||
        this.$showNoteInfoButton.on('click', e => this.triggerEvent(e, 'showNoteInfo'));
 | 
			
		||||
 | 
			
		||||
        this.$printNoteButton = this.$widget.find('.print-note-button');
 | 
			
		||||
        this.$printNoteButton.on('click', e => this.triggerEvent(e, 'printActiveNote'));
 | 
			
		||||
 | 
			
		||||
        this.$exportNoteButton = this.$widget.find('.export-note-button');
 | 
			
		||||
        this.$exportNoteButton.on("click", () => {
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,18 @@
 | 
			
		||||
import StandardWidget from "./standard_widget.js";
 | 
			
		||||
 | 
			
		||||
const TPL = `
 | 
			
		||||
<table class="note-info-table" style="table-layout: fixed; width: 100%;">
 | 
			
		||||
<table class="note-info-widget-table">
 | 
			
		||||
    <style>
 | 
			
		||||
        .note-info-widget-table {
 | 
			
		||||
            table-layout: fixed; 
 | 
			
		||||
            width: 100%;
 | 
			
		||||
        } 
 | 
			
		||||
   
 | 
			
		||||
        .note-info-widget-table td, .note-info-widget-table th {
 | 
			
		||||
            padding: 5px;
 | 
			
		||||
        }
 | 
			
		||||
    </style>
 | 
			
		||||
 | 
			
		||||
    <tr>
 | 
			
		||||
        <th nowrap>Note ID:</th>
 | 
			
		||||
        <td nowrap colspan="3" class="note-info-note-id"></td>
 | 
			
		||||
 | 
			
		||||
@ -251,7 +251,7 @@ export default class NoteTreeWidget extends TabAwareWidget {
 | 
			
		||||
        if (!node) {
 | 
			
		||||
            const hoistedNoteId = await hoistedNoteService.getHoistedNoteId();
 | 
			
		||||
 | 
			
		||||
            node = getNodesByNoteId(hoistedNoteId)[0];
 | 
			
		||||
            node = this.getNodesByNoteId(hoistedNoteId)[0];
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        node.setExpanded(false);
 | 
			
		||||
@ -281,8 +281,7 @@ export default class NoteTreeWidget extends TabAwareWidget {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // FIXME since this operates on note details tab context it seems it does not really belong here
 | 
			
		||||
    async scrollToActiveNote() {
 | 
			
		||||
    async scrollToActiveNoteListener() {
 | 
			
		||||
        const activeContext = appContext.getActiveTabContext();
 | 
			
		||||
 | 
			
		||||
        if (activeContext && activeContext.notePath) {
 | 
			
		||||
 | 
			
		||||
@ -124,8 +124,8 @@ body {
 | 
			
		||||
    background-color: inherit;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.widget .note-info-table td, .widget .note-info-table th {
 | 
			
		||||
    padding: 5px;
 | 
			
		||||
#note-info-table td, #note-info-table th {
 | 
			
		||||
    padding: 15px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
[data-toggle="tooltip"] span {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user