ha-frontend/src/layouts/home-assistant-main.html

133 lines
3.3 KiB
HTML
Raw Normal View History

2015-07-13 01:57:15 +02:00
<link rel='import' href='../../bower_components/polymer/polymer.html'>
<link rel='import' href='../../bower_components/paper-drawer-panel/paper-drawer-panel.html'>
2015-08-30 03:15:58 +02:00
<link rel='import' href='../../bower_components/iron-media-query/iron-media-query.html'>
2016-07-17 08:19:49 +02:00
<link rel='import' href='../../bower_components/iron-pages/iron-pages.html'>
2016-01-25 09:00:07 +01:00
<link rel='import' href='../layouts/partial-cards.html'>
2016-07-17 08:19:49 +02:00
<link rel='import' href='../layouts/partial-panel-resolver.html'>
2015-07-13 01:57:15 +02:00
<link rel="import" href="../dialogs/more-info-dialog.html">
2015-11-05 08:52:21 +01:00
<link rel="import" href="../dialogs/ha-voice-command-dialog.html">
<link rel='import' href='../util/ha-url-sync.html'>
2015-07-13 01:57:15 +02:00
<link rel='import' href='../components/ha-sidebar.html'>
<dom-module id='home-assistant-main'>
<template>
2016-05-28 10:32:39 +02:00
<more-info-dialog hass='[[hass]]'></more-info-dialog>
<ha-url-sync hass='[[hass]]'></ha-url-sync>
<ha-voice-command-dialog
hass='[[hass]]'
id='voiceDialog'
></ha-voice-command-dialog>
2015-08-30 06:39:16 +02:00
<iron-media-query query="(max-width: 870px)" query-matches="{{narrow}}">
2015-08-30 03:15:58 +02:00
</iron-media-query>
2015-07-13 01:57:15 +02:00
2015-09-21 08:12:58 +02:00
<paper-drawer-panel id='drawer'
force-narrow='[[computeForceNarrow(narrow, dockedSidebar)]]'
2015-09-21 08:12:58 +02:00
responsive-width='0' disable-swipe='[[isSelectedMap]]'
disable-edge-swipe='[[isSelectedMap]]'>
2016-05-28 10:32:39 +02:00
<ha-sidebar drawer narrow='[[narrow]]' hass='[[hass]]'></ha-sidebar>
2015-07-13 01:57:15 +02:00
2016-07-17 08:19:49 +02:00
<iron-pages
main
attr-for-selected='id'
fallback-selection='panel-resolver'
selected='[[currentPanel]]'
2016-07-31 22:04:01 +02:00
selected-attribute='panel-visible'
2016-07-17 08:19:49 +02:00
>
<partial-cards
id='states'
narrow='[[narrow]]'
hass='[[hass]]'
show-menu='[[dockedSidebar]]'
2016-07-17 08:19:49 +02:00
></partial-cards>
<partial-panel-resolver
id='panel-resolver'
narrow='[[narrow]]'
hass='[[hass]]'
show-menu='[[dockedSidebar]]'
2016-07-17 08:19:49 +02:00
></partial-panel-resolver>
</iron-pages>
2015-07-13 01:57:15 +02:00
</paper-drawer-panel>
</template>
</dom-module>
2016-07-17 08:19:49 +02:00
<script>
Polymer({
is: 'home-assistant-main',
properties: {
hass: {
type: Object,
value: null,
2016-07-17 08:19:49 +02:00
},
narrow: {
type: Boolean,
},
currentPanel: {
2016-07-17 08:19:49 +02:00
type: String,
computed: 'computeCurrentPanel(hass)',
observer: 'currentPanelChanged',
2016-07-17 08:19:49 +02:00
},
dockedSidebar: {
2016-07-17 08:19:49 +02:00
type: Boolean,
computed: 'computeDockedSidebar(hass)',
2016-07-17 08:19:49 +02:00
},
},
listeners: {
'hass-open-menu': 'handleOpenMenu',
'hass-close-menu': 'handleCloseMenu',
'hass-start-voice': 'handleStartVoice',
},
handleStartVoice: function (ev) {
ev.stopPropagation();
this.$.voiceDialog.startListening();
2016-07-17 08:19:49 +02:00
},
handleOpenMenu: function () {
2016-07-17 08:19:49 +02:00
if (this.narrow) {
this.$.drawer.openDrawer();
} else {
this.fire('hass-dock-sidebar', { dock: true });
2016-07-17 08:19:49 +02:00
}
},
handleCloseMenu: function () {
2016-07-17 08:19:49 +02:00
this.$.drawer.closeDrawer();
if (this.dockedSidebar) {
this.fire('hass-dock-sidebar', { dock: false });
2016-07-17 08:19:49 +02:00
}
},
currentPanelChanged: function () {
2016-07-17 08:19:49 +02:00
if (this.narrow) {
this.$.drawer.closeDrawer();
}
},
attached: function () {
window.removeInitMsg();
},
computeForceNarrow: function (narrow, dockedSidebar) {
return narrow || !dockedSidebar;
},
computeCurrentPanel: function (hass) {
return hass.currentPanel;
2016-07-17 08:19:49 +02:00
},
computeDockedSidebar: function (hass) {
return hass.dockedSidebar;
2016-07-17 08:19:49 +02:00
},
});
</script>