mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-23 09:16:38 +00:00
When creating a label or category with multi select, also assign it (#20379)
* When creating a label or category with multi select, also assign it * correct scope * again
This commit is contained in:
parent
712ddb531b
commit
7704be12b1
@ -378,7 +378,7 @@ class HaAutomationPicker extends SubscribeMixin(LitElement) {
|
||||
</div>
|
||||
</ha-menu-item>
|
||||
<md-divider role="separator" tabindex="-1"></md-divider>
|
||||
<ha-menu-item @click=${this._createCategory}>
|
||||
<ha-menu-item @click=${this._bulkCreateCategory}>
|
||||
<div slot="headline">
|
||||
${this.hass.localize("ui.panel.config.category.editor.add")}
|
||||
</div>
|
||||
@ -414,7 +414,7 @@ class HaAutomationPicker extends SubscribeMixin(LitElement) {
|
||||
</ha-menu-item>`;
|
||||
})}
|
||||
<md-divider role="separator" tabindex="-1"></md-divider>
|
||||
<ha-menu-item @click=${this._createLabel}>
|
||||
<ha-menu-item @click=${this._bulkCreateLabel}>
|
||||
<div slot="headline">
|
||||
${this.hass.localize("ui.panel.config.labels.add_label")}
|
||||
</div></ha-menu-item
|
||||
@ -1089,6 +1089,10 @@ class HaAutomationPicker extends SubscribeMixin(LitElement) {
|
||||
|
||||
private async _handleBulkCategory(ev) {
|
||||
const category = ev.currentTarget.value;
|
||||
this._bulkAddCategory(category);
|
||||
}
|
||||
|
||||
private async _bulkAddCategory(category: string) {
|
||||
const promises: Promise<UpdateEntityRegistryEntryResult>[] = [];
|
||||
this._selected.forEach((entityId) => {
|
||||
promises.push(
|
||||
@ -1103,6 +1107,10 @@ class HaAutomationPicker extends SubscribeMixin(LitElement) {
|
||||
private async _handleBulkLabel(ev) {
|
||||
const label = ev.currentTarget.value;
|
||||
const action = ev.currentTarget.action;
|
||||
this._bulkLabel(label, action);
|
||||
}
|
||||
|
||||
private async _bulkLabel(label: string, action: "add" | "remove") {
|
||||
const promises: Promise<UpdateEntityRegistryEntryResult>[] = [];
|
||||
this._selected.forEach((entityId) => {
|
||||
promises.push(
|
||||
@ -1135,17 +1143,28 @@ class HaAutomationPicker extends SubscribeMixin(LitElement) {
|
||||
await Promise.all(promises);
|
||||
}
|
||||
|
||||
private _createCategory() {
|
||||
private async _bulkCreateCategory() {
|
||||
showCategoryRegistryDetailDialog(this, {
|
||||
scope: "automation",
|
||||
createEntry: (values) =>
|
||||
createCategoryRegistryEntry(this.hass, "automation", values),
|
||||
createEntry: async (values) => {
|
||||
const category = await createCategoryRegistryEntry(
|
||||
this.hass,
|
||||
"automation",
|
||||
values
|
||||
);
|
||||
this._bulkAddCategory(category.category_id);
|
||||
return category;
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
private _createLabel() {
|
||||
private _bulkCreateLabel() {
|
||||
showLabelDetailDialog(this, {
|
||||
createEntry: (values) => createLabelRegistryEntry(this.hass, values),
|
||||
createEntry: async (values) => {
|
||||
const label = await createLabelRegistryEntry(this.hass, values);
|
||||
this._bulkLabel(label.label_id, "add");
|
||||
return label;
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -575,7 +575,7 @@ export class HaConfigDeviceDashboard extends SubscribeMixin(LitElement) {
|
||||
</ha-menu-item>`;
|
||||
})}
|
||||
<md-divider role="separator" tabindex="-1"></md-divider>
|
||||
<ha-menu-item @click=${this._createLabel}>
|
||||
<ha-menu-item @click=${this._bulkCreateLabel}>
|
||||
<div slot="headline">
|
||||
${this.hass.localize("ui.panel.config.labels.add_label")}
|
||||
</div></ha-menu-item
|
||||
@ -801,6 +801,10 @@ export class HaConfigDeviceDashboard extends SubscribeMixin(LitElement) {
|
||||
private async _handleBulkLabel(ev) {
|
||||
const label = ev.currentTarget.value;
|
||||
const action = ev.currentTarget.action;
|
||||
this._bulkLabel(label, action);
|
||||
}
|
||||
|
||||
private async _bulkLabel(label: string, action: "add" | "remove") {
|
||||
const promises: Promise<DeviceRegistryEntry>[] = [];
|
||||
this._selected.forEach((deviceId) => {
|
||||
promises.push(
|
||||
@ -817,9 +821,13 @@ export class HaConfigDeviceDashboard extends SubscribeMixin(LitElement) {
|
||||
await Promise.all(promises);
|
||||
}
|
||||
|
||||
private _createLabel() {
|
||||
private _bulkCreateLabel() {
|
||||
showLabelDetailDialog(this, {
|
||||
createEntry: (values) => createLabelRegistryEntry(this.hass, values),
|
||||
createEntry: async (values) => {
|
||||
const label = await createLabelRegistryEntry(this.hass, values);
|
||||
this._bulkLabel(label.label_id, "add");
|
||||
return label;
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -555,7 +555,7 @@ export class HaConfigEntities extends SubscribeMixin(LitElement) {
|
||||
</ha-menu-item>`;
|
||||
})}
|
||||
<md-divider role="separator" tabindex="-1"></md-divider>
|
||||
<ha-menu-item @click=${this._createLabel}>
|
||||
<ha-menu-item @click=${this._bulkCreateLabel}>
|
||||
<div slot="headline">
|
||||
${this.hass.localize("ui.panel.config.labels.add_label")}
|
||||
</div></ha-menu-item
|
||||
@ -1044,6 +1044,10 @@ ${
|
||||
private async _handleBulkLabel(ev) {
|
||||
const label = ev.currentTarget.value;
|
||||
const action = ev.currentTarget.action;
|
||||
await this._bulkLabel(label, action);
|
||||
}
|
||||
|
||||
private async _bulkLabel(label: string, action: "add" | "remove") {
|
||||
const promises: Promise<UpdateEntityRegistryEntryResult>[] = [];
|
||||
this._selected.forEach((entityId) => {
|
||||
const entityReg =
|
||||
@ -1064,6 +1068,16 @@ ${
|
||||
await Promise.all(promises);
|
||||
}
|
||||
|
||||
private _bulkCreateLabel() {
|
||||
showLabelDetailDialog(this, {
|
||||
createEntry: async (values) => {
|
||||
const label = await createLabelRegistryEntry(this.hass, values);
|
||||
this._bulkLabel(label.label_id, "add");
|
||||
return label;
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
private _removeSelected() {
|
||||
const removeableEntities = this._selected.filter((entity) => {
|
||||
const stateObj = this.hass.states[entity];
|
||||
@ -1140,12 +1154,6 @@ ${
|
||||
});
|
||||
}
|
||||
|
||||
private _createLabel() {
|
||||
showLabelDetailDialog(this, {
|
||||
createEntry: (values) => createLabelRegistryEntry(this.hass, values),
|
||||
});
|
||||
}
|
||||
|
||||
static get styles(): CSSResultGroup {
|
||||
return [
|
||||
haStyle,
|
||||
|
@ -443,7 +443,7 @@ export class HaConfigHelpers extends SubscribeMixin(LitElement) {
|
||||
</div>
|
||||
</ha-menu-item>
|
||||
<md-divider role="separator" tabindex="-1"></md-divider>
|
||||
<ha-menu-item @click=${this._createCategory}>
|
||||
<ha-menu-item @click=${this._bulkCreateCategory}>
|
||||
<div slot="headline">
|
||||
${this.hass.localize("ui.panel.config.category.editor.add")}
|
||||
</div>
|
||||
@ -478,7 +478,7 @@ export class HaConfigHelpers extends SubscribeMixin(LitElement) {
|
||||
</ha-label>
|
||||
</ha-menu-item> `;
|
||||
})}<md-divider role="separator" tabindex="-1"></md-divider>
|
||||
<ha-menu-item @click=${this._createLabel}>
|
||||
<ha-menu-item @click=${this._bulkCreateLabel}>
|
||||
<div slot="headline">
|
||||
${this.hass.localize("ui.panel.config.labels.add_label")}
|
||||
</div>
|
||||
@ -779,6 +779,10 @@ export class HaConfigHelpers extends SubscribeMixin(LitElement) {
|
||||
|
||||
private async _handleBulkCategory(ev) {
|
||||
const category = ev.currentTarget.value;
|
||||
this._bulkAddCategory(category);
|
||||
}
|
||||
|
||||
private async _bulkAddCategory(category: string) {
|
||||
const promises: Promise<UpdateEntityRegistryEntryResult>[] = [];
|
||||
this._selected.forEach((entityId) => {
|
||||
promises.push(
|
||||
@ -793,6 +797,10 @@ export class HaConfigHelpers extends SubscribeMixin(LitElement) {
|
||||
private async _handleBulkLabel(ev) {
|
||||
const label = ev.currentTarget.value;
|
||||
const action = ev.currentTarget.action;
|
||||
this._bulkLabel(label, action);
|
||||
}
|
||||
|
||||
private async _bulkLabel(label: string, action: "add" | "remove") {
|
||||
const promises: Promise<UpdateEntityRegistryEntryResult>[] = [];
|
||||
this._selected.forEach((entityId) => {
|
||||
promises.push(
|
||||
@ -947,17 +955,28 @@ export class HaConfigHelpers extends SubscribeMixin(LitElement) {
|
||||
showHelperDetailDialog(this, {});
|
||||
}
|
||||
|
||||
private _createCategory() {
|
||||
private async _bulkCreateCategory() {
|
||||
showCategoryRegistryDetailDialog(this, {
|
||||
scope: "helpers",
|
||||
createEntry: (values) =>
|
||||
createCategoryRegistryEntry(this.hass, "helpers", values),
|
||||
createEntry: async (values) => {
|
||||
const category = await createCategoryRegistryEntry(
|
||||
this.hass,
|
||||
"helpers",
|
||||
values
|
||||
);
|
||||
this._bulkAddCategory(category.category_id);
|
||||
return category;
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
private _createLabel() {
|
||||
private _bulkCreateLabel() {
|
||||
showLabelDetailDialog(this, {
|
||||
createEntry: (values) => createLabelRegistryEntry(this.hass, values),
|
||||
createEntry: async (values) => {
|
||||
const label = await createLabelRegistryEntry(this.hass, values);
|
||||
this._bulkLabel(label.label_id, "add");
|
||||
return label;
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -381,7 +381,7 @@ class HaSceneDashboard extends SubscribeMixin(LitElement) {
|
||||
</div>
|
||||
</ha-menu-item>
|
||||
<md-divider role="separator" tabindex="-1"></md-divider>
|
||||
<ha-menu-item @click=${this._createCategory}>
|
||||
<ha-menu-item @click=${this._bulkCreateCategory}>
|
||||
<div slot="headline">
|
||||
${this.hass.localize("ui.panel.config.category.editor.add")}
|
||||
</div>
|
||||
@ -417,7 +417,7 @@ class HaSceneDashboard extends SubscribeMixin(LitElement) {
|
||||
</ha-menu-item>`;
|
||||
})}
|
||||
<md-divider role="separator" tabindex="-1"></md-divider>
|
||||
<ha-menu-item @click=${this._createLabel}>
|
||||
<ha-menu-item @click=${this._bulkCreateLabel}>
|
||||
<div slot="headline">
|
||||
${this.hass.localize("ui.panel.config.labels.add_label")}
|
||||
</div></ha-menu-item
|
||||
@ -776,6 +776,10 @@ class HaSceneDashboard extends SubscribeMixin(LitElement) {
|
||||
|
||||
private async _handleBulkCategory(ev) {
|
||||
const category = ev.currentTarget.value;
|
||||
this._bulkAddCategory(category);
|
||||
}
|
||||
|
||||
private async _bulkAddCategory(category: string) {
|
||||
const promises: Promise<UpdateEntityRegistryEntryResult>[] = [];
|
||||
this._selected.forEach((entityId) => {
|
||||
promises.push(
|
||||
@ -790,6 +794,10 @@ class HaSceneDashboard extends SubscribeMixin(LitElement) {
|
||||
private async _handleBulkLabel(ev) {
|
||||
const label = ev.currentTarget.value;
|
||||
const action = ev.currentTarget.action;
|
||||
this._bulkLabel(label, action);
|
||||
}
|
||||
|
||||
private async _bulkLabel(label: string, action: "add" | "remove") {
|
||||
const promises: Promise<UpdateEntityRegistryEntryResult>[] = [];
|
||||
this._selected.forEach((entityId) => {
|
||||
promises.push(
|
||||
@ -901,17 +909,28 @@ class HaSceneDashboard extends SubscribeMixin(LitElement) {
|
||||
});
|
||||
}
|
||||
|
||||
private _createCategory() {
|
||||
private async _bulkCreateCategory() {
|
||||
showCategoryRegistryDetailDialog(this, {
|
||||
scope: "scene",
|
||||
createEntry: (values) =>
|
||||
createCategoryRegistryEntry(this.hass, "scene", values),
|
||||
createEntry: async (values) => {
|
||||
const category = await createCategoryRegistryEntry(
|
||||
this.hass,
|
||||
"scene",
|
||||
values
|
||||
);
|
||||
this._bulkAddCategory(category.category_id);
|
||||
return category;
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
private _createLabel() {
|
||||
private _bulkCreateLabel() {
|
||||
showLabelDetailDialog(this, {
|
||||
createEntry: (values) => createLabelRegistryEntry(this.hass, values),
|
||||
createEntry: async (values) => {
|
||||
const label = await createLabelRegistryEntry(this.hass, values);
|
||||
this._bulkLabel(label.label_id, "add");
|
||||
return label;
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -393,7 +393,7 @@ class HaScriptPicker extends SubscribeMixin(LitElement) {
|
||||
)}
|
||||
</div> </ha-menu-item
|
||||
><md-divider role="separator" tabindex="-1"></md-divider>
|
||||
<ha-menu-item @click=${this._createCategory}>
|
||||
<ha-menu-item @click=${this._bulkCreateCategory}>
|
||||
<div slot="headline">
|
||||
${this.hass.localize("ui.panel.config.category.editor.add")}
|
||||
</div>
|
||||
@ -429,7 +429,7 @@ class HaScriptPicker extends SubscribeMixin(LitElement) {
|
||||
</ha-menu-item>`;
|
||||
})}
|
||||
<md-divider role="separator" tabindex="-1"></md-divider>
|
||||
<ha-menu-item @click=${this._createLabel}>
|
||||
<ha-menu-item @click=${this._bulkCreateLabel}>
|
||||
<div slot="headline">
|
||||
${this.hass.localize("ui.panel.config.labels.add_label")}
|
||||
</div></ha-menu-item
|
||||
@ -845,6 +845,10 @@ class HaScriptPicker extends SubscribeMixin(LitElement) {
|
||||
|
||||
private async _handleBulkCategory(ev) {
|
||||
const category = ev.currentTarget.value;
|
||||
this._bulkAddCategory(category);
|
||||
}
|
||||
|
||||
private async _bulkAddCategory(category: string) {
|
||||
const promises: Promise<UpdateEntityRegistryEntryResult>[] = [];
|
||||
this._selected.forEach((entityId) => {
|
||||
promises.push(
|
||||
@ -859,6 +863,10 @@ class HaScriptPicker extends SubscribeMixin(LitElement) {
|
||||
private async _handleBulkLabel(ev) {
|
||||
const label = ev.currentTarget.value;
|
||||
const action = ev.currentTarget.action;
|
||||
this._bulkLabel(label, action);
|
||||
}
|
||||
|
||||
private async _bulkLabel(label: string, action: "add" | "remove") {
|
||||
const promises: Promise<UpdateEntityRegistryEntryResult>[] = [];
|
||||
this._selected.forEach((entityId) => {
|
||||
promises.push(
|
||||
@ -1017,17 +1025,28 @@ class HaScriptPicker extends SubscribeMixin(LitElement) {
|
||||
}
|
||||
}
|
||||
|
||||
private _createCategory() {
|
||||
private async _bulkCreateCategory() {
|
||||
showCategoryRegistryDetailDialog(this, {
|
||||
scope: "script",
|
||||
createEntry: (values) =>
|
||||
createCategoryRegistryEntry(this.hass, "script", values),
|
||||
createEntry: async (values) => {
|
||||
const category = await createCategoryRegistryEntry(
|
||||
this.hass,
|
||||
"script",
|
||||
values
|
||||
);
|
||||
this._bulkAddCategory(category.category_id);
|
||||
return category;
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
private _createLabel() {
|
||||
private _bulkCreateLabel() {
|
||||
showLabelDetailDialog(this, {
|
||||
createEntry: (values) => createLabelRegistryEntry(this.hass, values),
|
||||
createEntry: async (values) => {
|
||||
const label = await createLabelRegistryEntry(this.hass, values);
|
||||
this._bulkLabel(label.label_id, "add");
|
||||
return label;
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user