3
3
final class NuanceSourceEditController extends NuanceController {
7
public function setSourceID($source_id) {
8
$this->sourceID = $source_id;
11
public function getSourceID() {
12
return $this->sourceID;
15
public function willProcessRequest(array $data) {
16
$this->setSourceID(idx($data, 'id'));
19
public function processRequest() {
5
public function handleRequest(AphrontRequest $request) {
20
6
$can_edit = $this->requireApplicationCapability(
21
7
NuanceSourceManageCapability::CAPABILITY);
23
$request = $this->getRequest();
24
$user = $request->getUser();
26
$source_id = $this->getSourceID();
9
$viewer = $this->getViewer();
11
$sources_uri = $this->getApplicationURI('source/');
13
$source_id = $request->getURIData('id');
27
14
$is_new = !$source_id;
30
$source = NuanceSource::initializeNewSource($user);
17
$source = NuanceSource::initializeNewSource($viewer);
19
$type = $request->getURIData('type');
20
$map = NuanceSourceDefinition::getAllDefinitions();
22
if (empty($map[$type])) {
23
return new Aphront404Response();
26
$source->setType($type);
27
$cancel_uri = $sources_uri;
32
29
$source = id(new NuanceSourceQuery())
34
31
->withIDs(array($source_id))
35
32
->requireCapabilities(
38
35
PhabricatorPolicyCapability::CAN_EDIT,
44
return new Aphront404Response();
39
return new Aphront404Response();
41
$cancel_uri = $source->getURI();
47
44
$definition = NuanceSourceDefinition::getDefinitionForSource($source);
48
$definition->setActor($user);
45
$definition->setActor($viewer);
50
47
$response = $definition->buildEditLayout($request);
51
48
if ($response instanceof AphrontResponse) {
54
51
$layout = $response;
56
53
$crumbs = $this->buildApplicationCrumbs();
54
$crumbs->addTextCrumb(pht('Sources'), $sources_uri);
57
$crumbs->addTextCrumb(pht('New'));
59
$crumbs->addTextCrumb($source->getName(), $cancel_uri);
60
$crumbs->addTextCrumb(pht('Edit'));
57
63
return $this->buildApplicationPage(