From 1eeaeb62e453c5805dd3b2eca94fcf23c6cb0c48 Mon Sep 17 00:00:00 2001 From: epriestley Date: Tue, 28 Feb 2012 21:12:08 -0800 Subject: [PATCH] Remove commit list from Diffusion in favor of Audit commit list Summary: We can drive this query better from the Audit tool now; get rid of the Diffusion version. Preserve usernames in URIs as per T900. Test Plan: Clicked "Commits" from profile. Browsed audit commit filters. Reviewers: btrahan, jungejason Reviewed By: btrahan CC: aran, epriestley Maniphest Tasks: T904 Differential Revision: https://secure.phabricator.com/D1713 --- ...AphrontDefaultApplicationConfiguration.php | 7 +- .../list/PhabricatorAuditListController.php | 28 +++- .../DiffusionCommitListController.php | 152 ------------------ .../controller/commitlist/__init__.php | 25 --- .../PhabricatorPeopleProfileController.php | 10 +- 5 files changed, 27 insertions(+), 195 deletions(-) delete mode 100644 src/applications/diffusion/controller/commitlist/DiffusionCommitListController.php delete mode 100644 src/applications/diffusion/controller/commitlist/__init__.php diff --git a/src/aphront/default/configuration/AphrontDefaultApplicationConfiguration.php b/src/aphront/default/configuration/AphrontDefaultApplicationConfiguration.php index c5da89eadf..cd15cc4b82 100644 --- a/src/aphront/default/configuration/AphrontDefaultApplicationConfiguration.php +++ b/src/aphront/default/configuration/AphrontDefaultApplicationConfiguration.php @@ -286,10 +286,6 @@ class AphrontDefaultApplicationConfiguration 'validate/$' => 'DiffusionPathValidateController', ), ), - 'author/' => array( - '$' => 'DiffusionCommitListController', - '(?P\w+)/$' => 'DiffusionCommitListController', - ), 'symbol/(?P[^/]+)/$' => 'DiffusionSymbolController', ), @@ -348,7 +344,8 @@ class AphrontDefaultApplicationConfiguration '/audit/' => array( '$' => 'PhabricatorAuditListController', - 'view/(?P[^/]+)/$' => 'PhabricatorAuditListController', + 'view/(?P[^/]+)/(?:(?P[^/]+)/)?$' + => 'PhabricatorAuditListController', 'edit/$' => 'PhabricatorAuditEditController', 'addcomment/$' => 'PhabricatorAuditAddCommentController', 'preview/(?P\d+)/$' => 'PhabricatorAuditPreviewController', diff --git a/src/applications/audit/controller/list/PhabricatorAuditListController.php b/src/applications/audit/controller/list/PhabricatorAuditListController.php index c8884b5a1a..1eb2631ce9 100644 --- a/src/applications/audit/controller/list/PhabricatorAuditListController.php +++ b/src/applications/audit/controller/list/PhabricatorAuditListController.php @@ -19,10 +19,12 @@ final class PhabricatorAuditListController extends PhabricatorAuditController { private $filter; + private $name; private $filterStatus; public function willProcessRequest(array $data) { $this->filter = idx($data, 'filter'); + $this->name = idx($data, 'name'); } public function processRequest() { @@ -33,10 +35,20 @@ final class PhabricatorAuditListController extends PhabricatorAuditController { // bookmarked. $uri = $request->getRequestURI(); $phid = head($request->getArr('phid')); - if ($phid) { + $user = id(new PhabricatorUser())->loadOneWhere( + 'phid = %s', + $phid); + + $uri = $request->getRequestURI(); + if ($user) { + $username = phutil_escape_uri($user->getUsername()); + $uri = '/audit/view/'.$this->filter.'/'.$username.'/'; + } else if ($phid) { + $uri = $request->getRequestURI(); $uri = $uri->alter('phid', $phid); - return id(new AphrontRedirectResponse())->setURI($uri); } + + return id(new AphrontRedirectResponse())->setURI($uri); } $nav = $this->buildNavAndSelectFilter(); @@ -94,7 +106,7 @@ final class PhabricatorAuditListController extends PhabricatorAuditController { $nav->addLabel('Commits'); $nav->addFilter('commits', 'All'); - $nav->addFilter('author', 'By User'); + $nav->addFilter('author', 'By Author'); $nav->addFilter('packagecommits', 'By Package'); $this->filter = $nav->selectFilter($this->filter, 'active'); @@ -140,7 +152,7 @@ final class PhabricatorAuditListController extends PhabricatorAuditController { if ($show_user || $show_project || $show_package) { if ($show_user) { - $uri = '/typeahead/common/user/'; + $uri = '/typeahead/common/users/'; $label = 'User'; } else if ($show_project) { $uri = '/typeahead/common/projects/'; @@ -198,6 +210,14 @@ final class PhabricatorAuditListController extends PhabricatorAuditController { case 'active': case 'author': $default = $request->getUser()->getPHID(); + if ($this->name) { + $user = id(new PhabricatorUser())->loadOneWhere( + 'username = %s', + $this->name); + if ($user) { + $default = $user->getPHID(); + } + } break; } diff --git a/src/applications/diffusion/controller/commitlist/DiffusionCommitListController.php b/src/applications/diffusion/controller/commitlist/DiffusionCommitListController.php deleted file mode 100644 index e159735bd0..0000000000 --- a/src/applications/diffusion/controller/commitlist/DiffusionCommitListController.php +++ /dev/null @@ -1,152 +0,0 @@ -username = $data['username']; - } - } - - public function processRequest() { - $request = $this->getRequest(); - if ($this->username) { - $user = id(new PhabricatorUser())->loadOneWhere( - 'username = %s', - $this->username); - } else { - $user = $request->getUser(); - } - - $content = array(); - if (!$user) { - $error_view = new AphrontErrorView(); - $error_view->setSeverity(AphrontErrorView::SEVERITY_ERROR); - $error_body = 'User name '. - ''.phutil_escape_html($this->username).''. - ' doesn\'t exist.'; - - $error_view->setTitle("Error"); - $error_view->appendChild('

