From 0f895fd3a1dfc2c3eb934084cccc5f73f85e6d44 Mon Sep 17 00:00:00 2001
From: Bram Kragten
Date: Wed, 5 Dec 2018 14:14:53 +0100
Subject: [PATCH] Make Lovelace the default! (#2181)
* Make Lovelace the default!
* Move states panel to panels
---
src/components/ha-cards.js | 17 ++-----
src/layouts/app/home-assistant.js | 2 +-
src/layouts/home-assistant-main.js | 45 +++++--------------
src/layouts/partial-panel-resolver.js | 4 ++
src/panels/dev-info/ha-panel-dev-info.js | 10 ++---
src/panels/kiosk/ha-panel-kiosk.js | 6 +--
.../states/ha-panel-states.js} | 36 ++++++++-------
7 files changed, 47 insertions(+), 73 deletions(-)
rename src/{layouts/partial-cards.js => panels/states/ha-panel-states.js} (93%)
diff --git a/src/components/ha-cards.js b/src/components/ha-cards.js
index f88e1bb72e..c5ecbac486 100644
--- a/src/components/ha-cards.js
+++ b/src/components/ha-cards.js
@@ -159,7 +159,6 @@ class HaCards extends PolymerElement {
},
states: Object,
- panelVisible: Boolean,
viewVisible: {
type: Boolean,
@@ -173,19 +172,11 @@ class HaCards extends PolymerElement {
}
static get observers() {
- return [
- "updateCards(columns, states, panelVisible, viewVisible, orderedGroupEntities)",
- ];
+ return ["updateCards(columns, states, viewVisible, orderedGroupEntities)"];
}
- updateCards(
- columns,
- states,
- panelVisible,
- viewVisible,
- orderedGroupEntities
- ) {
- if (!panelVisible || !viewVisible) {
+ updateCards(columns, states, viewVisible, orderedGroupEntities) {
+ if (!viewVisible) {
if (this.$.main.parentNode) {
this.$.main._parentNode = this.$.main.parentNode;
this.$.main.parentNode.removeChild(this.$.main);
@@ -200,7 +191,7 @@ class HaCards extends PolymerElement {
timeOut.after(10),
() => {
// Things might have changed since it got scheduled.
- if (this.panelVisible && this.viewVisible) {
+ if (this.viewVisible) {
this.cards = this.computeCards(columns, states, orderedGroupEntities);
}
}
diff --git a/src/layouts/app/home-assistant.js b/src/layouts/app/home-assistant.js
index f8f5f939de..75f0722d49 100644
--- a/src/layouts/app/home-assistant.js
+++ b/src/layouts/app/home-assistant.js
@@ -94,7 +94,7 @@ class HomeAssistant extends ext(PolymerElement, [
}
computePanelUrl(routeData) {
- return (routeData && routeData.panel) || "states";
+ return (routeData && routeData.panel) || "lovelace";
}
panelUrlChanged(newPanelUrl) {
diff --git a/src/layouts/home-assistant-main.js b/src/layouts/home-assistant-main.js
index 624c2ad558..06eeaf113c 100644
--- a/src/layouts/home-assistant-main.js
+++ b/src/layouts/home-assistant-main.js
@@ -2,13 +2,11 @@ import "@polymer/app-layout/app-drawer-layout/app-drawer-layout";
import "@polymer/app-layout/app-drawer/app-drawer";
import "@polymer/app-route/app-route";
import "@polymer/iron-media-query/iron-media-query";
-import "@polymer/iron-pages/iron-pages";
import { html } from "@polymer/polymer/lib/utils/html-tag";
import { PolymerElement } from "@polymer/polymer/polymer-element";
import "../util/ha-url-sync";
-import "./partial-cards";
import "./partial-panel-resolver";
import EventsMixin from "../mixins/events-mixin";
import NavigateMixin from "../mixins/navigate-mixin";
@@ -31,21 +29,16 @@ class HomeAssistantMain extends NavigateMixin(EventsMixin(PolymerElement)) {
:host([rtl]) {
direction: rtl;
}
- iron-pages,
+ partial-panel-resolver,
ha-sidebar {
/* allow a light tap highlight on the actual interface elements */
-webkit-tap-highlight-color: rgba(0, 0, 0, 0.1);
}
- iron-pages {
+ partial-panel-resolver {
height: 100%;
}
-
-
-
-
-
-
+
`;
}
@@ -108,7 +84,6 @@ class HomeAssistantMain extends NavigateMixin(EventsMixin(PolymerElement)) {
type: Object,
observer: "_routeChanged",
},
- statesRouteTail: Object,
dockedSidebar: {
type: Boolean,
computed: "computeDockedSidebar(hass)",
@@ -123,7 +98,7 @@ class HomeAssistantMain extends NavigateMixin(EventsMixin(PolymerElement)) {
ready() {
super.ready();
- this._defaultPage = localStorage.defaultPage || "states";
+ this._defaultPage = localStorage.defaultPage || "lovelace";
this.addEventListener("hass-open-menu", () => this.handleOpenMenu());
this.addEventListener("hass-close-menu", () => this.handleCloseMenu());
this.addEventListener("hass-start-voice", (ev) =>
@@ -160,7 +135,7 @@ class HomeAssistantMain extends NavigateMixin(EventsMixin(PolymerElement)) {
connectedCallback() {
super.connectedCallback();
if (document.location.pathname === "/") {
- this.navigate(`/${localStorage.defaultPage || "states"}`, true);
+ this.navigate(`/${localStorage.defaultPage || "lovelace"}`, true);
}
}
diff --git a/src/layouts/partial-panel-resolver.js b/src/layouts/partial-panel-resolver.js
index 1a36a1df76..24d05e2ace 100644
--- a/src/layouts/partial-panel-resolver.js
+++ b/src/layouts/partial-panel-resolver.js
@@ -54,6 +54,10 @@ function ensureLoaded(panel) {
imported = import(/* webpackChunkName: "panel-lovelace" */ "../panels/lovelace/ha-panel-lovelace");
break;
+ case "states":
+ imported = import(/* webpackChunkName: "panel-states" */ "../panels/states/ha-panel-states");
+ break;
+
case "history":
imported = import(/* webpackChunkName: "panel-history" */ "../panels/history/ha-panel-history");
break;
diff --git a/src/panels/dev-info/ha-panel-dev-info.js b/src/panels/dev-info/ha-panel-dev-info.js
index bd827a6e4a..8ac30304dd 100644
--- a/src/panels/dev-info/ha-panel-dev-info.js
+++ b/src/panels/dev-info/ha-panel-dev-info.js
@@ -164,7 +164,7 @@ class HaPanelDevInfo extends EventsMixin(LocalizeMixin(PolymerElement)) {
- Try out the new Lovelace UI (experimental)
+ Go back to the old states page
[[_defaultPageText()]]
@@ -364,15 +364,15 @@ class HaPanelDevInfo extends EventsMixin(LocalizeMixin(PolymerElement)) {
_defaultPageText() {
return `>> ${
- localStorage.defaultPage === "lovelace" ? "Remove" : "Set"
- } lovelace as default page on this device <<`;
+ localStorage.defaultPage === "states" ? "Remove" : "Set"
+ } the old states as default page on this device <<`;
}
_toggleDefaultPage() {
- if (localStorage.defaultPage === "lovelace") {
+ if (localStorage.defaultPage === "states") {
delete localStorage.defaultPage;
} else {
- localStorage.defaultPage = "lovelace";
+ localStorage.defaultPage = "states";
}
this.$.love.innerText = this._defaultPageText();
}
diff --git a/src/panels/kiosk/ha-panel-kiosk.js b/src/panels/kiosk/ha-panel-kiosk.js
index e106aa035e..50fef88b1d 100644
--- a/src/panels/kiosk/ha-panel-kiosk.js
+++ b/src/panels/kiosk/ha-panel-kiosk.js
@@ -1,18 +1,18 @@
import { html } from "@polymer/polymer/lib/utils/html-tag";
import { PolymerElement } from "@polymer/polymer/polymer-element";
-import "../../layouts/partial-cards";
+import "../states/ha-panel-states";
class HaPanelKiosk extends PolymerElement {
static get template() {
return html`
-
+ >
`;
}
diff --git a/src/layouts/partial-cards.js b/src/panels/states/ha-panel-states.js
similarity index 93%
rename from src/layouts/partial-cards.js
rename to src/panels/states/ha-panel-states.js
index b473c30b6c..1f1eb6a537 100644
--- a/src/layouts/partial-cards.js
+++ b/src/panels/states/ha-panel-states.js
@@ -1,3 +1,5 @@
+import { html } from "@polymer/polymer/lib/utils/html-tag";
+import { PolymerElement } from "@polymer/polymer/polymer-element";
import "@polymer/app-layout/app-header/app-header";
import "@polymer/app-layout/app-scroll-effects/effects/waterfall";
import "@polymer/app-layout/app-toolbar/app-toolbar";
@@ -6,23 +8,21 @@ import "@polymer/iron-flex-layout/iron-flex-layout-classes";
import "@polymer/iron-pages/iron-pages";
import "@polymer/paper-tabs/paper-tab";
import "@polymer/paper-tabs/paper-tabs";
-import { html } from "@polymer/polymer/lib/utils/html-tag";
-import { PolymerElement } from "@polymer/polymer/polymer-element";
-import "../components/ha-cards";
-import "../components/ha-icon";
-import "../components/ha-menu-button";
-import "../components/ha-start-voice-button";
+import "../../components/ha-cards";
+import "../../components/ha-icon";
+import "../../components/ha-menu-button";
+import "../../components/ha-start-voice-button";
-import "./ha-app-layout";
+import "../../layouts/ha-app-layout";
-import extractViews from "../common/entity/extract_views";
-import getViewEntities from "../common/entity/get_view_entities";
-import computeStateName from "../common/entity/compute_state_name";
-import computeStateDomain from "../common/entity/compute_state_domain";
-import computeLocationName from "../common/config/location_name";
-import NavigateMixin from "../mixins/navigate-mixin";
-import EventsMixin from "../mixins/events-mixin";
+import extractViews from "../../common/entity/extract_views";
+import getViewEntities from "../../common/entity/get_view_entities";
+import computeStateName from "../../common/entity/compute_state_name";
+import computeStateDomain from "../../common/entity/compute_state_domain";
+import computeLocationName from "../../common/config/location_name";
+import NavigateMixin from "../../mixins/navigate-mixin";
+import EventsMixin from "../../mixins/events-mixin";
const DEFAULT_VIEW_ENTITY_ID = "group.default_view";
const ALWAYS_SHOW_DOMAIN = ["persistent_notification", "configurator"];
@@ -46,6 +46,10 @@ class PartialCards extends EventsMixin(NavigateMixin(PolymerElement)) {
background-color: var(--secondary-background-color, #e5e5e5);
}
+ iron-pages {
+ height: 100%;
+ }
+
paper-tabs {
margin-left: 12px;
--paper-tabs-selection-bar-color: var(--text-primary-color, #fff);
@@ -205,7 +209,7 @@ class PartialCards extends EventsMixin(NavigateMixin(PolymerElement)) {
showTabs: {
type: Boolean,
- value: false,
+ value: true,
},
};
}
@@ -416,4 +420,4 @@ class PartialCards extends EventsMixin(NavigateMixin(PolymerElement)) {
}
}
-customElements.define("partial-cards", PartialCards);
+customElements.define("ha-panel-states", PartialCards);