1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-24 07:42:40 +01:00
phorge-phorge/src/view/phui/PHUIPinboardItemView.php
epriestley de0e0d995b Support Spaces in Pholio
Summary:
Ref T8493. Add Spaces support to Pholio.

This is straightforward; Pholio has no clone/copy/fork or weird parent/child stuff going on.

Test Plan: Created a mock, put it in a space, looked at it as another user, searched for stuff in spaces, viewed Macros.

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: epriestley

Maniphest Tasks: T8493

Differential Revision: https://secure.phabricator.com/D13231
2015-06-10 15:52:49 -07:00

148 lines
3.2 KiB
PHP

<?php
final class PHUIPinboardItemView extends AphrontView {
private $imageURI;
private $uri;
private $header;
private $iconBlock = array();
private $disabled;
private $object;
private $imageWidth;
private $imageHeight;
public function setHeader($header) {
$this->header = $header;
return $this;
}
public function setURI($uri) {
$this->uri = $uri;
return $this;
}
public function setImageURI($image_uri) {
$this->imageURI = $image_uri;
return $this;
}
public function setImageSize($x, $y) {
$this->imageWidth = $x;
$this->imageHeight = $y;
return $this;
}
public function addIconCount($icon, $count) {
$this->iconBlock[] = array($icon, $count);
return $this;
}
public function setDisabled($disabled) {
$this->disabled = $disabled;
return $this;
}
public function setObject($object) {
$this->object = $object;
return $this;
}
public function render() {
require_celerity_resource('phui-pinboard-view-css');
$header = null;
if ($this->header) {
if ($this->disabled) {
$header_color = 'gradient-lightgrey-header';
} else {
$header_color = 'gradient-lightblue-header';
}
$header = phutil_tag(
'div',
array(
'class' => 'phui-pinboard-item-header '.
'sprite-gradient '.$header_color,
),
array(
id(new PHUISpacesNamespaceContextView())
->setUser($this->getUser())
->setObject($this->object),
phutil_tag(
'a',
array(
'href' => $this->uri,
),
$this->header),
));
}
$image = null;
if ($this->imageWidth) {
$image = phutil_tag(
'a',
array(
'href' => $this->uri,
'class' => 'phui-pinboard-item-image-link',
),
phutil_tag(
'img',
array(
'src' => $this->imageURI,
'width' => $this->imageWidth,
'height' => $this->imageHeight,
)));
}
$icons = array();
if ($this->iconBlock) {
$icon_list = array();
foreach ($this->iconBlock as $block) {
$icon = id(new PHUIIconView())
->setIconFont($block[0].' lightgreytext')
->addClass('phui-pinboard-icon');
$count = phutil_tag('span', array(), $block[1]);
$icon_list[] = phutil_tag(
'span',
array(
'class' => 'phui-pinboard-item-count',
),
array($icon, $count));
}
$icons = phutil_tag(
'div',
array(
'class' => 'phui-pinboard-icons',
),
$icon_list);
}
$content = $this->renderChildren();
if ($content) {
$content = phutil_tag(
'div',
array(
'class' => 'phui-pinboard-item-content',
),
$content);
}
$classes = array();
$classes[] = 'phui-pinboard-item-view';
if ($this->disabled) {
$classes[] = 'phui-pinboard-item-disabled';
}
return phutil_tag(
'div',
array(
'class' => implode(' ', $classes),
),
array(
$header,
$image,
$content,
$icons,
));
}
}