'.$error_body.'

'); - - $content[] = $error_view; - } else { - - $pager = new AphrontPagerView(); - $pager->setOffset($request->getInt('offset')); - $pager->setURI($request->getRequestURI(), 'offset'); - - $query = new PhabricatorSearchQuery(); - $query->setParameter('type', PhabricatorPHIDConstants::PHID_TYPE_CMIT); - $query->setParameter('author', array($user->getPHID())); - $query->setParameter('limit', $pager->getPageSize() + 1); - $query->setParameter('offset', $pager->getOffset()); - - $user_link = phutil_render_tag( - 'a', - array( - 'href' => '/p/'.$user->getUsername().'/', - ), - phutil_escape_html($user->getUsername())); - - $engine = PhabricatorSearchEngineSelector::newSelector()->newEngine(); - $results = $engine->executeSearch($query); - $results = $pager->sliceResults($results); - $result_phids = ipull($results, 'phid'); - $commit_table = self::createCommitTable($result_phids, $user); - - $list_panel = new AphrontPanelView(); - $list_panel->setHeader('Commits by '.$user_link); - $list_panel->appendChild($commit_table); - $list_panel->appendChild($pager); - - $content[] = $list_panel; - } - - return $this->buildStandardPageResponse( - $content, - array( - 'title' => 'Commit List', - )); - } - - - /** - * @param array $commit_phids phids of the commits to render - * @param PhabricatorUser $user phabricator user - * @return AphrontTableView - */ - private static function createCommitTable( - array $commit_phids, PhabricatorUser $user) { - - $loader = new PhabricatorObjectHandleData($commit_phids); - $handles = $loader->loadHandles(); - $objects = $loader->loadObjects(); - - $rows = array(); - foreach ($commit_phids as $phid) { - $handle = $handles[$phid]; - $object = $objects[$phid]; - - $summary = null; - if ($object) { - $commit_data = $object->getCommitData(); - if ($commit_data) { - $summary = $commit_data->getSummary(); - } - } - - $epoch = $handle->getTimeStamp(); - $date = phabricator_date($epoch, $user); - $time = phabricator_time($epoch, $user); - $link = phutil_render_tag( - 'a', - array( - 'href' => $handle->getURI(), - ), - phutil_escape_html($handle->getName())); - $rows[] = array( - $link, - $date, - $time, - phutil_escape_html($summary), - ); - } - $commit_table = new AphrontTableView($rows); - $commit_table->setHeaders( - array( - 'Commit', - 'Date', - 'Time', - 'Summary', - )); - $commit_table->setColumnClasses( - array( - '', - '', - 'right', - 'wide', - )); - - return $commit_table; - } - -} diff --git a/src/applications/diffusion/controller/commitlist/__init__.php b/src/applications/diffusion/controller/commitlist/__init__.php deleted file mode 100644 index edb00e7fdf..0000000000 --- a/src/applications/diffusion/controller/commitlist/__init__.php +++ /dev/null @@ -1,25 +0,0 @@ -addFilter( null, "Commits {$external_arrow}", - '/diffusion/author/'.$user->getUserName().'/'); + '/audit/view/author/'.phutil_escape_uri($user->getUserName()).'/'); $oauths = id(new PhabricatorUserOAuthInfo())->loadAllWhere( 'userID = %d', @@ -160,14 +160,6 @@ class PhabricatorPeopleProfileController extends PhabricatorPeopleController { $engine = PhabricatorMarkupEngine::newProfileMarkupEngine(); $blurb = $engine->markupText($blurb); - $commit_list = - phutil_render_tag( - 'a', - array( - 'href' => '/diffusion/author/'. - phutil_escape_uri($user->getUsername()), - ), - 'Recent Commits'); $viewer = $this->getRequest()->getUser();