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:
@@ -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));
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user