mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-25 18:26:35 +00:00
hassio-snapshots feedback (#6735)
This commit is contained in:
parent
fdd4d53448
commit
35923709e2
@ -1,27 +1,27 @@
|
|||||||
import "@material/mwc-button";
|
import "@material/mwc-button";
|
||||||
import "@material/mwc-icon-button";
|
import "@material/mwc-icon-button";
|
||||||
import { mdiPackageVariant, mdiPackageVariantClosed, mdiReload } from "@mdi/js";
|
|
||||||
import "@polymer/paper-checkbox/paper-checkbox";
|
import "@polymer/paper-checkbox/paper-checkbox";
|
||||||
import type { PaperCheckboxElement } from "@polymer/paper-checkbox/paper-checkbox";
|
|
||||||
import "@polymer/paper-input/paper-input";
|
import "@polymer/paper-input/paper-input";
|
||||||
import type { PaperInputElement } from "@polymer/paper-input/paper-input";
|
|
||||||
import "@polymer/paper-radio-button/paper-radio-button";
|
import "@polymer/paper-radio-button/paper-radio-button";
|
||||||
import "@polymer/paper-radio-group/paper-radio-group";
|
import "@polymer/paper-radio-group/paper-radio-group";
|
||||||
|
|
||||||
|
import type { PaperCheckboxElement } from "@polymer/paper-checkbox/paper-checkbox";
|
||||||
|
import type { PaperInputElement } from "@polymer/paper-input/paper-input";
|
||||||
import type { PaperRadioGroupElement } from "@polymer/paper-radio-group/paper-radio-group";
|
import type { PaperRadioGroupElement } from "@polymer/paper-radio-group/paper-radio-group";
|
||||||
|
import { mdiPackageVariant, mdiPackageVariantClosed, mdiReload } from "@mdi/js";
|
||||||
|
import { fireEvent } from "../../../src/common/dom/fire_event";
|
||||||
import {
|
import {
|
||||||
css,
|
css,
|
||||||
CSSResultArray,
|
CSSResultArray,
|
||||||
customElement,
|
customElement,
|
||||||
html,
|
html,
|
||||||
|
internalProperty,
|
||||||
LitElement,
|
LitElement,
|
||||||
property,
|
property,
|
||||||
internalProperty,
|
|
||||||
PropertyValues,
|
PropertyValues,
|
||||||
TemplateResult,
|
TemplateResult,
|
||||||
} from "lit-element";
|
} from "lit-element";
|
||||||
import { fireEvent } from "../../../src/common/dom/fire_event";
|
|
||||||
import "../../../src/components/ha-card";
|
|
||||||
import "../../../src/components/ha-svg-icon";
|
|
||||||
import {
|
import {
|
||||||
createHassioFullSnapshot,
|
createHassioFullSnapshot,
|
||||||
createHassioPartialSnapshot,
|
createHassioPartialSnapshot,
|
||||||
@ -31,15 +31,19 @@ import {
|
|||||||
HassioSnapshot,
|
HassioSnapshot,
|
||||||
reloadHassioSnapshots,
|
reloadHassioSnapshots,
|
||||||
} from "../../../src/data/hassio/snapshot";
|
} from "../../../src/data/hassio/snapshot";
|
||||||
|
import "../../../src/components/buttons/ha-progress-button";
|
||||||
|
import { hassioStyle } from "../resources/hassio-style";
|
||||||
import { HassioSupervisorInfo } from "../../../src/data/hassio/supervisor";
|
import { HassioSupervisorInfo } from "../../../src/data/hassio/supervisor";
|
||||||
import "../../../src/layouts/hass-tabs-subpage";
|
|
||||||
import { PolymerChangedEvent } from "../../../src/polymer-types";
|
|
||||||
import { haStyle } from "../../../src/resources/styles";
|
import { haStyle } from "../../../src/resources/styles";
|
||||||
import { HomeAssistant, Route } from "../../../src/types";
|
import { HomeAssistant, Route } from "../../../src/types";
|
||||||
import "../components/hassio-card-content";
|
import { PolymerChangedEvent } from "../../../src/polymer-types";
|
||||||
import { showHassioSnapshotDialog } from "../dialogs/snapshot/show-dialog-hassio-snapshot";
|
import { showHassioSnapshotDialog } from "../dialogs/snapshot/show-dialog-hassio-snapshot";
|
||||||
import { supervisorTabs } from "../hassio-tabs";
|
import { supervisorTabs } from "../hassio-tabs";
|
||||||
import { hassioStyle } from "../resources/hassio-style";
|
|
||||||
|
import "../../../src/components/ha-card";
|
||||||
|
import "../../../src/components/ha-svg-icon";
|
||||||
|
import "../../../src/layouts/hass-tabs-subpage";
|
||||||
|
import "../components/hassio-card-content";
|
||||||
|
|
||||||
interface CheckboxItem {
|
interface CheckboxItem {
|
||||||
slug: string;
|
slug: string;
|
||||||
@ -80,8 +84,6 @@ class HassioSnapshots extends LitElement {
|
|||||||
{ slug: "addons/local", name: "Local add-ons", checked: true },
|
{ slug: "addons/local", name: "Local add-ons", checked: true },
|
||||||
];
|
];
|
||||||
|
|
||||||
@internalProperty() private _creatingSnapshot = false;
|
|
||||||
|
|
||||||
@internalProperty() private _error = "";
|
@internalProperty() private _error = "";
|
||||||
|
|
||||||
public async refreshData() {
|
public async refreshData() {
|
||||||
@ -192,12 +194,9 @@ class HassioSnapshots extends LitElement {
|
|||||||
: undefined}
|
: undefined}
|
||||||
</div>
|
</div>
|
||||||
<div class="card-actions">
|
<div class="card-actions">
|
||||||
<mwc-button
|
<ha-progress-button @click=${this._createSnapshot}>
|
||||||
.disabled=${this._creatingSnapshot}
|
|
||||||
@click=${this._createSnapshot}
|
|
||||||
>
|
|
||||||
Create
|
Create
|
||||||
</mwc-button>
|
</ha-progress-button>
|
||||||
</div>
|
</div>
|
||||||
</ha-card>
|
</ha-card>
|
||||||
</div>
|
</div>
|
||||||
@ -230,7 +229,7 @@ class HassioSnapshots extends LitElement {
|
|||||||
.icon=${snapshot.type === "full"
|
.icon=${snapshot.type === "full"
|
||||||
? mdiPackageVariantClosed
|
? mdiPackageVariantClosed
|
||||||
: mdiPackageVariant}
|
: mdiPackageVariant}
|
||||||
.icon-class="snapshot"
|
icon-class="snapshot"
|
||||||
></hassio-card-content>
|
></hassio-card-content>
|
||||||
</div>
|
</div>
|
||||||
</ha-card>
|
</ha-card>
|
||||||
@ -297,13 +296,16 @@ class HassioSnapshots extends LitElement {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private async _createSnapshot() {
|
private async _createSnapshot(ev: CustomEvent): Promise<void> {
|
||||||
|
const button = ev.target as any;
|
||||||
|
button.progress = true;
|
||||||
|
|
||||||
this._error = "";
|
this._error = "";
|
||||||
if (this._snapshotHasPassword && !this._snapshotPassword.length) {
|
if (this._snapshotHasPassword && !this._snapshotPassword.length) {
|
||||||
this._error = "Please enter a password.";
|
this._error = "Please enter a password.";
|
||||||
|
button.progress = false;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this._creatingSnapshot = true;
|
|
||||||
await this.updateComplete;
|
await this.updateComplete;
|
||||||
|
|
||||||
const name =
|
const name =
|
||||||
@ -344,9 +346,8 @@ class HassioSnapshots extends LitElement {
|
|||||||
fireEvent(this, "hass-api-called", { success: true, response: null });
|
fireEvent(this, "hass-api-called", { success: true, response: null });
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
this._error = err.message;
|
this._error = err.message;
|
||||||
} finally {
|
|
||||||
this._creatingSnapshot = false;
|
|
||||||
}
|
}
|
||||||
|
button.progress = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private _computeDetails(snapshot: HassioSnapshot) {
|
private _computeDetails(snapshot: HassioSnapshot) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user