Merge pull request #2971 from home-assistant/dev

20190318.0
This commit is contained in:
Paulus Schoutsen 2019-03-18 16:54:04 -07:00 committed by GitHub
commit 42117fcba0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 68 additions and 68 deletions

View File

@ -106,12 +106,12 @@ class HassioRepositoriesEditor extends PolymerElement {
computeRemoveRepoData(repoList, url) { computeRemoveRepoData(repoList, url) {
const list = repoList const list = repoList
.filter((repo) => repo.url !== url) .filter((repo) => repo.url !== url)
.map((repo) => repo.url); .map((repo) => repo.source);
return { addons_repositories: list }; return { addons_repositories: list };
} }
computeAddRepoData(repoList, url) { computeAddRepoData(repoList, url) {
const list = repoList ? repoList.map((repo) => repo.url) : []; const list = repoList ? repoList.map((repo) => repo.source) : [];
list.push(url); list.push(url);
return { addons_repositories: list }; return { addons_repositories: list };
} }

View File

@ -1,41 +0,0 @@
import { html } from "@polymer/polymer/lib/utils/html-tag";
import { PolymerElement } from "@polymer/polymer/polymer-element";
import "./hassio-main";
import "./resources/hassio-icons";
class HassioApp extends PolymerElement {
static get template() {
return html`
<template is="dom-if" if="[[hass]]">
<hassio-main hass="[[hass]]" route="[[route]]"></hassio-main>
</template>
`;
}
static get properties() {
return {
hass: Object,
route: Object,
hassioPanel: {
type: Object,
value: window.parent.hassioPanel,
},
};
}
ready() {
super.ready();
window.setProperties = this.setProperties.bind(this);
this.addEventListener("location-changed", () => this._locationChanged());
this.addEventListener("hass-toggle-menu", (ev) =>
this.hassioPanel.fire("hass-toggle-menu", ev.detail)
);
}
_locationChanged() {
this.hassioPanel.navigate(window.location.pathname);
}
}
customElements.define("hassio-app", HassioApp);

View File

@ -79,6 +79,17 @@ class HassioMain extends EventsMixin(NavigateMixin(PolymerElement)) {
super.ready(); super.ready();
applyThemesOnElement(this, this.hass.themes, this.hass.selectedTheme, true); applyThemesOnElement(this, this.hass.themes, this.hass.selectedTheme, true);
this.addEventListener("hass-api-called", (ev) => this.apiCalled(ev)); this.addEventListener("hass-api-called", (ev) => this.apiCalled(ev));
// Paulus - March 17, 2019
// We went to a single hass-toggle-menu event in HA 0.90. However, the
// supervisor UI can also run under older versions of Home Assistant.
// So here we are going to translate toggle events into the appropriate
// open and close events. These events are a no-op in newer versions of
// Home Assistant.
this.addEventListener("hass-toggle-menu", () => {
window.parent.customPanel.fire(
this.hass.dockedSidebar ? "hass-close-menu" : "hass-open-menu"
);
});
} }
connectedCallback() { connectedCallback() {

View File

@ -1,4 +1,7 @@
const webpack = require("webpack");
const CompressionPlugin = require("compression-webpack-plugin"); const CompressionPlugin = require("compression-webpack-plugin");
const zopfli = require("@gfx/zopfli");
const config = require("./config.js"); const config = require("./config.js");
const { babelLoaderConfig } = require("../config/babel.js"); const { babelLoaderConfig } = require("../config/babel.js");
const webpackBase = require("../config/webpack.js"); const webpackBase = require("../config/webpack.js");
@ -30,11 +33,22 @@ module.exports = {
}, },
optimization: webpackBase.optimization(latestBuild), optimization: webpackBase.optimization(latestBuild),
plugins: [ plugins: [
new webpack.DefinePlugin({
__DEV__: JSON.stringify(!isProdBuild),
__DEMO__: false,
__BUILD__: JSON.stringify(latestBuild ? "latest" : "es5"),
"process.env.NODE_ENV": JSON.stringify(
isProdBuild ? "production" : "development"
),
}),
isProdBuild && isProdBuild &&
!isCI && !isCI &&
new CompressionPlugin({ new CompressionPlugin({
cache: true, cache: true,
exclude: [/\.js\.map$/, /\.LICENSE$/, /\.py$/, /\.txt$/], exclude: [/\.js\.map$/, /\.LICENSE$/, /\.py$/, /\.txt$/],
algorithm(input, compressionOptions, callback) {
return zopfli.gzip(input, compressionOptions, callback);
},
}), }),
].filter(Boolean), ].filter(Boolean),
resolve: { resolve: {

View File

@ -2,7 +2,7 @@ from setuptools import setup, find_packages
setup( setup(
name="home-assistant-frontend", name="home-assistant-frontend",
version="20190316.0", version="20190318.0",
description="The Home Assistant frontend", description="The Home Assistant frontend",
url="https://github.com/home-assistant/home-assistant-polymer", url="https://github.com/home-assistant/home-assistant-polymer",
author="The Home Assistant Authors", author="The Home Assistant Authors",

View File

@ -22,8 +22,11 @@ import { DEFAULT_PANEL } from "../common/const";
const computeUrl = (urlPath) => `/${urlPath}`; const computeUrl = (urlPath) => `/${urlPath}`;
const computePanels = (hass: HomeAssistant) => { const computePanels = (hass: HomeAssistant) => {
const isAdmin = hass.user.is_admin;
const panels = hass.panels; const panels = hass.panels;
if (!panels) {
return [];
}
const isAdmin = hass.user.is_admin;
const sortValue = { const sortValue = {
map: 1, map: 1,
logbook: 2, logbook: 2,

View File

@ -56,7 +56,7 @@ function initialize(panel, properties) {
const forwardEvent = (ev) => const forwardEvent = (ev) =>
window.parent.customPanel.fire(ev.type, ev.detail); window.parent.customPanel.fire(ev.type, ev.detail);
root.addEventListener("hass-toggle-menu", forwardEvent); root.addEventListener("hass-toggle-menu", forwardEvent);
root.addEventListener("location-changed", () => window.addEventListener("location-changed", () =>
window.parent.customPanel.navigate(window.location.pathname) window.parent.customPanel.navigate(window.location.pathname)
); );
setProperties(Object.assign({ panel }, properties)); setProperties(Object.assign({ panel }, properties));

View File

@ -80,7 +80,10 @@ class PartialPanelResolver extends HassRouterPage {
const oldHass = changedProps.get("hass") as this["hass"]; const oldHass = changedProps.get("hass") as this["hass"];
if (!oldHass || oldHass.panels !== this.hass!.panels) { if (
this.hass!.panels &&
(!oldHass || oldHass.panels !== this.hass!.panels)
) {
this._updateRoutes(); this._updateRoutes();
} }
} }

View File

@ -66,7 +66,7 @@ class HaConfigAreaRegistry extends LitElement {
"ui.panel.config.area_registry.picker.introduction2" "ui.panel.config.area_registry.picker.introduction2"
)} )}
</p> </p>
<a href="/config/integrations"> <a href="/config/integrations/dashboard">
${this.hass.localize( ${this.hass.localize(
"ui.panel.config.area_registry.picker.integrations_page" "ui.panel.config.area_registry.picker.integrations_page"
)} )}

View File

@ -81,8 +81,8 @@
"on": "Inseguro" "on": "Inseguro"
}, },
"presence": { "presence": {
"off": "Fuera de Casa", "off": "Fuera de casa",
"on": "Casa" "on": "En casa"
}, },
"battery": { "battery": {
"off": "Normal", "off": "Normal",
@ -169,7 +169,7 @@
"group": { "group": {
"off": "Apagado", "off": "Apagado",
"on": "Encendido", "on": "Encendido",
"home": "En Casa", "home": "En casa",
"not_home": "Fuera de Casa", "not_home": "Fuera de Casa",
"open": "Abierto", "open": "Abierto",
"opening": "Abriendo", "opening": "Abriendo",
@ -272,8 +272,8 @@
"paused": "pausado" "paused": "pausado"
}, },
"person": { "person": {
"home": "En Casa", "home": "En casa",
"not_home": "Fuera de Casa" "not_home": "Fuera de casa"
} }
}, },
"state_badge": { "state_badge": {
@ -284,9 +284,9 @@
"alarm_control_panel": { "alarm_control_panel": {
"armed": "Activado", "armed": "Activado",
"disarmed": "Desactivado", "disarmed": "Desactivado",
"armed_home": "Activado", "armed_home": "Activada",
"armed_away": "Activado", "armed_away": "Activada",
"armed_night": "Activado", "armed_night": "Activada",
"pending": "Pendiente", "pending": "Pendiente",
"arming": "Activando", "arming": "Activando",
"disarming": "Desarmar", "disarming": "Desarmar",
@ -294,8 +294,8 @@
"armed_custom_bypass": "Protegido" "armed_custom_bypass": "Protegido"
}, },
"device_tracker": { "device_tracker": {
"home": "En Casa", "home": "En casa",
"not_home": "Fuera de Casa" "not_home": "Fuera de casa"
}, },
"person": { "person": {
"home": "En casa", "home": "En casa",
@ -369,7 +369,7 @@
"caption": "Automatización", "caption": "Automatización",
"description": "Crear y editar automatizaciones", "description": "Crear y editar automatizaciones",
"picker": { "picker": {
"header": "Editor de automatización", "header": "Editor de automatizaciones",
"introduction": "El editor de automatización le permite crear y editar automatizaciones. Siga el enlace a continuación para leer las instrucciones y asegurarse de que haya configurado Home Assistant correctamente.", "introduction": "El editor de automatización le permite crear y editar automatizaciones. Siga el enlace a continuación para leer las instrucciones y asegurarse de que haya configurado Home Assistant correctamente.",
"pick_automation": "Elija la automatización a editar", "pick_automation": "Elija la automatización a editar",
"no_automations": "No pudimos encontrar ninguna automatización editable", "no_automations": "No pudimos encontrar ninguna automatización editable",
@ -606,7 +606,8 @@
"caption": "ZHA", "caption": "ZHA",
"description": "Gestión de red de Zigbee Home Automation", "description": "Gestión de red de Zigbee Home Automation",
"services": { "services": {
"reconfigure": "Reconfigure el dispositivo ZHA (dispositivo de curación). Use esto si tiene problemas con el dispositivo. Si el dispositivo en cuestión es un dispositivo alimentado por batería, asegúrese de que esté activado y acepte los comandos cuando utilice este servicio." "reconfigure": "Reconfigure el dispositivo ZHA (dispositivo de curación). Use esto si tiene problemas con el dispositivo. Si el dispositivo en cuestión es un dispositivo alimentado por batería, asegúrese de que esté activado y acepte los comandos cuando utilice este servicio.",
"updateDeviceName": "Establecer un nombre personalizado para este dispositivo en el registro de dispositivos."
} }
}, },
"area_registry": { "area_registry": {
@ -616,7 +617,9 @@
"header": "Registro de áreas", "header": "Registro de áreas",
"introduction": "Las áreas se utilizan para organizar donde están los dispositivos. Esta información se utilizará en todo Home Assistant para ayudarlo a organizar su interfaz, permisos e integraciones con otros sistemas.", "introduction": "Las áreas se utilizan para organizar donde están los dispositivos. Esta información se utilizará en todo Home Assistant para ayudarlo a organizar su interfaz, permisos e integraciones con otros sistemas.",
"introduction2": "Para colocar dispositivos en un área, use el enlace a continuación para navegar a la página de integraciones y luego haga clic en una integración configurada para acceder a las tarjetas del dispositivo.", "introduction2": "Para colocar dispositivos en un área, use el enlace a continuación para navegar a la página de integraciones y luego haga clic en una integración configurada para acceder a las tarjetas del dispositivo.",
"integrations_page": "Página de integraciones" "integrations_page": "Página de integraciones",
"no_areas": "¡Parece que aún no tienes áreas!",
"create_area": "CREAR AREA"
}, },
"no_areas": "¡Parece que aún no tienes áreas!", "no_areas": "¡Parece que aún no tienes áreas!",
"create_area": "CREAR AREA", "create_area": "CREAR AREA",
@ -830,11 +833,13 @@
"data": { "data": {
"name": "Nombre", "name": "Nombre",
"username": "Nombre de usuario", "username": "Nombre de usuario",
"password": "Contraseña" "password": "Contraseña",
"password_confirm": "Confirmar contraseña"
}, },
"create_account": "Crear una cuenta", "create_account": "Crear una cuenta",
"error": { "error": {
"required_fields": "Completar todos los campos requeridos" "required_fields": "Completar todos los campos requeridos",
"password_not_match": "Las contraseñas no coinciden"
} }
} }
}, },
@ -1156,5 +1161,10 @@
"auto": "Auto" "auto": "Auto"
} }
} }
},
"groups": {
"system-admin": "Administradores",
"system-users": "Usuarios",
"system-read-only": "Usuarios de solo lectura"
} }
} }

