Something went wrong. Try again.
@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
Something went wrong. Try again.
3.2 kB · 122 lines
PHP
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123<?php
final class PhabricatorProjectColumnDetailController extends PhabricatorProjectBoardController {
public function handleRequest(AphrontRequest $request) { $viewer = $request->getViewer(); $id = $request->getURIData('id'); $project_id = $request->getURIData('projectID');
$project = id(new PhabricatorProjectQuery()) ->setViewer($viewer) ->requireCapabilities( array( PhabricatorPolicyCapability::CAN_VIEW, )) ->withIDs(array($project_id)) ->needImages(true) ->executeOne(); if (!$project) { return new Aphront404Response(); } $this->setProject($project);
$project_id = $project->getID();
$column = id(new PhabricatorProjectColumnQuery()) ->setViewer($viewer) ->withIDs(array($id)) ->requireCapabilities( array( PhabricatorPolicyCapability::CAN_VIEW, )) ->executeOne(); if (!$column) { return new Aphront404Response(); }
$timeline = $this->buildTransactionTimeline( $column, new PhabricatorProjectColumnTransactionQuery()); $timeline->setShouldTerminate(true);
$title = $column->getDisplayName();
$header = $this->buildHeaderView($column); $properties = $this->buildPropertyView($column);
$crumbs = $this->buildApplicationCrumbs(); $crumbs->addTextCrumb(pht('Workboard'), $project->getWorkboardURI()); $crumbs->addTextCrumb(pht('Column: %s', $title)); $crumbs->setBorder(true);
$nav = $this->newNavigation( $project, PhabricatorProject::ITEM_WORKBOARD); require_celerity_resource('project-view-css');
$view = id(new PHUITwoColumnView()) ->setHeader($header) ->addClass('project-view-home') ->addClass('project-view-people-home') ->setMainColumn(array( $properties, $timeline, ));
return $this->newPage() ->setTitle($title) ->setNavigation($nav) ->setCrumbs($crumbs) ->appendChild($view); }
private function buildHeaderView(PhabricatorProjectColumn $column) { $viewer = $this->getViewer();
$header = id(new PHUIHeaderView()) ->setHeader(pht('Column: %s', $column->getDisplayName())) ->setUser($viewer);
if ($column->isHidden()) { $header->setStatus('fa-ban', 'dark', pht('Hidden')); }
return $header; }
private function buildPropertyView( PhabricatorProjectColumn $column) { $viewer = $this->getViewer();
$properties = id(new PHUIPropertyListView()) ->setUser($viewer) ->setObject($column);
$limit = $column->getPointLimit(); if ($limit === null) { $limit_text = pht('No Limit'); } else { $limit_text = $limit; }
// The "limit" has always had a dual purpose. // Let's make it more obvious. if (ManiphestTaskPoints::getIsEnabled()) { $limit_label = pht('Point Limit'); } else { $limit_label = pht('Count Limit'); }
$properties->addProperty($limit_label, $limit_text);
$box = id(new PHUIObjectBoxView()) ->setHeaderText(pht('Details')) ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY) ->appendChild($properties);
return $box; }
}