* Version bump to 20180510.1 * Fix hass util * Fix translations * Bye paper-time-input * Add webpack config * Add webpack to package.json * Fix translation import * Disable web animations polyfill bad import * Disable importHref import * Update webpack config to build authorize.js * Build translations json * Build frontend correctly * Run eslint --fix * Load markdown JS on demand (#1155) * Add HTML imports (#1160) * Fix localize (#1161) * Fix Roboto in build (#1162) * Load web animations polyfill (#1163) * P3: Fix chart js (#1164) * P3: Fix Chart JS * Update timeline package * P3: panel resolver (#1165) * WIP * Initial importing of panels * Fix panel resolver * Fix automation and script editor (#1166) * Expose Polymer and Polymer.Element on window (#1167) * Remove unused import * eslint --fix * Es5 build (#1168) * Build for ES5 * Fix build_frontend * Remove stale comment * Migrate to use paper-material-styles (#1170) * Send parsed date to history/logbook (#1171) * Fork app storage behavior (#1172) * Add paper input with type time (#1173) * Fix authorize * Lint * Sort imports * Lint * Remove eslint-html * Do not lint authorize.html * Fix polymer lint * Try chrome 62 for wct * P3: Add patched iconset (#1175) * Add patched iconset * Lint * Test with latest Chrome again * Use less window.hassUtil * Teporarily use my fecha fork * Import correct intl.messageFormat * Update wct-browser-legacy to 1.0.0 * Include polyfill in right place * Fix IntlMessageFormat * Fix test not having a global scope * Rollup <_< * Fork app-localize-behavior * Disable wct tests * Lint
79 lines
1.7 KiB
JavaScript
79 lines
1.7 KiB
JavaScript
import { PolymerElement } from '@polymer/polymer/polymer-element.js';
|
|
|
|
{
|
|
var DATE_CACHE = {};
|
|
|
|
class HaLogbookData extends PolymerElement {
|
|
static get is() { return 'ha-logbook-data'; }
|
|
|
|
static get properties() {
|
|
return {
|
|
hass: {
|
|
type: Object,
|
|
observer: 'hassChanged',
|
|
},
|
|
|
|
filterDate: {
|
|
type: String,
|
|
observer: 'filterDateChanged',
|
|
},
|
|
|
|
isLoading: {
|
|
type: Boolean,
|
|
value: true,
|
|
readOnly: true,
|
|
notify: true,
|
|
},
|
|
|
|
entries: {
|
|
type: Object,
|
|
value: null,
|
|
readOnly: true,
|
|
notify: true,
|
|
},
|
|
};
|
|
}
|
|
|
|
hassChanged(newHass, oldHass) {
|
|
if (!oldHass && this.filterDate) {
|
|
this.filterDateChanged(this.filterDate);
|
|
}
|
|
}
|
|
|
|
filterDateChanged(filterDate) {
|
|
if (!this.hass) return;
|
|
|
|
this._setIsLoading(true);
|
|
|
|
this.getDate(filterDate).then(function (logbookEntries) {
|
|
this._setEntries(logbookEntries);
|
|
this._setIsLoading(false);
|
|
}.bind(this));
|
|
}
|
|
|
|
getDate(date) {
|
|
if (!DATE_CACHE[date]) {
|
|
DATE_CACHE[date] = this.hass.callApi('GET', 'logbook/' + date).then(
|
|
function (logbookEntries) {
|
|
logbookEntries.reverse();
|
|
return logbookEntries;
|
|
},
|
|
function () {
|
|
DATE_CACHE[date] = false;
|
|
return null;
|
|
}
|
|
);
|
|
}
|
|
|
|
return DATE_CACHE[date];
|
|
}
|
|
|
|
refreshLogbook() {
|
|
DATE_CACHE[this.filterDate] = null;
|
|
this.filterDateChanged(this.filterDate);
|
|
}
|
|
}
|
|
|
|
customElements.define(HaLogbookData.is, HaLogbookData);
|
|
}
|