1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-10 08:52:39 +01:00

Strip timestamps from popup notification bubbles

Summary:
Fixes T11097. Currently, popup notifications show a useless timestamp with the current time, after D16041 made some things more consistent.

Strip these from the popup bubbles.

Test Plan:
  - Saw a popup bubble, no timestamp.
  - Viewed main notification list, saw timestamps.

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T11097

Differential Revision: https://secure.phabricator.com/D16258
This commit is contained in:
epriestley 2016-07-08 07:38:37 -07:00
parent 5c8dabdf80
commit bd6d300282
3 changed files with 41 additions and 12 deletions

View file

@ -5,6 +5,7 @@ final class PhabricatorNotificationBuilder extends Phobject {
private $stories;
private $parsedStories;
private $user = null;
private $showTimestamps = true;
public function __construct(array $stories) {
assert_instances_of($stories, 'PhabricatorFeedStory');
@ -16,6 +17,15 @@ final class PhabricatorNotificationBuilder extends Phobject {
return $this;
}
public function setShowTimestamps($show_timestamps) {
$this->showTimestamps = $show_timestamps;
return $this;
}
public function getShowTimestamps() {
return $this->showTimestamps;
}
private function parseStories() {
if ($this->parsedStories) {
@ -121,6 +131,9 @@ final class PhabricatorNotificationBuilder extends Phobject {
// TODO: Render a nice debuggable notice instead?
continue;
}
$view->setShowTimestamp($this->getShowTimestamps());
$null_view->appendChild($view->renderNotification($this->user));
}

View file

@ -31,7 +31,8 @@ final class PhabricatorNotificationIndividualController
}
$builder = id(new PhabricatorNotificationBuilder(array($story)))
->setUser($viewer);
->setUser($viewer)
->setShowTimestamps(false);
$content = $builder->buildView()->render();
$dict = $builder->buildDict();

View file

@ -17,6 +17,7 @@ final class PHUIFeedStoryView extends AphrontView {
private $chronologicalKey;
private $tags;
private $authorIcon;
private $showTimestamp = true;
public function setTags($tags) {
$this->tags = $tags;
@ -97,6 +98,15 @@ final class PHUIFeedStoryView extends AphrontView {
return $this;
}
public function setShowTimestamp($show_timestamp) {
$this->showTimestamp = $show_timestamp;
return $this;
}
public function getShowTimestamp() {
return $this->showTimestamp;
}
public function addProject($project) {
$this->projects[] = $project;
return $this;
@ -136,20 +146,25 @@ final class PHUIFeedStoryView extends AphrontView {
if (!$this->viewed) {
$classes[] = 'phabricator-notification-unread';
}
if ($this->epoch) {
if ($user) {
$foot = phabricator_datetime($this->epoch, $user);
$foot = phutil_tag(
'span',
array(
'class' => 'phabricator-notification-date',
),
$foot);
if ($this->getShowTimestamp()) {
if ($this->epoch) {
if ($user) {
$foot = phabricator_datetime($this->epoch, $user);
$foot = phutil_tag(
'span',
array(
'class' => 'phabricator-notification-date',
),
$foot);
} else {
$foot = null;
}
} else {
$foot = null;
$foot = pht('No time specified.');
}
} else {
$foot = pht('No time specified.');
$foot = null;
}
return javelin_tag(