1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-28 01:32:42 +01:00
phorge-phorge/src/view/phui/PHUIObjectItemListView.php
Chad Little 46f6c2680e [Redesign] New PHUIObjectItemListView
Summary:
New, cleaner, ObjectItemLists. Lots of minor style tweaks, basic overview:

 - Remove FootIcons
 - Remove Stackable
 - Remove Plain List
 - Add StatusIcon
 - Add setting ObjectList to an ObjectBox
 - Minor retouches to Headers

Mostly, this should give us an idea of life with the new Object Lists. I'll take another application by application pass down the road. This mostly looks at implementation in Maniphest, Differential, Audit, Workboards. Checked a few other areas and dialogs while testing, and everything looks square.

Test Plan: Maniphest, Differential, Homepage, Audit, People, and other applications. Drag reorder, etc.

Reviewers: btrahan, epriestley

Reviewed By: epriestley

Subscribers: Korvin, epriestley

Differential Revision: https://secure.phabricator.com/D12865
2015-05-15 13:28:59 -07:00

116 lines
2.3 KiB
PHP

<?php
final class PHUIObjectItemListView extends AphrontTagView {
private $header;
private $items;
private $pager;
private $noDataString;
private $flush;
private $allowEmptyList;
private $states;
public function setAllowEmptyList($allow_empty_list) {
$this->allowEmptyList = $allow_empty_list;
return $this;
}
public function getAllowEmptyList() {
return $this->allowEmptyList;
}
public function setFlush($flush) {
$this->flush = $flush;
return $this;
}
public function setHeader($header) {
$this->header = $header;
return $this;
}
public function setPager($pager) {
$this->pager = $pager;
return $this;
}
public function setNoDataString($no_data_string) {
$this->noDataString = $no_data_string;
return $this;
}
public function addItem(PHUIObjectItemView $item) {
$this->items[] = $item;
return $this;
}
public function setStates($states) {
$this->states = $states;
return $this;
}
protected function getTagName() {
return 'ul';
}
protected function getTagAttributes() {
$classes = array();
$classes[] = 'phui-object-item-list-view';
if ($this->states) {
$classes[] = 'phui-object-list-states';
}
if ($this->flush) {
$classes[] = 'phui-object-list-flush';
}
return array(
'class' => $classes,
);
}
protected function getTagContent() {
require_celerity_resource('phui-object-item-list-view-css');
$header = null;
if (strlen($this->header)) {
$header = phutil_tag(
'h1',
array(
'class' => 'phui-object-item-list-header',
),
$this->header);
}
if ($this->items) {
$items = $this->items;
} else if ($this->allowEmptyList) {
$items = null;
} else {
$string = nonempty($this->noDataString, pht('No data.'));
$string = id(new PHUIInfoView())
->setSeverity(PHUIInfoView::SEVERITY_NODATA)
->appendChild($string);
$items = phutil_tag(
'li',
array(
'class' => 'phui-object-item-empty',
),
$string);
}
$pager = null;
if ($this->pager) {
$pager = $this->pager;
}
return array(
$header,
$items,
$pager,
$this->renderChildren(),
);
}
}