Path: blob/master/src/applications/meta/controller/PhabricatorApplicationPanelController.php
12256 views
<?php12final class PhabricatorApplicationPanelController3extends PhabricatorApplicationsController {45private $application;67public function handleRequest(AphrontRequest $request) {8$viewer = $this->getViewer();910$application = $request->getURIData('application');11$panel_key = $request->getURIData('panel');1213$selected = id(new PhabricatorApplicationQuery())14->setViewer($viewer)15->withClasses(array($application))16->requireCapabilities(17array(18PhabricatorPolicyCapability::CAN_VIEW,19PhabricatorPolicyCapability::CAN_EDIT,20))21->executeOne();22if (!$selected) {23return new Aphront404Response();24}2526$panels =27PhabricatorApplicationConfigurationPanel::loadAllPanelsForApplication(28$selected);29if (empty($panels[$panel_key])) {30return new Aphront404Response();31}3233$panel = $panels[$panel_key];3435if (!$panel->shouldShowForApplication($selected)) {36return new Aphront404Response();37}3839$panel->setViewer($viewer);40$panel->setApplication($selected);4142$this->application = $selected;4344return $panel->handlePanelRequest($request, $this);45}4647public function buildPanelCrumbs(48PhabricatorApplicationConfigurationPanel $panel) {49$application = $this->application;5051$crumbs = $this->buildApplicationCrumbs();5253$view_uri = '/applications/view/'.get_class($application).'/';54$crumbs->addTextCrumb($application->getName(), $view_uri);5556return $crumbs;57}5859public function buildPanelPage(60PhabricatorApplicationConfigurationPanel $panel,61$title,62$crumbs,63$content) {6465return $this->newPage()66->setTitle($title)67->setCrumbs($crumbs)68->appendChild($content);69}7071}727374