X-Git-Url: http://git.cyclocoop.org/%28%28?a=blobdiff_plain;f=includes%2FChangesList.php;h=9c441afaaffa07fd70179a6efa7f38db2af95137;hb=2d56adb39328ac086bed031bc47b1c1448ee1db5;hp=d54e7f045965420b13fd0218d9d2804d05ede10d;hpb=c46df11c1ec9ef526f173a00df724b19fc1ec754;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/ChangesList.php b/includes/ChangesList.php index d54e7f0459..9c441afaaf 100644 --- a/includes/ChangesList.php +++ b/includes/ChangesList.php @@ -122,7 +122,7 @@ class ChangesList extends ContextSource { private function preCacheMessages() { if ( !isset( $this->message ) ) { foreach ( array( - 'cur', 'diff', 'hist', 'last', 'blocklink', 'history', + 'cur', 'diff', 'hist', 'enhancedrc-history', 'last', 'blocklink', 'history', 'semicolon-separator', 'pipe-separator' ) as $msg ) { $this->message[$msg] = $this->msg( $msg )->escaped(); @@ -194,7 +194,7 @@ class ChangesList extends ContextSource { $this->rcCacheIndex = 0; $this->lastdate = ''; $this->rclistOpen = false; - $this->getOutput()->addModules( 'mediawiki.special.changeslist' ); + $this->getOutput()->addModuleStyles( 'mediawiki.special.changeslist' ); return ''; } @@ -362,8 +362,6 @@ class ChangesList extends ContextSource { * @param $watched */ public function insertArticleLink( &$s, &$rc, $unpatrolled, $watched ) { - global $wgUseRCPatrol; - $params = array(); $articlelink = Linker::linkKnown( @@ -456,10 +454,15 @@ class ChangesList extends ContextSource { /** * Check whether to enable recent changes patrol features + * + * @deprecated since 1.22 * @return Boolean */ public static function usePatrol() { global $wgUser; + + wfDeprecated( __METHOD__, '1.22' ); + return $wgUser->useRCPatrol(); } @@ -703,7 +706,14 @@ class EnhancedChangesList extends ChangesList { $this->rcCacheIndex = 0; $this->lastdate = ''; $this->rclistOpen = false; - $this->getOutput()->addModules( 'mediawiki.special.changeslist' ); + $this->getOutput()->addModuleStyles( array( + 'mediawiki.special.changeslist', + 'mediawiki.special.changeslist.enhanced', + ) ); + $this->getOutput()->addModules( array( + 'jquery.makeCollapsible', + 'mediawiki.icon', + ) ); return ''; } /** @@ -966,12 +976,30 @@ class EnhancedChangesList extends ChangesList { $r .= $this->getLanguage()->getDirMark(); $queryParams['curid'] = $curId; + # Changes message - $n = count( $block ); static $nchanges = array(); + static $sinceLastVisitMsg = array(); + + $n = count( $block ); if ( !isset( $nchanges[$n] ) ) { $nchanges[$n] = $this->msg( 'nchanges' )->numParams( $n )->escaped(); } + + $sinceLast = 0; + $unvisitedOldid = null; + foreach ( $block as $rcObj ) { + // Same logic as below inside main foreach + if ( $rcObj->watched && $rcObj->mAttribs['rc_timestamp'] >= $rcObj->watched ) { + $sinceLast++; + $unvisitedOldid = $rcObj->mAttribs['rc_last_oldid']; + } + } + if ( !isset( $sinceLastVisitMsg[$sinceLast] ) ) { + $sinceLastVisitMsg[$sinceLast] = + $this->msg( 'enhancedrc-since-last-visit' )->numParams( $sinceLast )->escaped(); + } + # Total change link $r .= ' '; $logtext = ''; @@ -981,17 +1009,28 @@ class EnhancedChangesList extends ChangesList { } elseif ( $isnew ) { $logtext .= $nchanges[$n]; } else { - $params = $queryParams; - $params['diff'] = $currentRevision; - $params['oldid'] = $oldid; - $logtext .= Linker::link( $block[0]->getTitle(), $nchanges[$n], array(), - $params, + $queryParams + array( + 'diff' => $currentRevision, + 'oldid' => $oldid, + ), array( 'known', 'noclasses' ) ); + if ( $sinceLast > 0 && $sinceLast < $n ) { + $logtext .= $this->message['pipe-separator'] . Linker::link( + $block[0]->getTitle(), + $sinceLastVisitMsg[$sinceLast], + array(), + $queryParams + array( + 'diff' => $currentRevision, + 'oldid' => $unvisitedOldid, + ), + array( 'known', 'noclasses' ) + ); + } } } @@ -999,7 +1038,7 @@ class EnhancedChangesList extends ChangesList { if ( $allLogs ) { // don't show history link for logs } elseif ( $namehidden || !$block[0]->getTitle()->exists() ) { - $logtext .= $this->message['pipe-separator'] . $this->message['hist']; + $logtext .= $this->message['pipe-separator'] . $this->message['enhancedrc-history']; } else { $params = $queryParams; $params['action'] = 'history'; @@ -1007,7 +1046,7 @@ class EnhancedChangesList extends ChangesList { $logtext .= $this->message['pipe-separator'] . Linker::linkKnown( $block[0]->getTitle(), - $this->message['hist'], + $this->message['enhancedrc-history'], array(), $params );