Add entity_picture capability to plant card (#1145)

* Add entity_picture support to plant card

* Align font size with camera card
This commit is contained in:
PeteBa 2018-05-25 23:26:47 +01:00 committed by Paulus Schoutsen
parent d3c10d9b49
commit f4c36e37bb

View File

@ -11,10 +11,38 @@ class HaPlantCard extends EventsMixin(PolymerElement) {
static get template() {
return html`
<style>
.banner {
display: flex;
align-items: flex-end;
background-repeat: no-repeat;
background-size: cover;
background-position: center;
padding-top: 12px;
}
.has-plant-image .banner {
padding-top: 30%;
}
.header {
@apply --paper-font-headline;
line-height: 40px;
padding: 8px 16px;
}
.has-plant-image .header {
font-size: 16px;
font-weight: 500;
line-height: 16px;
padding: 16px;
color: white;
width: 100%;
background:rgba(0, 0, 0, var(--dark-secondary-opacity));
}
.content {
display: flex;
justify-content: space-between;
padding: 0 32px 24px 32px;
padding: 16px 32px 24px 32px;
}
.has-plant-image .content {
padding-bottom: 16px;
}
iron-icon {
color: var(--paper-item-icon-color);
@ -35,12 +63,15 @@ class HaPlantCard extends EventsMixin(PolymerElement) {
}
</style>
<ha-card header="[[computeTitle(stateObj)]]">
<ha-card class$="[[computeImageClass(stateObj.attributes.entity_picture)]]">
<div class="banner" style="background-image:url([[stateObj.attributes.entity_picture]])">
<div class="header">[[computeTitle(stateObj)]]</div>
</div>
<div class="content">
<template is="dom-repeat" items="[[computeAttributes(stateObj.attributes)]]">
<div class="attributes" on-click="attributeClicked">
<div><iron-icon icon="[[computeIcon(item, stateObj.attributes.battery)]]"></iron-icon></div>
<div class\$="[[computeClass(stateObj.attributes.problem, item)]]">
<div class$="[[computeAttributeClass(stateObj.attributes.problem, item)]]">
[[computeValue(stateObj.attributes, item)]]
</div>
<div class="uom">[[computeUom(stateObj.attributes.unit_of_measurement_dict, item)]]</div>
@ -97,10 +128,14 @@ class HaPlantCard extends EventsMixin(PolymerElement) {
return dict[attr] || '';
}
computeClass(problem, attr) {
computeAttributeClass(problem, attr) {
return problem.indexOf(attr) === -1 ? '' : 'problem';
}
computeImageClass(entityPicture) {
return entityPicture ? 'has-plant-image' : '';
}
attributeClicked(ev) {
this.fire('hass-more-info', { entityId: this.stateObj.attributes.sensors[ev.model.item] });
}