1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-15 03:12:41 +01:00
phorge-phorge/src/view/phui/PHUIWorkboardView.php
Chad Little f691e35195 Add Fluid-ish view to AphrontMultiColumnView
Summary: Cleans up some CSS while adding lots of other... Mainly, this allow min-width "tables" that trigger a scroll-bar, but go full width if larger than min.

Test Plan: Tested Workboard Examples and some Project pages, Chrome, Tablet and Mobile Layouts

Reviewers: epriestley

CC: Korvin, epriestley, aran

Differential Revision: https://secure.phabricator.com/D7509
2013-11-05 18:57:52 -08:00

81 lines
1.8 KiB
PHP

<?php
final class PHUIWorkboardView extends AphrontView {
private $panels = array();
private $fluidLayout = false;
private $fluidishLayout = false;
private $actions = array();
public function addPanel(PHUIWorkpanelView $panel) {
$this->panels[] = $panel;
return $this;
}
public function setFluidLayout($layout) {
$this->fluidLayout = $layout;
return $this;
}
public function setFluidishLayout($layout) {
$this->fluidishLayout = $layout;
return $this;
}
public function addAction(PHUIIconView $action) {
$this->actions[] = $action;
return $this;
}
public function render() {
require_celerity_resource('phui-workboard-view-css');
$action_list = null;
if (!empty($this->actions)) {
$items = array();
foreach ($this->actions as $action) {
$items[] = phutil_tag(
'li',
array(
'class' => 'phui-workboard-action-item'
),
$action);
}
$action_list = phutil_tag(
'ul',
array(
'class' => 'phui-workboard-action-list'
),
$items);
}
$view = new AphrontMultiColumnView();
$view->setGutter(AphrontMultiColumnView::GUTTER_MEDIUM);
if ($this->fluidLayout) {
$view->setFluidLayout($this->fluidLayout);
}
if ($this->fluidishLayout) {
$view->setFluidishLayout($this->fluidishLayout);
}
foreach ($this->panels as $panel) {
$view->addColumn($panel);
}
$board = phutil_tag(
'div',
array(
'class' => 'phui-workboard-view-shadow'
),
$view);
return phutil_tag(
'div',
array(
'class' => 'phui-workboard-view'
),
array(
$action_list,
$board
));
}
}