From 9d8d06a66e9fe6f15e6ade6db8bbd91c6772ef53 Mon Sep 17 00:00:00 2001 From: Sam Reed Date: Sun, 22 May 2011 19:21:22 +0000 Subject: [PATCH] * (bug 28272) Special:Allmessages should have only one "Go" button Patch by MZMcBride --- RELEASE-NOTES-1.19 | 3 +- includes/specials/SpecialAllmessages.php | 155 ++++++++++++----------- 2 files changed, 84 insertions(+), 74 deletions(-) diff --git a/RELEASE-NOTES-1.19 b/RELEASE-NOTES-1.19 index a15cf34df4..53ca74c5e9 100644 --- a/RELEASE-NOTES-1.19 +++ b/RELEASE-NOTES-1.19 @@ -38,7 +38,6 @@ production. added to the textarea on the edit form. * mw.util.getScript has been implemented (like wfScript in GlobalFunctions.php) - === Bug fixes in 1.19 === * (bug 10154) Don't allow user to specify days beyond $wgRCMaxAge. * (bug 28868) Show total pages in the subtitle of an image on the @@ -75,9 +74,9 @@ production. * (bug 29055) Make don't send email on minor edits preference apply to changes to talk page in addition to watchlist edits. * (bug 29071) mediawiki.action.watch.ajax.js should pass uselang to API. +* (bug 28272) Special:Allmessages should have only one "Go" button === API changes in 1.19 === - * BREAKING CHANGE: action=watch now requires POST and token. * (bug 27790) add query type for querymodules to action=paraminfo * (bug 28963) add langbacklinks module to api diff --git a/includes/specials/SpecialAllmessages.php b/includes/specials/SpecialAllmessages.php index 4a55c87800..d3f36f8b84 100644 --- a/includes/specials/SpecialAllmessages.php +++ b/includes/specials/SpecialAllmessages.php @@ -34,8 +34,6 @@ class SpecialAllmessages extends SpecialPage { */ protected $table; - protected $filter, $prefix, $langCode; - /** * Constructor */ @@ -75,84 +73,16 @@ class SpecialAllmessages extends SpecialPage { $this->langCode = $this->table->lang->getCode(); - $out->addHTML( $this->buildForm() . + $out->addHTML( $this->table->buildForm() . $this->table->getNavigationBar() . - $this->table->getLimitForm() . $this->table->getBody() . $this->table->getNavigationBar() ); } - function buildForm() { - global $wgScript; +} - $languages = Language::getLanguageNames( false ); - ksort( $languages ); - $out = Xml::openElement( 'form', array( 'method' => 'get', 'action' => $wgScript, 'id' => 'mw-allmessages-form' ) ) . - Xml::fieldset( wfMsg( 'allmessages-filter-legend' ) ) . - Html::hidden( 'title', $this->getTitle()->getPrefixedText() ) . - Xml::openElement( 'table', array( 'class' => 'mw-allmessages-table' ) ) . "\n" . - ' - ' . - Xml::label( wfMsg( 'allmessages-prefix' ), 'mw-allmessages-form-prefix' ) . - "\n - " . - Xml::input( 'prefix', 20, str_replace( '_', ' ', $this->prefix ), array( 'id' => 'mw-allmessages-form-prefix' ) ) . - "\n - - \n - " . - wfMsg( 'allmessages-filter' ) . - "\n - " . - Xml::radioLabel( wfMsg( 'allmessages-filter-unmodified' ), - 'filter', - 'unmodified', - 'mw-allmessages-form-filter-unmodified', - ( $this->filter == 'unmodified' ) - ) . - Xml::radioLabel( wfMsg( 'allmessages-filter-all' ), - 'filter', - 'all', - 'mw-allmessages-form-filter-all', - ( $this->filter == 'all' ) - ) . - Xml::radioLabel( wfMsg( 'allmessages-filter-modified' ), - 'filter', - 'modified', - 'mw-allmessages-form-filter-modified', - ( $this->filter == 'modified' ) - ) . - "\n - - \n - " . - Xml::label( wfMsg( 'allmessages-language' ), 'mw-allmessages-form-lang' ) . - "\n - " . - Xml::openElement( 'select', array( 'id' => 'mw-allmessages-form-lang', 'name' => 'lang' ) ); - - foreach( $languages as $lang => $name ) { - $selected = $lang == $this->langCode; - $out .= Xml::option( $lang . ' - ' . $name, $lang, $selected ) . "\n"; - } - $out .= Xml::closeElement( 'select' ) . - "\n - - \n - - " . - Xml::submitButton( wfMsg( 'allmessages-filter-submit' ) ) . - "\n - " . - Xml::closeElement( 'table' ) . - $this->table->getHiddenFields( array( 'title', 'prefix', 'filter', 'lang' ) ) . - Xml::closeElement( 'fieldset' ) . - Xml::closeElement( 'form' ); - return $out; - } -} /** * Use TablePager for prettified output. We have to pretend that we're @@ -160,6 +90,8 @@ class SpecialAllmessages extends SpecialPage { */ class AllmessagesTablePager extends TablePager { + protected $filter, $prefix, $langCode; + public $mLimitsShown; /** @@ -217,6 +149,85 @@ class AllmessagesTablePager extends TablePager { } } + function buildForm() { + global $wgScript; + + $languages = Language::getLanguageNames( false ); + ksort( $languages ); + + $out = Xml::openElement( 'form', array( 'method' => 'get', 'action' => $wgScript, 'id' => 'mw-allmessages-form' ) ) . + Xml::fieldset( wfMsg( 'allmessages-filter-legend' ) ) . + Html::hidden( 'title', $this->getTitle()->getPrefixedText() ) . + Xml::openElement( 'table', array( 'class' => 'mw-allmessages-table' ) ) . "\n" . + ' + ' . + Xml::label( wfMsg( 'allmessages-prefix' ), 'mw-allmessages-form-prefix' ) . + "\n + " . + Xml::input( 'prefix', 20, str_replace( '_', ' ', $this->prefix ), array( 'id' => 'mw-allmessages-form-prefix' ) ) . + "\n + + \n + " . + wfMsg( 'allmessages-filter' ) . + "\n + " . + Xml::radioLabel( wfMsg( 'allmessages-filter-unmodified' ), + 'filter', + 'unmodified', + 'mw-allmessages-form-filter-unmodified', + ( $this->filter == 'unmodified' ) + ) . + Xml::radioLabel( wfMsg( 'allmessages-filter-all' ), + 'filter', + 'all', + 'mw-allmessages-form-filter-all', + ( $this->filter == 'all' ) + ) . + Xml::radioLabel( wfMsg( 'allmessages-filter-modified' ), + 'filter', + 'modified', + 'mw-allmessages-form-filter-modified', + ( $this->filter == 'modified' ) + ) . + "\n + + \n + " . + Xml::label( wfMsg( 'allmessages-language' ), 'mw-allmessages-form-lang' ) . + "\n + " . + Xml::openElement( 'select', array( 'id' => 'mw-allmessages-form-lang', 'name' => 'lang' ) ); + + foreach( $languages as $lang => $name ) { + $selected = $lang == $this->langcode; + $out .= Xml::option( $lang . ' - ' . $name, $lang, $selected ) . "\n"; + } + $out .= Xml::closeElement( 'select' ) . + "\n + " . + + ' + ' . + Xml::label( wfMsg( 'table_pager_limit_label'), 'mw-table_pager_limit_label' ) . + ' + ' . + $this->getLimitSelect() . + ' + + + ' . + Xml::submitButton( wfMsg( 'allmessages-filter-submit' ) ) . + "\n + " . + + Xml::closeElement( 'table' ) . + $this->getHiddenFields( array( 'title', 'prefix', 'filter', 'lang', 'limit' ) ) . + Xml::closeElement( 'fieldset' ) . + Xml::closeElement( 'form' ); + return $out; + } + function getAllMessages( $descending ) { wfProfileIn( __METHOD__ ); $messageNames = Language::getLocalisationCache()->getSubitemList( 'en', 'messages' ); -- 2.20.1