From 7012d2cd200a7555f1ad3420bab746f7607a1cdf Mon Sep 17 00:00:00 2001 From: Jerad Meisner Date: Sun, 9 Sep 2018 20:26:13 -0700 Subject: [PATCH 1/3] Get persistent_notifications for lovelace from websocket. --- src/cards/ha-persistent_notification-card.js | 5 +++- .../lovelace/common/compute-notifications.js | 3 +- .../hui-configurator-notification-item.js | 12 ++++---- .../notifications/hui-notification-drawer.js | 26 +++++++---------- .../notifications/hui-notification-item.js | 12 ++++---- .../notifications/hui-notifications-button.js | 13 +++++---- .../hui-persistent-notification-item.js | 22 +++++++------- src/panels/lovelace/hui-root.js | 29 +++++++++++++++++++ 8 files changed, 75 insertions(+), 47 deletions(-) diff --git a/src/cards/ha-persistent_notification-card.js b/src/cards/ha-persistent_notification-card.js index d80195ba0887..f6960927b793 100644 --- a/src/cards/ha-persistent_notification-card.js +++ b/src/cards/ha-persistent_notification-card.js @@ -8,6 +8,7 @@ import '../components/ha-markdown.js'; import computeStateName from '../common/entity/compute_state_name.js'; import LocalizeMixin from '../mixins/localize-mixin.js'; +import computeObjectId from '../common/entity/compute_object_id'; /* * @appliesMixin LocalizeMixin @@ -65,7 +66,9 @@ class HaPersistentNotificationCard extends LocalizeMixin(PolymerElement) { dismissTap(ev) { ev.preventDefault(); - this.hass.callApi('DELETE', 'states/' + this.stateObj.entity_id); + this.hass.callService('persistent_notification', 'dismiss', { + notification_id: computeObjectId(this.stateObj.entity_id) + }); } } customElements.define('ha-persistent_notification-card', HaPersistentNotificationCard); diff --git a/src/panels/lovelace/common/compute-notifications.js b/src/panels/lovelace/common/compute-notifications.js index 802805cebbeb..62006afe0721 100644 --- a/src/panels/lovelace/common/compute-notifications.js +++ b/src/panels/lovelace/common/compute-notifications.js @@ -1,8 +1,7 @@ import computeDomain from '../../../common/entity/compute_domain.js'; const NOTIFICATION_DOMAINS = [ - 'configurator', - 'persistent_notification' + 'configurator' ]; export default function computeNotifications(states) { diff --git a/src/panels/lovelace/components/notifications/hui-configurator-notification-item.js b/src/panels/lovelace/components/notifications/hui-configurator-notification-item.js index 25c2612bf53f..593b70644980 100644 --- a/src/panels/lovelace/components/notifications/hui-configurator-notification-item.js +++ b/src/panels/lovelace/components/notifications/hui-configurator-notification-item.js @@ -19,13 +19,13 @@ export class HuiConfiguratorNotificationItem extends EventsMixin(LocalizeMixin(P [[localize('domain.configurator')]] -
[[_getMessage(stateObj)]]
+
[[_getMessage(notification)]]
[[_localizeState(stateObj.state)]] + >[[_localizeState(notification.state)]]
`; } @@ -33,20 +33,20 @@ export class HuiConfiguratorNotificationItem extends EventsMixin(LocalizeMixin(P static get properties() { return { hass: Object, - stateObj: Object + notification: Object }; } _handleClick() { - this.fire('hass-more-info', { entityId: this.stateObj.entity_id }); + this.fire('hass-more-info', { entityId: this.notification.entity_id }); } _localizeState(state) { return this.localize(`state.configurator.${state}`); } - _getMessage(stateObj) { - const friendlyName = stateObj.attributes.friendly_name; + _getMessage(notification) { + const friendlyName = notification.attributes.friendly_name; return this.localize('ui.notification_drawer.click_to_configure', 'entity', friendlyName); } } diff --git a/src/panels/lovelace/components/notifications/hui-notification-drawer.js b/src/panels/lovelace/components/notifications/hui-notification-drawer.js index d641b280bae2..3b4cff993f63 100644 --- a/src/panels/lovelace/components/notifications/hui-notification-drawer.js +++ b/src/panels/lovelace/components/notifications/hui-notification-drawer.js @@ -7,8 +7,6 @@ import { PolymerElement } from '@polymer/polymer/polymer-element.js'; import './hui-notification-item.js'; -import computeNotifications from '../../common/compute-notifications.js'; - import EventsMixin from '../../../../mixins/events-mixin.js'; import LocalizeMixin from '../../../../mixins/localize-mixin.js'; @@ -105,16 +103,16 @@ export class HuiNotificationDrawer extends EventsMixin(LocalizeMixin(PolymerElem
-