Christopher Johnson (WMDE) has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/185624

Change subject: adds SprintProjectProfileController and 
SprintProjectViewController
......................................................................

adds SprintProjectProfileController and SprintProjectViewController

sets handle URI for SprintProject tags in SprintUIEventListener
adds routes for new controllers in SprintApplication

Change-Id: I2ac5992ae017dc4a657ff02a714f08aaabd12761
---
M src/__phutil_library_map__.php
M src/application/SprintApplication.php
M src/controller/SprintProjectProfileController.php
M src/controller/SprintProjectViewController.php
M src/events/SprintUIEventListener.php
5 files changed, 67 insertions(+), 12 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/phabricator/extensions/Sprint 
refs/changes/24/185624/1

diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
index 1488bc4..6cfe388 100644
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -52,6 +52,8 @@
     'SprintListController' => 'controller/SprintListController.php',
     'SprintPoints' => 'util/SprintPoints.php',
     'SprintProjectCustomField' => 'customfield/SprintProjectCustomField.php',
+    'SprintProjectProfileController' => 
'controller/SprintProjectProfileController.php',
+    'SprintProjectViewController' => 
'controller/SprintProjectViewController.php',
     'SprintQuery' => 'query/SprintQuery.php',
     'SprintQueryTest' => 'tests/SprintQueryTest.php',
     'SprintReportBurndownView' => 'view/reports/SprintReportBurndownView.php',
@@ -82,7 +84,7 @@
     'SprintBoardColumnDetailController' => 'SprintBoardController',
     'SprintBoardColumnEditController' => 'SprintBoardController',
     'SprintBoardColumnHideController' => 'SprintBoardController',
-    'SprintBoardController' => 'PhabricatorProjectController',
+    'SprintBoardController' => 'SprintController',
     'SprintBoardImportController' => 'SprintBoardController',
     'SprintBoardMoveController' => 'PhabricatorProjectController',
     'SprintBoardReorderController' => 'SprintBoardController',
@@ -104,6 +106,8 @@
       'PhabricatorProjectCustomField',
       'PhabricatorStandardCustomFieldInterface',
     ),
+    'SprintProjectProfileController' => 'SprintController',
+    'SprintProjectViewController' => 'SprintController',
     'SprintQuery' => 'SprintDAO',
     'SprintQueryTest' => 'SprintTestCase',
     'SprintReportBurndownView' => 'SprintView',
diff --git a/src/application/SprintApplication.php 
b/src/application/SprintApplication.php
index fef8bba..0ba9b5e 100644
--- a/src/application/SprintApplication.php
+++ b/src/application/SprintApplication.php
@@ -57,7 +57,7 @@
               'picture/(?P<id>[1-9]\d*)/'
               => 'PhabricatorProjectEditPictureController',
               'profile/(?P<id>[1-9]\d*)/'
-              => 'PhabricatorProjectProfileController',
+              => 'SprintProjectProfileController',
               'icon/(?P<id>[1-9]\d*)/'
               => 'PhabricatorProjectEditIconController',
               'board/task/edit/(?P<id>[1-9]\d*)/'
@@ -84,6 +84,7 @@
           '/tag/' => array(
               '(?P<slug>[^/]+)/sboard/' => 'SprintBoardViewController',
           ),
+
           '/project/' => array(
               'sboard/(?P<id>[1-9]\d*)/'.
               '(?P<filter>filter/)?'.
diff --git a/src/controller/SprintProjectProfileController.php 
b/src/controller/SprintProjectProfileController.php
index 208c23e..6dd92af 100644
--- a/src/controller/SprintProjectProfileController.php
+++ b/src/controller/SprintProjectProfileController.php
@@ -1,7 +1,7 @@
 <?php
 
-final class PhabricatorProjectProfileController
-  extends PhabricatorProjectController {
+final class SprintProjectProfileController
+  extends SprintController {
 
   public function shouldAllowPublic() {
     return true;
diff --git a/src/controller/SprintProjectViewController.php 
b/src/controller/SprintProjectViewController.php
index 18fa668..c5a0d19 100644
--- a/src/controller/SprintProjectViewController.php
+++ b/src/controller/SprintProjectViewController.php
@@ -1,7 +1,56 @@
 <?php
-/**
- * Created by PhpStorm.
- * User: christopher_johnson
- * Date: 17/01/15
- * Time: 08:29
- */
\ No newline at end of file
+
+final class SprintProjectViewController
+    extends SprintController {
+
+  public function shouldAllowPublic() {
+    return true;
+  }
+
+  public function handleRequest(AphrontRequest $request) {
+    $request = $this->getRequest();
+    $user = $request->getUser();
+
+    $query = id(new PhabricatorProjectQuery())
+        ->setViewer($user)
+        ->needMembers(true)
+        ->needWatchers(true)
+        ->needImages(true)
+        ->needSlugs(true);
+    $id = $request->getURIData('id');
+    $slug = $request->getURIData('slug');
+    if ($slug) {
+      $query->withSlugs(array($slug));
+    } else {
+      $query->withIDs(array($id));
+    }
+    $project = $query->executeOne();
+    if (!$project) {
+      return new Aphront404Response();
+    }
+
+
+    $columns = id(new PhabricatorProjectColumnQuery())
+        ->setViewer($user)
+        ->withProjectPHIDs(array($project->getPHID()))
+        ->execute();
+    if ($columns) {
+      $controller = 'board';
+    } else {
+      $controller = 'profile';
+    }
+
+    switch ($controller) {
+      case 'board':
+        $controller_object = new SprintBoardViewController();
+        break;
+      case 'profile':
+      default:
+        $controller_object = new SprintProjectProfileController();
+        break;
+    }
+
+    return $this->delegateToController($controller_object);
+  }
+
+}
diff --git a/src/events/SprintUIEventListener.php 
b/src/events/SprintUIEventListener.php
index 8325ea2..11c421b 100644
--- a/src/events/SprintUIEventListener.php
+++ b/src/events/SprintUIEventListener.php
@@ -78,7 +78,8 @@
 
       foreach ($handles as $handle) {
         $project_phid = $handle->getPHID();
-
+        $uri = $handle->getURI() . 'sboard/';
+        $handle->setURI($uri);
         $position = idx($positions, $project_phid);
         if ($position) {
           $column = $position->getColumn();
@@ -87,7 +88,7 @@
           $column_link = phutil_tag(
               'a',
               array(
-                  'href' => $handle->getURI() . 'sboard/',
+                  'href' => $uri,
                   'class' => 'maniphest-board-link',
               ),
               $column_name);

-- 
To view, visit https://gerrit.wikimedia.org/r/185624
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I2ac5992ae017dc4a657ff02a714f08aaabd12761
Gerrit-PatchSet: 1
Gerrit-Project: phabricator/extensions/Sprint
Gerrit-Branch: master
Gerrit-Owner: Christopher Johnson (WMDE) <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to