From 03525c010f2d76fb9ee02f947a7b6817678f8328 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 21 Sep 2018 09:02:24 +0200 Subject: [PATCH] Allow toggling cloud integrations (#1690) --- .../config/cloud/ha-config-cloud-account.js | 40 ++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/src/panels/config/cloud/ha-config-cloud-account.js b/src/panels/config/cloud/ha-config-cloud-account.js index 1d98c5a478..a062647d69 100644 --- a/src/panels/config/cloud/ha-config-cloud-account.js +++ b/src/panels/config/cloud/ha-config-cloud-account.js @@ -1,6 +1,7 @@ import '@polymer/paper-button/paper-button.js'; import '@polymer/paper-card/paper-card.js'; import '@polymer/paper-item/paper-item-body.js'; +import '@polymer/paper-toggle-button/paper-toggle-button.js'; import { html } from '@polymer/polymer/lib/utils/html-tag.js'; import { PolymerElement } from '@polymer/polymer/polymer-element.js'; @@ -61,6 +62,11 @@ class HaConfigCloudAccount extends EventsMixin(PolymerElement) { a { color: var(--primary-color); } + paper-card > paper-toggle-button { + position: absolute; + right: 8px; + top: 16px; + }
@@ -108,6 +114,10 @@ class HaConfigCloudAccount extends EventsMixin(PolymerElement) {
+
With the Alexa integration for Home Assistant Cloud you'll be able to control all your Home Assistant devices via any Alexa-enabled device.
    @@ -125,6 +135,10 @@ class HaConfigCloudAccount extends EventsMixin(PolymerElement) { +
    With the Google Assistant integration for Home Assistant Cloud you'll be able to control all your Home Assistant devices via any Google Assistant-enabled device.
      @@ -142,7 +156,11 @@ class HaConfigCloudAccount extends EventsMixin(PolymerElement) {

      This integration requires a Google Assistant-enabled device like the Google Home or Android phone.

    - Sync devices + Sync devices
    @@ -214,6 +232,26 @@ class HaConfigCloudAccount extends EventsMixin(PolymerElement) { return 'Unable to determine subscription status.'; } + + _alexaChanged(ev) { + this._handleToggleChange('alexa_enabled', ev.target); + } + + _googleChanged(ev) { + this._handleToggleChange('google_enabled', ev.target); + } + + async _handleToggleChange(property, element) { + try { + await this.hass.callWS({ + type: 'cloud/update_prefs', + [property]: element.checked, + }); + this.fire('ha-refresh-cloud-status'); + } catch (err) { + element.checked = !element.checked; + } + } } customElements.define('ha-config-cloud-account', HaConfigCloudAccount);