mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-29 12:16:39 +00:00
Allow yaml in dev services (#3860)
* Allow yaml in dev services * remove json
This commit is contained in:
parent
74d1de7313
commit
4cf9472bf4
@ -3,6 +3,8 @@ import "@polymer/paper-input/paper-textarea";
|
|||||||
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 yaml from "js-yaml";
|
||||||
|
|
||||||
import { ENTITY_COMPONENT_DOMAINS } from "../../../data/entity";
|
import { ENTITY_COMPONENT_DOMAINS } from "../../../data/entity";
|
||||||
import "../../../components/entity/ha-entity-picker";
|
import "../../../components/entity/ha-entity-picker";
|
||||||
import "../../../components/ha-service-picker";
|
import "../../../components/ha-service-picker";
|
||||||
@ -109,7 +111,7 @@ class HaPanelDevService extends PolymerElement {
|
|||||||
</template>
|
</template>
|
||||||
<paper-textarea
|
<paper-textarea
|
||||||
always-float-label
|
always-float-label
|
||||||
label="Service Data (JSON, optional)"
|
label="Service Data (YAML, optional)"
|
||||||
value="{{serviceData}}"
|
value="{{serviceData}}"
|
||||||
autocapitalize="none"
|
autocapitalize="none"
|
||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
@ -119,7 +121,7 @@ class HaPanelDevService extends PolymerElement {
|
|||||||
Call Service
|
Call Service
|
||||||
</mwc-button>
|
</mwc-button>
|
||||||
<template is="dom-if" if="[[!validJSON]]">
|
<template is="dom-if" if="[[!validJSON]]">
|
||||||
<span class="error">Invalid JSON</span>
|
<span class="error">Invalid YAML</span>
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -249,7 +251,7 @@ class HaPanelDevService extends PolymerElement {
|
|||||||
|
|
||||||
_computeParsedServiceData(serviceData) {
|
_computeParsedServiceData(serviceData) {
|
||||||
try {
|
try {
|
||||||
return serviceData ? JSON.parse(serviceData) : {};
|
return serviceData ? yaml.safeLoad(serviceData) : {};
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
return ERROR_SENTINEL;
|
return ERROR_SENTINEL;
|
||||||
}
|
}
|
||||||
@ -283,17 +285,24 @@ class HaPanelDevService extends PolymerElement {
|
|||||||
_fillExampleData() {
|
_fillExampleData() {
|
||||||
const example = {};
|
const example = {};
|
||||||
this._attributes.forEach((attribute) => {
|
this._attributes.forEach((attribute) => {
|
||||||
example[attribute.key] = attribute.example;
|
if (attribute.example) {
|
||||||
|
let value = "";
|
||||||
|
try {
|
||||||
|
value = yaml.safeLoad(attribute.example);
|
||||||
|
} catch (err) {
|
||||||
|
value = attribute.example;
|
||||||
|
}
|
||||||
|
example[attribute.key] = value;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
this.serviceData = JSON.stringify(example, null, 2);
|
this.serviceData = yaml.safeDump(example);
|
||||||
}
|
}
|
||||||
|
|
||||||
_entityPicked(ev) {
|
_entityPicked(ev) {
|
||||||
this.serviceData = JSON.stringify(
|
this.serviceData = yaml.safeDump({
|
||||||
{ ...this.parsedJSON, entity_id: ev.target.value },
|
...this.parsedJSON,
|
||||||
null,
|
entity_id: ev.target.value,
|
||||||
2
|
});
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user