*: add clear param to file upload API to delete stored file and reset field

closes #949

Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
This commit is contained in:
Jens Langhammer
2021-06-05 21:33:03 +02:00
parent 277c2f4aad
commit f5dbdbd48b
7 changed files with 121 additions and 27 deletions

View File

@ -27,6 +27,9 @@ export class ApplicationForm extends ModelForm<Application, string> {
@property({ attribute: false })
provider?: number;
@property({ type: Boolean })
clearIcon = false;
getSuccessMessage(): string {
if (this.instance) {
return t`Successfully updated application.`;
@ -54,11 +57,12 @@ export class ApplicationForm extends ModelForm<Application, string> {
return config().then((c) => {
if (c.capabilities.includes(CapabilitiesEnum.SaveMedia)) {
const icon = this.getFormFile();
if (icon) {
if (icon || this.clearIcon) {
return writeOp.then(app => {
return new CoreApi(DEFAULT_CONFIG).coreApplicationsSetIconCreate({
slug: app.slug,
file: icon
file: icon,
clear: this.clearIcon,
});
});
}
@ -186,7 +190,21 @@ export class ApplicationForm extends ModelForm<Application, string> {
${this.instance?.metaIcon ? html`
<p class="pf-c-form__helper-text">${t`Currently set to:`} ${this.instance?.metaIcon}</p>
`: html``}
</ak-form-element-horizontal>`;
</ak-form-element-horizontal>
${this.instance?.metaIcon ? html`
<ak-form-element-horizontal>
<div class="pf-c-check">
<input type="checkbox" class="pf-c-check__input" @change=${(ev: Event) => {
const target = ev.target as HTMLInputElement;
this.clearIcon = target.checked;
}}>
<label class="pf-c-check__label">
${t`Clear icon`}
</label>
</div>
<p class="pf-c-form__helper-text">${t`Delete currently set icon.`}</p>
</ak-form-element-horizontal>
`: html``}`;
}
return html`<ak-form-element-horizontal
label=${t`Icon`}