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

227 lines
7.7 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',
'diff/' => array(
'(?<id>\d+)/$' => 'DifferentialDiffViewController',
'create/$' => 'DifferentialDiffCreateController',
),
'changeset/$' => 'DifferentialChangesetViewController',
2011-01-25 22:26:09 +01:00
'revision/edit/(?:(?<id>\d+)/)?$'
=> 'DifferentialRevisionEditController',
'comment/' => array(
2011-02-01 03:05:20 +01:00
'preview/(?<id>\d+)/$' => 'DifferentialCommentPreviewController',
'save/$' => 'DifferentialCommentSaveController',
'inline/' => array(
2011-02-03 04:38:43 +01:00
'preview/(?<id>\d+)/$' =>
'DifferentialInlineCommentPreviewController',
2011-02-02 01:42:36 +01:00
'edit/(?<id>\d+)/$' => 'DifferentialInlineCommentEditController',
),
),
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/' => array(
'$' => 'PhabricatorLoginController',
'email/$' => 'PhabricatorEmailLoginController',
'etoken/(?<token>\w+)/$' => 'PhabricatorEmailTokenController',
),
2011-01-31 06:28:45 +01:00
'/logout/$' => 'PhabricatorLogoutController',
'/facebook-auth/' => array(
'$' => 'PhabricatorFacebookAuthController',
'diagnose/$' => 'PhabricatorFacebookAuthDiagnosticsController',
),
2011-02-02 22:48:52 +01:00
'/xhprof/' => array(
'profile/(?<phid>[^/]+)/$' => 'PhabricatorXHProfProfileController',
),
2011-02-03 07:38:42 +01:00
'/~/' => 'DarkConsoleController',
2011-02-06 07:36:21 +01:00
'/settings/' => array(
'(?:page/(?<page>[^/]+)/)?$' => 'PhabricatorUserSettingsController',
),
);
}
public function buildRequest() {
$request = new AphrontRequest($this->getHost(), $this->getPath());
$request->setRequestData($_GET + $_POST);
2011-02-02 22:48:52 +01:00
$request->setApplicationConfiguration($this);
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();
2011-02-02 22:48:52 +01:00
$view->setRequest($this->getRequest());
$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->setRequest($request);
$view->appendChild(
'<div style="padding: 2em 0;">'.
$response->buildResponseString().
'</div>');
$response = new AphrontWebpageResponse();
$response->setContent($view->render());
return $response;
2011-02-02 01:42:36 +01:00
} else {
return id(new AphrontAjaxResponse())
->setContent(array(
'dialog' => $response->buildResponseString(),
));
}
2011-02-05 20:45:13 +01:00
} else if ($response instanceof AphrontRedirectResponse) {
if ($request->isAjax()) {
return id(new AphrontAjaxResponse())
->setContent(
array(
'redirect' => $response->getURI(),
));
}
} else if ($response instanceof Aphront404Response) {
2011-01-30 18:15:01 +01:00
$failure = new AphrontRequestFailureView();
$failure->setHeader('404 Not Found');
$failure->appendChild(
'<p>The page you requested was not found.</p>');
$view = new PhabricatorStandardPageView();
$view->setTitle('404 Not Found');
2011-02-02 22:48:52 +01:00
$view->setRequest($this->getRequest());
2011-01-30 18:15:01 +01:00
$view->appendChild($failure);
$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
}
}