Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge 20181121.0 to master #2077

Merged
merged 70 commits into from
Nov 21, 2018
Merged
Changes from 1 commit
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
f489d88
Revert RTL PR (#1975)
zsarnett Nov 3, 2018
4810042
Hide state if its unknown e.g. the climate entity does not have one (…
schmic Nov 3, 2018
bcbf0ba
add vscode extension recommondations (#1978)
schmic Nov 3, 2018
1ca2424
Convert auth to TS (#1976)
balloob Nov 4, 2018
e5fe295
Split up cloud card (#1983)
balloob Nov 5, 2018
cf19ceb
Filter out non number states instead of assigning them 0 (#1987)
kalkih Nov 5, 2018
856ef34
<path> error fix & literals (#1993)
kalkih Nov 5, 2018
cdb2093
Ts all the tests (#1998)
balloob Nov 6, 2018
935639e
Add getElementConfig to Glance + Add Form UI for updating YAML (#1944)
zsarnett Nov 6, 2018
6432207
New Card: Shopping List (#1970)
iantrich Nov 6, 2018
c10e409
Convert cover-row to TypeScript/LitElement (#1933)
iantrich Nov 6, 2018
5891a6e
Fix for thermostats without current temperature (#1979)
schmic Nov 6, 2018
92af45d
Lint
balloob Nov 6, 2018
54e4375
Make conditional not take up space in stacks when hidden (#1999)
thomasloven Nov 6, 2018
e2b9893
Expose entities for Google/Alexa (#680)
balloob Nov 6, 2018
14b959b
Fix cover showing error
balloob Nov 6, 2018
9ce74e2
Convert hui-toggle-entity-row to TypeScript/LitElement (#1939)
iantrich Nov 7, 2018
f971995
Convert call-service to TypeScript (#1985)
iantrich Nov 7, 2018
7c2135f
Fix iframe aspect_ratio (#2004)
iantrich Nov 7, 2018
a58a324
Format html (#2006)
balloob Nov 7, 2018
d31cea7
Update translations
balloob Nov 7, 2018
10092dc
Bumped version to 2018117.0
balloob Nov 7, 2018
9c735bb
Merge branch 'master' into dev
balloob Nov 7, 2018
c1e3259
Bumped version to 20181107.0
balloob Nov 7, 2018
a26a372
Use non-forked version of fecha
balloob Nov 7, 2018
787ea88
Add text color to error row (#2007)
balloob Nov 7, 2018
59a681f
Convert hui-lock-entity-row to TypeScript/LitElement (#2022)
iantrich Nov 8, 2018
4a893d9
Convert hui-script-entity-row to TypeScript/LitElement (#2020)
iantrich Nov 8, 2018
ad5f815
Convert hui-scene-entity-row to TypeScript/LitElement (#2021)
iantrich Nov 8, 2018
9596f73
Convert hui-text-entity-row to TypeScript/LitElement (#2017)
iantrich Nov 8, 2018
6c44a92
Convert hui-group-entity-row to TypeScript/LitElement (#2015)
iantrich Nov 8, 2018
81e1e5b
Fix link color in persistent notification (#2023)
balloob Nov 8, 2018
56bdb6e
Fix fetching sub
balloob Nov 8, 2018
cb640c2
Convert hui-picture-card to TypeScript/LitElement (#2030)
iantrich Nov 9, 2018
9c2b85d
Add checked item section to shopping-list-card (#2005)
iantrich Nov 9, 2018
9f55678
Timezone support for displaying header with date in logbook (#2026)
Anonym-tsk Nov 9, 2018
e580dbe
Fix int in ha-form (#2033)
balloob Nov 9, 2018
efbd97f
Add clearing of checked items to shopping-list-card (#2034)
iantrich Nov 10, 2018
1f0c729
Upgrade Lit (#2032)
balloob Nov 10, 2018
65bd7fd
Update translations
balloob Nov 11, 2018
2076949
Glance fix (#2040)
zsarnett Nov 12, 2018
d974d5d
Fix hold_action not working on chrome for android (#2011)
thomasloven Nov 11, 2018
239ec5f
Ability to add items to shopping-list-card (#2035)
iantrich Nov 11, 2018
b533e4d
Bumped version to 20181112.0
balloob Nov 12, 2018
4407da9
Remove extra >
balloob Nov 13, 2018
8a9762d
Add icon for manual mode (#2036)
TomMini Nov 14, 2018
adb39fd
Update Lovelace Thermostat Card to include all supported thermostat m…
callifo Nov 14, 2018
8c2a2fc
Remove extra > (#2062)
jackwilsdon Nov 17, 2018
b1a50aa
Fix hassio develop script
balloob Nov 18, 2018
f92f89e
Convert compute functions to TypeScript (#2055)
iantrich Nov 18, 2018
1bb62bf
Only add a separating colon if there is a valid prefix and suffix (#2…
jackwilsdon Nov 19, 2018
9a9986c
Flatline fix for Sensor Cards (#2064)
Petro31 Nov 19, 2018
0bb85bc
Added migrate dialog when card has no ID (#2008)
bramkragten Nov 19, 2018
773711a
Update Hassio with security options (#2067)
bramkragten Nov 20, 2018
2058e0d
Fix gz build
pvizeli Nov 20, 2018
ef2aa2e
Picture Glance Conversion to TS (#2029)
zsarnett Nov 20, 2018
07cf114
Improve sensor graph algorithm (#2069)
kalkih Nov 20, 2018
c20a285
Pin Lit-HTML and Lit-Element (#2070)
balloob Nov 20, 2018
b8f048d
Convert hui-input-text-entity-row to TypeScript/LitElement (#2050)
iantrich Nov 20, 2018
a9704b1
Convert hui-input-select-entity-row to TypeScript/LitElement (#2048)
iantrich Nov 20, 2018
5da16db
RTL support (POC) (#2014)
rhayun Nov 20, 2018
ba5d224
Gen MDI icons during hassio build
balloob Nov 20, 2018
c01bd57
Fix compression hassio build
balloob Nov 20, 2018
2ca3a78
Allow Google unlocking locks (#2073)
balloob Nov 20, 2018
86e501f
Convert retrieval of items in shopping-list to websockets (#2041)
iantrich Nov 21, 2018
49542c4
Entities Card UI Editor (#2072)
zsarnett Nov 21, 2018
39819c5
Hassio: Fix download snapshot (#2071)
bramkragten Nov 21, 2018
f72a2b7
Merge remote-tracking branch 'origin/master' into dev
balloob Nov 21, 2018
e4dc188
Update translations
balloob Nov 21, 2018
cbb703e
Bumped version to 20181121.0
balloob Nov 21, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Entities Card UI Editor (#2072)
* Entity Card ui + extras

* Travis Fix

* Bram already has this in  another PR
zsarnett authored and balloob committed Nov 21, 2018
commit 49542c49facff88afcb9a707667da1cc3b4f9c67
12 changes: 8 additions & 4 deletions src/panels/lovelace/cards/hui-entities-card.ts
Original file line number Diff line number Diff line change
@@ -14,22 +14,22 @@ import { DOMAINS_HIDE_MORE_INFO } from "../../../common/const";
import { hassLocalizeLitMixin } from "../../../mixins/lit-localize-mixin";
import { HomeAssistant } from "../../../types";
import { EntityConfig, EntityRow } from "../entity-rows/types";
import { LovelaceCard, LovelaceConfig } from "../types";
import { LovelaceCard, LovelaceConfig, LovelaceCardEditor } from "../types";
import processConfigEntities from "../common/process-config-entities";
import createRowElement from "../common/create-row-element";
import computeDomain from "../../../common/entity/compute_domain";
import applyThemesOnElement from "../../../common/dom/apply_themes_on_element";

interface ConfigEntity extends EntityConfig {
export interface ConfigEntity extends EntityConfig {
type?: string;
secondary_info: "entity-id" | "last-changed";
secondary_info?: "entity-id" | "last-changed";
action_name?: string;
service?: string;
service_data?: object;
url?: string;
}

interface Config extends LovelaceConfig {
export interface Config extends LovelaceConfig {
show_header_toggle?: boolean;
title?: string;
entities: ConfigEntity[];
@@ -38,6 +38,10 @@ interface Config extends LovelaceConfig {

class HuiEntitiesCard extends hassLocalizeLitMixin(LitElement)
implements LovelaceCard {
public static async getConfigElement(): Promise<LovelaceCardEditor> {
await import("../editor/config-elements/hui-entities-card-editor");
return document.createElement("hui-entities-card-editor");
}
protected _hass?: HomeAssistant;
protected _config?: Config;
protected _configEntities?: ConfigEntity[];
14 changes: 6 additions & 8 deletions src/panels/lovelace/cards/hui-glance-card.ts
Original file line number Diff line number Diff line change
@@ -12,6 +12,7 @@ import { hassLocalizeLitMixin } from "../../../mixins/lit-localize-mixin";
import { HomeAssistant } from "../../../types";
import { LovelaceCard, LovelaceConfig, LovelaceCardEditor } from "../types";
import { longPress } from "../common/directives/long-press-directive";
import { EntityConfig } from "../entity-rows/types";

import computeStateDisplay from "../../../common/entity/compute_state_display";
import computeStateName from "../../../common/entity/compute_state_name";
@@ -23,10 +24,7 @@ import "../../../components/entity/state-badge";
import "../../../components/ha-card";
import "../../../components/ha-icon";

export interface EntityConfig {
name?: string;
icon?: string;
entity: string;
export interface ConfigEntity extends EntityConfig {
tap_action?: "toggle" | "call-service" | "more-info";
hold_action?: "toggle" | "call-service" | "more-info";
service?: string;
@@ -38,20 +36,20 @@ export interface Config extends LovelaceConfig {
show_state?: boolean;
title?: string;
theme?: string;
entities: EntityConfig[];
entities: ConfigEntity[];
columns?: number;
}

export class HuiGlanceCard extends hassLocalizeLitMixin(LitElement)
implements LovelaceCard {
public static async getConfigElement(): Promise<LovelaceCardEditor> {
await import("../editor/hui-glance-card-editor");
await import("../editor/config-elements/hui-glance-card-editor");
return document.createElement("hui-glance-card-editor");
}

public hass?: HomeAssistant;
private _config?: Config;
private _configEntities?: EntityConfig[];
private _configEntities?: ConfigEntity[];

static get properties(): PropertyDeclarations {
return {
@@ -242,7 +240,7 @@ export class HuiGlanceCard extends hassLocalizeLitMixin(LitElement)
}

private handleClick(ev: MouseEvent, hold: boolean): void {
const config = (ev.currentTarget as any).entityConf as EntityConfig;
const config = (ev.currentTarget as any).entityConf as ConfigEntity;
const entityId = config.entity;
const action = hold ? config.hold_action : config.tap_action || "more-info";
switch (action) {
115 changes: 115 additions & 0 deletions src/panels/lovelace/editor/config-elements/hui-entities-card-editor.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
import { html, LitElement, PropertyDeclarations } from "@polymer/lit-element";
import { TemplateResult } from "lit-html";
import "@polymer/paper-checkbox/paper-checkbox";
import "@polymer/paper-dropdown-menu/paper-dropdown-menu";
import "@polymer/paper-item/paper-item";
import "@polymer/paper-listbox/paper-listbox";

import { processEditorEntities } from "../process-editor-entities";
import { EntitiesEditorEvent, EditorTarget } from "../types";
import { hassLocalizeLitMixin } from "../../../../mixins/lit-localize-mixin";
import { HomeAssistant } from "../../../../types";
import { LovelaceCardEditor } from "../../types";
import { fireEvent } from "../../../../common/dom/fire_event";
import { Config, ConfigEntity } from "../../cards/hui-entities-card";

import "../../../../components/entity/state-badge";
import "../../components/hui-theme-select-editor";
import "../../components/hui-entity-editor";
import "../../../../components/ha-card";
import "../../../../components/ha-icon";

export class HuiEntitiesCardEditor extends hassLocalizeLitMixin(LitElement)
implements LovelaceCardEditor {
public hass?: HomeAssistant;
private _config?: Config;
private _configEntities?: ConfigEntity[];

static get properties(): PropertyDeclarations {
return {
hass: {},
_config: {},
_configEntities: {},
};
}

public setConfig(config: Config): void {
this._config = { type: "entities", ...config };
this._configEntities = processEditorEntities(config.entities);
}

protected render(): TemplateResult {
if (!this.hass) {
return html``;
}

return html`
${this.renderStyle()}
<paper-input
label="Title"
value="${this._config!.title || ""}"
.configValue="${"title"}"
@value-changed="${this._valueChanged}"
></paper-input>
<hui-theme-select-editor
.hass="${this.hass}"
.value="${this._config!.theme}"
.configValue="${"theme"}"
@change="${this._valueChanged}"
></hui-theme-select-editor>
<hui-entity-editor
.hass="${this.hass}"
.entities="${this._configEntities}"
@change="${this._valueChanged}"
></hui-entity-editor>
<paper-checkbox
?checked="${this._config!.show_header_toggle !== false}"
.configValue="${"show_header_toggle"}"
@change="${this._valueChanged}"
>Show Header Toggle?</paper-checkbox
>
`;
}

private _valueChanged(ev: EntitiesEditorEvent): void {
if (!this._config || !this.hass) {
return;
}

const target = ev.target! as EditorTarget;
let newConfig = this._config;

if (ev.detail && ev.detail.entities) {
newConfig.entities = ev.detail.entities;
} else {
newConfig = {
...this._config,
[target.configValue!]:
target.checked !== undefined ? target.checked : target.value,
};
}

fireEvent(this, "config-changed", {
config: newConfig,
});
}

private renderStyle(): TemplateResult {
return html`
<style>
paper-checkbox {
display: block;
padding-top: 16px;
}
</style>
`;
}
}

declare global {
interface HTMLElementTagNameMap {
"hui-entities-card-editor": HuiEntitiesCardEditor;
}
}

customElements.define("hui-entities-card-editor", HuiEntitiesCardEditor);
Original file line number Diff line number Diff line change
@@ -5,25 +5,25 @@ import "@polymer/paper-dropdown-menu/paper-dropdown-menu";
import "@polymer/paper-item/paper-item";
import "@polymer/paper-listbox/paper-listbox";

import { processEditorEntities } from "./process-editor-entities";
import { EntitiesEditorEvent, EditorTarget } from "./types";
import { hassLocalizeLitMixin } from "../../../mixins/lit-localize-mixin";
import { HomeAssistant } from "../../../types";
import { LovelaceCardEditor } from "../types";
import { fireEvent } from "../../../common/dom/fire_event";
import { Config, EntityConfig } from "../cards/hui-glance-card";
import { processEditorEntities } from "../process-editor-entities";
import { EntitiesEditorEvent, EditorTarget } from "../types";
import { hassLocalizeLitMixin } from "../../../../mixins/lit-localize-mixin";
import { HomeAssistant } from "../../../../types";
import { LovelaceCardEditor } from "../../types";
import { fireEvent } from "../../../../common/dom/fire_event";
import { Config, ConfigEntity } from "../../cards/hui-glance-card";

import "../../../components/entity/state-badge";
import "../components/hui-theme-select-editor";
import "../components/hui-entity-editor";
import "../../../components/ha-card";
import "../../../components/ha-icon";
import "../../../../components/entity/state-badge";
import "../../components/hui-theme-select-editor";
import "../../components/hui-entity-editor";
import "../../../../components/ha-card";
import "../../../../components/ha-icon";

export class HuiGlanceCardEditor extends hassLocalizeLitMixin(LitElement)
implements LovelaceCardEditor {
public hass?: HomeAssistant;
private _config?: Config;
private _configEntities?: EntityConfig[];
private _configEntities?: ConfigEntity[];

static get properties(): PropertyDeclarations {
return {