mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-03 20:06:08 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			114 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			114 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import BasicWidget from "./basic_widget.js";
 | 
						|
import keyboardActionService from "../services/keyboard_actions.js";
 | 
						|
import utils from "../services/utils.js";
 | 
						|
import syncService from "../services/sync.js";
 | 
						|
 | 
						|
const TPL = `
 | 
						|
<div class="global-menu-wrapper">
 | 
						|
    <style>
 | 
						|
    .global-menu-wrapper {
 | 
						|
        height: 35px;
 | 
						|
        border-bottom: 1px solid var(--main-border-color);
 | 
						|
    }
 | 
						|
    
 | 
						|
    .global-menu button {
 | 
						|
        margin-right: 10px;
 | 
						|
        height: 33px;
 | 
						|
        border-bottom: none;
 | 
						|
    }
 | 
						|
    
 | 
						|
    .global-menu .dropdown-menu {
 | 
						|
        width: 20em;
 | 
						|
    }
 | 
						|
    </style>
 | 
						|
 | 
						|
    <div class="dropdown global-menu">
 | 
						|
        <button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" class="btn btn-sm dropdown-toggle">
 | 
						|
            <span class="bx bx-menu"></span>
 | 
						|
            Menu
 | 
						|
            <span class="caret"></span>
 | 
						|
        </button>
 | 
						|
        <div class="dropdown-menu dropdown-menu-right">
 | 
						|
            <a class="dropdown-item options-button" data-trigger-event="showOptions">
 | 
						|
                <span class="bx bx-slider"></span>
 | 
						|
                Options
 | 
						|
            </a>
 | 
						|
 | 
						|
            <a class="dropdown-item sync-now-button" title="Trigger sync">
 | 
						|
                <span class="bx bx-refresh"></span>
 | 
						|
                Sync (<span id="outstanding-syncs-count">0</span>)
 | 
						|
            </a>
 | 
						|
 | 
						|
            <a class="dropdown-item open-dev-tools-button" data-trigger-event="openDevTools">
 | 
						|
                <span class="bx bx-terminal"></span>
 | 
						|
                Open Dev Tools
 | 
						|
                <kbd data-kb-action="openDevTools"></kbd>
 | 
						|
            </a>
 | 
						|
 | 
						|
            <a class="dropdown-item" data-trigger-event="showSQLConsole">
 | 
						|
                <span class="bx bx-data"></span>
 | 
						|
                Open SQL Console
 | 
						|
                <kbd data-kb-action="showSQLConsole"></kbd>
 | 
						|
            </a>
 | 
						|
 | 
						|
            <a class="dropdown-item" data-trigger-event="showBackendLog">
 | 
						|
                <span class="bx bx-empty"></span>
 | 
						|
                Show backend log
 | 
						|
                <kbd data-kb-action="showBackendLog"></kbd>
 | 
						|
            </a>
 | 
						|
 | 
						|
            <a class="dropdown-item" data-trigger-event="reloadFrontendApp" 
 | 
						|
                title="Reload can help with some visual glitches without restarting the whole app.">
 | 
						|
                <span class="bx bx-empty"></span>
 | 
						|
                Reload frontend
 | 
						|
                <kbd data-kb-action="reloadFrontendApp"></kbd>
 | 
						|
            </a>
 | 
						|
 | 
						|
            <a class="dropdown-item" data-trigger-event="toggleZenMode">
 | 
						|
                <span class="bx bx-empty"></span>
 | 
						|
                Toggle Zen mode
 | 
						|
                <kbd data-kb-action="toggleZenMode"></kbd>
 | 
						|
            </a>
 | 
						|
 | 
						|
            <a class="dropdown-item" data-trigger-event="toggleFullscreen">
 | 
						|
                <span class="bx bx-empty"></span>
 | 
						|
                Toggle fullscreen
 | 
						|
                <kbd data-kb-action="toggleFullscreen"></kbd>
 | 
						|
            </a>
 | 
						|
 | 
						|
            <a class="dropdown-item" data-trigger-event="showHelp">
 | 
						|
                <span class="bx bx-info-circle"></span>
 | 
						|
                Show Help
 | 
						|
                <kbd data-kb-action="showHelp"></kbd>
 | 
						|
            </a>
 | 
						|
 | 
						|
            <a class="dropdown-item show-about-dialog-button">
 | 
						|
                <span class="bx bx-empty"></span>
 | 
						|
                About Trilium Notes
 | 
						|
            </a>
 | 
						|
 | 
						|
            <a class="dropdown-item logout-button" data-trigger-event="logout">
 | 
						|
                <span class="bx bx-log-out"></span>
 | 
						|
                Logout
 | 
						|
            </a>
 | 
						|
        </div>
 | 
						|
    </div>
 | 
						|
</div>
 | 
						|
`;
 | 
						|
 | 
						|
export default class GlobalMenuWidget extends BasicWidget {
 | 
						|
    doRender() {
 | 
						|
        this.$widget = $(TPL);
 | 
						|
 | 
						|
        this.$widget.find(".show-about-dialog-button").on('click',
 | 
						|
            () => import("../dialogs/about.js").then(d => d.showDialog()));
 | 
						|
 | 
						|
        this.$widget.find(".sync-now-button").on('click', () => syncService.syncNow());
 | 
						|
 | 
						|
        this.$widget.find(".logout-button").toggle(!utils.isElectron());
 | 
						|
 | 
						|
        this.$widget.find(".open-dev-tools-button").toggle(utils.isElectron());
 | 
						|
 | 
						|
        return this.$widget;
 | 
						|
    }
 | 
						|
} |