From: jdlrobson Date: Wed, 23 Jul 2014 00:02:57 +0000 (-0700) Subject: Refactor Watchlist code so mobile can be more consistent X-Git-Tag: 1.31.0-rc.0~14648^2 X-Git-Url: http://git.cyclocoop.org/%40spipnet%40?a=commitdiff_plain;h=0f1efb7da9c4b8b5b36f8e6287391ec2d30fd9a5;p=lhc%2Fweb%2Fwiklou.git Refactor Watchlist code so mobile can be more consistent There are various bugs around the mobile watchlist that are caused by mobile reimplementing the watchlist due to the core code's inflexibility This slight change makes it possible for the A-Z mode on mobile to use the same code as desktop See: 56817 Change-Id: Id04c8b1f41894c724ca8ea403078b3389666ebc9 --- diff --git a/includes/specials/SpecialEditWatchlist.php b/includes/specials/SpecialEditWatchlist.php index 355726ad58..3515a57753 100644 --- a/includes/specials/SpecialEditWatchlist.php +++ b/includes/specials/SpecialEditWatchlist.php @@ -70,9 +70,7 @@ class SpecialEditWatchlist extends UnlistedSpecialPage { $this->checkReadOnly(); $this->outputHeader(); - - $out->addSubtitle( $this->msg( 'watchlistfor2', $this->getUser()->getName() ) - ->rawParams( SpecialEditWatchlist::buildTools( null ) ) ); + $this->outputSubtitle(); # B/C: $mode used to be waaay down the parameter list, and the first parameter # was $wgUser @@ -104,19 +102,37 @@ class SpecialEditWatchlist extends UnlistedSpecialPage { case self::EDIT_NORMAL: default: - $out->setPageTitle( $this->msg( 'watchlistedit-normal-title' ) ); - $form = $this->getNormalForm(); - if ( $form->show() ) { - $out->addHTML( $this->successMessage ); - $out->addReturnTo( SpecialPage::getTitleFor( 'Watchlist' ) ); - } elseif ( $this->toc !== false ) { - $out->prependHTML( $this->toc ); - $out->addModules( 'mediawiki.toc' ); - } + $this->executeViewEditWatchlist(); break; } } + /** + * Renders a subheader on the watchlist page. + */ + protected function outputSubtitle() { + $out = $this->getOutput(); + $out->addSubtitle( $this->msg( 'watchlistfor2', $this->getUser()->getName() ) + ->rawParams( SpecialEditWatchlist::buildTools( null ) ) ); + } + + /** + * Executes an edit mode for the watchlist view, from which you can manage your watchlist + * + */ + protected function executeViewEditWatchlist() { + $out = $this->getOutput(); + $out->setPageTitle( $this->msg( 'watchlistedit-normal-title' ) ); + $form = $this->getNormalForm(); + if ( $form->show() ) { + $out->addHTML( $this->successMessage ); + $out->addReturnTo( SpecialPage::getTitleFor( 'Watchlist' ) ); + } elseif ( $this->toc !== false ) { + $out->prependHTML( $this->toc ); + $out->addModules( 'mediawiki.toc' ); + } + } + /** * Return an array of subpages beginning with $search that this special page will accept. * @@ -331,7 +347,7 @@ class SpecialEditWatchlist extends UnlistedSpecialPage { * * @return array */ - private function getWatchlistInfo() { + protected function getWatchlistInfo() { $titles = array(); $dbr = wfGetDB( DB_MASTER );