Page MenuHomePhabricator

Provide Workboard templates, or some other way to get a commonly used set of columns on a board quickly
Closed, ResolvedPublic

Description

Companies that heavily use Projects/Workboards will likely want some ease of setup of new Project Boards. In a v1 I think we can make this fairly simple by offering a few settings (found on the new Edit Project page).

  • Workboards On/Off
  • Workboard Template [select] none, saved template 1, saved template 2 [/select]

We can then link to the this edit page on workboards for other various settings once we likely have them.

My thinking overall is people will likely have 2-3 templates (kanban, sprint, milestones, etc) and when they create new projects will want to one click have the boards set up.

I currently have Workboards here with Milestone 1, Milestone 2, etc, and I have Design as Backlog, Short Term, and In Progress.

Event Timeline

chad raised the priority of this task from to Normal.
chad updated the task description. (Show Details)
chad added projects: Projects, Workboards.
chad updated the task description. (Show Details)
chad added subscribers: chad, epriestley, mbishopim3.

I think "Templates" is tricky to make editable for existing projects. For example, if I already have a bunch of custom columns and then change the "template", what does that do?

I think there are a very small number of actual workboard behaviors which can be changed midstream -- roughly:

  • What should columns be ordered by? The two use cases right now are "priority" (what we all assumed everyone would want, I think) and "nothing / leave things where I put them / don't change priorities on me" (some discussion in T4476), although you could imagine other orderings as well. But maybe this is actually just an option on the board, "view ordered by: ...".
  • When new columns are created, should they be added to the left or right side of the board? I don't actually know if anyone cares or this is meaningful, and no one has asked for this. This was mostly a vague idea I had a while ago. But maybe this is really just an option when creating a new column ("Put on left / put on right").
  • Not really sure what else we might have.

A use case that I do think is useful is "copy columns from... [some other project]", but only when creating a project. You couldn't change this midstream, or if you could it would delete all your columns first and move all your tasks back to "backlog" or something.

Yeah, I don't except to change projects midstream, the templates model is just for creation or maybe event project defaults (as in, any project created gets these n boards automatically). So we could have a template for "Sprint" which would be different than "Security Review".

epriestley renamed this task from Projects need a Workboard Settings page to Provide Workboard templates, or some other way to get a commonly used set of columns on a board quickly.May 18 2014, 6:22 PM

I have half a diff for this and my suggestion is the following:

CURRENTLY, when a user views a workboard with no columns yet, a "default" column is created.
POST DIFF, when a user views a workboard with no columns yet...

  • if user is member of any projects, present a dropdown to copy columns from these projects
    • have a "default" in this list that acts as things do now
    • if a chosen project has no columns, act as things are now

So basically this just lets you copy projects around easily.

Yeah I would make a dashed-line empty div next to backlog with some text...

"This workboard has not been configured yet [Add the first panel] or [Import from another project]" that both launch the correct dialog.

(Something along those lines)

I've worked on the UI part for awhile today and its quite the pain in the ass to put stuff into the PhuiWorkboard that is not a PhuiWorkpanelView, and in turn PhuiWorkpanelView is expecting PhuiObjectListItemView as "cards". To put something custom in there, these classes need to have their getTagContent methods respect the standard appendChild stuff and at some point call renderChildren. Additionally, certain things like headers wouldn't render for this UI element... Anyway, here's where I'm at on that hacking:

Screen_Shot_2014-08-05_at_10.20.02_AM.png (1×2 px, 411 KB)

...so the attached diff does it the way I initially proposed. I think the workflow is slightly tighter for what its worth because you can have just a "backlog" column without the "you've never used this thing, have you?" UI sticking around indefinitely.

@epriestley helped me with the UI a bit more in the diff and we're good to go now methinks.