mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 02:16:05 +01:00 
			
		
		
		
	feat(client): create an empty language switcher at note level
This commit is contained in:
		
							
								
								
									
										30
									
								
								src/public/app/widgets/note_language.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								src/public/app/widgets/note_language.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,30 @@ | |||||||
|  | import { Dropdown } from "bootstrap"; | ||||||
|  | import NoteContextAwareWidget from "./note_context_aware_widget.js"; | ||||||
|  |  | ||||||
|  | const TPL = `\ | ||||||
|  | <div class="dropdown note-language-widget"> | ||||||
|  |     <button type="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false" class="btn btn-sm dropdown-toggle select-button note-language-button"> | ||||||
|  |         <span class="note-language-desc"></span> | ||||||
|  |         <span class="caret"></span> | ||||||
|  |     </button> | ||||||
|  |     <div class="note-language-dropdown dropdown-menu dropdown-menu-left tn-dropdown-list"></div> | ||||||
|  | </div> | ||||||
|  | `; | ||||||
|  |  | ||||||
|  | export default class NoteLanguageWidget extends NoteContextAwareWidget { | ||||||
|  |  | ||||||
|  |     private dropdown!: Dropdown; | ||||||
|  |     private $noteLanguageDropdown!: JQuery<HTMLElement>; | ||||||
|  |     private $noteLanguageButton!: JQuery<HTMLElement>; | ||||||
|  |     private $noteLanguageDesc!: JQuery<HTMLElement>; | ||||||
|  |  | ||||||
|  |     doRender() { | ||||||
|  |         this.$widget = $(TPL); | ||||||
|  |         this.dropdown = Dropdown.getOrCreateInstance(this.$widget.find("[data-bs-toggle='dropdown']")[0]); | ||||||
|  |  | ||||||
|  |         this.$noteLanguageDropdown = this.$widget.find(".note-language-dropdown") | ||||||
|  |         this.$noteLanguageButton = this.$widget.find(".note-language-button"); | ||||||
|  |         this.$noteLanguageDesc = this.$widget.find(".note-language-desc"); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  | } | ||||||
| @@ -7,6 +7,7 @@ import SharedSwitchWidget from "../shared_switch.js"; | |||||||
| import { t } from "../../services/i18n.js"; | import { t } from "../../services/i18n.js"; | ||||||
| import TemplateSwitchWidget from "../template_switch.js"; | import TemplateSwitchWidget from "../template_switch.js"; | ||||||
| import type FNote from "../../entities/fnote.js"; | import type FNote from "../../entities/fnote.js"; | ||||||
|  | import NoteLanguageWidget from "../note_language.js"; | ||||||
|  |  | ||||||
| const TPL = ` | const TPL = ` | ||||||
| <div class="basic-properties-widget"> | <div class="basic-properties-widget"> | ||||||
| @@ -27,7 +28,9 @@ const TPL = ` | |||||||
|             margin-right: 30px; |             margin-right: 30px; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         .note-type-container, .editability-select-container { |         .note-type-container, | ||||||
|  |         .editability-select-container, | ||||||
|  |         .note-language-container { | ||||||
|             display: flex; |             display: flex; | ||||||
|             align-items: center; |             align-items: center; | ||||||
|         } |         } | ||||||
| @@ -48,6 +51,10 @@ const TPL = ` | |||||||
|     <div class="shared-switch-container"></div> |     <div class="shared-switch-container"></div> | ||||||
|  |  | ||||||
|     <div class="template-switch-container"></div> |     <div class="template-switch-container"></div> | ||||||
|  |  | ||||||
|  |     <div class="note-language-container"> | ||||||
|  |         <span>${t("basic_properties.language")}:</span>   | ||||||
|  |     </div> | ||||||
| </div>`; | </div>`; | ||||||
|  |  | ||||||
| export default class BasicPropertiesWidget extends NoteContextAwareWidget { | export default class BasicPropertiesWidget extends NoteContextAwareWidget { | ||||||
| @@ -58,6 +65,7 @@ export default class BasicPropertiesWidget extends NoteContextAwareWidget { | |||||||
|     private bookmarkSwitchWidget: BookmarkSwitchWidget; |     private bookmarkSwitchWidget: BookmarkSwitchWidget; | ||||||
|     private sharedSwitchWidget: SharedSwitchWidget; |     private sharedSwitchWidget: SharedSwitchWidget; | ||||||
|     private templateSwitchWidget: TemplateSwitchWidget; |     private templateSwitchWidget: TemplateSwitchWidget; | ||||||
|  |     private noteLanguageWidget: NoteLanguageWidget; | ||||||
|  |  | ||||||
|     constructor() { |     constructor() { | ||||||
|         super(); |         super(); | ||||||
| @@ -68,8 +76,16 @@ export default class BasicPropertiesWidget extends NoteContextAwareWidget { | |||||||
|         this.bookmarkSwitchWidget = new BookmarkSwitchWidget().contentSized(); |         this.bookmarkSwitchWidget = new BookmarkSwitchWidget().contentSized(); | ||||||
|         this.sharedSwitchWidget = new SharedSwitchWidget().contentSized(); |         this.sharedSwitchWidget = new SharedSwitchWidget().contentSized(); | ||||||
|         this.templateSwitchWidget = new TemplateSwitchWidget().contentSized(); |         this.templateSwitchWidget = new TemplateSwitchWidget().contentSized(); | ||||||
|  |         this.noteLanguageWidget = new NoteLanguageWidget().contentSized(); | ||||||
|  |  | ||||||
|         this.child(this.noteTypeWidget, this.protectedNoteSwitchWidget, this.editabilitySelectWidget, this.bookmarkSwitchWidget, this.sharedSwitchWidget, this.templateSwitchWidget); |         this.child( | ||||||
|  |             this.noteTypeWidget, | ||||||
|  |             this.protectedNoteSwitchWidget, | ||||||
|  |             this.editabilitySelectWidget, | ||||||
|  |             this.bookmarkSwitchWidget, | ||||||
|  |             this.sharedSwitchWidget, | ||||||
|  |             this.templateSwitchWidget, | ||||||
|  |             this.noteLanguageWidget); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     get name() { |     get name() { | ||||||
| @@ -98,6 +114,7 @@ export default class BasicPropertiesWidget extends NoteContextAwareWidget { | |||||||
|         this.$widget.find(".bookmark-switch-container").append(this.bookmarkSwitchWidget.render()); |         this.$widget.find(".bookmark-switch-container").append(this.bookmarkSwitchWidget.render()); | ||||||
|         this.$widget.find(".shared-switch-container").append(this.sharedSwitchWidget.render()); |         this.$widget.find(".shared-switch-container").append(this.sharedSwitchWidget.render()); | ||||||
|         this.$widget.find(".template-switch-container").append(this.templateSwitchWidget.render()); |         this.$widget.find(".template-switch-container").append(this.templateSwitchWidget.render()); | ||||||
|  |         this.$widget.find(".note-language-container").append(this.noteLanguageWidget.render()); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     async refreshWithNote(note: FNote) { |     async refreshWithNote(note: FNote) { | ||||||
|   | |||||||
| @@ -744,7 +744,8 @@ | |||||||
|   "basic_properties": { |   "basic_properties": { | ||||||
|     "note_type": "Note type", |     "note_type": "Note type", | ||||||
|     "editable": "Editable", |     "editable": "Editable", | ||||||
|     "basic_properties": "Basic Properties" |     "basic_properties": "Basic Properties", | ||||||
|  |     "language": "Language" | ||||||
|   }, |   }, | ||||||
|   "book_properties": { |   "book_properties": { | ||||||
|     "view_type": "View type", |     "view_type": "View type", | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user