X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=includes%2Fspecials%2FSpecialLog.php;h=195d08b1c54887aec34b6803461341f2fd5ba3d7;hb=900843f7ee9131ebdbe839fafffb70b8e293a8b9;hp=bec871b9e86e17c13ffcd470c2b7ea529ced4ecc;hpb=6e9b4f0e9ce4ccd6089c18b205065ef7fa077484;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/specials/SpecialLog.php b/includes/specials/SpecialLog.php index bec871b9e8..195d08b1c5 100644 --- a/includes/specials/SpecialLog.php +++ b/includes/specials/SpecialLog.php @@ -37,6 +37,7 @@ class SpecialLog extends SpecialPage { $this->setHeaders(); $this->outputHeader(); $this->getOutput()->addModules( 'mediawiki.userSuggest' ); + $this->addHelpLink( 'Help:Log' ); $opts = new FormOptions; $opts->add( 'type', '' ); @@ -49,6 +50,7 @@ class SpecialLog extends SpecialPage { $opts->add( 'offset', '' ); $opts->add( 'dir', '' ); $opts->add( 'offender', '' ); + $opts->add( 'subtype', '' ); // Set values $opts->fetchValuesFromRequest( $this->getRequest() ); @@ -94,7 +96,7 @@ class SpecialLog extends SpecialPage { # Some log types are only for a 'User:' title but we might have been given # only the username instead of the full title 'User:username'. This part try - # to lookup for a user by that name and eventually fix user input. See bug 1697. + # to lookup for a user by that name and eventually fix user input. See T3697. if ( in_array( $opts->getValue( 'type' ), self::getLogTypesOnUser() ) ) { # ok we have a type of log which expect a user title. $target = Title::newFromText( $opts->getValue( 'page' ) ); @@ -146,7 +148,8 @@ class SpecialLog extends SpecialPage { private function parseParams( FormOptions $opts, $par ) { # Get parameters - $parms = explode( '/', ( $par = ( $par !== null ) ? $par : '' ) ); + $par = $par !== null ? $par : ''; + $parms = explode( '/', $par ); $symsForAll = [ '*', 'all' ]; if ( $parms[0] != '' && ( in_array( $par, $this->getConfig()->get( 'LogTypes' ) ) || in_array( $par, $symsForAll ) ) @@ -167,6 +170,7 @@ class SpecialLog extends SpecialPage { null, LogEventsList::USE_CHECKBOXES ); + $pager = new LogPager( $loglist, $opts->getValue( 'type' ), @@ -176,26 +180,29 @@ class SpecialLog extends SpecialPage { $extraConds, $opts->getValue( 'year' ), $opts->getValue( 'month' ), - $opts->getValue( 'tagfilter' ) + $opts->getValue( 'tagfilter' ), + $opts->getValue( 'subtype' ) ); $this->addHeader( $opts->getValue( 'type' ) ); # Set relevant user if ( $pager->getPerformer() ) { - $this->getSkin()->setRelevantUser( User::newFromName( $pager->getPerformer() ) ); + $performerUser = User::newFromName( $pager->getPerformer(), false ); + $this->getSkin()->setRelevantUser( $performerUser ); } # Show form options $loglist->showOptions( $pager->getType(), - $opts->getValue( 'user' ), + $pager->getPerformer(), $pager->getPage(), $pager->getPattern(), $pager->getYear(), $pager->getMonth(), $pager->getFilterParams(), - $opts->getValue( 'tagfilter' ) + $pager->getTagFilter(), + $pager->getAction() ); # Insert list @@ -259,31 +266,7 @@ class SpecialLog extends SpecialPage { ) . "\n"; } - // Select: All, None, Invert - $links = []; - $links[] = Html::element( - 'a', [ 'href' => '#', 'class' => 'mw-checkbox-all' ], - $this->msg( 'checkbox-all' )->text() - ); - $links[] = Html::element( - 'a', [ 'href' => '#', 'class' => 'mw-checkbox-none' ], - $this->msg( 'checkbox-none' )->text() - ); - $links[] = Html::element( - 'a', [ 'href' => '#', 'class' => 'mw-checkbox-invert' ], - $this->msg( 'checkbox-invert' )->text() - ); - - $buttons .= Html::rawElement( 'p', - [ - 'class' => "mw-checkbox-toggle-controls" - ], - $this->msg( 'checkbox-select' ) - ->rawParams( $this->getLanguage()->commaList( $links ) )->escaped() - ); - - $this->getOutput()->addModules( 'mediawiki.checkboxtoggle' ); - $this->getOutput()->addModuleStyles( 'mediawiki.checkboxtoggle.styles' ); + $buttons .= ( new ListToggle( $this->getOutput() ) )->getHTML(); $s .= $buttons . $formcontents . $buttons; $s .= Html::closeElement( 'form' );