@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator

Modernize Slowvote, fix Badges mobile menu

Summary: Uses modern methods in Slowvote, adds appmenu, consistent create into Badges

Test Plan: View Poll list, new poll, edit poll, vote in poll.

Reviewers: epriestley

Reviewed By: epriestley

Subscribers: Korvin

Maniphest Tasks: T9690

Differential Revision: https://secure.phabricator.com/D14592

+40 -59
+8 -1
src/applications/badges/controller/PhabricatorBadgesController.php
··· 1 1 <?php 2 2 3 - abstract class PhabricatorBadgesController extends PhabricatorController {} 3 + abstract class PhabricatorBadgesController extends PhabricatorController { 4 + 5 + public function buildApplicationMenu() { 6 + return $this->newApplicationMenu() 7 + ->setSearchEngine(new PhabricatorBadgesSearchEngine()); 8 + } 9 + 10 + }
+2 -33
src/applications/slowvote/controller/PhabricatorSlowvoteController.php
··· 2 2 3 3 abstract class PhabricatorSlowvoteController extends PhabricatorController { 4 4 5 - public function buildSideNavView($for_app = false) { 6 - $user = $this->getRequest()->getUser(); 7 - 8 - $nav = new AphrontSideNavFilterView(); 9 - $nav->setBaseURI(new PhutilURI($this->getApplicationURI())); 10 - 11 - if ($for_app) { 12 - $nav->addFilter('', pht('Create Poll'), 13 - $this->getApplicationURI('create/')); 14 - } 15 - 16 - id(new PhabricatorSlowvoteSearchEngine()) 17 - ->setViewer($user) 18 - ->addNavigationItems($nav->getMenu()); 19 - 20 - $nav->selectFilter(null); 21 - 22 - return $nav; 23 - } 24 - 25 5 public function buildApplicationMenu() { 26 - return $this->buildSideNavView(true)->getMenu(); 27 - } 28 - 29 - protected function buildApplicationCrumbs() { 30 - $crumbs = parent::buildApplicationCrumbs(); 31 - 32 - $crumbs->addAction( 33 - id(new PHUIListItemView()) 34 - ->setName(pht('Create Poll')) 35 - ->setHref($this->getApplicationURI('create/')) 36 - ->setIcon('fa-plus-square')); 37 - 38 - return $crumbs; 6 + return $this->newApplicationMenu() 7 + ->setSearchEngine(new PhabricatorSlowvoteSearchEngine()); 39 8 } 40 9 41 10 }
+7 -8
src/applications/slowvote/controller/PhabricatorSlowvoteEditController.php
··· 257 257 ->setValue($button) 258 258 ->addCancelButton($cancel_uri)); 259 259 260 - $crumbs = $this->buildApplicationCrumbs($this->buildSideNavView()); 260 + $crumbs = $this->buildApplicationCrumbs(); 261 261 $crumbs->addTextCrumb($title); 262 262 263 263 $form_box = id(new PHUIObjectBoxView()) ··· 265 265 ->setFormErrors($errors) 266 266 ->setForm($form); 267 267 268 - return $this->buildApplicationPage( 269 - array( 270 - $crumbs, 271 - $form_box, 272 - ), 273 - array( 274 - 'title' => $title, 268 + return $this->newPage() 269 + ->setTitle($title) 270 + ->setCrumbs($crumbs) 271 + ->appendChild( 272 + array( 273 + $form_box, 275 274 )); 276 275 } 277 276
+13 -6
src/applications/slowvote/controller/PhabricatorSlowvoteListController.php
··· 8 8 } 9 9 10 10 public function handleRequest(AphrontRequest $request) { 11 - $querykey = $request->getURIData('queryKey'); 11 + return id(new PhabricatorSlowvoteSearchEngine()) 12 + ->setController($this) 13 + ->buildResponse(); 14 + } 12 15 13 - $controller = id(new PhabricatorApplicationSearchController()) 14 - ->setQueryKey($querykey) 15 - ->setSearchEngine(new PhabricatorSlowvoteSearchEngine()) 16 - ->setNavigation($this->buildSideNavView()); 16 + protected function buildApplicationCrumbs() { 17 + $crumbs = parent::buildApplicationCrumbs(); 18 + 19 + $crumbs->addAction( 20 + id(new PHUIListItemView()) 21 + ->setName(pht('Create Poll')) 22 + ->setHref($this->getApplicationURI('create/')) 23 + ->setIcon('fa-plus-square')); 17 24 18 - return $this->delegateToController($controller); 25 + return $crumbs; 19 26 } 20 27 21 28 }
+10 -11
src/applications/slowvote/controller/PhabricatorSlowvotePollController.php
··· 61 61 ->setHeader($header) 62 62 ->addPropertyList($properties); 63 63 64 - return $this->buildApplicationPage( 65 - array( 66 - $crumbs, 67 - $object_box, 68 - $poll_view, 69 - $timeline, 70 - $add_comment, 71 - ), 72 - array( 73 - 'title' => 'V'.$poll->getID().' '.$poll->getQuestion(), 74 - 'pageObjects' => array($poll->getPHID()), 64 + return $this->newPage() 65 + ->setTitle('V'.$poll->getID().' '.$poll->getQuestion()) 66 + ->setCrumbs($crumbs) 67 + ->setPageObjectPHIDs(array($poll->getPHID())) 68 + ->appendChild( 69 + array( 70 + $object_box, 71 + $poll_view, 72 + $timeline, 73 + $add_comment, 75 74 )); 76 75 } 77 76