Remove $wgJavaScriptTestConfig
[lhc/web/wiklou.git] / includes / logging / LogEventsList.php
index 70f1f1a..f7eaec3 100644 (file)
@@ -261,14 +261,21 @@ class LogEventsList extends ContextSource {
         * @return string
         */
        private function getExtraInputs( $types ) {
-               $offender = $this->getRequest()->getVal( 'offender' );
-               $user = User::newFromName( $offender, false );
-               if ( !$user || ( $user->getId() == 0 && !IP::isIPAddress( $offender ) ) ) {
-                       $offender = ''; // Blank field if invalid
-               }
-               if ( count( $types ) == 1 && $types[0] == 'suppress' ) {
-                       return Xml::inputLabel( $this->msg( 'revdelete-offender' )->text(), 'offender',
-                               'mw-log-offender', 20, $offender );
+               if ( count( $types ) == 1 ) {
+                       if ( $types[0] == 'suppress' ) {
+                               $offender = $this->getRequest()->getVal( 'offender' );
+                               $user = User::newFromName( $offender, false );
+                               if ( !$user || ( $user->getId() == 0 && !IP::isIPAddress( $offender ) ) ) {
+                                       $offender = ''; // Blank field if invalid
+                               }
+                               return Xml::inputLabel( $this->msg( 'revdelete-offender' )->text(), 'offender',
+                                       'mw-log-offender', 20, $offender );
+                       } else {
+                               // Allow extensions to add their own extra inputs
+                               $input = '';
+                               Hooks::run( 'LogEventsListGetExtraInputs', array( $types[0], $this, &$input ) );
+                               return $input;
+                       }
                }
 
                return '';
@@ -535,13 +542,35 @@ class LogEventsList extends ContextSource {
                        $pager->mLimit = $lim;
                }
 
-               $logBody = $pager->getBody();
+               $knownEmptyResult = false;
+               // Check if we can avoid the DB query all together
+               if ( $page !== '' && !$param['useMaster'] ) {
+                       $title = ( $page instanceof Title ) ? $page : Title::newFromText( $page );
+                       if ( $title ) {
+                               $member = $title->getNamespace() . ':' . $title->getDBkey();
+                               if ( !BloomCache::get( 'main' )->check( wfWikiId(), 'TitleHasLogs', $member ) ) {
+                                       $knownEmptyResult = true;
+                               }
+                       } else {
+                               $knownEmptyResult = true;
+                       }
+               }
+
+               // Fetch the log rows and build the HTML if needed
+               if ( $knownEmptyResult ) {
+                       $logBody = '';
+                       $numRows = 0;
+               } else {
+                       $logBody = $pager->getBody();
+                       $numRows = $pager->getNumRows();
+               }
+
                $s = '';
 
                if ( $logBody ) {
                        if ( $msgKey[0] ) {
                                $dir = $context->getLanguage()->getDir();
-                               $lang = $context->getLanguage()->getCode();
+                               $lang = $context->getLanguage()->getHtmlCode();
 
                                $s = Xml::openElement( 'div', array(
                                        'class' => "mw-warning-with-logexcerpt mw-content-$dir",
@@ -565,7 +594,7 @@ class LogEventsList extends ContextSource {
                                $context->msg( 'logempty' )->parse() );
                }
 
-               if ( $pager->getNumRows() > $pager->mLimit ) { # Show "Full log" link
+               if ( $numRows > $pager->mLimit ) { # Show "Full log" link
                        $urlParam = array();
                        if ( $page instanceof Title ) {
                                $urlParam['page'] = $page->getPrefixedDBkey();
@@ -603,7 +632,7 @@ class LogEventsList extends ContextSource {
                }
 
                /* hook can return false, if we don't want the message to be emitted (Wikia BugId:7093) */
-               if ( wfRunHooks( 'LogEventsListShowLogExtract', array( &$s, $types, $page, $user, $param ) ) ) {
+               if ( Hooks::run( 'LogEventsListShowLogExtract', array( &$s, $types, $page, $user, $param ) ) ) {
                        // $out can be either an OutputPage object or a String-by-reference
                        if ( $out instanceof OutputPage ) {
                                $out->addHTML( $s );
@@ -612,7 +641,7 @@ class LogEventsList extends ContextSource {
                        }
                }
 
-               return $pager->getNumRows();
+               return $numRows;
        }
 
        /**