All Downloads are FREE. Search and download functionalities are using the official Maven repository.

js.factoryEditing.AttributeEditorFileContentAttribute.js Maven / Gradle / Ivy

export class AttributeEditorFileContentAttribute {
    constructor(attributeAccessor, inputId) {
        this.attributeAccessor = attributeAccessor;
        this.inputId = inputId;
        this.textarea = document.createElement("textarea");
        this.textarea.className = "form-control";
    }
    create() {
        let content = document.createElement("div");
        let input = document.createElement("input");
        input.id = this.inputId.toString();
        input.className = "form-control-file";
        input.type = "file";
        // input.value=this.attributeAccessor.getValue();  TODO how show base 64
        input.oninput = (e) => {
            let reader = new FileReader();
            reader.readAsDataURL(input.files[0]);
            reader.onload = () => {
                let result = reader.result;
                this.attributeAccessor.setValue(result.split(',')[1]);
                this.bindValue();
            };
        };
        this.bindValue();
        content.appendChild(this.textarea);
        content.appendChild(input);
        return content;
    }
    bindValue() {
        let value = this.attributeAccessor.getValue();
        this.textarea.value = value;
        // this.textarea.readOnly=true; doesn't work width required
        this.textarea.required = !this.attributeAccessor.getAttributeMetadata().nullable();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy