devmount / third-stats

Thunderbird add-on turning your emails into beautifully visualized email account stats. Built with Vue.js and Chart.js
https://addons.thunderbird.net/thunderbird/addon/thirdstats/
MIT License
217 stars 27 forks source link

Dont display clear selection (X) icon unless there is a value in the related control #273

Open koobs opened 3 years ago

koobs commented 3 years ago

Describe the issue

The stats dashboard currently always displays Clear selection button/icon (see screenshot)

Proposal

Only show 'clear selection' button/icon when/as there is a value entered in the related input control.

Rationale

Expected behavior

Screenshots

2021-03-02 13_07_31-ThirdStats_ koobs@FreeBSD org - Thunderbird Daily

devmount commented 3 years ago

Thank you for suggesting this, I totally agree that the reset buttons should only display when a value is set.

What do you think about removing the reset buttons for the select fields (folder, contact) completely and providing a corresponding select option on top ("All folders", "All contacts"), as it is currently implemented for the account selections ("All accounts")? This would make the UI much cleaner.

About the date range filter: We're currently discussing a lot of UX enhancements in #188, where @Eagle3386 proposed a solution with one button only. I would love to hear your opinion on that too.

Eagle3386 commented 3 years ago

@devmount Since single buttons are awesome (SCNR.. 😏), I'm absolutely voting to do the removal of those reset buttons in favor of another All items option for each select - 1 single point of access for each action. Yeah, let's abbreviate that from now on with SPOC as Leonard Nimoy would surely love the nerd hint/joke, too.. 😄

koobs commented 3 years ago

providing a corresponding select option on top ("All folders", "All contacts"), as it is currently implemented for the account selections ("All accounts")

I can't see any All foos options for Account or Contact drop-down controls in the dashboard (88.0a1 (2021-03-01) (64-bit)). Can you screenshot what I'm supposed to see?

koobs commented 3 years ago

What do you think about removing the reset buttons for the select fields (folder, contact) completely and providing a corresponding select option on top ("All folders", "All contacts"), as it is currently implemented for the account selections ("All accounts")? This would make the UI much cleaner.

Thoughts:

All foos is implicit (implies no filter by inclusion), versus Clear selection which is explicit (by ommission/exclusion: if the icon is shown, the view is filtered, with the control value being what the view is filtered 'by')

All foos overloads use of (and is inconsistent with) 'selection' in a drop-down control, where all other values filter, but this value doesn't. Compare this with the clarity of 'User: The control is empty, so the view/data is filtered'

