Page MenuHomePhabricator

Add ability to drag & drop tasks between groups in Maniphest query results when grouping by status or projects
Closed, WontfixPublic

Description

It's a great feature by when grouping by priority.

Event Timeline

swisspol raised the priority of this task from to Needs Triage.
swisspol updated the task description. (Show Details)
swisspol added a subscriber: swisspol.

Isn't this what boards are made for?

In Maniphest today, when grouping query results by priority you can drag & drop tasks between groups and adjust priorities accordingly which is quite convenient.

This same pattern should be deployed to as many fields as possible including custom fields of compatible types for such an operation (e.g. "select").

Boards are operating on a completely different dimension, on the "column" field. That said, this is also a convenient UI that happens to already be implemented for efficient drag & drop, so maybe this feature should be using the board UI.

epriestley claimed this task.

I think all other groups/orders have substantive reasons why they won't work in the general case.

When altering projects, tasks can have multiple projects. Does dragging from "X" to "Y" mean "remove all projects and replace them with Y", or "remove X and replace it with Y", or "add Y"? I'd worry that picking any of those answers would sometimes leave the interaction confusing.

Priority has the nice property that the whole list is ordered (we maintain a hidden "subprioirty" to distinguish between two "High" priority tasks). If you have a view like "Group by status, order by date created", and drag a "Closed" task up a few slots but don't drag it out of the "Closed" group, the operation is meaningless.

When viewing large selective lists of tasks, the thing you'd like to drag a task into (e.g., an assignee or status) may not be present in the list (or may be on a separate page), making the operation impossible.

Generally, this UI just isn't a good one for most of these operations.

In the future, we do plan to implement column logic on boards (so, e.g., you could close a task by dragging it to a "Done" column). There are also more opportunities to make interactions easier there (e.g., we can reasonably guess who you might want to assign a task to based on project members, and could provide quick ways to assign things).

In some cases, you might also want to try using the batch editor. For example, this can be useful when triaging tasks -- suppose there are 20 new tasks, and you realize 8 of them should be in the same project. You can shift-click the tasks you want to change, then "Batch Edit Selected", and add the project. This isn't the most elegant interaction, but it's a bit better than doing 8 separate edits, at least.

Fair enough, that makes sense.