Migrated People's listing to PhabricatorObjectListView

Summary:
Depends on D5359

Exactly what it says on a tin

made icons white; replaced panel with header

Made People app God-Mode only; did @epriestley's comments

reverted god-mode changes

Test Plan:
{F36157}

tell my if you like

Reviewers: epriestley, chad, btrahan

Reviewed By: epriestley

CC: aran, Korvin

Differential Revision: https://secure.phabricator.com/D5360
This commit is contained in:
Anh Nhan Nguyen 2013-03-19 13:47:04 -07:00 committed by epriestley
parent 3b5d9ff79a
commit d21880530d

View file

@ -25,7 +25,8 @@ final class PhabricatorPeopleListController
->needPrimaryEmail(true) ->needPrimaryEmail(true)
->executeWithOffsetPager($pager); ->executeWithOffsetPager($pager);
$rows = array(); $list = new PhabricatorObjectItemListView();
foreach ($users as $user) { foreach ($users as $user) {
$primary_email = $user->loadPrimaryEmail(); $primary_email = $user->loadPrimaryEmail();
if ($primary_email && $primary_email->getIsVerified()) { if ($primary_email && $primary_email->getIsVerified()) {
@ -34,91 +35,38 @@ final class PhabricatorPeopleListController
$email = pht('Unverified'); $email = pht('Unverified');
} }
$status = array(); $user_handle = new PhabricatorObjectHandle();
if ($user->getIsDisabled()) { $user_handle->setImageURI($user->loadProfileImageURI());
$status[] = pht('Disabled');
}
if ($user->getIsAdmin()) {
$status[] = pht('Admin');
}
if ($user->getIsSystemAgent()) {
$status[] = pht('System Agent');
}
$status = implode(', ', $status);
$rows[] = array( $item = new PhabricatorObjectItemView();
phabricator_date($user->getDateCreated(), $viewer), $item->setHeader($user->getFullName())
phabricator_time($user->getDateCreated(), $viewer), ->setHref('/people/edit/'.$user->getID().'/')
phutil_tag( ->addAttribute(hsprintf('%s %s',
'a', phabricator_date($user->getDateCreated(), $viewer),
array( phabricator_time($user->getDateCreated(), $viewer)))
'href' => '/p/'.$user->getUsername().'/', ->addAttribute($email);
),
$user->getUserName()), if ($is_admin) {
$user->getRealName(), if ($user->getIsDisabled()) {
$status, $item->addIcon('disable', pht('Disabled'));
$email, }
phutil_tag(
'a', if ($user->getIsAdmin()) {
array( $item->addIcon('highlight', pht('Admin'));
'class' => 'button grey small', }
'href' => '/people/edit/'.$user->getID().'/',
), if ($user->getIsSystemAgent()) {
pht('Administrate User')), $item->addIcon('computer', pht('System Agent'));
); }
}
$list->addItem($item);
} }
$table = new AphrontTableView($rows); $header = new PhabricatorHeaderView();
$table->setHeaders( $header->setHeader(pht('People (%d)', number_format($count)));
array(
pht('Join Date'),
pht('Time'),
pht('Username'),
pht('Real Name'),
pht('Roles'),
pht('Email'),
'',
));
$table->setColumnClasses(
array(
null,
'right',
'pri',
'wide',
null,
null,
'action',
));
$table->setColumnVisibility(
array(
true,
true,
true,
true,
$is_admin,
$is_admin,
$is_admin,
));
$panel = new AphrontPanelView(); $crumbs = $this->buildApplicationCrumbs();
$panel->setHeader(pht('People (%d)', number_format($count)));
$panel->setNoBackground();
$panel->appendChild($table);
$panel->appendChild($pager);
if ($is_admin) {
if (PhabricatorEnv::getEnvConfig('ldap.auth-enabled')) {
$panel->addButton(
phutil_tag(
'a',
array(
'href' => '/people/ldap/',
'class' => 'button green'
),
pht('Import from LDAP')));
}
}
$crumbs = $this->buildApplicationCrumbs($this->buildSideNavView());
$crumbs->addCrumb( $crumbs->addCrumb(
id(new PhabricatorCrumbView()) id(new PhabricatorCrumbView())
->setName(pht('User Directory')) ->setName(pht('User Directory'))
@ -126,14 +74,17 @@ final class PhabricatorPeopleListController
$nav = $this->buildSideNavView(); $nav = $this->buildSideNavView();
$nav->selectFilter('people'); $nav->selectFilter('people');
$nav->appendChild($panel); $nav->appendChild($header);
$nav->appendChild($list);
$nav->appendChild($pager);
$nav->setCrumbs($crumbs); $nav->setCrumbs($crumbs);
return $this->buildApplicationPage( return $this->buildApplicationPage(
$nav, $nav,
array( array(
'title' => pht('People'), 'title' => pht('People'),
'device' => true, 'device' => true,
'dust' => true,
)); ));
} }
} }