View File

@ -438,7 +438,7 @@
"zone": { "zone": {
"label": "Zone", "label": "Zone",
"entity": "Entitéit mam Standuert", "entity": "Entitéit mam Standuert",
"zone": "Strefa", "zone": "Zon",
"event": "Evenement:", "event": "Evenement:",
"enter": "Eran", "enter": "Eran",
"leave": "Verloossen" "leave": "Verloossen"
@ -479,7 +479,7 @@
"state": "Zoustand" "state": "Zoustand"
}, },
"numeric_state": { "numeric_state": {
"label": "Stan (numeryczny)", "label": "Numereschen Zoustand",
"above": "Iwwert", "above": "Iwwert",
"below": "Ënnert", "below": "Ënnert",
"value_template": "Wäerte Modell (optional)" "value_template": "Wäerte Modell (optional)"
@ -503,9 +503,9 @@
"before": "Virdrun" "before": "Virdrun"
}, },
"zone": { "zone": {
"label": "Strefa", "label": "Zon",
"entity": "Entitéit mam Standuert", "entity": "Entitéit mam Standuert",
"zone": "Strefa" "zone": "Zon"
} }
}, },
"learn_more": "Méi iwwert Konditioune liesen" "learn_more": "Méi iwwert Konditioune liesen"
@ -526,7 +526,7 @@
}, },
"delay": { "delay": {
"label": "Delai", "label": "Delai",
"delay": "Opóźnienie" "delay": "Délai"
}, },
"wait_template": { "wait_template": {
"label": "Waart", "label": "Waart",