From c22586de8d28011742369edacbe7298bda1cbac9 Mon Sep 17 00:00:00 2001 From: Robbie Trencheny Date: Sun, 27 Nov 2016 17:02:50 -0500 Subject: [PATCH] Make valid attributes a table instead of raw JSON (#149) * Make valid attributes a table instead of raw JSON * Fix format issues * Fix comments --- panels/dev-service/ha-panel-dev-service.html | 84 +++++++++++++++++--- 1 file changed, 71 insertions(+), 13 deletions(-) diff --git a/panels/dev-service/ha-panel-dev-service.html b/panels/dev-service/ha-panel-dev-service.html index d2b24d4cc6..0e85c804b3 100644 --- a/panels/dev-service/ha-panel-dev-service.html +++ b/panels/dev-service/ha-panel-dev-service.html @@ -41,6 +41,27 @@ .header { @apply(--paper-font-title); } + + .attributes th { + text-align: left; + } + + .attributes tr { + vertical-align: top; + } + + .attributes tr:nth-child(even) { + background-color: #eee; + } + + .attributes td:nth-child(3) { + white-space: pre-wrap; + word-break: break-word; + } + + pre { + margin: 0; + } @@ -77,7 +98,40 @@ Call Service -
[[description]]
+ + + + +
@@ -122,9 +176,9 @@ Polymer({ value: '', }, - description: { - type: String, - computed: 'computeDescription(hass, domain, service)', + _attributes: { + type: Array, + computed: 'computeAttributesArray(hass, domain, service)', }, serviceDomains: { @@ -135,20 +189,24 @@ Polymer({ }, }, - computeDescription: function (hass, domain, service) { + computeAttributesArray: function (hass, domain, service) { return hass.reactor.evaluate([ hass.serviceGetters.entityMap, function (map) { if (map.has(domain) && map.get(domain).get('services').has(service)) { - return JSON.stringify( - map - .get(domain) - .get('services') - .get(service) - .toJS(), - null, 2); + return map + .get(domain) + .get('services') + .get(service) + .get('fields') + .map(function (field, key) { + var fieldCopy = field.toJS(); + fieldCopy.key = key; + return fieldCopy; + }) + .toArray(); } - return 'No description available'; + return []; }, ]); },