-
Notifications
You must be signed in to change notification settings - Fork 28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Integrate location type categories #383
Comments
I've had an assistant make a mock-up for this, the suggestion is to put categories in a tag cloud between the search bar and "On The Map". Replace "Select all" and "Unselect all" with the semantics of tags (you can click All to select all, and then again to deselect it) and make "Invasive" a category again. Bring in other categories that the live site uses too. The "Include tree inventories" can stay at the bottom as a data source related option. https://chatgpt.com/c/355bbf2d-732b-45ed-b89d-b2aa942f3d24 |
@ezwelty screenshot above! Initiative doc: https://docs.google.com/document/d/1ah6jKO9uizBqeBtTVoIXi51gpYEQEyYzzastcMKOp5Y/edit?pli=1#heading=h.cbt21puyoh05 |
I disagree that "invasive species only" is a type category, because whether a type is invasive depends on the location. Thus, like "include tree inventories", it is a location-level filter rather than a type filter. The reason it is not currently available at the cluster-level zooms is that, unlike However, I'm very supportive of integrating type categories (and making forager + freegan the default). This requires a change to the API (see falling-fruit/falling-fruit-api#10) and a UI like you suggest. Categories are forager, freegan, grafter, honeybee; what is community in your mockup? In a second step (or directly, if you prefer), we could extend the concept of categories to the more general type lists (see falling-fruit/falling-fruit-api#9 and https://docs.google.com/document/d/1ah6jKO9uizBqeBtTVoIXi51gpYEQEyYzzastcMKOp5Y/edit?pli=1#heading=h.cbt21puyoh05). |
I would encourage a two-step process to keep us focused:
For more info on these, see:
|
@wbazant FYI The API now returns |
I'm thinking another UI solution would be to show categories in a tree select. The interface would let the user swap between two tree selects through horizontal tabs (like tabs in a browser, over the tree select), or through a "show individual types" checkbox that toggles between the two views. We'd need to get the counts from the back-end (since if we added up type counts by location, we would multiple count some locations) but this UI would take up less space than tags I proposed above, not introduce a new visual element, and works better for making the categories more numerous and elaborately grouped. Showing categories instead of individual types could even be the default choice because a new user might find them less overwhelming. The natural default state here seems to have all the categories selected at the start. @ezwelty what was the reason for forager + freegan being the default choice on the live site? If the above solution seems better than the tag cloud, is it still worth having some categories off by default? "on the map" and select/deselect all when the categories are visible should work on them as for types. |
@wbazant Interesting, let me think through this. I like the idea of a tab to switch between category and type-level filtering. It allows a more user-friendly (and potentially more performant) default.
Note that the clusters do not count locations, but types. This is largely for performance, as it allows us to precompute type counts on a quad tree and sum them together for an arbitrary type filter without concern for which types share a location. Counting the number of locations on the map that contain a type in each category is possible, but for only a small number of categories, and for it to be fast regardless of the number of locations shown, would need to be precomputed as well. Frankly I would just stick to counting types (which isn't entirely wrong), especially since this is what the clusters already do anyway. Actually, I would start by omitting counts entirely for the categories and see how it feels.
I don't quite see how categories would end up elaborately grouped in a nested tree structure. If I think forward to the custom type lists mentioned earlier, then I imagine:
Especially for the custom ones, I expect we'll want as much width as possible to display them.
Because the database stores everything, and displays different types to different user communities. Since most users are interested in either edible plants or food-bearing dumpsters (or often both), The
If I have |
Awesome, I'll attempt that! I'd like to first finish a tree select that works for just the current features, but adding the categories after that shouldn't be far off.
The need arises because what is being selected by the tree select UI, and what corresponds to the parent checkboxes, is a set of types. I think the categories should be a way to select types too - so if the user e.g. selects only forager in categories, and switches to types, they should see forager types checked - then after unchecking one of these types, and switching to categories, I propose they should see an indeterminate checkbox. |
I agree with that, but I was saying that deselecting a category should not remove types that are selected by other already-selected categories. You wrote:
And I argued that unticking "Forager" should not make "Honeybee" indeterminate, because all types for "Honeybee" should remain selected as long as "Honeybee" remains selected. It doesn't make sense to me that unticking "Forager" would remove types included in other ticked categories, but willing to be convinced otherwise. Anyway, by my logic, indeterminate/partially-selected does not work for categories. For example, starting from an empty type filter: ticking "Forager" would make "Honeybee" indeterminate (and probably many other categories) because it shares common types with "Forager". Ticking and unticking "Honeybee" would then not untick it, but make it indeterminate, because some types in "Forager" are also "Honeybee". Hence why I suggest that categories are either ticked (all types in this category are selected in the type folder) or unticked (not all types are selected). |
Sure, I see what you mean, I guess selecting categories as themselves is logically coherent too. In I think 2017 my colleague and I wrote something with checkboxes in multiple categories that overlap and are used to implicitly select something else - I just checked and it's still online more or less as I remember it, you can check out https://www.ebi.ac.uk/gxa/experiments/E-CURD-1/Results and "Experimental Variables", which opens a modal, and it gets really complicated for some experiments: In our example ticking "Forager" would indeed make "Honeybee" indeterminate, but then the user can e.g. untick "Honeybee" and get the "forager but not honeybee" selection they might also want. |
@wbazant If the category checkboxes also limit what is shown in the tree, how does one return to a tree that shows everything but has only forager or freegan types selected (aka the default)?
Curious to hear which you think is better? p.s. Oak Quercus is a |
Yes, I was thinking to make categories like search filters! But I agree with you that Select all / Deselect all are most useful and clear when they really select / deselect everything, for example a strategy you can use with search is to deselect all, type a search term, and tick the right results.
In how I was thinking about it yesterday, one doesn't, but maybe that will not be too confusing or even noticable, since one can easily go to a selection where everything is selected, but only forager and freegan are visible. It's functionally the same, since gets you the same types on the map. But that's definitely a weak point of the design.
I clearly don't have a good enough idea about why some types have been included on Falling Fruit. The beta site should get some kind of feature that will help me with it! select / deselect by category has the problem of categories that intersect. We should then also draw them more like buttons rather than checkboxes (since the other checkboxes filter the type tree) and I guess that's the version from #383 (comment) except with correct checkboxes (and light blue meaning partially selected). |
Proposed resolution from the call:
|
On live site, the "Show invasive species only" functionality is out of sight until zoomed in, and there are magic links leading to a portal with a different map.
The current solution in the beta is two checkboxes
partially ported from live site. They are more prominent and I think they confuse the user - they get in the way, and offer explanations in pop-ups.
The magic links could be part of the UI and thus discoverable.
Some potential goals for the UX include:
There's a list of all categories at #246. The categories are partially overlapping and nonexhaustive, suggesting tag semantics.
The text was updated successfully, but these errors were encountered: