Notes/src/public/app/widgets/buttons/global_menu.js

118 lines
3.9 KiB
JavaScript
Raw Normal View History

2021-05-24 22:29:49 +02:00
import BasicWidget from "../basic_widget.js";
import utils from "../../services/utils.js";
2020-01-15 19:40:17 +01:00
const TPL = `
<div class="global-menu-wrapper">
<style>
.global-menu-wrapper {
2020-08-27 22:03:56 +02:00
box-sizing: border-box;
2020-01-15 19:40:17 +01:00
}
2020-08-27 22:03:56 +02:00
.global-menu {
box-sizing: border-box;
}
2020-01-15 19:40:17 +01:00
.global-menu button {
2021-05-23 20:26:54 +02:00
padding: 15px 15px;
2021-03-21 22:46:45 +01:00
font-size: 150%;
2021-05-18 22:49:47 +02:00
border: none;
border-radius: 0 !important;
2021-01-31 20:36:30 +01:00
}
.global-menu button:hover {
background-color: var(--hover-item-background-color);
2020-01-15 19:40:17 +01:00
}
.global-menu .dropdown-menu {
width: 20em;
}
</style>
2021-05-23 22:24:04 +02:00
<div class="dropdown global-menu dropright">
2021-05-18 22:49:47 +02:00
<button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" class="btn btn-sm bx bx-menu" title="Menu"></button>
2020-01-15 19:40:17 +01:00
<div class="dropdown-menu dropdown-menu-right">
2020-02-29 14:32:26 +01:00
<a class="dropdown-item options-button" data-trigger-command="showOptions">
2020-01-15 19:40:17 +01:00
<span class="bx bx-slider"></span>
Options
</a>
<a class="dropdown-item" data-trigger-command="openNewWindow">
<span class="bx bx-window-open"></span>
Open new window
<kbd data-command="openNewWindow"></kbd>
</a>
2020-02-29 14:32:26 +01:00
<a class="dropdown-item open-dev-tools-button" data-trigger-command="openDevTools">
2020-01-15 19:40:17 +01:00
<span class="bx bx-terminal"></span>
Open Dev Tools
2020-02-27 23:12:22 +01:00
<kbd data-command="openDevTools"></kbd>
2020-01-15 19:40:17 +01:00
</a>
2020-02-29 14:32:26 +01:00
<a class="dropdown-item" data-trigger-command="showSQLConsole">
2020-01-15 19:40:17 +01:00
<span class="bx bx-data"></span>
Open SQL Console
2020-02-27 23:12:22 +01:00
<kbd data-command="showSQLConsole"></kbd>
2020-01-15 19:40:17 +01:00
</a>
2020-02-29 14:32:26 +01:00
<a class="dropdown-item" data-trigger-command="showBackendLog">
2020-01-15 19:40:17 +01:00
<span class="bx bx-empty"></span>
Show backend log
2020-02-27 23:12:22 +01:00
<kbd data-command="showBackendLog"></kbd>
2020-01-15 19:40:17 +01:00
</a>
2020-02-29 14:32:26 +01:00
<a class="dropdown-item" data-trigger-command="reloadFrontendApp"
2020-01-22 19:41:19 +01:00
title="Reload can help with some visual glitches without restarting the whole app.">
2020-01-15 19:40:17 +01:00
<span class="bx bx-empty"></span>
Reload frontend
2020-02-27 23:12:22 +01:00
<kbd data-command="reloadFrontendApp"></kbd>
2020-01-15 19:40:17 +01:00
</a>
2020-02-29 14:32:26 +01:00
<a class="dropdown-item" data-trigger-command="toggleZenMode">
2020-01-15 19:40:17 +01:00
<span class="bx bx-empty"></span>
Toggle Zen mode
2020-02-27 23:12:22 +01:00
<kbd data-command="toggleZenMode"></kbd>
2020-01-15 19:40:17 +01:00
</a>
2020-02-29 14:32:26 +01:00
<a class="dropdown-item" data-trigger-command="toggleFullscreen">
2020-01-15 19:40:17 +01:00
<span class="bx bx-empty"></span>
Toggle fullscreen
2020-02-27 23:12:22 +01:00
<kbd data-command="toggleFullscreen"></kbd>
2020-01-15 19:40:17 +01:00
</a>
2020-02-29 14:32:26 +01:00
<a class="dropdown-item" data-trigger-command="showHelp">
2020-01-15 19:40:17 +01:00
<span class="bx bx-info-circle"></span>
Show Help
2020-02-27 23:12:22 +01:00
<kbd data-command="showHelp"></kbd>
2020-01-15 19:40:17 +01:00
</a>
<a class="dropdown-item show-about-dialog-button">
<span class="bx bx-empty"></span>
About Trilium Notes
</a>
2020-02-29 14:32:26 +01:00
<a class="dropdown-item logout-button" data-trigger-command="logout">
2020-01-15 19:40:17 +01:00
<span class="bx bx-log-out"></span>
Logout
</a>
</div>
</div>
</div>
`;
export default class GlobalMenuWidget extends BasicWidget {
2020-01-22 20:48:56 +01:00
doRender() {
2020-01-15 19:40:17 +01:00
this.$widget = $(TPL);
this.overflowing();
2020-01-15 19:40:17 +01:00
2020-01-22 19:41:19 +01:00
this.$widget.find(".show-about-dialog-button").on('click',
2021-05-24 22:29:49 +02:00
() => import("../../dialogs/about.js").then(d => d.showDialog()));
2020-01-15 19:40:17 +01:00
2020-01-22 19:41:19 +01:00
this.$widget.find(".logout-button").toggle(!utils.isElectron());
2020-01-15 19:40:17 +01:00
2020-01-22 19:41:19 +01:00
this.$widget.find(".open-dev-tools-button").toggle(utils.isElectron());
this.$widget.on('click', '.dropdown-item',
2021-02-13 21:52:31 +01:00
() => this.$widget.find("[data-toggle='dropdown']").dropdown('toggle'));
2020-01-15 19:40:17 +01:00
}
}