-
Notifications
You must be signed in to change notification settings - Fork 0
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
Display/use new task metadata #654
Comments
Looking back at my early mock-ups of this, I guess it will be simpler if we're only doing filtering, not sorting to start with. Let's make sure users can set 1 or multiple filters. |
Ah, as part of that, let's also start making the task info more accessible! e.g. having a way for users to be able to see the |
Looking at the old mock-ups (#577 (comment)) I'm not sure about what the buttons under "Filter tasks" should do. Are that supposed to be dropdowns containing the available metadata values to filter on?
Consider that it is not possible to open a modal inside a modal, so the possible options here are:
|
I think that would work.
Hmm, I had not thought about that. The design goal is to give people more context about what tasks do. Task titles are only somewhat descriptive. Could we do a similar thing as the (i) buttons on the workflow page? Or those these hover overlays also count as another modal? |
Yes, we can do that with popovers, but the content shouldn't be very long, as scrollbars inside popovers don't look very nice. |
Let's start with that then. We can also decide a max length we show and only show the first X characters. The rest is on the info page. I think that may be a useful pattern to encourage anyway. In that way, we encourage task developers to have short info summaries. Some tasks-side updates we should do:
|
Another thing we should add filters for is task input_types. Not many tasks have them, but they are very useful when they exist. And it raises: Sometimes I want to filter for "not X", e.g. task does not require is_3D = True |
Maybe we need to think about a different UI, especially if we plan to add things like "not X". I'm trying to add all the filters and they already use a lot of space, making values inside dropdowns already truncated. I'm adding the slim-select menus with search inputs, but let me know if searching inside the filters is not needed, as plain select elements are easier to manage. Maybe, if we just need the "not X" for input types, we can implement it with a checkbox and a select inside a bootstrap dropdown menu: Please note that in this case, it appears that using slim-select is not feasible, as slim-select selectors within Bootstrap dropdowns do not function properly (the container closes when the search field is opened). Generally, working with multiple nested popup elements can become quite cumbersome. In general I would suggest a different kind of UI, for example it might be something like the following image, with a button for dynamically adding new filters in a list: This implies using more vertical space, but I think it might be quite difficult to concentrate all these functionalities in the same line. Another question: should we allow the selection of multiple values for each filter? If so, using slim-select may become necessary. Currently the UI loads all the tasks, so we can implement all the filtering on client side, to avoid making additional calls. This may change if we plan to have a huge number of tasks in the future and we decide to implement things like pagination in the backend. |
Thank you @zonia3000 ! I'd say the priority is making an easily browsable task interface here. I'd value a simple selection like this: more highly than fancier selection modals like "not X". I'm not sure whether the different UI with the separate filters will not just be too cumbersome and make it less likely that people use the filters.
I'd say search is quite useful.
I can imagine this will be useful, yes |
An additional thought: Can we add top-level search? We used to have search that just worked for task names. Currently, we have no search. If we had a good top-level search that would use both names & metadata, that may be an easy entry for many people |
Features we'd want for task addition page
Out of scope for the time being (may later):
For other pagesNew task page that is just task addition without add button Current task page becomes "Manage Tasks"
We'll learn what queries are relevant and will build them backend-side once this grows enough |
A first version of the tasks page with filters: I'm currently displaying the Notice that it might not be a good idea to truncate the text to a fixed size, since it contains markdown and we might break the syntax. As already discussed, it would be better to have a shorter description to be displayed in popovers. I've also added the new tasks page: Since here we are not inside a modal, we can open a modal to display the full docs_info data: |
I've included the following library (MIT License) to generate the colors based on the text: https://www.npmjs.com/package/color-hash I tried also a simpler solution, but a couple of badges had very similar colors, so I decided to add the library. If we don't like the generated colors we might decide to add some hardcoded values. |
Oh, this looks awesome! I love it! ❤️ I like the overall color scheme, it's distinct but nothing crazy. Also, the pop-overs look great!
Agreed, we should shorten the text. But let's just go with showing what's there for now and we can then add a feature later to provide a shorter summary in the manifest. It's useful to know that this displays alright even when not optimized. The standalone task page also looks great and great idea to use modals there to show the full-length info. |
As of fractal-tasks-core v1.3.3 (now available) we have an example of a task package with the new metadata (
authors
,modality
,category
andtags
).We will now have to start introducing these attributes in several task views, and review how we can expose some filtering in some specific situations (notably the tasks page and the add-task-to-workflow modal).
For most of these attributes, relevant fractal-servers GET endpoints already have query parameters available (the only missing one is for
tags
- ref fractal-analytics-platform/fractal-server#1863). Depending on how filtering will work, we can either fix this issue backend-side, or we can re-implement all filtering in fractal-web.The text was updated successfully, but these errors were encountered: