Prevent delete pipeline if preferred (#16237)

This commit is contained in:
Bram Kragten 2023-04-19 12:12:47 +02:00 committed by GitHub
parent afa071465c
commit d8cb5a6a42
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 11 deletions

View File

@ -160,13 +160,9 @@ export class AssistPref extends LitElement {
return false; return false;
} }
try { await deleteAssistPipeline(this.hass!, pipeline!.id);
await deleteAssistPipeline(this.hass!, pipeline!.id); this._pipelines = this._pipelines!.filter((res) => res !== pipeline);
this._pipelines = this._pipelines!.filter((res) => res !== pipeline); return true;
return true;
} catch (err: any) {
return false;
}
}, },
}); });
} }

View File

@ -81,8 +81,8 @@ export class DialogVoiceAssistantPipelineDetail extends LitElement {
<ha-button <ha-button
slot="secondaryAction" slot="secondaryAction"
class="warning" class="warning"
.disabled=${this._preferred || this._submitting}
@click=${this._deletePipeline} @click=${this._deletePipeline}
.disabled=${this._submitting}
> >
${this.hass.localize("ui.common.delete")} ${this.hass.localize("ui.common.delete")}
</ha-button> </ha-button>
@ -104,7 +104,7 @@ export class DialogVoiceAssistantPipelineDetail extends LitElement {
<ha-button <ha-button
slot="primaryAction" slot="primaryAction"
@click=${this._updatePipeline} @click=${this._updatePipeline}
.disabled=${Boolean(this._error) || this._submitting} .disabled=${this._submitting}
dialogInitialFocus dialogInitialFocus
> >
${this._params.pipeline?.id ${this._params.pipeline?.id
@ -198,8 +198,15 @@ export class DialogVoiceAssistantPipelineDetail extends LitElement {
} }
private async _setPreferred() { private async _setPreferred() {
await this._params!.setPipelinePreferred(); this._submitting = true;
this._preferred = true; try {
await this._params!.setPipelinePreferred();
this._preferred = true;
} catch (err: any) {
this._error = { base: err?.message || "Unknown error" };
} finally {
this._submitting = false;
}
} }
private async _deletePipeline() { private async _deletePipeline() {
@ -208,6 +215,8 @@ export class DialogVoiceAssistantPipelineDetail extends LitElement {
if (await this._params!.deletePipeline()) { if (await this._params!.deletePipeline()) {
this.closeDialog(); this.closeDialog();
} }
} catch (err: any) {
this._error = { base: err?.message || "Unknown error" };
} finally { } finally {
this._submitting = false; this._submitting = false;
} }