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);