Move frontend specific js to webcomponents

This commit is contained in:
Paulus Schoutsen 2015-02-07 15:42:04 -08:00
parent 2cfcbf6380
commit 33daf0a385
6 changed files with 48 additions and 9 deletions

View File

@ -1,2 +1,2 @@
""" DO NOT MODIFY. Auto-generated by build_frontend script """
VERSION = "b08c8203bd0a78ae1b1b2eec9f62f8b4"
VERSION = "be9fb38e992137e8e3b83e4ff91f9c7c"

File diff suppressed because one or more lines are too long

View File

@ -28,7 +28,6 @@
"paper-button": "Polymer/paper-button#~0.5.4",
"paper-input": "Polymer/paper-input#~0.5.4",
"paper-toggle-button": "polymer/paper-toggle-button#~0.5.4",
"paper-tabs": "polymer/paper-tabs#~0.5.4",
"paper-icon-button": "polymer/paper-icon-button#~0.5.4",
"paper-menu-button": "polymer/paper-menu-button#~0.5.4",
"paper-dropdown": "polymer/paper-dropdown#~0.5.4",
@ -37,6 +36,7 @@
"color-picker-element": "~0.0.2",
"google-apis": "GoogleWebComponents/google-apis#~0.4.2",
"core-drawer-panel": "polymer/core-drawer-panel#~0.5.4",
"core-scroll-header-panel": "polymer/core-scroll-header-panel#~0.5.4"
"core-scroll-header-panel": "polymer/core-scroll-header-panel#~0.5.4",
"moment": "~2.9.0"
}
}

View File

@ -68,6 +68,8 @@
// stateHistory is a list of lists of sorted state objects
stateHistory.forEach(function(stateInfo) {
if(stateInfo.length === 0) return;
var baseState = new window.hass.stateModel(stateInfo[0]);
var prevRow = null;

View File

@ -3,8 +3,12 @@
<link rel="import" href="./dialogs/more-info-dialog.html">
<script src="./home-assistant-js/dist/homeassistant.min.js"></script>
<script src="./bower_components/moment/moment.js"></script>
<script>
var DOMAINS_WITH_CARD = ['thermostat', 'configurator'];
var DOMAINS_WITH_MORE_INFO = ['light', 'group', 'sun', 'configurator'];
// Register some polymer filters
PolymerExpressions.prototype.relativeHATime = function(timeString) {
return window.hass.util.relativeTime(timeString);
@ -12,6 +16,40 @@
PolymerExpressions.prototype.HATimeStripDate = function(timeString) {
return (timeString || "").split(' ')[0];
};
// Add some frontend specific helpers to the models
Object.defineProperties(window.hass.stateModel.prototype, {
// how to render the card for this state
cardType: {
get: function() {
if(DOMAINS_WITH_CARD.indexOf(this.domain) !== -1) {
return this.domain;
} else if(this.canToggle) {
return "toggle";
} else {
return "display";
}
}
},
// how to render the more info of this state
moreInfoType: {
get: function() {
if(DOMAINS_WITH_MORE_INFO.indexOf(this.domain) !== -1) {
return this.domain;
} else {
return 'default';
}
}
},
relativeLastChanged: {
get: function() {
return moment(this.lastChangedAsDate).fromNow();
}
},
});
</script>
<polymer-element name="home-assistant-api" attributes="auth">

@ -1 +1 @@
Subproject commit 373e96751759dfdf811c897916eef77ebc575ea4
Subproject commit bf56426c553863e21790c7f1718b18e7dd89427c