Skip to content

Commit 48e70e9

Browse files
wendevlinbramkragten
authored andcommitted
Fix-labels-yaml-helper (#27776)
Co-authored-by: Bram Kragten <[email protected]>
1 parent 5116d0e commit 48e70e9

File tree

11 files changed

+106
-22
lines changed

11 files changed

+106
-22
lines changed

src/panels/config/entities/editor-tabs/settings/entity-settings-helper-tab.ts

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { customElement, property, query, state } from "lit/decorators";
44
import { isComponentLoaded } from "../../../../../common/config/is_component_loaded";
55
import { dynamicElement } from "../../../../../common/dom/dynamic-element-directive";
66
import { fireEvent } from "../../../../../common/dom/fire_event";
7+
import "../../../../../components/ha-button";
78
import type { ExtEntityRegistryEntry } from "../../../../../data/entity_registry";
89
import { removeEntityRegistryEntry } from "../../../../../data/entity_registry";
910
import { HELPERS_CRUD } from "../../../../../data/helpers_crud";
@@ -22,7 +23,6 @@ import "../../../helpers/forms/ha-schedule-form";
2223
import "../../../helpers/forms/ha-timer-form";
2324
import "../../../voice-assistants/entity-voice-settings";
2425
import "../../entity-registry-settings-editor";
25-
import "../../../../../components/ha-button";
2626
import type { EntityRegistrySettingsEditor } from "../../entity-registry-settings-editor";
2727

2828
@customElement("entity-settings-helper-tab")
@@ -72,22 +72,28 @@ export class EntitySettingsHelperTab extends LitElement {
7272
${this._error
7373
? html`<ha-alert alert-type="error">${this._error}</ha-alert>`
7474
: ""}
75+
${this._item === null
76+
? html`<ha-alert alert-type="info"
77+
>${this.hass.localize(
78+
"ui.dialogs.helper_settings.yaml_not_editable"
79+
)}</ha-alert
80+
>`
81+
: nothing}
7582
${!this._componentLoaded
7683
? this.hass.localize(
7784
"ui.dialogs.helper_settings.platform_not_loaded",
7885
{ platform: this.entry.platform }
7986
)
80-
: this._item === null
81-
? this.hass.localize("ui.dialogs.helper_settings.yaml_not_editable")
82-
: html`
83-
<span @value-changed=${this._valueChanged}>
84-
${dynamicElement(`ha-${this.entry.platform}-form`, {
85-
hass: this.hass,
86-
item: this._item,
87-
entry: this.entry,
88-
})}
89-
</span>
90-
`}
87+
: html`
88+
<span @value-changed=${this._valueChanged}>
89+
${dynamicElement(`ha-${this.entry.platform}-form`, {
90+
hass: this.hass,
91+
item: this._item,
92+
entry: this.entry,
93+
disabled: this._item === null,
94+
})}
95+
</span>
96+
`}
9197
<entity-registry-settings-editor
9298
.hass=${this.hass}
9399
.entry=${this.entry}
@@ -122,6 +128,9 @@ export class EntitySettingsHelperTab extends LitElement {
122128
}
123129

124130
private _valueChanged(ev: CustomEvent): void {
131+
if (this._item === null) {
132+
return;
133+
}
125134
this._error = undefined;
126135
this._item = ev.detail.value;
127136
}
@@ -195,6 +204,10 @@ export class EntitySettingsHelperTab extends LitElement {
195204
display: block;
196205
padding: 0 !important;
197206
}
207+
ha-alert {
208+
display: block;
209+
margin-bottom: var(--ha-space-4);
210+
}
198211
.form {
199212
padding: 20px 24px;
200213
}

src/panels/config/entities/entity-registry-settings-editor.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -784,7 +784,7 @@ export class EntityRegistrySettingsEditor extends LitElement {
784784
<ha-labels-picker
785785
.hass=${this.hass}
786786
.value=${this._labels}
787-
.disabled=${this.disabled}
787+
.disabled=${!!this.disabled}
788788
@value-changed=${this._labelsChanged}
789789
></ha-labels-picker>
790790
${this._cameraPrefs

src/panels/config/helpers/forms/ha-counter-form.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ class HaCounterForm extends LitElement {
1717

1818
@property({ type: Boolean }) public new = false;
1919

20+
@property({ type: Boolean }) public disabled = false;
21+
2022
private _item?: Partial<Counter>;
2123

2224
@state() private _name!: string;
@@ -82,6 +84,7 @@ class HaCounterForm extends LitElement {
8284
"ui.dialogs.helper_settings.required_error_msg"
8385
)}
8486
dialogInitialFocus
87+
.disabled=${this.disabled}
8588
></ha-textfield>
8689
<ha-icon-picker
8790
.hass=${this.hass}
@@ -91,6 +94,7 @@ class HaCounterForm extends LitElement {
9194
.label=${this.hass!.localize(
9295
"ui.dialogs.helper_settings.generic.icon"
9396
)}
97+
.disabled=${this.disabled}
9498
></ha-icon-picker>
9599
<ha-textfield
96100
.value=${this._minimum}
@@ -100,6 +104,7 @@ class HaCounterForm extends LitElement {
100104
.label=${this.hass!.localize(
101105
"ui.dialogs.helper_settings.counter.minimum"
102106
)}
107+
.disabled=${this.disabled}
103108
></ha-textfield>
104109
<ha-textfield
105110
.value=${this._maximum}
@@ -109,6 +114,7 @@ class HaCounterForm extends LitElement {
109114
.label=${this.hass!.localize(
110115
"ui.dialogs.helper_settings.counter.maximum"
111116
)}
117+
.disabled=${this.disabled}
112118
></ha-textfield>
113119
<ha-textfield
114120
.value=${this._initial}
@@ -118,6 +124,7 @@ class HaCounterForm extends LitElement {
118124
.label=${this.hass!.localize(
119125
"ui.dialogs.helper_settings.counter.initial"
120126
)}
127+
.disabled=${this.disabled}
121128
></ha-textfield>
122129
<ha-expansion-panel
123130
header=${this.hass.localize(
@@ -133,12 +140,14 @@ class HaCounterForm extends LitElement {
133140
.label=${this.hass!.localize(
134141
"ui.dialogs.helper_settings.counter.step"
135142
)}
143+
.disabled=${this.disabled}
136144
></ha-textfield>
137145
<div class="row">
138146
<ha-switch
139147
.checked=${this._restore}
140148
.configValue=${"restore"}
141149
@change=${this._valueChanged}
150+
.disabled=${this.disabled}
142151
>
143152
</ha-switch>
144153
<div>

src/panels/config/helpers/forms/ha-input_boolean-form.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ class HaInputBooleanForm extends LitElement {
1414

1515
@property({ type: Boolean }) public new = false;
1616

17+
@property({ type: Boolean }) public disabled = false;
18+
1719
private _item?: InputBoolean;
1820

1921
@state() private _name!: string;
@@ -59,6 +61,7 @@ class HaInputBooleanForm extends LitElement {
5961
"ui.dialogs.helper_settings.required_error_msg"
6062
)}
6163
dialogInitialFocus
64+
.disabled=${this.disabled}
6265
></ha-textfield>
6366
<ha-icon-picker
6467
.hass=${this.hass}
@@ -68,6 +71,7 @@ class HaInputBooleanForm extends LitElement {
6871
.label=${this.hass!.localize(
6972
"ui.dialogs.helper_settings.generic.icon"
7073
)}
74+
.disabled=${this.disabled}
7175
></ha-icon-picker>
7276
</div>
7377
`;

src/panels/config/helpers/forms/ha-input_button-form.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ class HaInputButtonForm extends LitElement {
1414

1515
@property({ type: Boolean }) public new = false;
1616

17+
@property({ type: Boolean }) public disabled = false;
18+
1719
@state() private _name!: string;
1820

1921
@state() private _icon!: string;
@@ -59,6 +61,7 @@ class HaInputButtonForm extends LitElement {
5961
"ui.dialogs.helper_settings.required_error_msg"
6062
)}
6163
dialogInitialFocus
64+
.disabled=${this.disabled}
6265
></ha-textfield>
6366
<ha-icon-picker
6467
.hass=${this.hass}
@@ -68,6 +71,7 @@ class HaInputButtonForm extends LitElement {
6871
.label=${this.hass!.localize(
6972
"ui.dialogs.helper_settings.generic.icon"
7073
)}
74+
.disabled=${this.disabled}
7175
></ha-icon-picker>
7276
</div>
7377
`;

src/panels/config/helpers/forms/ha-input_datetime-form.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ class HaInputDateTimeForm extends LitElement {
1717

1818
@property({ type: Boolean }) public new = false;
1919

20+
@property({ type: Boolean }) public disabled = false;
21+
2022
private _item?: InputDateTime;
2123

2224
@state() private _name!: string;
@@ -73,6 +75,7 @@ class HaInputDateTimeForm extends LitElement {
7375
"ui.dialogs.helper_settings.required_error_msg"
7476
)}
7577
dialogInitialFocus
78+
.disabled=${this.disabled}
7679
></ha-textfield>
7780
<ha-icon-picker
7881
.hass=${this.hass}
@@ -82,6 +85,7 @@ class HaInputDateTimeForm extends LitElement {
8285
.label=${this.hass!.localize(
8386
"ui.dialogs.helper_settings.generic.icon"
8487
)}
88+
.disabled=${this.disabled}
8589
></ha-icon-picker>
8690
<br />
8791
${this.hass.localize("ui.dialogs.helper_settings.input_datetime.mode")}:
@@ -97,6 +101,7 @@ class HaInputDateTimeForm extends LitElement {
97101
value="date"
98102
.checked=${this._mode === "date"}
99103
@change=${this._modeChanged}
104+
.disabled=${this.disabled}
100105
></ha-radio>
101106
</ha-formfield>
102107
<ha-formfield
@@ -109,6 +114,7 @@ class HaInputDateTimeForm extends LitElement {
109114
value="time"
110115
.checked=${this._mode === "time"}
111116
@change=${this._modeChanged}
117+
.disabled=${this.disabled}
112118
></ha-radio>
113119
</ha-formfield>
114120
<ha-formfield
@@ -121,6 +127,7 @@ class HaInputDateTimeForm extends LitElement {
121127
value="datetime"
122128
.checked=${this._mode === "datetime"}
123129
@change=${this._modeChanged}
130+
.disabled=${this.disabled}
124131
></ha-radio>
125132
</ha-formfield>
126133
</div>

src/panels/config/helpers/forms/ha-input_number-form.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ class HaInputNumberForm extends LitElement {
1818

1919
@property({ type: Boolean }) public new = false;
2020

21+
@property({ type: Boolean }) public disabled = false;
22+
2123
private _item?: Partial<InputNumber>;
2224

2325
@state() private _name!: string;
@@ -89,6 +91,7 @@ class HaInputNumberForm extends LitElement {
8991
"ui.dialogs.helper_settings.required_error_msg"
9092
)}
9193
dialogInitialFocus
94+
.disabled=${this.disabled}
9295
></ha-textfield>
9396
<ha-icon-picker
9497
.hass=${this.hass}
@@ -98,6 +101,7 @@ class HaInputNumberForm extends LitElement {
98101
.label=${this.hass!.localize(
99102
"ui.dialogs.helper_settings.generic.icon"
100103
)}
104+
.disabled=${this.disabled}
101105
></ha-icon-picker>
102106
<ha-textfield
103107
.value=${this._min}
@@ -108,6 +112,7 @@ class HaInputNumberForm extends LitElement {
108112
.label=${this.hass!.localize(
109113
"ui.dialogs.helper_settings.input_number.min"
110114
)}
115+
.disabled=${this.disabled}
111116
></ha-textfield>
112117
<ha-textfield
113118
.value=${this._max}
@@ -118,6 +123,7 @@ class HaInputNumberForm extends LitElement {
118123
.label=${this.hass!.localize(
119124
"ui.dialogs.helper_settings.input_number.max"
120125
)}
126+
.disabled=${this.disabled}
121127
></ha-textfield>
122128
<ha-expansion-panel
123129
header=${this.hass.localize(
@@ -139,6 +145,7 @@ class HaInputNumberForm extends LitElement {
139145
value="slider"
140146
.checked=${this._mode === "slider"}
141147
@change=${this._modeChanged}
148+
.disabled=${this.disabled}
142149
></ha-radio>
143150
</ha-formfield>
144151
<ha-formfield
@@ -151,6 +158,7 @@ class HaInputNumberForm extends LitElement {
151158
value="box"
152159
.checked=${this._mode === "box"}
153160
@change=${this._modeChanged}
161+
.disabled=${this.disabled}
154162
></ha-radio>
155163
</ha-formfield>
156164
</div>
@@ -163,6 +171,7 @@ class HaInputNumberForm extends LitElement {
163171
.label=${this.hass!.localize(
164172
"ui.dialogs.helper_settings.input_number.step"
165173
)}
174+
.disabled=${this.disabled}
166175
></ha-textfield>
167176
168177
<ha-textfield
@@ -172,6 +181,7 @@ class HaInputNumberForm extends LitElement {
172181
.label=${this.hass!.localize(
173182
"ui.dialogs.helper_settings.input_number.unit_of_measurement"
174183
)}
184+
.disabled=${this.disabled}
175185
></ha-textfield>
176186
</ha-expansion-panel>
177187
</div>

src/panels/config/helpers/forms/ha-input_select-form.ts

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ class HaInputSelectForm extends LitElement {
2323

2424
@property({ type: Boolean }) public new = false;
2525

26+
@property({ type: Boolean }) public disabled = false;
27+
2628
private _item?: InputSelect;
2729

2830
@state() private _name!: string;
@@ -86,6 +88,7 @@ class HaInputSelectForm extends LitElement {
8688
)}
8789
.configValue=${"name"}
8890
@input=${this._valueChanged}
91+
.disabled=${this.disabled}
8992
></ha-textfield>
9093
<ha-icon-picker
9194
.hass=${this.hass}
@@ -95,13 +98,18 @@ class HaInputSelectForm extends LitElement {
9598
.label=${this.hass!.localize(
9699
"ui.dialogs.helper_settings.generic.icon"
97100
)}
101+
.disabled=${this.disabled}
98102
></ha-icon-picker>
99103
<div class="header">
100104
${this.hass!.localize(
101105
"ui.dialogs.helper_settings.input_select.options"
102106
)}:
103107
</div>
104-
<ha-sortable @item-moved=${this._optionMoved} handle-selector=".handle">
108+
<ha-sortable
109+
@item-moved=${this._optionMoved}
110+
handle-selector=".handle"
111+
.disabled=${this.disabled}
112+
>
105113
<ha-list class="options">
106114
${this._options.length
107115
? repeat(
@@ -124,6 +132,7 @@ class HaInputSelectForm extends LitElement {
124132
"ui.dialogs.helper_settings.input_select.remove_option"
125133
)}
126134
@click=${this._removeOption}
135+
.disabled=${this.disabled}
127136
.path=${mdiDelete}
128137
></ha-icon-button>
129138
</ha-list-item>
@@ -146,8 +155,13 @@ class HaInputSelectForm extends LitElement {
146155
"ui.dialogs.helper_settings.input_select.add_option"
147156
)}
148157
@keydown=${this._handleKeyAdd}
158+
.disabled=${this.disabled}
149159
></ha-textfield>
150-
<ha-button size="small" appearance="plain" @click=${this._addOption}
160+
<ha-button
161+
size="small"
162+
appearance="plain"
163+
@click=${this._addOption}
164+
.disabled=${this.disabled}
151165
>${this.hass!.localize(
152166
"ui.dialogs.helper_settings.input_select.add"
153167
)}</ha-button

0 commit comments

Comments
 (0)