1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2025-01-04 03:41:01 +01:00
phorge-phorge/src/aphront/default/configuration/AphrontDefaultApplicationConfiguration.php

173 lines
5.9 KiB
PHP
Raw Normal View History

<?php
/*
* Copyright 2011 Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* @group aphront
*/
class AphrontDefaultApplicationConfiguration
extends AphrontApplicationConfiguration {
public function getApplicationName() {
return 'aphront-default';
}
public function getURIMap() {
return array(
'/repository/' => array(
'$' => 'RepositoryListController',
'new/$' => 'RepositoryEditController',
'edit/(?<id>\d+)/$' => 'RepositoryEditController',
'delete/(?<id>\d+)/$' => 'RepositoryDeleteController',
),
'/' => array(
2011-01-23 06:09:13 +01:00
'$' => 'PhabricatorDirectoryMainController',
),
'/directory/' => array(
2011-01-23 06:09:13 +01:00
'item/$'
=> 'PhabricatorDirectoryItemListController',
'item/edit/(?:(?<id>\d+)/)?$'
=> 'PhabricatorDirectoryItemEditController',
'item/delete/(?<id>\d+)/'
=> 'PhabricatorDirectoryItemDeleteController',
'category/$'
2011-01-23 06:09:13 +01:00
=> 'PhabricatorDirectoryCategoryListController',
'category/edit/(?:(?<id>\d+)/)?$'
2011-01-23 06:09:13 +01:00
=> 'PhabricatorDirectoryCategoryEditController',
'category/delete/(?<id>\d+)/'
2011-01-23 06:09:13 +01:00
=> 'PhabricatorDirectoryCategoryDeleteController',
),
2011-01-23 03:33:00 +01:00
'/file/' => array(
'$' => 'PhabricatorFileListController',
'upload/$' => 'PhabricatorFileUploadController',
'(?<view>info)/(?<phid>[^/]+)/' => 'PhabricatorFileViewController',
'(?<view>view)/(?<phid>[^/]+)/' => 'PhabricatorFileViewController',
'(?<view>download)/(?<phid>[^/]+)/' => 'PhabricatorFileViewController',
),
2011-01-23 06:09:13 +01:00
'/phid/' => array(
2011-01-26 18:02:09 +01:00
'$' => 'PhabricatorPHIDLookupController',
'list/$' => 'PhabricatorPHIDListController',
2011-01-23 06:09:13 +01:00
'type/$' => 'PhabricatorPHIDTypeListController',
'type/edit/(?:(?<id>\d+)/)?$' => 'PhabricatorPHIDTypeEditController',
'new/$' => 'PhabricatorPHIDAllocateController',
),
2011-01-24 03:09:16 +01:00
'/people/' => array(
'$' => 'PhabricatorPeopleListController',
'edit/(?:(?<username>\w+)/)?$' => 'PhabricatorPeopleEditController',
),
'/p/(?<username>\w+)/$' => 'PhabricatorPeopleProfileController',
2011-01-24 18:00:29 +01:00
'/conduit/' => array(
'$' => 'PhabricatorConduitConsoleController',
'method/(?<method>[^/]+)$' => 'PhabricatorConduitConsoleController',
'log/$' => 'PhabricatorConduitLogController',
),
'/api/(?<method>[^/]+)$' => 'PhabricatorConduitAPIController',
2011-01-24 22:18:41 +01:00
2011-01-27 23:55:52 +01:00
'/D(?<id>\d+)' => 'DifferentialRevisionViewController',
2011-01-24 22:18:41 +01:00
'/differential/' => array(
2011-01-26 00:19:06 +01:00
'$' => 'DifferentialRevisionListController',
2011-01-27 20:35:04 +01:00
'filter/(?<filter>\w+)/$' => 'DifferentialRevisionListController',
2011-01-25 00:52:35 +01:00
'diff/(?<id>\d+)/$' => 'DifferentialDiffViewController',
'changeset/(?<id>\d+)/$' => 'DifferentialChangesetViewController',
2011-01-25 22:26:09 +01:00
'revision/edit/(?:(?<id>\d+)/)?$'
=> 'DifferentialRevisionEditController',
2011-01-24 22:18:41 +01:00
),
'/res/' => array(
2011-01-30 01:10:05 +01:00
'(?<package>pkg/)?(?<hash>[a-f0-9]{8})/(?<path>.+\.(?:css|js))$'
=> 'CelerityResourceController',
),
2011-01-25 22:48:05 +01:00
'/typeahead/' => array(
'common/(?<type>\w+)/$'
=> 'PhabricatorTypeaheadCommonDatasourceController',
),
2011-01-26 02:40:21 +01:00
'/mail/' => array(
'$' => 'PhabricatorMetaMTAListController',
'send/$' => 'PhabricatorMetaMTASendController',
'view/(?<id>\d+)/$' => 'PhabricatorMetaMTAViewController',
2011-01-26 19:40:38 +01:00
'lists/$' => 'PhabricatorMetaMTAMailingListsController',
'lists/edit/(?:(?<id>\d+)/)?$'
=> 'PhabricatorMetaMTAMailingListEditController',
),
2011-01-26 22:21:12 +01:00
'/login/' => 'PhabricatorLoginController',
);
}
public function buildRequest() {
$request = new AphrontRequest($this->getHost(), $this->getPath());
$request->setRequestData($_GET + $_POST);
return $request;
}
public function handleException(Exception $ex) {
$class = phutil_escape_html(get_class($ex));
$message = phutil_escape_html($ex->getMessage());
$content =
'<div class="aphront-unhandled-exception">'.
'<h1>Unhandled Exception "'.$class.'": '.$message.'</h1>'.
'<code>'.phutil_escape_html((string)$ex).'</code>'.
'</div>';
2011-01-23 02:48:55 +01:00
$view = new PhabricatorStandardPageView();
$view->appendChild($content);
$response = new AphrontWebpageResponse();
$response->setContent($view->render());
return $response;
}
public function willSendResponse(AphrontResponse $response) {
$request = $this->getRequest();
if ($response instanceof AphrontDialogResponse) {
if (!$request->isAjax()) {
2011-01-23 02:48:55 +01:00
$view = new PhabricatorStandardPageView();
$view->appendChild(
'<div style="padding: 2em 0;">'.
$response->buildResponseString().
'</div>');
$response = new AphrontWebpageResponse();
$response->setContent($view->render());
return $response;
}
} else if ($response instanceof Aphront404Response) {
$view = new PhabricatorStandardPageView();
$view->appendChild('404 Not Found');
$view->setTitle('404 Not Found');
$response = new AphrontWebpageResponse();
$response->setContent($view->render());
$response->setHTTPResponseCode(404);
return $response;
}
return $response;
}
2011-01-30 01:16:09 +01:00
public function build404Controller() {
return array(new Phabricator404Controller($this->getRequest()), array());
2011-01-30 01:16:09 +01:00
}
}