Page MenuHomePhabricator

Implement an ApplicationEditor-based Bulk Editor
Closed, ResolvedPublic

Assigned To
Authored By
Dec 16 2015, 9:43 PM
Referenced Files
"Like" token, awarded by tomekj2ee."Like" token, awarded by ninalb."Doubloon" token, awarded by avivey.


Today, Maniphest has support for a bulk editor. The workflow goes like this:

  • Run a query.
  • Select all the results, or some subset of the results.
  • Click Batch Edit Selected.
  • Select a set of changes to apply to all of the tasks you've selected (like closing them, adding tags, etc).

In the future, we plan to generalize this functionality and drive it through ApplicationEditor/EditEngine. This will have two primary effects:

  • A wider range of edit actions will be available.
  • Bulk editing will be available for all applications.

We may not actually turn on bulk editing in every application, but there are at least a few where it makes a great deal of sense (like the user approval queue).

This work is almost certainly worthwhile even if we never enable it in other applications, since even driving Maniphest through shared infrastructure would be cleaner. I think there is little harm in supporting the action everywhere, but some possible concerns are:

  • UI clutter.
  • Bulk "approve" of revisions or commits -- sight unseen -- is a little questionable?
  • Currently, difficult to undo a bulk edit.
  • Probably very limited utility in many applications.
  • Opens up more surface area for abuse/"testing": barrier to entry is much higher for using Conduit than Bulk Editor to make a mess.
  • Permissions clutter, if some of these other problems are resolved through permissions.

See also these related tasks:

  • See also T5954 for similar changes (generalize, modularize, extend to other applications) to "Export to Excel".
  • See also T5166 for general bulk workflow improvements.
  • See also T12740 for edit queues requiring sophisticated human decisions.

Event Timeline

epriestley raised the priority of this task from to Low.
epriestley moved this task to v2 on the ApplicationEditor board.
epriestley updated the task description. (Show Details)
epriestley changed the edit policy from "All Users" to "Community (Project)".
epriestley added a project: ApplicationEditor.
epriestley added a subscriber: epriestley.

I have no plans to pursue this anytime soon, but one of the goals of ApplicationEditor is enabling universal bulk editors, and I expect to pursue that and generalize bulk editors before implementing new bulk editor features.

I don't know if this is still being worked, but I find myself in a tough situation: I have a team member which has 1k+ audits, but he has recently resigned and I don't see an easy way to remove that person from each and every audit he has been assigned to!

This might be the final touch to drop off Phabricator: I was so excited about this tool :-(

See Consulting if you'd like immediate help with this issue.

Thanks Evan,
while I perfectly understand your point in sharing that link with me that's not an applicable option: I am evaluating a code review solution and I initially fall in love with Phabricator, so much I've started a large scale PoC, which is where I currently am.
Sadly, either I failed to understand the real capabilities of this suite, or the suite is not fit for our needs. In any case, I don't have a budget for this PoC other than my team time, meaning I cannot take your suggestion into consideration and I also don't think it would be practical as part of a PoC.

I'm not trying to pull your leg here, I'm just trying to be pragmatic: I was expecting to have something in the toolbox to manage a team member leaving the project or an entire team being moved... I would accept to have to issue some very long winded command on the console...

I would accept to have to issue some very long winded command on the console...

It looks like you could script something using the diffusion.commit.edit Conduit method to do this relatively easily.

Yeah, you should be able to use (with the authors constraint) + diffusion.commit.edit to accept/close the commits.

bin/audit delete --users employeewhonolongerlovesus

I've marked D18863 as fixing this. This doesn't expose bulk editors in all applications, but generalizes all existing bulk edit operations and makes the process of adding more bulk editors straightforward.