From bcbd68080604f9c59943d14fa86f69245f3f5b63 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Tue, 28 Nov 2023 17:42:37 +0100 Subject: [PATCH] input file render alrdy uploaded files --- .../input-upload-field.element.ts | 26 ++++++++++++++++--- .../data-type-create-options-modal.element.ts | 4 +-- ...property-editor-ui-upload-field.element.ts | 2 +- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-upload-field/input-upload-field.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-upload-field/input-upload-field.element.ts index 0b4a6506ac..e316b90d4d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-upload-field/input-upload-field.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-upload-field/input-upload-field.element.ts @@ -29,6 +29,11 @@ export class UmbInputUploadFieldElement extends FormControlMixin(UmbLitElement) public set keys(fileKeys: Array) { this._keys = fileKeys; super.value = this._keys.join(','); + fileKeys.forEach((key) => { + if (!UmbId.validate(key)) { + this._filePaths.push(key); + } + }); } public get keys(): Array { return this._keys; @@ -54,6 +59,9 @@ export class UmbInputUploadFieldElement extends FormControlMixin(UmbLitElement) @state() _currentFiles: Array = []; + @state() + _filePaths: Array = []; + @state() extensions?: string[]; @@ -118,13 +126,14 @@ export class UmbInputUploadFieldElement extends FormControlMixin(UmbLitElement) } render() { - return html`${this.#renderUploadedFiles()} ${this.#renderDropzone()}${this.#renderButtonRemove()}`; + return html`${this.#renderFilesWithPath()} ${this.#renderFilesUploaded()} + ${this.#renderDropzone()}${this.#renderButtonRemove()}`; } //TODO When the property editor gets saved, it seems that the property editor gets the file path from the server rather than key/id. // Image/files needs to be displayed from a previous save (not just when it just got uploaded). #renderDropzone() { - if (!this.multiple && this._currentFiles.length) return nothing; + if (!this.multiple && (this._currentFiles.length || this._filePaths.length)) return nothing; return html` `; } - #renderUploadedFiles() { + + #renderFilesWithPath() { + if (!this._filePaths.length) return nothing; + return html`${this._filePaths.map( + (path) => html``, + )}`; + } + + #renderFilesUploaded() { if (!this._currentFiles.length) return nothing; return html`
${repeat( @@ -152,13 +169,14 @@ export class UmbInputUploadFieldElement extends FormControlMixin(UmbLitElement) } #renderButtonRemove() { - if (!this._currentFiles.length) return; + if (!this._currentFiles.length && !this._filePaths.length) return; return html` Remove file(s) `; } #handleRemove() { + this._filePaths = []; const ids = this._currentFiles.map((item) => item.id) as string[]; this.#manager.remove(ids); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts index 003e5d7e1d..3f91903626 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts @@ -53,10 +53,10 @@ export class UmbDataTypeCreateOptionsModalElement extends UmbLitElement { href=${`section/settings/workspace/data-type/create/${this.data?.parentKey || null}`} label="New Data Type..." @click=${this.#onNavigate}> - } + - } + Cancel diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/upload-field/property-editor-ui-upload-field.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/upload-field/property-editor-ui-upload-field.element.ts index e1ceabc519..a8b2d524dc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/upload-field/property-editor-ui-upload-field.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/upload-field/property-editor-ui-upload-field.element.ts @@ -35,7 +35,7 @@ export class UmbPropertyEditorUIUploadFieldElement extends UmbLitElement impleme @change="${this._onChange}" ?multiple="${this._multiple}" .fileExtensions="${this._fileExtensions}" - .value=${this.value}>`; + .keys=${(this.value as string).split(',')}>`; } static styles = [UmbTextStyles];