Allow inline comments to be individually hidden

Summary:
Ref T7447. Implements per-viewer comment hiding. Once a comment is obsolete or uninteresting, you can hide it completely.

This is sticky per-user.

My hope is that this will strike a better balance between concerns than some of the other approaches (conservative porting, summarization, hide-all).

Specifically, this adds a new action here:

{F435621}

Clicking it completely collapses the comment into a small icon on the previous line, and saves the comment state as hidden for you:

{F435626}

You can click the icon to reveal all hidden comments below the line.

Test Plan:
  - Hid comments.
  - Showed comments.
  - Created, edited, deleted and submitted comments.
  - Used Diffusion comments (hiding is not implemented there yet, but I'd plan to bring it there eventually if it works out in Differential).

Reviewers: btrahan, chad

Reviewed By: btrahan

Subscribers: jparise, yelirekim, epriestley

Maniphest Tasks: T7447

Differential Revision: https://secure.phabricator.com/D13009
This commit is contained in:
epriestley
2015-05-27 10:28:38 -07:00
parent fcac85d807
commit e9f4a84a89
26 changed files with 454 additions and 65 deletions

View File

@@ -13,6 +13,7 @@ final class DifferentialTransactionComment
protected $replyToCommentPHID;
private $replyToComment = self::ATTACHABLE;
private $isHidden = self::ATTACHABLE;
public function getApplicationTransactionObject() {
return new DifferentialTransaction();
@@ -99,4 +100,13 @@ final class DifferentialTransactionComment
return $inline_groups;
}
public function getIsHidden() {
return $this->assertAttached($this->isHidden);
}
public function attachIsHidden($hidden) {
$this->isHidden = $hidden;
return $this;
}
}