~ubuntu-branches/ubuntu/vivid/phabricator/vivid-proposed

« back to all changes in this revision

Viewing changes to phabricator/src/applications/config/controller/PhabricatorConfigIssueListController.php

  • Committer: Package Import Robot
  • Author(s): Richard Sellam
  • Date: 2014-10-23 20:49:26 UTC
  • Revision ID: package-import@ubuntu.com-20141023204926-ar20vnfjqwxysrce
Tags: upstream-0~git20141023
ImportĀ upstreamĀ versionĀ 0~git20141023

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?php
 
2
 
 
3
final class PhabricatorConfigIssueListController
 
4
  extends PhabricatorConfigController {
 
5
 
 
6
  public function processRequest() {
 
7
    $request = $this->getRequest();
 
8
    $user = $request->getUser();
 
9
 
 
10
    $nav = $this->buildSideNavView();
 
11
    $nav->selectFilter('issue/');
 
12
 
 
13
    $issues = PhabricatorSetupCheck::runAllChecks();
 
14
    PhabricatorSetupCheck::setOpenSetupIssueCount(
 
15
      PhabricatorSetupCheck::countUnignoredIssues($issues));
 
16
 
 
17
    $list = $this->buildIssueList($issues);
 
18
    $list->setNoDataString(pht('There are no open setup issues.'));
 
19
    $list->setStackable(true);
 
20
 
 
21
    $box = id(new PHUIObjectBoxView())
 
22
      ->setHeaderText(pht('Open Phabricator Setup Issues'))
 
23
      ->appendChild($list);
 
24
 
 
25
    $nav->appendChild(
 
26
      array(
 
27
        $box,
 
28
      ));
 
29
 
 
30
    $title = pht('Setup Issues');
 
31
 
 
32
    $crumbs = $this
 
33
      ->buildApplicationCrumbs($nav)
 
34
      ->addTextCrumb(pht('Setup'), $this->getApplicationURI('issue/'));
 
35
 
 
36
    $nav->setCrumbs($crumbs);
 
37
 
 
38
    return $this->buildApplicationPage(
 
39
      $nav,
 
40
      array(
 
41
        'title' => $title,
 
42
      ));
 
43
  }
 
44
 
 
45
  private function buildIssueList(array $issues) {
 
46
    assert_instances_of($issues, 'PhabricatorSetupIssue');
 
47
    $list = new PHUIObjectItemListView();
 
48
    $ignored_items = array();
 
49
 
 
50
    foreach ($issues as $issue) {
 
51
        $href = $this->getApplicationURI('/issue/'.$issue->getIssueKey().'/');
 
52
        $item = id(new PHUIObjectItemView())
 
53
          ->setHeader($issue->getName())
 
54
          ->setHref($href)
 
55
          ->addAttribute($issue->getSummary());
 
56
      if (!$issue->getIsIgnored()) {
 
57
        $item->setBarColor('yellow');
 
58
        $list->addItem($item);
 
59
      } else {
 
60
        $item->addIcon('fa-eye-slash', pht('Ignored'));
 
61
        $item->setDisabled(true);
 
62
        $item->setBarColor('none');
 
63
        $ignored_items[] = $item;
 
64
      }
 
65
    }
 
66
 
 
67
    foreach ($ignored_items as $item) {
 
68
      $list->addItem($item);
 
69
    }
 
70
 
 
71
    return $list;
 
72
  }
 
73
 
 
74
}