diff --git a/src/state-summary/state-card-content.html b/src/state-summary/state-card-content.html index 429adeeae1..6b3cab2e43 100644 --- a/src/state-summary/state-card-content.html +++ b/src/state-summary/state-card-content.html @@ -1,9 +1,10 @@ - - - - + + + + + diff --git a/src/state-summary/state-card-content.js b/src/state-summary/state-card-content.js index 2e7f72f5af..f5a329f457 100644 --- a/src/state-summary/state-card-content.js +++ b/src/state-summary/state-card-content.js @@ -2,13 +2,14 @@ import Polymer from '../polymer'; import stateCardType from '../util/state-card-type'; -require('./state-card-display'); -require('./state-card-toggle'); -require('./state-card-thermostat'); require('./state-card-configurator'); -require('./state-card-scene'); +require('./state-card-display'); require('./state-card-media_player'); +require('./state-card-scene'); require('./state-card-rollershutter'); +require('./state-card-thermostat'); +require('./state-card-toggle'); +require('./state-card-weblink'); export default new Polymer({ is: 'state-card-content', diff --git a/src/state-summary/state-card-weblink.html b/src/state-summary/state-card-weblink.html new file mode 100644 index 0000000000..9bdd616a4c --- /dev/null +++ b/src/state-summary/state-card-weblink.html @@ -0,0 +1,25 @@ + + + + + + + + + diff --git a/src/state-summary/state-card-weblink.js b/src/state-summary/state-card-weblink.js new file mode 100644 index 0000000000..f7678444d7 --- /dev/null +++ b/src/state-summary/state-card-weblink.js @@ -0,0 +1,22 @@ +import Polymer from '../polymer'; + +require('../components/state-info'); + +export default new Polymer({ + is: 'state-card-weblink', + + properties: { + stateObj: { + type: Object, + }, + }, + + listeners: { + tap: 'onTap', + }, + + onTap(ev) { + ev.stopPropagation(); + window.open(this.stateObj.state, '_blank'); + }, +}); diff --git a/src/util/domain-icon.js b/src/util/domain-icon.js index bff4586aef..1935d2ab10 100644 --- a/src/util/domain-icon.js +++ b/src/util/domain-icon.js @@ -49,9 +49,6 @@ export default function domainIcon(domain, state) { case 'notify': return 'mdi:comment-alert'; - case 'updater': - return 'mdi:cloud-upload'; - case 'rollershutter': return state && state === 'open' ? 'mdi:window-open' : 'mdi:window-closed'; @@ -76,6 +73,12 @@ export default function domainIcon(domain, state) { case 'thermostat': return 'mdi:nest-thermostat'; + case 'updater': + return 'mdi:cloud-upload'; + + case 'weblink': + return 'mdi:open-in-new'; + default: /* eslint-disable no-console */ console.warn(`Unable to find icon for domain ${domain} (${state})`); diff --git a/src/util/state-card-type.js b/src/util/state-card-type.js index b457aa4507..a97fbf1253 100644 --- a/src/util/state-card-type.js +++ b/src/util/state-card-type.js @@ -1,7 +1,13 @@ import canToggle from './can-toggle'; const DOMAINS_WITH_CARD = [ - 'thermostat', 'configurator', 'scene', 'media_player', 'rollershutter']; + 'configurator', + 'media_player', + 'rollershutter', + 'scene', + 'thermostat', + 'weblink', +]; export default function stateCardType(state) { if (DOMAINS_WITH_CARD.indexOf(state.domain) !== -1) {