mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 10:26:08 +01:00 
			
		
		
		
	buttons on the left
This commit is contained in:
		| @@ -38,6 +38,8 @@ import RootContainer from "../widgets/containers/root_container.js"; | ||||
| import NoteUpdateStatusWidget from "../widgets/note_update_status.js"; | ||||
| import SpacerWidget from "../widgets/spacer.js"; | ||||
| import QuickSearchWidget from "../widgets/quick_search.js"; | ||||
| import ButtonWidget from "../widgets/button_widget.js"; | ||||
| import ProtectedSessionStatusWidget from "../widgets/protected_session_status.js"; | ||||
|  | ||||
| const RIGHT_PANE_CSS = ` | ||||
| <style> | ||||
| @@ -141,6 +143,29 @@ export default class DesktopLayout { | ||||
|  | ||||
|         return new RootContainer() | ||||
|             .setParent(appContext) | ||||
|             .child(new FlexContainer("column") | ||||
|                 .child(new GlobalMenuWidget()) | ||||
|                 .child(new ButtonWidget() | ||||
|                     .icon("bx-file-blank") | ||||
|                     .title("New note") | ||||
|                     .command("createNoteIntoInbox")) | ||||
|                 .child(new ButtonWidget() | ||||
|                     .icon("bx-search") | ||||
|                     .title("Search") | ||||
|                     .command("searchNotes")) | ||||
|                 .child(new ButtonWidget() | ||||
|                     .icon("bx-send") | ||||
|                     .title("Jump to note") | ||||
|                     .command("jumpToNote")) | ||||
|                 .child(new ButtonWidget() | ||||
|                     .icon("bx-history") | ||||
|                     .title("Show recent changes") | ||||
|                     .command("showRecentChanges")) | ||||
|                 .child(new SpacerWidget()) | ||||
|                 .child(new ProtectedSessionStatusWidget()) | ||||
|                 .child(new SyncStatusWidget()) | ||||
|                 .css("width", "50px") | ||||
|             ) | ||||
|             .child(new SidePaneContainer('left') | ||||
|                 .hideInZenMode() | ||||
|                 .css("width", "300px") | ||||
| @@ -152,16 +177,10 @@ export default class DesktopLayout { | ||||
|                 .id('center-pane') | ||||
|                 .css("flex-grow", "1") | ||||
|                 .child(new FlexContainer('row').overflowing() | ||||
|                     .filling() | ||||
|                     .child(new GlobalMenuWidget()) | ||||
|                     .child(new SyncStatusWidget()) | ||||
|                     .child(new SpacerWidget()) | ||||
|                     .child(new TabRowWidget()) | ||||
|                     .child(new TitleBarButtonsWidget()) | ||||
|                     .css('height', '36px') | ||||
|                 ) | ||||
|                 .child(new FlexContainer('row').overflowing() | ||||
|                     .child(new TabRowWidget()) | ||||
|                 ) | ||||
|                 .child(new FlexContainer('row').class('title-row') | ||||
|                     .css('align-items: center;') | ||||
|                     .cssBlock('.title-row > * { margin: 5px; }') | ||||
|   | ||||
| @@ -3,6 +3,7 @@ import appContext from "./app_context.js"; | ||||
| import dateNoteService from "../services/date_notes.js"; | ||||
| import treeService from "../services/tree.js"; | ||||
| import openService from "./open.js"; | ||||
| import protectedSessionService from "./protected_session.js"; | ||||
|  | ||||
| export default class RootCommandExecutor extends Component { | ||||
|     jumpToNoteCommand() { | ||||
| @@ -93,4 +94,12 @@ export default class RootCommandExecutor extends Component { | ||||
|             openService.openNoteExternally(noteId); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     enterProtectedSessionCommand() { | ||||
|         protectedSessionService.enterProtectedSession(); | ||||
|     } | ||||
|  | ||||
|     leaveProtectedSessionCommand() { | ||||
|         protectedSessionService.leaveProtectedSession(); | ||||
|     } | ||||
| } | ||||
|   | ||||
							
								
								
									
										49
									
								
								src/public/app/widgets/button_widget.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								src/public/app/widgets/button_widget.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,49 @@ | ||||
| import BasicWidget from "./basic_widget.js"; | ||||
|  | ||||
| const TPL = ` | ||||
| <span class="button-widget"  | ||||
|       title=""> | ||||
|     <span class="bx"></span> | ||||
| </span> | ||||
| `; | ||||
|  | ||||
| export default class ButtonWidget extends BasicWidget { | ||||
|     constructor() { | ||||
|         super(); | ||||
|  | ||||
|         this.options = {}; | ||||
|     } | ||||
|  | ||||
|     doRender() { | ||||
|         this.$widget = $(TPL); | ||||
|         this.refreshIcon(); | ||||
|         this.overflowing(); | ||||
|  | ||||
|         this.$widget.on("click", () => this.triggerCommand(this.options.command)); | ||||
|  | ||||
|         super.doRender(); | ||||
|     } | ||||
|  | ||||
|     refreshIcon() { | ||||
|         this.$widget.attr("title", this.options.title); | ||||
|         this.$widget.find("span.bx") | ||||
|             .removeClass() | ||||
|             .addClass("bx") | ||||
|             .addClass(this.options.icon); | ||||
|     } | ||||
|  | ||||
|     icon(icon) { | ||||
|         this.options.icon = icon; | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     title(title) { | ||||
|         this.options.title = title; | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     command(command) { | ||||
|         this.options.command = command; | ||||
|         return this; | ||||
|     } | ||||
| } | ||||
							
								
								
									
										33
									
								
								src/public/app/widgets/protected_session_status.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								src/public/app/widgets/protected_session_status.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,33 @@ | ||||
| import ButtonWidget from "./button_widget.js"; | ||||
| import protectedSessionHolder from "../services/protected_session_holder.js"; | ||||
|  | ||||
| export default class ProtectedSessionStatusWidget extends ButtonWidget { | ||||
|     constructor() { | ||||
|         super(); | ||||
|     } | ||||
|  | ||||
|     doRender() { | ||||
|         this.updateOptions(); | ||||
|  | ||||
|         super.doRender(); | ||||
|     } | ||||
|  | ||||
|     updateOptions() { | ||||
|         this.options.icon = protectedSessionHolder.isProtectedSessionAvailable() | ||||
|             ? "bx-shield-quarter" | ||||
|             : "bx-log-in"; | ||||
|  | ||||
|         this.options.title = protectedSessionHolder.isProtectedSessionAvailable() | ||||
|             ? "Protected session is active. Click to leave protected session." | ||||
|             : "Click to enter protected session"; | ||||
|  | ||||
|         this.options.command = protectedSessionHolder.isProtectedSessionAvailable() | ||||
|             ? "leaveProtectedSession" | ||||
|             : "enterProtectedSession"; | ||||
|     } | ||||
|  | ||||
|     protectedSessionStartedEvent() { | ||||
|         this.updateOptions(); | ||||
|         this.refreshIcon(); | ||||
|     } | ||||
| } | ||||
| @@ -928,3 +928,15 @@ ul.fancytree-container li { | ||||
|     padding: 10px; | ||||
|     margin: 10px; | ||||
| } | ||||
|  | ||||
| .button-widget .bx { | ||||
|     font-size: 180%; | ||||
|     display: inline-block; | ||||
|     position: relative; | ||||
|     padding: 10px; | ||||
|     cursor: pointer; | ||||
| } | ||||
|  | ||||
| .button-widget:hover .bx { | ||||
|     background-color: var(--hover-item-background-color); | ||||
| } | ||||
|   | ||||
| @@ -16,7 +16,7 @@ function getNotesAndBranchesAndAttributes(noteIds) { | ||||
|  | ||||
|         collectedNoteIds.add(note.noteId); | ||||
|  | ||||
|         for (const branch of note.parentBranches) { | ||||
|         for (const branch of note.getParentBranches()) { | ||||
|             collectedBranchIds.add(branch.branchId); | ||||
|  | ||||
|             collectEntityIds(branch.parentNote); | ||||
|   | ||||
| @@ -153,8 +153,6 @@ function findResultsWithQuery(query, searchContext) { | ||||
|  | ||||
|     const expression = parseQueryToExpression(query, searchContext); | ||||
|  | ||||
|     console.log("expression", expression); | ||||
|  | ||||
|     if (!expression) { | ||||
|         return []; | ||||
|     } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user