HomePhabricator

Modularize workboard column orders

Description

Modularize workboard column orders

Summary:
Depends on D20267. Depends on D20268. Ref T10333. Currently, we support "Natural" and "Priority" orders, but a lot of the particulars are pretty hard-coded, including some logic in ManiphestTask.

Although it's not clear that we'll ever put other types of objects on workboards, it seems generally bad that you need to modify ManiphestTask to get a new ordering.

Pull the ordering logic out into a ProjectColumnOrder hierarchy instead, and let each ordering define the things it needs to work (name, icon, what headers look like, how different objects are sorted, and how to apply an edit when you drop an object under a header).

Then move the existing "Natural" and "Priority" orders into this new hierarchy.

This has a minor bug where using the "Edit" workflow to change a card's priority on a priority-ordered board doesn't fully refresh card/header order since the response isn't ordering-aware. I'll fix that in an upcoming change.

Test Plan: Grouped workboards by "Natural" and "Priority", dragged stuff around within and between columns, grepped for all touched symbols.

Reviewers: amckinley

Reviewed By: amckinley

Maniphest Tasks: T10333

Differential Revision: https://secure.phabricator.com/D20269

Details

Provenance
epriestleyAuthored on Mar 11 2019, 4:49 AM
epriestleyPushed on Mar 12 2019, 8:07 PM
Reviewer
amckinley
Differential Revision
D20269: Modularize workboard column orders
Parents
rP7d849afd16c5: Add a "WorkboardCardTemplate" class to make workboard client code easier to…
Branches
Unknown
Tags
Unknown
Tasks
T10333: Add groups to workboard columns
Build Status
Buildable 22267
Build 30451: Run Core Tests