ha-frontend/panels/logbook/ha-panel-logbook.html

146 lines
3.6 KiB
HTML
Raw Normal View History

2016-07-17 08:19:49 +02:00
<link rel="import" href="../../bower_components/polymer/polymer.html">
<link rel="import" href="../../bower_components/paper-icon-button/paper-icon-button.html">
2016-07-31 23:43:07 +02:00
<link rel="import" href="../../bower_components/paper-spinner/paper-spinner.html">
2016-07-17 08:19:49 +02:00
<link rel="import" href="../../bower_components/paper-input/paper-input.html">
2016-07-31 07:48:39 +02:00
<link rel="import" href="../../bower_components/app-layout/app-header-layout/app-header-layout.html">
<link rel="import" href="../../bower_components/app-layout/app-header/app-header.html">
<link rel="import" href="../../bower_components/app-layout/app-toolbar/app-toolbar.html">
<link rel="import" href="../../src/components/ha-menu-button.html">
2016-07-19 11:25:26 +02:00
<link rel="import" href="../../src/resources/pikaday-js.html">
2016-08-02 18:06:22 +02:00
<link rel="import" href="../../src/resources/ha-style.html">
2016-07-17 08:19:49 +02:00
<link rel="import" href="./ha-logbook.html">
<link rel="import" href="./ha-logbook-data.html">
2016-07-17 08:19:49 +02:00
<dom-module id="ha-panel-logbook">
<template>
2016-07-31 07:48:39 +02:00
<style include="ha-style">
.content {
padding: 16px;
2016-07-18 08:18:48 +02:00
}
paper-input {
max-width: 200px;
}
2016-07-20 08:33:03 +02:00
[hidden] {
display: none !important;
}
2016-07-18 08:18:48 +02:00
</style>
<ha-logbook-data
hass='[[hass]]'
is-loading='{{isLoading}}'
entries='{{entries}}'
filter-date='[[_computeFilterDate(_selectedDate)]]'
></ha-logbook-data>
2016-07-31 07:48:39 +02:00
<app-header-layout has-scrolling-region>
<app-header fixed>
<app-toolbar>
<ha-menu-button narrow='[[narrow]]' show-menu='[[showMenu]]'></ha-menu-button>
<div main-title>Logbook</div>
</app-toolbar>
</app-header>
2016-07-17 08:19:49 +02:00
<div class="flex content">
2016-07-17 08:19:49 +02:00
<div class='selected-date-container'>
2016-07-20 08:33:03 +02:00
<paper-input
label='Showing entries for'
id='datePicker'
value='[[_computeDateDisplay(_selectedDate)]]'
2016-07-20 08:33:03 +02:00
on-focus='datepickerFocus'
></paper-input>
2016-07-17 08:19:49 +02:00
2016-07-31 23:43:07 +02:00
<paper-spinner
active='[[isLoading]]'
hidden$='[[!isLoading]]'
alt='Loading logbook entries'
></paper-spinner>
2016-07-17 08:19:49 +02:00
</div>
<ha-logbook hass='[[hass]]' entries="[[entries]]" hidden$='[[isLoading]]'></ha-logbook>
</div>
2016-07-31 07:48:39 +02:00
</app-header-layout>
2016-07-17 08:19:49 +02:00
</template>
</dom-module>
<script>
Polymer({
is: 'ha-panel-logbook',
properties: {
hass: {
type: Object,
},
narrow: {
type: Boolean,
value: false,
},
showMenu: {
type: Boolean,
value: false,
},
_selectedDate: {
type: String,
value: function () {
return new Date();
},
},
2016-07-17 08:19:49 +02:00
isLoading: {
type: Boolean,
},
entries: {
type: Array,
},
datePicker: {
type: Object,
},
},
datepickerFocus: function () {
2016-07-23 17:27:10 +02:00
this.datePicker.adjustPosition();
2016-07-17 08:19:49 +02:00
},
attached: function () {
this.datePicker = new window.Pikaday({
// Bind field to dummy input to prevent pikaday from overwriting
// field value with its internal formatting.
2016-07-26 20:05:06 +02:00
field: document.createElement('input'),
2016-07-26 19:57:56 +02:00
trigger: this.$.datePicker.inputElement,
onSelect: function (newDate) {
newDate.setDate(newDate.getDate() + 1);
if (newDate > new Date()) {
newDate = new Date();
}
this._selectedDate = newDate;
}.bind(this),
2016-07-17 08:19:49 +02:00
});
2016-07-26 19:57:56 +02:00
// Set the initial datePicker date, without triggering onSelect handler.
this.datePicker.setDate(this.selectedDate, true);
2016-07-17 08:19:49 +02:00
},
detached: function () {
this.datePicker.destroy();
},
_computeDateDisplay: function (date) {
return window.hassUtil.formatDate(new Date(date));
},
_computeFilterDate: function (_selectedDate) {
return _selectedDate.toISOString();
},
2016-07-17 08:19:49 +02:00
});
</script>