~ubuntu-branches/ubuntu/wily/phabricator/wily

« back to all changes in this revision

Viewing changes to phabricator/src/applications/nuance/controller/NuanceSourceEditController.php

  • Committer: Package Import Robot
  • Author(s): Richard Sellam
  • Date: 2015-06-13 10:52:10 UTC
  • mfrom: (0.30.1) (0.29.1) (0.17.4) (2.1.9 sid)
  • Revision ID: package-import@ubuntu.com-20150613105210-5uirr7tvnk0n6e6y
Tags: 0~git20150613-1
* New snapshot release (closes: #787805)
* fixed typo in logrotate script (closes: #787645)

Show diffs side-by-side

added added

removed removed

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