mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-15 19:32:40 +01:00
a823654be0
Summary: Fixes T5646. Makes diffusion a much better user experience. Users now see a 404 exception page when they have a bad URI. Previously, they saw a developer-facing raw exception. Test Plan: played around in diffusion a bunch. most of these changes were fairly mechanical at the end of the day. Reviewers: epriestley Reviewed By: epriestley Subscribers: Korvin, epriestley Maniphest Tasks: T5646 Differential Revision: https://secure.phabricator.com/D11299
74 lines
2.2 KiB
PHP
74 lines
2.2 KiB
PHP
<?php
|
|
|
|
final class DiffusionRepositoryEditUpdateController
|
|
extends DiffusionRepositoryEditController {
|
|
|
|
protected function processDiffusionRequest(AphrontRequest $request) {
|
|
$viewer = $request->getUser();
|
|
$drequest = $this->diffusionRequest;
|
|
$repository = $drequest->getRepository();
|
|
|
|
$repository = id(new PhabricatorRepositoryQuery())
|
|
->setViewer($viewer)
|
|
->requireCapabilities(
|
|
array(
|
|
PhabricatorPolicyCapability::CAN_VIEW,
|
|
PhabricatorPolicyCapability::CAN_EDIT,
|
|
))
|
|
->withIDs(array($repository->getID()))
|
|
->executeOne();
|
|
if (!$repository) {
|
|
return new Aphront404Response();
|
|
}
|
|
|
|
$edit_uri = $this->getRepositoryControllerURI($repository, 'edit/');
|
|
|
|
if ($request->isFormPost()) {
|
|
$params = array(
|
|
'callsigns' => array(
|
|
$repository->getCallsign(),
|
|
),
|
|
);
|
|
|
|
id(new ConduitCall('diffusion.looksoon', $params))
|
|
->setUser($viewer)
|
|
->execute();
|
|
|
|
return id(new AphrontRedirectResponse())->setURI($edit_uri);
|
|
}
|
|
|
|
$doc_name = 'Diffusion User Guide: Repository Updates';
|
|
$doc_href = PhabricatorEnv::getDoclink($doc_name);
|
|
$doc_link = phutil_tag(
|
|
'a',
|
|
array(
|
|
'href' => $doc_href,
|
|
'target' => '_blank',
|
|
),
|
|
$doc_name);
|
|
|
|
return $this->newDialog()
|
|
->setTitle(pht('Update Repository Now'))
|
|
->appendParagraph(
|
|
pht(
|
|
'Normally, Phabricator automatically updates repositories '.
|
|
'based on how much time has elapsed since the last commit. '.
|
|
'This helps reduce load if you have a large number of mostly '.
|
|
'inactive repositories, which is common.'))
|
|
->appendParagraph(
|
|
pht(
|
|
'You can manually schedule an update for this repository. The '.
|
|
'daemons will perform the update as soon as possible. This may '.
|
|
'be helpful if you have just made a commit to a rarely used '.
|
|
'repository.'))
|
|
->appendParagraph(
|
|
pht(
|
|
'To learn more about how Phabricator updates repositories, '.
|
|
'read %s in the documentation.',
|
|
$doc_link))
|
|
->addCancelButton($edit_uri)
|
|
->addSubmitButton(pht('Schedule Update'));
|
|
}
|
|
|
|
|
|
}
|