Ref T3669. Probably. Adds a yellow warning at the top of the Diff View and makes the comment draft icon yellow on lists of revisions.
Details
- Reviewers
epriestley btrahan - Maniphest Tasks
- T3669: Make it easier to remember to submit inline comments when updating a diff
- Commits
- Restricted Diffusion Commit
rPa0907819cdb8: Add addtional hints you haven't submitted comments on a Diff
Test a diff with many warnings, see warning. Test a diff with draft comments, see warning. Test new icon in list view.
Diff Detail
- Repository
- rP Phabricator
- Branch
- draft-comments
- Lint
Lint Passed - Unit
Tests Passed - Build Status
Buildable 3060 Build 3066: [Placeholder Plan] Wait for 30 Seconds
Event Timeline
I don't think this will help very much. It doesn't address the fundamental issue of coming into things with the GitHub model and being surprised by the Phabricator model, because you're unlikely to scroll to the top of the revision after leaving a comment.
How about a persistent notification bubble? Did we discuss and dismiss that already?
Honestly, if this is all Reviewboard does, I think it's likely useful and it does make it more clear (that is, I find it a useful reminder). Whether people will still want more, it's hard to say. I'm fine keeping the ticket open.
What's the notification bubble idea? A one-time NUX thing for when you don't submit, or something that follows you everywhere? I have tons of drafts, I assume you do too.
ReviewBoard has a persistent, floating, fixed-position header, not just a banner at the top of the page.
Bubble would be something like this in the lower left (like notification bubbles, but persistent):
/-------------------------------\ | Unsubmitted Comments | | You have draft inline comments | | you have not submitted yet. | \-------------------------------/
It would show up only when the current page had unsubmitted drafts. Basically like Review Board's thing, but a notification bubble instead of a giant banner.
My concern with a persistent header or floating bubble is that says, basically, we know our system is broken and thus will remind you all the time regardless of if you actually need it. It seems like a feature that would get in the way of the pro-users, which we philosophically engineer the product towards. I could be wrong, I'd be happy to test it, but it seems very heavy.
I do think our system is 'more correct' than Github, and a light touch with reminders/warnings we don't interrupt anyone and educate the new people
Yeah, I don't like it either. I think the alternatives are that + an option to turn it off (also bad), that + some kind of one-time-mode (still bad, really hard to test), or not fixing this.
It's probably involved to show/hide the notification correctly -- if you add an inline we have to show it (and this is by far the most important time to show it, I think -- if users make it back to the page later, it's probably because they realized their thing didn't submit -- we need to tell you right after you create the inline), and we should remove it if you delete all the pending inlines, so it needs to be JS-based rather than just checking if drafts exist.
Overall, my inclination is to punt until after T1460 and examine something on the inlines themselves when they get retouched for that. For example, a yellow "draft" banner on the inline might do a better job than just the dashed border and grey "Draft" text.
(I also think the list change is fine on its own if you want to do that, but that it won't move the needle on T3669 much.)
Another report came in today and I merged it into the master task.
Did we talk about yelling when you try to leave the page yet? Basically if there's an unsubmitted inline comment we can raise one of those javascrpt "you have unsubmitted ish are you sure?" type dialogues.
src/applications/differential/controller/DifferentialRevisionViewController.php | ||
---|---|---|
965 | you could just grab the user with $this->getRequest()->getUser() if you like... 5 parameters is a bunch. |
Some discussion of that in the attached task. A major issue is that we have very limited ability to tell the user why we're yelling at them in some browsers (Firefox, IIRC).
src/applications/differential/controller/DifferentialRevisionViewController.php | ||
---|---|---|
965 | You can even do $this->getViewer() now on Controllers. |
My concern is that I'm like 99% sure this won't help at all (users who this affects will never see the warning because they'll scroll down, make a comment, think it submitted, and not open the revision again until it's too late). If you want to pursue this anyway that's fine, but I intend to revert it after addressing this more directly (during T1460).
I think solves a different problem that we currently have, regardless. It provides a consistent, more obvious indication that you have drafts somewhere on the current page. Are there plans for similar in T1460? Though my memory is pretty terrible according to my wife, so features like this may be more useful than the average to me.
I not sure any users have the other problem (understanding how draft inlines work, but forgetting they have left unsubmitted draft inlines, despite returning to the revision later). Have you experienced this, or seen reports of it? I don't recall anyone raising that issue in T3669.
I don't have plans to solve that problem because I don't currently believe users experience it: either they don't understand the model (and will thus never see the warning) or (rarely) they forget about inlines completely and don't return to the revision (and again never see the warning).
I think the change to the status list is worth keeping regardless (and has a far better chance of being useful, since users don't need to return to the revision in order to see it), but am very wary about cluttering the page header with high-attention, low-value information.