Closed ericmatte closed 5 years ago
TODO
comment in 0d895bda6b5faa81c7a3b2382888201cab963172 in #5. cc @ericmatte.Wow, really great job, quite an overhaul you've done, I really like the ability to define state icons 👍 .
I have noticed a couple of issues:
module
instead of js
when adding to Lovelace. This isn't documented anywhere and is a breaking change, also HACS still assumes it's type as js
.style
attribute doesn't appear to work when trying to set css styling, it sets the buttons style attribute to "0: [object Object];" (shown below).
<paper-button style="0: [object Object];" class="button-inactive">
button config is not supported
, this is because you are assuming the entity
attribute as required, though a button should not require an entity.
- icon: 'mdi:lightbulb-off-outline'
service: homeassistant.turn_off
service_data:
entity_id: group.office_lights
Great, I'm glad to hear that you like it :D
- The card now needs to be defined with a type of
module
instead ofjs
when adding to Lovelace. This isn't documented anywhere and is a breaking change, also HACS still assumes it's type asjs
.
I was not aware of that, thanks. I will update the readme.
- There is a breaking change with multiple rows of buttons.
I've removed it to simplify the code and because you can just call the button-entity-row
multiple times (one for each row). But I can add it back without problem. That way, there will be no breaking change indeed.
- The
style
attribute doesn't appear to work when trying to set css styling, it sets the buttons style attribute to "0: [object Object];" (shown below).
Will be fixed 👍
- The following snippet no longer works with the error
button config is not supported
, this is because you are assuming theentity
attribute as required, though a button should not require an entity.- icon: 'mdi:lightbulb-off-outline' service: homeassistant.turn_off service_data: entity_id: group.office_lights
I'll look into it!
I've fixed the issues that you have found.
I have also added that when you click on a button without any service (and no default service), it will open the hass-more-info
modal for that entity (if there is an entityId on the button).
Complete changelog for https://github.com/custom-cards/button-entity-row/pull/5/commits/1b9b2d99458a12f0042ed51568aee849282c472f:
js
to module
in the README.mdbutton-entity-row
[object Object]
service_data
, style
and state_icon
_
Let me know if there is anything else
Sweet! That was quick. Just gave it a test and everything works as expected.
I don't know if it's just me but the readme still says type: js
?
Also with regards to the readme, the 'Full Configuration Example' still has icon_color
assuming we're removing it then this should be removed too.
The default colour for buttons has changed from primary-color
to paper-item-icon-color
this isn't necessarily an issue and does make sense as icons in home assistant use paper-item-icon-color
though the mwc-button's (the inline buttons) use primary-color
. So this is a bit of a toss-up?
I feel a possible solution would to be able to specify the on/off colours?
We should also put a note somewhere in the readme for breaking changes after v0.2.0, e.g. removed icon_color, the card now needs to be defined with type: module
.
Assuming @paulbdavis is happy with this, ill also submit a PR to update the info.md with these changes.
We should also put a note somewhere in the readme for breaking changes after v0.2.0, e.g. removed icon_color, the card now needs to be defined with type: module.
@jcwillox, I think a CHANGELOG.md file would be more appropriate for this. Something like this. What do you think?
I don't know if it's just me but the readme still says type: js?
I was missing a commit. Now fixed 👍 https://github.com/custom-cards/button-entity-row/pull/5/commits/dc41ba920124da3b4c71869315ea39a42380d3b7
The default colour for buttons has changed from primary-color to paper-item-icon-color this isn't necessarily an issue and does make sense as icons in home assistant use paper-item-icon-color though the mwc-button's (the inline buttons) use primary-color. So this is a bit of a toss-up?
Imho, I think it is better to take advantage of the var(--paper-item-icon-active-color)
and var(--paper-item-icon-color)
colors, but I could also default it to var(--primary-color)
in .button-default
(when there is no on/off state). What do you think?
I feel a possible solution would to be able to specify the on/off colours?
For that, I have a couple of ideas, but I am not sure which one is the best:
Using hardcoded on_color
and off_color
attributes (less options):
- type: "custom:button-entity-row"
buttons:
- entity: switch.light_1
on_color: yellow
off_color: blue
Defining a state
attribute in style
(maybe a little confusing?):
- type: "custom:button-entity-row"
buttons:
- entity: switch.light_1
style:
- state: "on"
color: yellow
background: orange
- state: "off"
color: blue
Like state_icons
, add a state_styles
attributes (will take the styling from style
and override props defined in the current state_styles
)
- type: "custom:button-entity-row"
buttons:
- entity: switch.light_1
style:
background: lightgray
state_styles:
"on":
color: yellow
background: orange
"on":
color: blue
Once a solution is decided, I will update icon_color
accordingly.
@jcwillox, I think a CHANGELOG.md file would be more appropriate for this. Something like this. What do you think?
Yeah, that's a good option, or I just realised we could probably put it in the release notes, looks like that's what others have been doing?
Like
state_icons
, add astate_styles
attributes (will take the styling fromstyle
and override props defined in the currentstate_styles
)
Nice 👍 ! I think on_color
is probably less portable, and I agree to put the state
attribute in style
would be confusing.
I was also thinking of something like state_styles
, that seems like the best option to me. Plus it can also be used for entities that don't use on/off for their states.
Imho, I think it is better to take advantage of the
var(--paper-item-icon-active-color)
andvar(--paper-item-icon-color)
colors, but I could also default it tovar(--primary-color)
in.button-default
(when there is no on/off state). What do you think?
That makes sense and the addition of state_styles
would solve this, also leaving them the same is likely better for consistency.
Looks good, glad for the update to LitElement, I have not gotten around to it.
If you can give me a summary of breaking changes I can merge this and tag a release
Regarding the multi-row support, Doing multiple rows like in your example probably makes more sense, not sure why I implemented it that way in the beginning (maybe something with early lovelace that has since changed?)
I can't test it out at the moment, but is the newer method visually the same?
I can't test it out at the moment, but is the newer method visually the same?
The new method (having two button-entity-row's) leaves a slightly larger gap (8px margin) between the rows of buttons. But both methods still work 👍 .
Yes, so for the breaking changes:
icon_color
attributetype
from js
to module
in the ReadMe.CC @paulbdavis
The new method (having two button-entity-row's) leaves a slightly larger gap (8px margin)
Actually, the older method leaves you with the same gap, since the 8px padding si on each paper-button
(which makes sense), as you can see in my update, but also in the current implementation:
https://github.com/custom-cards/button-entity-row/blob/27b0f9c078155f5e136eaa1b0118c5537d8a2ac6/button-entity-row.js#L20
Actually, the older method leaves you with the same gap, since the 8px padding si on each
paper-button
(which makes sense), as you can see in my update, but also in the current implementation:
The 8px margin I meant was the one on each entity row applied by home assistant, you can see it on the main divs inside an entities card.
#states > * {
margin: 8px 0px;
}
Oh right! That is true
@jcwillox I really like that new state_styles
options 😍 (also added to the readme)
So unless, their is anything else you want me to add to this PR, my branch is now good to go 👍
@ericmatte Oh damn that looks sweet 😲 ! I just played around with state_styles
and it's really good 👍
Hi,
I really like the concept of your
button-entity-row
! However, there were some edge cases that I've encountered:service
So I've decided the rewrite the project to better suits my needs.
Here's what changed:
icon_color
I am making a PR here, in case you find my update (or parts of it) useful to your project :)