http://www.mediawiki.org/wiki/Special:Code/MediaWiki/88111
Revision: 88111
Author: freakolowsky
Date: 2011-05-14 17:05:25 +0000 (Sat, 14 May 2011)
Log Message:
-----------
* added an option to toggle the display of diff size with a warning message.
* in misermode this option is disabled
Modified Paths:
--------------
trunk/phase3/includes/specials/SpecialContributions.php
trunk/phase3/languages/messages/MessagesEn.php
trunk/phase3/maintenance/language/messages.inc
Modified: trunk/phase3/includes/specials/SpecialContributions.php
===================================================================
--- trunk/phase3/includes/specials/SpecialContributions.php 2011-05-14
17:02:37 UTC (rev 88110)
+++ trunk/phase3/includes/specials/SpecialContributions.php 2011-05-14
17:05:25 UTC (rev 88111)
@@ -69,6 +69,7 @@
$this->opts['limit'] = $wgRequest->getInt( 'limit',
$wgUser->getOption('rclimit') );
$this->opts['target'] = $target;
$this->opts['topOnly'] = $wgRequest->getBool( 'topOnly' );
+ $this->opts['showSizeDiff'] = $wgRequest->getBool(
'showSizeDiff' );
$nt = Title::makeTitleSafe( NS_USER, $target );
if( !$nt ) {
@@ -132,6 +133,7 @@
'month' => $this->opts['month'],
'deletedOnly' => $this->opts['deletedOnly'],
'topOnly' => $this->opts['topOnly'],
+ 'showSizeDiff' => $this->opts['showSizeDiff'],
) );
if( !$pager->getNumRows() ) {
$wgOut->addWikiMsg( 'nocontribs', $target );
@@ -317,7 +319,7 @@
* @return String: HTML fragment
*/
protected function getForm() {
- global $wgScript, $wgMiserMode;
+ global $wgScript, $wgMiserMode, $wgRCMaxAge, $wgContLang;
$this->opts['title'] = $this->getTitle()->getPrefixedText();
if( !isset( $this->opts['target'] ) ) {
@@ -354,10 +356,14 @@
$this->opts['topOnly'] = false;
}
+ if( !isset( $this->opts['showSizeDiff'] ) ) {
+ $this->opts['showSizeDiff'] = !$wgMiserMode;
+ }
+
$f = Xml::openElement( 'form', array( 'method' => 'get',
'action' => $wgScript, 'class' => 'mw-contributions-form' ) );
# Add hidden params for tracking except for parameters in
$skipParameters
- $skipParameters = array( 'namespace', 'deletedOnly', 'target',
'contribs', 'year', 'month', 'topOnly' );
+ $skipParameters = array( 'namespace', 'deletedOnly', 'target',
'contribs', 'year', 'month', 'topOnly', 'showSizeDiff' );
foreach ( $this->opts as $name => $value ) {
if( in_array( $name, $skipParameters ) ) {
continue;
@@ -366,13 +372,21 @@
}
$tagFilter = ChangeTags::buildTagFilterSelector(
$this->opts['tagFilter'] );
+
+ $fNS = '';
+ $fShowDiff = '';
+ if ( !$wgMiserMode ) {
+ $fNS = Html::rawElement( 'span', array( 'style' =>
'white-space: nowrap' ),
+ Xml::label( wfMsg( 'namespace' ),
'namespace' ) . ' ' .
+ Xml::namespaceSelector(
$this->opts['namespace'], '' )
+ );
+ $fShowDiff = Xml::infoBox(
+ Xml::checkLabel( wfMsg(
'sp-contributions-showsizediff' ), 'showSizeDiff', 'mw-show-size-diff',
$this->opts['showSizeDiff'] ) . '<br />'.
+ wfMsgReplaceArgs ( wfMsg(
'sp-contributions-showsizediff-warn' ), array( $wgContLang->formatTimePeriod(
$wgRCMaxAge ) ) )
+ , 'warning-32.png', wfMsg(
'sp-contributions-showsizediff' )
+ );
+ }
- $fNS = ( $wgMiserMode ) ? '' :
- Html::rawElement( 'span', array( 'style' =>
'white-space: nowrap' ),
- Xml::label( wfMsg( 'namespace' ), 'namespace' )
. ' ' .
- Xml::namespaceSelector(
$this->opts['namespace'], '' )
- );
-
$f .= Xml::fieldset( wfMsg( 'sp-contributions-search' ) ) .
Xml::radioLabel( wfMsgExt( 'sp-contributions-newbies',
array( 'parsemag' ) ),
'contribs', 'newbie' , 'newbie',
$this->opts['contribs'] == 'newbie' ) . '<br />' .
@@ -387,6 +401,7 @@
'deletedOnly', 'mw-show-deleted-only',
$this->opts['deletedOnly'] ) . '<br />' .
Xml::tags( 'p', null, Xml::checkLabel( wfMsg(
'sp-contributions-toponly' ),
'topOnly', 'mw-show-top-only',
$this->opts['topOnly'] ) ) .
+ $fShowDiff.
( $tagFilter ? Xml::tags( 'p', null, implode( ' ',
$tagFilter ) ) : '' ) .
Html::rawElement( 'p', array( 'style' => 'white-space:
nowrap' ),
Xml::dateMenu( $this->opts['year'],
$this->opts['month'] ) . ' ' .
@@ -436,6 +451,7 @@
'tagFilter' => $this->opts['tagFilter'],
'deletedOnly' => $this->opts['deletedOnly'],
'topOnly' => $this->opts['topOnly'],
+ 'showSizeDiff' => $this->opts['showSizeDiff'],
) );
$pager->mLimit = min( $this->opts['limit'], $wgFeedLimit );
@@ -523,6 +539,7 @@
$this->deletedOnly = !empty( $options['deletedOnly'] );
$this->topOnly = !empty( $options['topOnly'] );
+ $this->showSizeDiff = !empty( $options['showSizeDiff'] );
$year = isset( $options['year'] ) ? $options['year'] : false;
$month = isset( $options['month'] ) ? $options['month'] : false;
@@ -538,7 +555,7 @@
}
function getQueryInfo() {
- global $wgUser;
+ global $wgUser, $wgMiserMode;
list( $tables, $index, $userCond, $join_cond ) =
$this->getUserCond();
$conds = array_merge( $userCond, $this->getNamespaceCond() );
@@ -550,20 +567,25 @@
' != ' . Revision::SUPPRESSED_USER;
}
$join_cond['page'] = array( 'INNER JOIN', 'page_id=rev_page' );
+
+ $fields = array(
+ 'page_namespace', 'page_title', 'page_is_new',
'page_latest', 'page_is_redirect',
+ 'page_len','rev_id', 'rev_page', 'rev_text_id',
'rev_timestamp', 'rev_comment',
+ 'rev_minor_edit', 'rev_user', 'rev_user_text',
'rev_parent_id', 'rev_deleted'
+ );
+ if ( $this->showSizeDiff && !$wgMiserMode ) {
+ $fields = array_merge( $fields, array( 'rc_old_len',
'rc_new_len' ) );
+ array_unshift( $tables, 'recentchanges' );
+ $join_cond['recentchanges'] = array( 'INNER JOIN',
"rev_id = rc_this_oldid" );
+ }
$queryInfo = array(
'tables' => $tables,
- 'fields' => array(
- 'page_namespace', 'page_title', 'page_is_new',
'page_latest', 'page_is_redirect',
- 'page_len','rev_id', 'rev_page', 'rev_text_id',
'rev_timestamp', 'rev_comment',
- 'rev_minor_edit', 'rev_user', 'rev_user_text',
'rev_parent_id', 'rev_deleted',
- 'rc_old_len', 'rc_new_len'
- ),
+ 'fields' => $fields,
'conds' => $conds,
'options' => array( 'USE INDEX' => array('revision' =>
$index) ),
'join_conds' => $join_cond
);
-
ChangeTags::modifyDisplayQuery(
$queryInfo['tables'],
$queryInfo['fields'],
@@ -580,19 +602,18 @@
function getUserCond() {
$condition = array();
$join_conds = array();
+
if( $this->target == 'newbies' ) {
- $tables = array( 'recentchanges', 'user_groups',
'page', 'revision' );
+ $tables = array( 'user_groups', 'page', 'revision' );
$max = $this->mDb->selectField( 'user', 'max(user_id)',
false, __METHOD__ );
$condition[] = 'rev_user >' . (int)($max - $max / 100);
$condition[] = 'ug_group IS NULL';
$index = 'user_timestamp';
# FIXME: other groups may have 'bot' rights
$join_conds['user_groups'] = array( 'LEFT JOIN',
"ug_user = rev_user AND ug_group = 'bot'" );
- $join_conds['recentchanges'] = array( 'INNER JOIN',
"rev_id = rc_this_oldid" );
} else {
- $tables = array( 'recentchanges', 'page', 'revision' );
+ $tables = array( 'page', 'revision' );
$condition['rev_user_text'] = $this->target;
- $join_conds['recentchanges'] = array( 'INNER JOIN',
"rev_id = rc_this_oldid" );
$index = 'usertext_timestamp';
}
if( $this->deletedOnly ) {
@@ -739,7 +760,8 @@
$diffHistLinks = '(' . $difftext .
$this->messages['pipe-separator'] . $histlink . ')';
- $diffOut = ' . . '.ChangesList::showCharacterDifference(
$row->rc_old_len, $row->rc_new_len );
+
+ $diffOut = ( $this->showSizeDiff ) ? ' . .
'.ChangesList::showCharacterDifference( $row->rc_old_len, $row->rc_new_len ) :
'';
$ret = "{$del}{$d} {$diffHistLinks} {$nflag}{$mflag}
{$link}{$diffOut}{$userlink} {$comment} {$topmarktext}";
Modified: trunk/phase3/languages/messages/MessagesEn.php
===================================================================
--- trunk/phase3/languages/messages/MessagesEn.php 2011-05-14 17:02:37 UTC
(rev 88110)
+++ trunk/phase3/languages/messages/MessagesEn.php 2011-05-14 17:05:25 UTC
(rev 88111)
@@ -2992,6 +2992,8 @@
'sp-contributions-search' => 'Search for contributions',
'sp-contributions-username' => 'IP address or username:',
'sp-contributions-toponly' => 'Only show edits that are latest
revisions',
+'sp-contributions-showsizediff' => 'Display difference in page size',
+'sp-contributions-showsizediff-warn' => 'This instance has recent changes
log limited to $1 . If you use this option, pages not in this log will not be
displayed',
'sp-contributions-submit' => 'Search',
'sp-contributions-explain' => '', # only translate this message to
other languages if you have to change it
'sp-contributions-footer' => '-', # do not translate or duplicate
this message to other languages
Modified: trunk/phase3/maintenance/language/messages.inc
===================================================================
--- trunk/phase3/maintenance/language/messages.inc 2011-05-14 17:02:37 UTC
(rev 88110)
+++ trunk/phase3/maintenance/language/messages.inc 2011-05-14 17:05:25 UTC
(rev 88111)
@@ -2014,6 +2014,8 @@
'sp-contributions-explain',
'sp-contributions-footer',
'sp-contributions-footer-anon',
+ 'sp-contributions-showsizediff',
+ 'sp-contributions-showsizediff-warn',
),
'whatlinkshere' => array(
'whatlinkshere',
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs