mirror of
https://github.com/home-assistant/frontend.git
synced 2026-02-15 07:25:54 +00:00
* Move flatten to separate gulp task * Split translation fragments into separate files * Load translation fragments when switching panels * Fix gulpfile lint * Move app-location to home-assistant.html * Compute panel navigation in home-assistant.html * Only pass down panelUrl from home-assistant.html * Store panelUrl on hass * Store computed panel on hass object * Revert "Store computed panel on hass object" This reverts commit 0f150b1faa2b91588a432ab346821b633b349d1a. IMO this didn't really make the code cleaner. Just wanted to see how it would look. Keeping it here as a reverted commit in case we do want to use it.
140 lines
4.0 KiB
HTML
140 lines
4.0 KiB
HTML
<link rel="import" href="../../../bower_components/polymer/polymer-element.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="../../../bower_components/paper-icon-button/paper-icon-button.html">
|
|
|
|
<link rel="import" href="../../../src/resources/ha-style.html">
|
|
<link rel='import' href='../../../src/layouts/ha-app-layout.html'>
|
|
|
|
<link rel="import" href="./ha-config-section-core.html">
|
|
<!-- <link rel="import" href="./ha-config-section-group.html"> -->
|
|
<link rel="import" href="./ha-config-section-hassbian.html">
|
|
<link rel="import" href="./ha-config-section-push-notifications.html">
|
|
<link rel="import" href="./ha-config-section-translation.html">
|
|
<link rel="import" href="./ha-config-section-themes.html">
|
|
|
|
<dom-module id="ha-config-core">
|
|
<template>
|
|
<style include="iron-flex ha-style">
|
|
.content {
|
|
padding-bottom: 32px;
|
|
}
|
|
|
|
.border {
|
|
margin: 32px auto 0;
|
|
border-bottom: 1px solid rgba(0, 0, 0, 0.12);
|
|
max-width: 1040px;
|
|
}
|
|
|
|
.narrow .border {
|
|
max-width: 640px;
|
|
}
|
|
</style>
|
|
|
|
<ha-app-layout has-scrolling-region>
|
|
<app-header slot="header" fixed>
|
|
<app-toolbar>
|
|
<paper-icon-button
|
|
icon='mdi:arrow-left'
|
|
on-tap='_backTapped'
|
|
></paper-icon-button>
|
|
<div main-title>General</div>
|
|
</app-toolbar>
|
|
</app-header>
|
|
|
|
<div class$='[[computeClasses(isWide)]]'>
|
|
<!--
|
|
Sortable.js doesn't work in Polymer 2 making this panel useless.
|
|
Disabling for now.
|
|
<ha-config-section-group
|
|
is-wide='[[isWide]]'
|
|
hass='[[hass]]'
|
|
></ha-config-section-group>
|
|
-->
|
|
|
|
<ha-config-section-core
|
|
is-wide='[[isWide]]'
|
|
hass='[[hass]]'
|
|
></ha-config-section-core>
|
|
|
|
<template is='dom-if' if='[[pushSupported]]'>
|
|
<div class='border'></div>
|
|
<ha-config-section-push-notifications
|
|
is-wide='[[isWide]]'
|
|
hass='[[hass]]'
|
|
push-supported='{{pushSupported}}'
|
|
></ha-config-section-push-notifications>
|
|
</template>
|
|
<template is='dom-if' if='[[computeIsTranslationLoaded(hass)]]'>
|
|
<div class='border'></div>
|
|
<ha-config-section-translation
|
|
is-wide='[[isWide]]'
|
|
hass='[[hass]]'
|
|
></ha-config-section-translation>
|
|
</template>
|
|
|
|
<template is='dom-if' if='[[computeIsThemesLoaded(hass)]]'>
|
|
<div class='border'></div>
|
|
<ha-config-section-themes
|
|
is-wide='[[isWide]]'
|
|
hass='[[hass]]'
|
|
></ha-config-section-themes>
|
|
</template>
|
|
|
|
<template is='dom-if' if='[[computeIsHassbianLoaded(hass)]]'>
|
|
<div class='border'></div>
|
|
<ha-config-section-hassbian
|
|
is-wide='[[isWide]]'
|
|
hass='[[hass]]'
|
|
></ha-config-section-hassbian>
|
|
</template>
|
|
</div>
|
|
</ha-app-layout>
|
|
</template>
|
|
</dom-module>
|
|
|
|
<script>
|
|
class HaConfigCore extends Polymer.Element {
|
|
static get is() { return 'ha-config-core'; }
|
|
|
|
static get properties() {
|
|
return {
|
|
hass: Object,
|
|
isWide: Boolean,
|
|
pushSupported: {
|
|
type: Boolean,
|
|
value: true,
|
|
},
|
|
};
|
|
}
|
|
|
|
computeClasses(isWide) {
|
|
return isWide ? 'content' : 'content narrow';
|
|
}
|
|
|
|
computeIsHassbianLoaded(hass) {
|
|
return window.hassUtil.isComponentLoaded(hass, 'config.hassbian');
|
|
}
|
|
|
|
computeIsZwaveLoaded(hass) {
|
|
return window.hassUtil.isComponentLoaded(hass, 'config.zwave');
|
|
}
|
|
|
|
computeIsTranslationLoaded(hass) {
|
|
return hass.translationMetadata &&
|
|
Object.keys(hass.translationMetadata.translations).length;
|
|
}
|
|
|
|
computeIsThemesLoaded(hass) {
|
|
return hass.themes && hass.themes.themes &&
|
|
Object.keys(hass.themes.themes).length;
|
|
}
|
|
|
|
_backTapped() {
|
|
history.back();
|
|
}
|
|
}
|
|
|
|
customElements.define(HaConfigCore.is, HaConfigCore);
|
|
</script>
|