All foos as a value in a drop-down control does not provide the same level of affordance as 'Clear selection' icon/button, nor a explicit/additional visual affordance (the Clear selection icon shows up when the user types into the field

devmount commented 3 years ago

I can't see any All foos options for Account or Contact drop-down controls in the dashboard (88.0a1 (2021-03-01) (64-bit)). Can you screenshot what I'm supposed to see?

OF course. The All accounts option only appears, if more than one account is activated in the add-options:

image

It provides the sum of all account stats (since v1.2.0) and a comparison view (since v1.4.0).

devmount commented 3 years ago

Thank you for your thoughts on this @koobs!

All foos is implicit (implies no filter by inclusion), versus Clear selection which is explicit (by ommission/exclusion: if the icon is shown, the view is filtered, with the control value being what the view is filtered 'by')

I agree with this - a clear selection button does explicitly show that something is filtered and how to cancel filtering.

All foos overloads use of (and is inconsistent with) 'selection' in a drop-down control, where all other values filter, but this value doesn't. Compare this with the clarity of 'User: The control is empty, so the view/data is filtered'

I see your point. Though at the same time it's depending on the drop-down being strictly seen as a filter or as list of possible actions.

All foos as a value in a drop-down control does not provide the same level of affordance as 'Clear selection' icon/button, nor a explicit/additional visual affordance (the Clear selection icon shows up when the user types into the field

Agreed again. In the end UI is always a compromise between comfort and cleanliness. I think I will first implement the clear selection buttons as you suggested in this issue to only show up, if a filter value is set. We can then decide, if we enhance it more from this point.

koobs commented 3 years ago

OF course. The All accounts option only appears, if more than one account is activated in the add-options:

That actually surprised [1] and wasn't obvious to me. The 'all accounts' value being conditionally present based on the configuration of a different and separate option value elsewhere in the UI is not intuitive or easily deduced.

I believe it also supports my previous case that 'All accounts' doesn't really belong in the same place as values for 'account' as a filtering mechanism.

if the control is a filtering mechanism, and All accounts removes filtering, then perhaps the control should be called Filter: with values By Account: <name> and All accounts renamed to None or No filter. Having said that I think this is more complex and confusing than just having all values be 'the filter' value, and clearing the selection

[1] See Also: POLA

koobs commented 3 years ago

All foos overloads use of (and is inconsistent with) 'selection' in a drop-down control, where all other values filter, but this value doesn't. Compare this with the clarity of 'User: The control is empty, so the view/data is filtered'

I see your point. Though at the same time it's depending on the drop-down being strictly seen as a filter or as list of possible actions.

Sure, but the specific issue is that values of the same control behave 'differently', and in this particular case 'in an opposite' manner to other values.

Eagle3386 commented 3 years ago

Sure, but the specific issue is that values of the same control behave 'differently', and in this particular case 'in an opposite' manner to other values.

Nope, you're still either not getting @devmount's point or still getting it wrong. Each option "behaves" different as it filters differently - for a specific account or for all accounts together. The function remains the same.

While I do like POLA (BTW, thanks for mentioning it), I strongly suggest having All accounts visible all the time. Being both, the default selection and selectable as soon as another option is selected, surely sufficiently indicates the expectable behavior to the user. Also, enabling all accounts for selection by default enables the user to discover both, the possibility to deselect accounts within the options and to select to go "back" to all accounts within the same control, hence even more obeying of POLA.

Additionally, looking at industry standards like Excel or its counterpart, Calc, their filter control for columns offers a Select all option instead of a reset button next to the filter drop-down - so people are already used to select an option for actual reset of filtering instead of having to click a button. That's why I'd like to strongly renew my suggestion of using/sticking with a selectable reset option rather than another button - 1 control for 1 action, but not 2. It's simply neither how any common software with filtering capabilities works nor how user expect to undo their selection as they want to change their selection and that's done via the drop-down. Always.

koobs commented 3 years ago

I'll bow out.

devmount commented 3 years ago

I would like to remind everyone to communicate in a respectful manner. Thanks for keeping this repo a welcoming experience for all of us 🙏🏻

[@koobs said:] That actually surprised [1] and wasn't obvious to me. The 'all accounts' value being conditionally present based on the configuration of a different and separate option value elsewhere in the UI is not intuitive or easily deduced.

Thank you for pointing this out 👏🏻 I implemented it with the intention of not bothering those who only use one account anyway with a feature that's not applicable. But you're right, that's far too easily overlooked. I'll definitely put a hint at the accounts option, that activating multiple accounts provides/activates the possibility to show an accumulated and compared view of all activated accounts. Created #275 for this purpose.

I didn't know about POLA being a defined principle, thank you for that. I'm definitely going to take a closer look at it 👍🏻

Well in the end I have to find and decide for a compromise between minimal UI and the least astonishment for the user. I'll take some time to think about it and will post my decision about the filter field appearance in the discussions section.

Eagle3386 commented 3 years ago

I would like to remind everyone to communicate in a respectful manner. Thanks for keeping this repo a welcoming experience for all of us 🙏🏻

Seems to me like my phrase, Nope, you're still either not getting @devmount's point or still getting it wrong., might be misunderstood, i. e. sounded harsh while not even meant to be. If so, I'd like to apologize for that as it wasn't even meant to sound disrespectful in any way. That's especially meant for @koobs.

Though, I'd like to point out as well that many people feel "attacked" way easier these days than a couple of years ago - criticism & opposing opinions aren't personal attacks, they're just different views of different people who should simply bear phrases like the aforementioned one without ever feeling harmed. To put it simply, intense discussions must be allowed, just because they always result in a better outcome. Of course, only as long as it's all about the opinions of participants & not the participants themselves - but that's all what my phrase aimed for, right from the start.

(...) I didn't know about POLA being a defined principle, thank you for that. I'm definitely going to take a closer look at it 👍🏻 (...)

... just like I did thank him for that, too, in that very same comment of mine.

koobs commented 3 years ago

tldr: be a catalyst. [1]

I've been in OpenSource a long time and accordingly have grown quite a thick skin. I bowed out to avoid escalation, to the extent that it might have been possible.

Something I try to do in productive discourse focusing on "issues" and not people is to practice avoiding the use of "you" and "your". Small words they may seem, but a big difference it has made.

All of the quoted phrase above could have been left out without changing the message, or alternatively, replaced with questions seeking to identify where our (or my) conceptions may have differed, in order to progress on common ground.

Now, let's get back to making ThirdStats great.

[1] https://freenode.net/catalysts

Eagle3386 commented 3 years ago

@koobs tl;dr: Thanks for everything.

Fully agree with every aspect of it. Nonetheless, wanted to explicitly thank you, not only the very valuable recommendations towards using "you", but also for the - obviously - way better understanding of productive discourse than I could at the time. Again, thanks for helping to improve.