1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-23 07:12:41 +01:00

Add dates to notifications page

Summary: Fixes T3957, adds timestamps to the notifications page.

Test Plan: View my notifications page, see the new time stamps. Uncertain if I set $user correctly.

Reviewers: epriestley, btrahan

Reviewed By: btrahan

CC: Korvin, epriestley, aran

Maniphest Tasks: T3957

Differential Revision: https://secure.phabricator.com/D8039
This commit is contained in:
Chad Little 2014-01-22 20:09:32 -08:00
parent 36892cfe10
commit 57f1a83488
5 changed files with 32 additions and 7 deletions

View file

@ -7,7 +7,7 @@
return array( return array(
'names' => 'names' =>
array( array(
'core.pkg.css' => '2eafddad', 'core.pkg.css' => '6c70dd0e',
'core.pkg.js' => 'c907bd96', 'core.pkg.js' => 'c907bd96',
'darkconsole.pkg.js' => 'ca8671ce', 'darkconsole.pkg.js' => 'ca8671ce',
'differential.pkg.css' => '5a65a762', 'differential.pkg.css' => '5a65a762',
@ -40,7 +40,7 @@ return array(
'rsrc/css/aphront/typeahead.css' => '00c9a200', 'rsrc/css/aphront/typeahead.css' => '00c9a200',
'rsrc/css/application/auth/auth.css' => '1e655982', 'rsrc/css/application/auth/auth.css' => '1e655982',
'rsrc/css/application/base/main-menu-view.css' => 'aba0b7a6', 'rsrc/css/application/base/main-menu-view.css' => 'aba0b7a6',
'rsrc/css/application/base/notification-menu.css' => '07433791', 'rsrc/css/application/base/notification-menu.css' => 'fc9a363c',
'rsrc/css/application/base/phabricator-application-launch-view.css' => '6f8453d9', 'rsrc/css/application/base/phabricator-application-launch-view.css' => '6f8453d9',
'rsrc/css/application/base/standard-page-view.css' => '517cdfb1', 'rsrc/css/application/base/standard-page-view.css' => '517cdfb1',
'rsrc/css/application/chatlog/chatlog.css' => '0cd2bc78', 'rsrc/css/application/chatlog/chatlog.css' => '0cd2bc78',
@ -693,7 +693,7 @@ return array(
'phabricator-nav-view-css' => 'd0d4a509', 'phabricator-nav-view-css' => 'd0d4a509',
'phabricator-notification' => '95944043', 'phabricator-notification' => '95944043',
'phabricator-notification-css' => '6901121e', 'phabricator-notification-css' => '6901121e',
'phabricator-notification-menu-css' => '07433791', 'phabricator-notification-menu-css' => 'fc9a363c',
'phabricator-object-list-view-css' => '1a1ea560', 'phabricator-object-list-view-css' => '1a1ea560',
'phabricator-object-selector-css' => '029a133d', 'phabricator-object-selector-css' => '029a133d',
'phabricator-phtize' => 'd254d646', 'phabricator-phtize' => 'd254d646',

View file

@ -3,11 +3,17 @@
final class PhabricatorNotificationBuilder { final class PhabricatorNotificationBuilder {
private $stories; private $stories;
private $user = null;
public function __construct(array $stories) { public function __construct(array $stories) {
$this->stories = $stories; $this->stories = $stories;
} }
public function setUser($user) {
$this->user = $user;
return $this;
}
public function buildView() { public function buildView() {
$stories = $this->stories; $stories = $this->stories;
@ -124,8 +130,7 @@ final class PhabricatorNotificationBuilder {
foreach ($stories as $story) { foreach ($stories as $story) {
$view = $story->renderView(); $view = $story->renderView();
$null_view->appendChild($view->renderNotification($this->user));
$null_view->appendChild($view->renderNotification());
} }
return $null_view; return $null_view;

View file

@ -43,6 +43,7 @@ final class PhabricatorNotificationListController
if ($notifications) { if ($notifications) {
$builder = new PhabricatorNotificationBuilder($notifications); $builder = new PhabricatorNotificationBuilder($notifications);
$builder->setUser($user);
$view = $builder->buildView()->render(); $view = $builder->buildView()->render();
} else { } else {
$view = phutil_tag_div( $view = phutil_tag_div(

View file

@ -99,7 +99,7 @@ final class PHUIFeedStoryView extends AphrontView {
return $this->href; return $this->href;
} }
public function renderNotification() { public function renderNotification($user) {
$classes = array( $classes = array(
'phabricator-notification', 'phabricator-notification',
); );
@ -107,6 +107,20 @@ final class PHUIFeedStoryView extends AphrontView {
if (!$this->viewed) { if (!$this->viewed) {
$classes[] = 'phabricator-notification-unread'; $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);
} else {
$foot = null;
}
} else {
$foot = pht('No time specified.');
}
return javelin_tag( return javelin_tag(
'div', 'div',
@ -117,7 +131,7 @@ final class PHUIFeedStoryView extends AphrontView {
'href' => $this->getHref(), 'href' => $this->getHref(),
), ),
), ),
$this->title); array($this->title, $foot));
} }
public function render() { public function render() {

View file

@ -13,6 +13,11 @@
border-radius: 3px; border-radius: 3px;
} }
.phabricator-notification .phabricator-notification-date {
margin-left: 8px;
color: {$lightgreytext};
}
.phabricator-notification-menu-loading { .phabricator-notification-menu-loading {
text-align: center; text-align: center;
padding: 10px 0; padding: 10px 0;