mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-03 20:06:08 +01:00 
			
		
		
		
	chore(react/ribbon): save attribute changes
This commit is contained in:
		@@ -16,7 +16,6 @@ import { escapeQuotes } from "../../services/utils.js";
 | 
			
		||||
 | 
			
		||||
const TPL = /*html*/`
 | 
			
		||||
 | 
			
		||||
    <div class="bx bx-save save-attributes-button tn-tool-button" title="${escapeQuotes(t("attribute_editor.save_attributes"))}"></div>
 | 
			
		||||
    <div class="bx bx-plus add-new-attribute-button tn-tool-button" title="${escapeQuotes(t("attribute_editor.add_a_new_attribute"))}"></div>
 | 
			
		||||
 | 
			
		||||
    <div class="attribute-errors" style="display: none;"></div>
 | 
			
		||||
@@ -49,11 +48,6 @@ export default class AttributeEditorWidget extends NoteContextAwareWidget implem
 | 
			
		||||
        this.initialized = this.initEditor();
 | 
			
		||||
 | 
			
		||||
        this.$editor.on("keydown", async (e) => {
 | 
			
		||||
            if (e.which === 13) {
 | 
			
		||||
                // allow autocomplete to fill the result textarea
 | 
			
		||||
                setTimeout(() => this.save(), 100);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            this.attributeDetailWidget.hide();
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
@@ -62,7 +56,6 @@ export default class AttributeEditorWidget extends NoteContextAwareWidget implem
 | 
			
		||||
        this.$addNewAttributeButton = this.$widget.find(".add-new-attribute-button");
 | 
			
		||||
        this.$addNewAttributeButton.on("click", (e) => this.addNewAttribute(e));
 | 
			
		||||
 | 
			
		||||
        this.$saveAttributesButton = this.$widget.find(".save-attributes-button");
 | 
			
		||||
        this.$saveAttributesButton.on("click", () => this.save());
 | 
			
		||||
 | 
			
		||||
        this.$errors = this.$widget.find(".attribute-errors");
 | 
			
		||||
@@ -170,39 +163,11 @@ export default class AttributeEditorWidget extends NoteContextAwareWidget implem
 | 
			
		||||
            console.warn("Ignoring blur event because a different note is loaded.");
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        const attributes = this.parseAttributes();
 | 
			
		||||
 | 
			
		||||
        if (attributes) {
 | 
			
		||||
            await server.put(`notes/${this.noteId}/attributes`, attributes, this.componentId);
 | 
			
		||||
 | 
			
		||||
            this.$saveAttributesButton.fadeOut();
 | 
			
		||||
 | 
			
		||||
            // blink the attribute text to give a visual hint that save has been executed
 | 
			
		||||
            this.$editor.css("opacity", 0);
 | 
			
		||||
 | 
			
		||||
            // revert back
 | 
			
		||||
            setTimeout(() => this.$editor.css("opacity", 1), 100);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    parseAttributes() {
 | 
			
		||||
        try {
 | 
			
		||||
            return attributeParser.lexAndParse(this.getPreprocessedData());
 | 
			
		||||
        } catch (e: any) {
 | 
			
		||||
            this.$errors.text(e.message).slideDown();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    dataChanged() {
 | 
			
		||||
        this.lastUpdatedNoteId = this.noteId;
 | 
			
		||||
 | 
			
		||||
        if (this.lastSavedContent === this.textEditor.getData()) {
 | 
			
		||||
            this.$saveAttributesButton.fadeOut();
 | 
			
		||||
        } else {
 | 
			
		||||
            this.$saveAttributesButton.fadeIn();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (this.$errors.is(":visible")) {
 | 
			
		||||
            // using .hide() instead of .slideUp() since this will also hide the error after confirming
 | 
			
		||||
            // mention for relation name which suits up. When using.slideUp() error will appear and the slideUp which is weird
 | 
			
		||||
@@ -218,14 +183,6 @@ export default class AttributeEditorWidget extends NoteContextAwareWidget implem
 | 
			
		||||
        $el.text(title);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    async renderOwnedAttributes(ownedAttributes: FAttribute[], saved: boolean) {
 | 
			
		||||
        if (saved) {
 | 
			
		||||
            this.lastSavedContent = this.textEditor.getData();
 | 
			
		||||
 | 
			
		||||
            this.$saveAttributesButton.fadeOut(0);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    async createNoteForReferenceLink(title: string) {
 | 
			
		||||
        let result;
 | 
			
		||||
        if (this.notePath) {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user