From 0f1efb7da9c4b8b5b36f8e6287391ec2d30fd9a5 Mon Sep 17 00:00:00 2001 From: jdlrobson Date: Tue, 22 Jul 2014 17:02:57 -0700 Subject: [PATCH] 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 --- includes/specials/SpecialEditWatchlist.php | 42 +++++++++++++++------- 1 file changed, 29 insertions(+), 13 deletions(-) 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 ); -- 2.20.1