home-assistant / frontend

:lollipop: Frontend for Home Assistant
https://demo.home-assistant.io
Other
4.04k stars 2.77k forks source link

Redundant UI elements: both Checkbox and Toggle for a single bool #21356

Open lindhe opened 1 year ago

lindhe commented 1 year ago

The problem

I find the UI really confusing when calling the service. There's both checkboxes and toggle switches available for options that seems to be bools. After asking around, I was informed that the checkbox is for "should this value be sent to the service call" and the toggle switch represents the value of the bool.

Calling the Service via UI

The thing that makes this so confusing to me is that this makes use of two bools to represent one bool.

There's a lot of state for only these two values, because of this!

All possible states for repack and apply_filter:

1. Both `true` ```yaml repack: true apply_filter: true ``` 1. Both `false` ```yaml repack: false apply_filter: false ``` 1. One of each ```yaml repack: true apply_filter: false ``` 1. The other one of each ```yaml repack: false apply_filter: true ``` 1. One `true` ```yaml repack: true ``` 1. The other one `true` ```yaml apply_filter: true ``` 1. One `false` ```yaml repack: false ``` 1. The other one `false` ```yaml apply_filter: false ``` 1. And, of course, nothing! ```yaml ``` The cases for 1–4 are clear as day. They express exactly what the desired state should be. But the rest of them, what do they even indicate? It is impossible to know without considering what the program code for handling the call looks like and what default values it uses. And what is more is that this would get even worse if more options were added in the future – the number of possible states grows exponentially!

Personally, I think it would be much clearer to the user if there was only one bool per option. It makes for only four possible states to consider, rather than nine. In my experience, this this is also much easier to program for since one does not have to parse the data structure and consider whether a key exists or not – all keys always exists!

Also, it would simplify the design by only having a single place where default values are set: the GUI. As it stands right now, if my understanding is correct, there are two places that needs to be changed if we want to change defaults: both in the GUI but also in the program code where the call is processed.

What version of Home Assistant Core has the issue?

core-2023.7.3

What was the last working version of Home Assistant Core?

No response

What type of installation are you running?

Home Assistant Container

Integration causing the issue

recorder

Link to integration documentation on our website

https://www.home-assistant.io/integrations/recorder

Diagnostics information

No response

Example YAML snippet

No response

Anything in the logs that might be useful for us?

No response

Additional information

It's my understanding that this behavior is due to the implementation of the Recorder integration, not the Home Assistant frontend per se. If I got it wrong, please point this out to me and I'll post the issue in the right place instead.

home-assistant[bot] commented 1 year ago

Hey there @home-assistant/core, mind taking a look at this issue as it has been labeled with an integration (recorder) you are listed as a code owner for? Thanks!

Code owner commands Code owners of `recorder` can trigger bot actions by commenting: - `@home-assistant close` Closes the issue. - `@home-assistant rename Awesome new title` Renames the issue. - `@home-assistant reopen` Reopen the issue. - `@home-assistant unassign recorder` Removes the current integration label and assignees on the issue, add the integration domain after the command.

(message by CodeOwnersMention)


recorder documentation recorder source (message by IssueLinks)

issue-triage-workflows[bot] commented 1 year ago

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates. Please make sure to update to the latest Home Assistant version and check if that solves the issue. Let us know if that works for you by adding a comment 👍 This issue has now been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.

lindhe commented 1 year ago

Ping

issue-triage-workflows[bot] commented 9 months ago

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates. Please make sure to update to the latest Home Assistant version and check if that solves the issue. Let us know if that works for you by adding a comment 👍 This issue has now been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.

lindhe commented 9 months ago

Ping

issue-triage-workflows[bot] commented 6 months ago

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates. Please make sure to update to the latest Home Assistant version and check if that solves the issue. Let us know if that works for you by adding a comment 👍 This issue has now been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.

lindhe commented 6 months ago

Ping

github-actions[bot] commented 3 weeks ago

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates. Please make sure to update to the latest Home Assistant version and check if that solves the issue. Let us know if that works for you by adding a comment 👍 This issue has now been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.

lindhe commented 3 weeks ago

Ping