From 46e11399467f4c3d6cfb88b6db78432f1d1f19ab Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 9 Feb 2019 10:41:45 -0800 Subject: [PATCH] Add MVP person editor (#2703) * Add MVP person editor * Better highlight the config.yaml people * Add note --- src/data/person.ts | 46 ++++ .../show-dialog-area-registry-detail.ts | 2 +- .../config/dashboard/ha-config-navigation.js | 3 +- src/panels/config/ha-panel-config.js | 35 +-- .../config/person/dialog-person-detail.ts | 169 ++++++++++++++ src/panels/config/person/ha-config-person.ts | 217 ++++++++++++++++++ .../person/show-dialog-person-detail.ts | 23 ++ src/translations/en.json | 4 + 8 files changed, 484 insertions(+), 15 deletions(-) create mode 100644 src/data/person.ts create mode 100644 src/panels/config/person/dialog-person-detail.ts create mode 100644 src/panels/config/person/ha-config-person.ts create mode 100644 src/panels/config/person/show-dialog-person-detail.ts diff --git a/src/data/person.ts b/src/data/person.ts new file mode 100644 index 0000000000..00e77a838f --- /dev/null +++ b/src/data/person.ts @@ -0,0 +1,46 @@ +import { HomeAssistant } from "../types"; + +export interface Person { + id: string; + name: string; + user_id?: string; + device_trackers?: string[]; +} + +export interface PersonMutableParams { + name: string; + user_id: string | null; + device_trackers: string[]; +} + +export const fetchPersons = (hass: HomeAssistant) => + hass.callWS<{ + storage: Person[]; + config: Person[]; + }>({ type: "person/list" }); + +export const createPerson = ( + hass: HomeAssistant, + values: PersonMutableParams +) => + hass.callWS({ + type: "person/create", + ...values, + }); + +export const updatePerson = ( + hass: HomeAssistant, + personId: string, + updates: Partial +) => + hass.callWS({ + type: "person/update", + person_id: personId, + ...updates, + }); + +export const deletePerson = (hass: HomeAssistant, personId: string) => + hass.callWS({ + type: "person/delete", + person_id: personId, + }); diff --git a/src/panels/config/area_registry/show-dialog-area-registry-detail.ts b/src/panels/config/area_registry/show-dialog-area-registry-detail.ts index bbcc848b1c..c12b58b042 100644 --- a/src/panels/config/area_registry/show-dialog-area-registry-detail.ts +++ b/src/panels/config/area_registry/show-dialog-area-registry-detail.ts @@ -14,7 +14,7 @@ export interface AreaRegistryDetailDialogParams { } export const loadAreaRegistryDetailDialog = () => - import(/* webpackChunkName: "entity-registry-detail-dialog" */ "./dialog-area-registry-detail"); + import(/* webpackChunkName: "area-registry-detail-dialog" */ "./dialog-area-registry-detail"); export const showAreaRegistryDetailDialog = ( element: HTMLElement, diff --git a/src/panels/config/dashboard/ha-config-navigation.js b/src/panels/config/dashboard/ha-config-navigation.js index 3f337c0aa1..eb74814757 100644 --- a/src/panels/config/dashboard/ha-config-navigation.js +++ b/src/panels/config/dashboard/ha-config-navigation.js @@ -52,13 +52,14 @@ class HaConfigNavigation extends LocalizeMixin(NavigateMixin(PolymerElement)) { type: Array, value: [ "core", - "customize", + "person", "entity_registry", "area_registry", "automation", "script", "zha", "zwave", + "customize", ], }, }; diff --git a/src/panels/config/ha-panel-config.js b/src/panels/config/ha-panel-config.js index ed64ffd90f..8bfd4fdb3e 100644 --- a/src/panels/config/ha-panel-config.js +++ b/src/panels/config/ha-panel-config.js @@ -9,19 +9,6 @@ import isComponentLoaded from "../../common/config/is_component_loaded"; import EventsMixin from "../../mixins/events-mixin"; import NavigateMixin from "../../mixins/navigate-mixin"; -import(/* webpackChunkName: "panel-config-area-registry" */ "./area_registry/ha-config-area-registry"); -import(/* webpackChunkName: "panel-config-automation" */ "./automation/ha-config-automation"); -import(/* webpackChunkName: "panel-config-cloud" */ "./cloud/ha-config-cloud"); -import(/* webpackChunkName: "panel-config-config" */ "./config-entries/ha-config-entries"); -import(/* webpackChunkName: "panel-config-core" */ "./core/ha-config-core"); -import(/* webpackChunkName: "panel-config-customize" */ "./customize/ha-config-customize"); -import(/* webpackChunkName: "panel-config-dashboard" */ "./dashboard/ha-config-dashboard"); -import(/* webpackChunkName: "panel-config-script" */ "./script/ha-config-script"); -import(/* webpackChunkName: "panel-config-entity-registry" */ "./entity_registry/ha-config-entity-registry"); -import(/* webpackChunkName: "panel-config-users" */ "./users/ha-config-users"); -import(/* webpackChunkName: "panel-config-zha" */ "./zha/ha-config-zha"); -import(/* webpackChunkName: "panel-config-zwave" */ "./zwave/ha-config-zwave"); - /* * @appliesMixin EventsMixin * @appliesMixin NavigateMixin @@ -136,6 +123,15 @@ class HaPanelConfig extends EventsMixin(NavigateMixin(PolymerElement)) { > + +