mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 19:49:01 +01:00 
			
		
		
		
	feat(note_language): allow removing language tag
This commit is contained in:
		
							parent
							
								
									598586f735
								
							
						
					
					
						commit
						bb42b5fb19
					
				| @ -23,6 +23,28 @@ async function removeAttributeById(noteId: string, attributeId: string) { | ||||
|     await server.remove(`notes/${noteId}/attributes/${attributeId}`); | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Sets the attribute of the given note to the provided value if its truthy, or removes the attribute if the value is falsy. | ||||
|  * For an attribute with an empty value, pass an empty string instead. | ||||
|  * | ||||
|  * @param note the note to set the attribute to. | ||||
|  * @param type the type of attribute (label or relation). | ||||
|  * @param name the name of the attribute to set. | ||||
|  * @param value the value of the attribute to set. | ||||
|  */ | ||||
| async function setAttribute(note: FNote, type: "label" | "relation", name: string, value: string | null | undefined) { | ||||
|     if (value) { | ||||
|         // Create or update the attribute.
 | ||||
|         await server.put(`notes/${note.noteId}/set-attribute`, { type, name, value }); | ||||
|     } else { | ||||
|         // Remove the attribute if it exists on the server but we don't define a value for it.
 | ||||
|         const attributeId = note.getAttribute(type, name)?.attributeId; | ||||
|         if (attributeId) { | ||||
|             await server.remove(`notes/${note.noteId}/attributes/${attributeId}`); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * @returns - returns true if this attribute has the potential to influence the note in the argument. | ||||
|  *         That can happen in multiple ways: | ||||
| @ -66,6 +88,7 @@ function isAffecting(attrRow: AttributeRow, affectedNote: FNote | null | undefin | ||||
| export default { | ||||
|     addLabel, | ||||
|     setLabel, | ||||
|     setAttribute, | ||||
|     removeAttributeById, | ||||
|     isAffecting | ||||
| }; | ||||
|  | ||||
| @ -76,9 +76,7 @@ export default class NoteLanguageWidget extends NoteContextAwareWidget { | ||||
|             return; | ||||
|         } | ||||
| 
 | ||||
|         if (languageId) { | ||||
|             attributes.setLabel(this.note.noteId, "language", languageId); | ||||
|         } | ||||
|         attributes.setAttribute(this.note, "label", "language", languageId); | ||||
|     } | ||||
| 
 | ||||
|     async refreshWithNote(note: FNote) { | ||||
|  | ||||
| @ -229,8 +229,8 @@ export default class CalendarView extends ViewMode { | ||||
|             return; | ||||
|         } | ||||
| 
 | ||||
|         CalendarView.#setAttribute(note, "label", "startDate", startDate); | ||||
|         CalendarView.#setAttribute(note, "label", "endDate", endDate); | ||||
|         attributes.setAttribute(note, "label", "startDate", startDate); | ||||
|         attributes.setAttribute(note, "label", "endDate", endDate); | ||||
|     } | ||||
| 
 | ||||
|     onEntitiesReloaded({ loadResults }: EventData<"entitiesReloaded">) { | ||||
| @ -435,20 +435,6 @@ export default class CalendarView extends ViewMode { | ||||
|         return [ note.title ]; | ||||
|     } | ||||
| 
 | ||||
|     static async #setAttribute(note: FNote, type: "label" | "relation", name: string, value: string | null | undefined) { | ||||
|         if (value) { | ||||
|             // Create or update the attribute.
 | ||||
|             await server.put(`notes/${note.noteId}/set-attribute`, { type, name, value }); | ||||
|         } else { | ||||
|             // Remove the attribute if it exists on the server but we don't define a value for it.
 | ||||
|             const attributeId = note.getAttribute(type, name)?.attributeId; | ||||
|             if (attributeId) { | ||||
|                 await server.remove(`notes/${note.noteId}/attributes/${attributeId}`); | ||||
|             } | ||||
|         } | ||||
|         await ws.waitForMaxKnownEntityChangeId(); | ||||
|     } | ||||
| 
 | ||||
|     static #formatDateToLocalISO(date: Date | null | undefined) { | ||||
|         if (!date) { | ||||
|             return undefined; | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Elian Doran
						Elian Doran