-
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
Improve management of tasks within the client #233
Conversation
- Introduced a package dependency to semver to compare package versions
Great! I also tested by editing the database entries 👌🏼 |
- Select task group - Select filtered tasks - Select version
- Extracted sorting function - Improve usage of semver to handle PEP440 versioning - Introduce testing of sorting versioning
Testing with 232dd05, and also the order of prerelease versions is now correct: |
For the record, @rkpasia introduced the modal to add a task to a workflow as a placeholder. This is not (yet) meant to be working/testable. |
Looking promising. Ping me once you want me to test this as well :) |
😍 @rkpasia the new task selector is awesome! That makes it much more structured, easy to keep an overview! The task ordering seems to work as I'd expect it and it selects the 0.10.0 over 0.10.0a6 correctly! The split into the tabs for common tasks & User tasks also looks nice! I haven't tested it in the multi-user case yet, will follow up on that in a bit. An important thing that I'd still add now would be how to handle custom tasks without (unique) versions. If one adds a task via the web interface, so far the user can't specify a version (we should eventually also fix that, but not so urgent). It then gets displayed as follows (2 custom tasks with the same name, but different source): That's quite suboptimal, as there's no way to know which one is which. If a given user has multiple tasks with the same name, we show a drop-down.
|
We could also still improve the multi-user display a bit. At the moment, it just puts them all in one big list and there is no way to see which user a task is from. I don't fully know how that list is sorted (also by when the task was added?). Here's an example: I created tasks by 3 users, some named the same, some with custom names. It is shown like this: What I'd like to achieve:
But: Let's NOT just have a user dropdown first to filter by user. Because then, the user needs to look through all the user dropdowns just to find the task they know by name. One idea here from @tcompa :
We could order the user task list in the following way: But if one is logged in as admin, one sees: |
# Conflicts: # package-lock.json # package.json
- Common tasks gets grouped in select by their reference package - User tasks gets grouped by their owners
In the changes introduced, 54a0a10 enables
14d204d introduces a project dependency that I selected from npm which is slim-select.
|
@rkpasia The sorting of tasks by users also looks great. Can we take always put the currently logged in user top or does that get too complicated? Current sorting is ok, this sorting with logged in user at the top (if they have tasks) would be even better Search is not functional yet, right? But great idea, would love search when adding the tasks! And for multiple user tasks with the same name, but no version, we still get the dropdown of all "Not specified" => if that would be replaced by the source in 2 cases, then it would work best.
|
Agreed, that would be a nice idea. What would we be searching though? Task name? |
If it's a trivial part of the framework to allow search by task name, that would make things much simpler once there are many task. Any fancier search can be postponed without issues. And if it's tricky to get to the core search pattern, we can also postpone that (and thus remove the field for the moment). |
I still have to read through the documentation of I think that in principle should be useful to search by task name. Don't know if it could be possible to also introduce a filtering by specifying, for instance, the package name or the package version. Maybe applying a custom search function could be doable. |
Agreed, this will be very useful!
Given the need for documentation and testing for Fractal web, I'd say a short effort on search by task name is still in scope, custom search functions to include package names, versions etc. is out of scope (though a good feature idea for future development). |
Has been introduced by 1e5f7e1 In the following image, my username is |
Awesome, looks great like this. |
There are still use cases which are not covered (see also #233 (comment) by @jluethi). I create the following tasks
and they are correctly displayed as
Then I click on the first
We are hitting two issues here:
|
When selecting a task by owner, only task versions of that owner should be shown in version selection.
Agreed, these two things are still missing.
In addition:
I'd see these 3 areas as the last things remaining here |
@tcompa I noticed this bug
And made a fix in 5a44460. Now it should work. Related to
Now if the version is not specified, the |
Is this already implemented? I have tasks with versions "1", "2", and "2", and in the drop-down menu I see
I don't have a strong opinion here, but I would be OK with your idea (if there are multiple tasks with the same version, only source should be displayed in the task version/source selection) - once it's implemented. |
On this we could go even further, given:
Currently, the client, if multiple same task versions are present, they are replaced with |
I'd agree with that as well |
If we easily can, then yes. |
If a user selects a task within a package, only task versions related to that task package should be used in the afterward select as options.
If a user selects a task owned by a user which has multiple same versions, selection proceeds using source property instead of version property
Ok, so a quick recap:
|
Agreed with all of this, this is the behavior we want. Great summary!
i.e. only the version or source for the task belonging to a given user should be shown in the dropdown, not all all available versions for this task among the users. |
I suggested this feature for cases where we do include additional requirements for task collection (e.g. the python version, or some additional extras). This could generate tasks that have the same (package, name, version), and then we should use the source to identify them. |
This sounds future-proof enough to me: |
Has a related problem #238 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I tested the most recent version. All works as desired. Great job @rkpasia ! 🎉
I'd say ready to merge and we have search functionality as a future feature wish (not critical atm).
The user should be able to navigate through the tasks in the client with more context.
That is:
Merging this PR should close #149