Page MenuHomePhabricator

Figure out what to do with "Edit Blocking Tasks", "Edit Differential Revisions" and "Edit Pholio Mocks"
Closed, ResolvedPublic

Description

See some discussion on T4788.

I think part of the confusion around "Edit Blocking Tasks" is because no "Edit Blocked Tasks" action is available. If users had a modal choice between the two, they'd have to think about what they were doing instead of blindly clicking the most-similar link to what they're trying to do, which I suspect may lead to sort of workflow blindness. In particular, I think giving user a modal choice is better than putting them in an "Edit Blocking" mode and requiring them to select "Blocking Tasks", then change them to "Blocked Tasks" using a dropdown (as in T4788#106456), since this is pretty confusing/unintuitive (you have to click an action which is opposite what you actually want to do).

So I'd like to try adding a second action, but this exacerbates the existing problem of all these actions being pretty similar and cluttery. I also expect we'll have more of them in the future (with third-party applications if not other first-party applications). D8685 was one attempt to fix this, but never felt quite right to me. M1464 tackles the clutter problem, but didn't try to address these relationship links.

If we had a good way to fold these, I think it's likely that we could resolve confusion about merging and confusion about blocking tasks by just giving users modal choices so they're forced to pick the one they want.

Event Timeline

epriestley created this object with edit policy "All Users".

Some ideas here:

  • Take another stab at D8685, more or less as mocked.
  • Just make these dropdowns? I don't love that you'll need JS to activate them, but the selector dialog behind them doesn't work without JS anyway so this is kind of moot in practice.
  • Pull "Relationships" into 1-2 curtain panels? I'm not really sure what this would look like. The M1464 approaches to panels like "Tokens" don't immediately feel like they'd translate to me.
  • Put the edit UI directly on the "Details" panel somehow, instead of in the actions list? I don't really like this since I think it's good that all the actions are pretty much in the same place.
epriestley changed the edit policy from "All Users" to "Community (Project)".Jun 20 2016, 3:51 PM

I was sort of hoping to make Pholio (for instance) a rich panel in the main column. So if I attached M1464, I would get a Pholio Panel with

  • in it.

    I'd probably turn this into two sections (I guess?) if we had a dropdown/disclosure element:

    • Edit Related Tasks...
      • Create Subtask
      • Create Parent Task (Do we need/want this? Not sure anyone has ever asked for it.)
      • Edit Subtasks (renamed from "Edit Blocking Tasks")
      • Edit Parent Tasks (new, for T4788)
      • Merge Duplicates In
      • Close As Duplicate (new, for T7820)
    • Edit Related Objects...
      • Edit Commits (new, for T9232).
      • Edit Revisions
      • Edit Mocks

    I don't like the title "Edit Related Tasks" but that generally seems structurally reasonable to me otherwise, and less error-prone.

    Yeah, I think that's totally reasonable. I want to fix up the UI for showing subtasks and revisions and stuff as part of T4788, so I'd expect to do this:

    • Rename "Blocks" to "Subtasks".
    • Turn it into a richer element with a "graph/tree" display option (per T4207).
    • Change "mocks" into a full-width panel.
    • Probably make revisions, commits, and tasks a bit richer (show more status information, I think we have a couple tasks for this floating around).

    I go back and forth on if Tasks/Revisions/Commits should be richer. I do think maybe we can leave them as a list but have a button/dialog to pull up their full cards? My main concern UI wise is they'll take up a ton of space on larger tasks and really force the content down.

    eadler added a project: Restricted Project.Jun 20 2016, 4:00 PM
    eadler moved this task from Restricted Project Column to Restricted Project Column on the Restricted Project board.

    Let's start with the two dropdowns and see how it goes.

    Oh, I wouldn't plan to make them meaningfully taller vertically -- I'm primarily imagining a very small adjustment ala "Reviewers" in Differential, e.g.:

    Old:

    • Txyz Blah Blah Blah

    New (with status icon + maybe assignee?):

    • (epriestley) Txyz Blah Blah Blah

    We could also probably hide closed tasks/revisions by default ("+13 closed revisions, click to show") and truncate commits ("+52 older commits, click to show"), although I haven't personally found that stuff to be particularly annoying.

    Yeah, I'm leaning toward starting there too.

    oh, yeah derp. single line with more info would kick ass

    We can/should also make hovercards richer -- I think that's mostly "free" in terms of product/design tension, especially for cards like mocks which have received very little attention.

    e.g., pretty sure we can do slightly better than this without resolving any big philosophical questions:

    Dropdowns need a bit of CSS tweaking but they feel OK to me.

    Closed:

    Open:

    The open state feels a bit busy (menu-on-menu) but I think fixing the dropdown so it comes out full-width will help with that. Might be good to align it directly under the "Edit Related Objects..." action and use some sort of stronger style for the active state of "Edit Related Objects...", or grey out the rest of the menu or something. Feels pretty minor and tractable to me, though.

    However, this creates a problem that the mobile version is already a dropdown, and the code doesn't currently work if we put dropdowns in dropdowns. I'll see if I can fix that.

    The "Edit Revisions" and "Edit Mocks" actions are also pulled in by event code right now, so I need to modularize/update that.

    Actually, I'm slightly wrong about dropdowns-in-dropdowns being the issue, looks like some kind of rendering order problem instead.

    I sure wrote some Javascript today

    I pushed that junk here, yell if anyone catches issues.

    My plan forward is:

    • Modularize the simple relationships (revisions, mocks).
    • Get them generating into a submenu automatically.
    • Probably add commits too, since we'll have room for it (resolving T9232).

    Then I'm going to figure out how to move forward on ObjectSelector, I'm not sure if I'm going to move relationships over one at a time or try to do the whole thing at once yet.

    The UI stuff seems to be figured out so I'm going to call this done this continue work in T4788.