- Create a new column in a workboard
- Drag & drop one task into it
- Edit task, close it
- Reload workboard
- Column is now empty
- Try to delete column
- You can't as Phab reports it contains tasks
- You can't find the closed task either since it's now showing in the column anymore
Description
Event Timeline
I also found myself in this situation. Solvable as soon as all tasks can be made visible in boards, aka T4673.
They way forward is roughly:
- Allow removing of columns with closed tasks.
- Allow viewing of boards with open/archived/all columns
- When a closed task on an archived column is reopened, move it to backlog.
I'm going to attempt this myself with my poor engineering skills if @epriestley agrees to let me.
Since it's easy to find the tasks and move them off now, I'm going to call this resolved.
I think the restriction that you can't remove columns which still have tasks in them is a relatively reasonable one for now.
An alternate behavior would be to move all of the tasks to "Backlog". However, if the column has a very large number of tasks, this kind of request might not be achievable from the web process, since it could take several minutes to move all the tasks.
We'll probably build infrastructure eventually to handle large tasks like this in a clean way (e.g., it queues into the background and gives you a progress bar in the web UI somewhere), but there isn't a huge amount of motivation for it right now. In the future, things like Nuance, the Maniphest batch editor, document moves in Phriction, and maybe the similar "Move all tasks in this column to some other column..." action can help motivate development of this, but it's probably some ways off (I think Nuance is most likely to motivate it). Until then, our most reasonable approach for dealing with situations like this imposing arbitrary UI limitations like this one.
I would think this is still useful. If you're using board to manage milestones, it's handy to just close out the milestone once it's empty. It'd be a bunch of work to move everything off in order to clear the column. This works well obviously when it's just the same columns everyday, but sprint projects are likely going to find this cumbersome.
IIRC, "Delete" actually deletes the column right now. For the milestone case we could introduce some "Hide column" middle ground -- you probably still want to be able to go look at what happened in Milestone 15, you just don't want it visible by default. In this case, we can just leave tasks in the column.
In the milestone/sprint case, I imagine we might just make the columns extend off to the right forever -- so you see Backlog, Milestone 15, Milestone 14, etc., and then if you scroll to the right we Ajax in the rest of them. This would get them out of the way without requiring a "hidden" state.
Is it practical or good UI to leave around columns made of closed tasks? I would vote no since:
- It's wasting space on screen and create "holes" in your board
- It makes it harder to see everything at a glance
- Dragging tasks from backlog becomes a total pain as you have to go across the entire screen or more each time
To fix this today, you need to:
- Enable show all tasks in the filter
- Move back all the tasks to Backlog (again dragging them one by one across the entire screen or more)
- Delete the column
- Change back the filter
This is quite annoying to say the least and definitely cannot be done during a scheduling meeting.
Compare with:
- Having the ability to delete columns containing tasks (or only closed tasks in it) which would send them back to the backlog: 1 or 2 clicks which can done during a scheduling meeting
- Somehow not show columns made entirely of closed tasks