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