Path: blob/master/src/applications/files/applicationpanel/PhabricatorFilesApplicationStorageEnginePanel.php
12242 views
<?php12final class PhabricatorFilesApplicationStorageEnginePanel3extends PhabricatorApplicationConfigurationPanel {45public function getPanelKey() {6return 'storage';7}89public function shouldShowForApplication(10PhabricatorApplication $application) {11return ($application instanceof PhabricatorFilesApplication);12}1314public function buildConfigurationPagePanel() {15$viewer = $this->getViewer();16$application = $this->getApplication();1718$engines = PhabricatorFileStorageEngine::loadAllEngines();19$writable_engines = PhabricatorFileStorageEngine::loadWritableEngines();20$chunk_engines = PhabricatorFileStorageEngine::loadWritableChunkEngines();2122$yes = pht('Yes');23$no = pht('No');2425$rows = array();26$rowc = array();27foreach ($engines as $key => $engine) {28if ($engine->isTestEngine()) {29continue;30}3132$limit = null;33if ($engine->hasFilesizeLimit()) {34$limit = phutil_format_bytes($engine->getFilesizeLimit());35} else {36$limit = pht('Unlimited');37}3839if ($engine->canWriteFiles()) {40$writable = $yes;41} else {42$writable = $no;43}4445if (isset($writable_engines[$key]) || isset($chunk_engines[$key])) {46$rowc[] = 'highlighted';47} else {48$rowc[] = null;49}5051$rows[] = array(52$key,53get_class($engine),54$writable,55$limit,56);57}5859$table = id(new AphrontTableView($rows))60->setNoDataString(pht('No storage engines available.'))61->setHeaders(62array(63pht('Key'),64pht('Class'),65pht('Writable'),66pht('Limit'),67))68->setRowClasses($rowc)69->setColumnClasses(70array(71'',72'wide',73'',74'n',75));7677$box = id(new PHUIObjectBoxView())78->setHeaderText(pht('Storage Engines'))79->setTable($table);8081return $box;82}8384public function handlePanelRequest(85AphrontRequest $request,86PhabricatorController $controller) {87return new Aphront404Response();88}8990}919293