mirror of
https://github.com/home-assistant/frontend.git
synced 2025-08-03 14:37:47 +00:00
Make Lovelace the default! (#2181)
* Make Lovelace the default! * Move states panel to panels
This commit is contained in:
parent
16cc3adcff
commit
0f895fd3a1
@ -159,7 +159,6 @@ class HaCards extends PolymerElement {
|
|||||||
},
|
},
|
||||||
|
|
||||||
states: Object,
|
states: Object,
|
||||||
panelVisible: Boolean,
|
|
||||||
|
|
||||||
viewVisible: {
|
viewVisible: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
@ -173,19 +172,11 @@ class HaCards extends PolymerElement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static get observers() {
|
static get observers() {
|
||||||
return [
|
return ["updateCards(columns, states, viewVisible, orderedGroupEntities)"];
|
||||||
"updateCards(columns, states, panelVisible, viewVisible, orderedGroupEntities)",
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
updateCards(
|
updateCards(columns, states, viewVisible, orderedGroupEntities) {
|
||||||
columns,
|
if (!viewVisible) {
|
||||||
states,
|
|
||||||
panelVisible,
|
|
||||||
viewVisible,
|
|
||||||
orderedGroupEntities
|
|
||||||
) {
|
|
||||||
if (!panelVisible || !viewVisible) {
|
|
||||||
if (this.$.main.parentNode) {
|
if (this.$.main.parentNode) {
|
||||||
this.$.main._parentNode = this.$.main.parentNode;
|
this.$.main._parentNode = this.$.main.parentNode;
|
||||||
this.$.main.parentNode.removeChild(this.$.main);
|
this.$.main.parentNode.removeChild(this.$.main);
|
||||||
@ -200,7 +191,7 @@ class HaCards extends PolymerElement {
|
|||||||
timeOut.after(10),
|
timeOut.after(10),
|
||||||
() => {
|
() => {
|
||||||
// Things might have changed since it got scheduled.
|
// Things might have changed since it got scheduled.
|
||||||
if (this.panelVisible && this.viewVisible) {
|
if (this.viewVisible) {
|
||||||
this.cards = this.computeCards(columns, states, orderedGroupEntities);
|
this.cards = this.computeCards(columns, states, orderedGroupEntities);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -94,7 +94,7 @@ class HomeAssistant extends ext(PolymerElement, [
|
|||||||
}
|
}
|
||||||
|
|
||||||
computePanelUrl(routeData) {
|
computePanelUrl(routeData) {
|
||||||
return (routeData && routeData.panel) || "states";
|
return (routeData && routeData.panel) || "lovelace";
|
||||||
}
|
}
|
||||||
|
|
||||||
panelUrlChanged(newPanelUrl) {
|
panelUrlChanged(newPanelUrl) {
|
||||||
|
@ -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-layout/app-drawer/app-drawer";
|
||||||
import "@polymer/app-route/app-route";
|
import "@polymer/app-route/app-route";
|
||||||
import "@polymer/iron-media-query/iron-media-query";
|
import "@polymer/iron-media-query/iron-media-query";
|
||||||
import "@polymer/iron-pages/iron-pages";
|
|
||||||
import { html } from "@polymer/polymer/lib/utils/html-tag";
|
import { html } from "@polymer/polymer/lib/utils/html-tag";
|
||||||
import { PolymerElement } from "@polymer/polymer/polymer-element";
|
import { PolymerElement } from "@polymer/polymer/polymer-element";
|
||||||
|
|
||||||
import "../util/ha-url-sync";
|
import "../util/ha-url-sync";
|
||||||
|
|
||||||
import "./partial-cards";
|
|
||||||
import "./partial-panel-resolver";
|
import "./partial-panel-resolver";
|
||||||
import EventsMixin from "../mixins/events-mixin";
|
import EventsMixin from "../mixins/events-mixin";
|
||||||
import NavigateMixin from "../mixins/navigate-mixin";
|
import NavigateMixin from "../mixins/navigate-mixin";
|
||||||
@ -31,21 +29,16 @@ class HomeAssistantMain extends NavigateMixin(EventsMixin(PolymerElement)) {
|
|||||||
:host([rtl]) {
|
:host([rtl]) {
|
||||||
direction: rtl;
|
direction: rtl;
|
||||||
}
|
}
|
||||||
iron-pages,
|
partial-panel-resolver,
|
||||||
ha-sidebar {
|
ha-sidebar {
|
||||||
/* allow a light tap highlight on the actual interface elements */
|
/* allow a light tap highlight on the actual interface elements */
|
||||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0.1);
|
-webkit-tap-highlight-color: rgba(0, 0, 0, 0.1);
|
||||||
}
|
}
|
||||||
iron-pages {
|
partial-panel-resolver {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<ha-url-sync hass="[[hass]]"></ha-url-sync>
|
<ha-url-sync hass="[[hass]]"></ha-url-sync>
|
||||||
<app-route
|
|
||||||
route="{{route}}"
|
|
||||||
pattern="/states"
|
|
||||||
tail="{{statesRouteTail}}"
|
|
||||||
></app-route>
|
|
||||||
<ha-voice-command-dialog
|
<ha-voice-command-dialog
|
||||||
hass="[[hass]]"
|
hass="[[hass]]"
|
||||||
id="voiceDialog"
|
id="voiceDialog"
|
||||||
@ -73,29 +66,12 @@ class HomeAssistantMain extends NavigateMixin(EventsMixin(PolymerElement)) {
|
|||||||
></ha-sidebar>
|
></ha-sidebar>
|
||||||
</app-drawer>
|
</app-drawer>
|
||||||
|
|
||||||
<iron-pages
|
|
||||||
attr-for-selected="id"
|
|
||||||
fallback-selection="panel-resolver"
|
|
||||||
selected="[[hass.panelUrl]]"
|
|
||||||
selected-attribute="panel-visible"
|
|
||||||
>
|
|
||||||
<partial-cards
|
|
||||||
id="states"
|
|
||||||
narrow="[[narrow]]"
|
|
||||||
hass="[[hass]]"
|
|
||||||
show-menu="[[dockedSidebar]]"
|
|
||||||
route="[[statesRouteTail]]"
|
|
||||||
show-tabs=""
|
|
||||||
></partial-cards>
|
|
||||||
|
|
||||||
<partial-panel-resolver
|
<partial-panel-resolver
|
||||||
id="panel-resolver"
|
|
||||||
narrow="[[narrow]]"
|
narrow="[[narrow]]"
|
||||||
hass="[[hass]]"
|
hass="[[hass]]"
|
||||||
route="[[route]]"
|
route="[[route]]"
|
||||||
show-menu="[[dockedSidebar]]"
|
show-menu="[[dockedSidebar]]"
|
||||||
></partial-panel-resolver>
|
></partial-panel-resolver>
|
||||||
</iron-pages>
|
|
||||||
</app-drawer-layout>
|
</app-drawer-layout>
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
@ -108,7 +84,6 @@ class HomeAssistantMain extends NavigateMixin(EventsMixin(PolymerElement)) {
|
|||||||
type: Object,
|
type: Object,
|
||||||
observer: "_routeChanged",
|
observer: "_routeChanged",
|
||||||
},
|
},
|
||||||
statesRouteTail: Object,
|
|
||||||
dockedSidebar: {
|
dockedSidebar: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
computed: "computeDockedSidebar(hass)",
|
computed: "computeDockedSidebar(hass)",
|
||||||
@ -123,7 +98,7 @@ class HomeAssistantMain extends NavigateMixin(EventsMixin(PolymerElement)) {
|
|||||||
|
|
||||||
ready() {
|
ready() {
|
||||||
super.ready();
|
super.ready();
|
||||||
this._defaultPage = localStorage.defaultPage || "states";
|
this._defaultPage = localStorage.defaultPage || "lovelace";
|
||||||
this.addEventListener("hass-open-menu", () => this.handleOpenMenu());
|
this.addEventListener("hass-open-menu", () => this.handleOpenMenu());
|
||||||
this.addEventListener("hass-close-menu", () => this.handleCloseMenu());
|
this.addEventListener("hass-close-menu", () => this.handleCloseMenu());
|
||||||
this.addEventListener("hass-start-voice", (ev) =>
|
this.addEventListener("hass-start-voice", (ev) =>
|
||||||
@ -160,7 +135,7 @@ class HomeAssistantMain extends NavigateMixin(EventsMixin(PolymerElement)) {
|
|||||||
connectedCallback() {
|
connectedCallback() {
|
||||||
super.connectedCallback();
|
super.connectedCallback();
|
||||||
if (document.location.pathname === "/") {
|
if (document.location.pathname === "/") {
|
||||||
this.navigate(`/${localStorage.defaultPage || "states"}`, true);
|
this.navigate(`/${localStorage.defaultPage || "lovelace"}`, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -54,6 +54,10 @@ function ensureLoaded(panel) {
|
|||||||
imported = import(/* webpackChunkName: "panel-lovelace" */ "../panels/lovelace/ha-panel-lovelace");
|
imported = import(/* webpackChunkName: "panel-lovelace" */ "../panels/lovelace/ha-panel-lovelace");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case "states":
|
||||||
|
imported = import(/* webpackChunkName: "panel-states" */ "../panels/states/ha-panel-states");
|
||||||
|
break;
|
||||||
|
|
||||||
case "history":
|
case "history":
|
||||||
imported = import(/* webpackChunkName: "panel-history" */ "../panels/history/ha-panel-history");
|
imported = import(/* webpackChunkName: "panel-history" */ "../panels/history/ha-panel-history");
|
||||||
break;
|
break;
|
||||||
|
@ -164,7 +164,7 @@ class HaPanelDevInfo extends EventsMixin(LocalizeMixin(PolymerElement)) {
|
|||||||
</template>
|
</template>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<a href='/lovelace'>Try out the new Lovelace UI (experimental)</a>
|
<a href='/states'>Go back to the old states page</a>
|
||||||
<div id="love" style="cursor:pointer;" on-click="_toggleDefaultPage">[[_defaultPageText()]]</div
|
<div id="love" style="cursor:pointer;" on-click="_toggleDefaultPage">[[_defaultPageText()]]</div
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
@ -364,15 +364,15 @@ class HaPanelDevInfo extends EventsMixin(LocalizeMixin(PolymerElement)) {
|
|||||||
|
|
||||||
_defaultPageText() {
|
_defaultPageText() {
|
||||||
return `>> ${
|
return `>> ${
|
||||||
localStorage.defaultPage === "lovelace" ? "Remove" : "Set"
|
localStorage.defaultPage === "states" ? "Remove" : "Set"
|
||||||
} lovelace as default page on this device <<`;
|
} the old states as default page on this device <<`;
|
||||||
}
|
}
|
||||||
|
|
||||||
_toggleDefaultPage() {
|
_toggleDefaultPage() {
|
||||||
if (localStorage.defaultPage === "lovelace") {
|
if (localStorage.defaultPage === "states") {
|
||||||
delete localStorage.defaultPage;
|
delete localStorage.defaultPage;
|
||||||
} else {
|
} else {
|
||||||
localStorage.defaultPage = "lovelace";
|
localStorage.defaultPage = "states";
|
||||||
}
|
}
|
||||||
this.$.love.innerText = this._defaultPageText();
|
this.$.love.innerText = this._defaultPageText();
|
||||||
}
|
}
|
||||||
|
@ -1,18 +1,18 @@
|
|||||||
import { html } from "@polymer/polymer/lib/utils/html-tag";
|
import { html } from "@polymer/polymer/lib/utils/html-tag";
|
||||||
import { PolymerElement } from "@polymer/polymer/polymer-element";
|
import { PolymerElement } from "@polymer/polymer/polymer-element";
|
||||||
|
|
||||||
import "../../layouts/partial-cards";
|
import "../states/ha-panel-states";
|
||||||
|
|
||||||
class HaPanelKiosk extends PolymerElement {
|
class HaPanelKiosk extends PolymerElement {
|
||||||
static get template() {
|
static get template() {
|
||||||
return html`
|
return html`
|
||||||
<partial-cards
|
<ha-panel-states
|
||||||
id="kiosk-states"
|
id="kiosk-states"
|
||||||
hass="[[hass]]"
|
hass="[[hass]]"
|
||||||
show-menu
|
show-menu
|
||||||
route="[[route]]"
|
route="[[route]]"
|
||||||
panel-visible
|
panel-visible
|
||||||
></partial-cards>
|
></ha-panel-states>
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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-header/app-header";
|
||||||
import "@polymer/app-layout/app-scroll-effects/effects/waterfall";
|
import "@polymer/app-layout/app-scroll-effects/effects/waterfall";
|
||||||
import "@polymer/app-layout/app-toolbar/app-toolbar";
|
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/iron-pages/iron-pages";
|
||||||
import "@polymer/paper-tabs/paper-tab";
|
import "@polymer/paper-tabs/paper-tab";
|
||||||
import "@polymer/paper-tabs/paper-tabs";
|
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-cards";
|
||||||
import "../components/ha-icon";
|
import "../../components/ha-icon";
|
||||||
import "../components/ha-menu-button";
|
import "../../components/ha-menu-button";
|
||||||
import "../components/ha-start-voice-button";
|
import "../../components/ha-start-voice-button";
|
||||||
|
|
||||||
import "./ha-app-layout";
|
import "../../layouts/ha-app-layout";
|
||||||
|
|
||||||
import extractViews from "../common/entity/extract_views";
|
import extractViews from "../../common/entity/extract_views";
|
||||||
import getViewEntities from "../common/entity/get_view_entities";
|
import getViewEntities from "../../common/entity/get_view_entities";
|
||||||
import computeStateName from "../common/entity/compute_state_name";
|
import computeStateName from "../../common/entity/compute_state_name";
|
||||||
import computeStateDomain from "../common/entity/compute_state_domain";
|
import computeStateDomain from "../../common/entity/compute_state_domain";
|
||||||
import computeLocationName from "../common/config/location_name";
|
import computeLocationName from "../../common/config/location_name";
|
||||||
import NavigateMixin from "../mixins/navigate-mixin";
|
import NavigateMixin from "../../mixins/navigate-mixin";
|
||||||
import EventsMixin from "../mixins/events-mixin";
|
import EventsMixin from "../../mixins/events-mixin";
|
||||||
|
|
||||||
const DEFAULT_VIEW_ENTITY_ID = "group.default_view";
|
const DEFAULT_VIEW_ENTITY_ID = "group.default_view";
|
||||||
const ALWAYS_SHOW_DOMAIN = ["persistent_notification", "configurator"];
|
const ALWAYS_SHOW_DOMAIN = ["persistent_notification", "configurator"];
|
||||||
@ -46,6 +46,10 @@ class PartialCards extends EventsMixin(NavigateMixin(PolymerElement)) {
|
|||||||
background-color: var(--secondary-background-color, #e5e5e5);
|
background-color: var(--secondary-background-color, #e5e5e5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
iron-pages {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
paper-tabs {
|
paper-tabs {
|
||||||
margin-left: 12px;
|
margin-left: 12px;
|
||||||
--paper-tabs-selection-bar-color: var(--text-primary-color, #fff);
|
--paper-tabs-selection-bar-color: var(--text-primary-color, #fff);
|
||||||
@ -205,7 +209,7 @@ class PartialCards extends EventsMixin(NavigateMixin(PolymerElement)) {
|
|||||||
|
|
||||||
showTabs: {
|
showTabs: {
|
||||||
type: Boolean,
|
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);
|
Loading…
x
Reference in New Issue
Block a user