Fix no or just 1 view (#2194)

This commit is contained in:
Bram Kragten 2018-12-06 14:38:16 +01:00 committed by Paulus Schoutsen
parent eaaf841a87
commit 51d592ba0d
2 changed files with 20 additions and 8 deletions

View File

@ -1,5 +1,4 @@
import { html, LitElement, PropertyDeclarations } from "@polymer/lit-element"; import { html, LitElement, PropertyDeclarations } from "@polymer/lit-element";
import "@polymer/paper-button/paper-button";
import { TemplateResult } from "lit-html"; import { TemplateResult } from "lit-html";
import { HomeAssistant } from "../../../types"; import { HomeAssistant } from "../../../types";
@ -84,9 +83,6 @@ export class HuiEntityEditor extends LitElement {
.entities { .entities {
padding-left: 20px; padding-left: 20px;
} }
paper-button {
margin: 8px 0;
}
</style> </style>
`; `;
} }

View File

@ -140,7 +140,7 @@ class HUIRoot extends NavigateMixin(
</app-toolbar> </app-toolbar>
</template> </template>
<div sticky hidden$="[[_computeTabsHidden(config.views)]]"> <div sticky hidden$="[[_computeTabsHidden(config.views, _editMode)]]">
<paper-tabs scrollable selected="[[_curView]]" on-iron-activate="_handleViewSelected"> <paper-tabs scrollable selected="[[_curView]]" on-iron-activate="_handleViewSelected">
<template is="dom-repeat" items="[[config.views]]"> <template is="dom-repeat" items="[[config.views]]">
<paper-tab> <paper-tab>
@ -160,7 +160,7 @@ class HUIRoot extends NavigateMixin(
</paper-tabs> </paper-tabs>
</div> </div>
</app-header> </app-header>
<template is='dom-if' if="[[_editMode]]"> <template is='dom-if' if="[[_computeEditVisible(_editMode, config.views)]]">
<app-toolbar class="secondary"> <app-toolbar class="secondary">
<paper-button on-click="_editView">[[localize("ui.panel.lovelace.editor.edit_view.edit")]]</paper-button> <paper-button on-click="_editView">[[localize("ui.panel.lovelace.editor.edit_view.edit")]]</paper-button>
<paper-button class="warning" on-click="_deleteView">[[localize("ui.panel.lovelace.editor.edit_view.delete")]]</paper-button> <paper-button class="warning" on-click="_deleteView">[[localize("ui.panel.lovelace.editor.edit_view.delete")]]</paper-button>
@ -280,8 +280,8 @@ class HUIRoot extends NavigateMixin(
return config.title || "Home Assistant"; return config.title || "Home Assistant";
} }
_computeTabsHidden(views) { _computeTabsHidden(views, editMode) {
return views.length < 2; return views.length < 2 && !editMode;
} }
_computeTabTitle(title) { _computeTabTitle(title) {
@ -304,6 +304,10 @@ class HUIRoot extends NavigateMixin(
window.open("https://www.home-assistant.io/lovelace/", "_blank"); window.open("https://www.home-assistant.io/lovelace/", "_blank");
} }
_computeEditVisible(editMode, views) {
return editMode && views[this._curView];
}
_editModeEnable() { _editModeEnable() {
if (this.config._frontendAuto) { if (this.config._frontendAuto) {
showSaveDialog(this, { showSaveDialog(this, {
@ -316,10 +320,18 @@ class HUIRoot extends NavigateMixin(
return; return;
} }
this._editMode = true; this._editMode = true;
if (this.config.views.length < 2) {
this.$.view.classList.remove("tabs-hidden");
this.fire("iron-resize");
}
} }
_editModeDisable() { _editModeDisable() {
this._editMode = false; this._editMode = false;
if (this.config.views.length < 2) {
this.$.view.classList.add("tabs-hidden");
this.fire("iron-resize");
}
} }
_editModeChanged() { _editModeChanged() {
@ -393,6 +405,10 @@ class HUIRoot extends NavigateMixin(
view.setConfig(this.config); view.setConfig(this.config);
} else { } else {
const viewConfig = this.config.views[this._curView]; const viewConfig = this.config.views[this._curView];
if (!viewConfig) {
this._editModeEnable();
return;
}
if (viewConfig.panel) { if (viewConfig.panel) {
view = createCardElement(viewConfig.cards[0]); view = createCardElement(viewConfig.cards[0]);
view.isPanel = true; view.isPanel = true;