http://www.mediawiki.org/wiki/Special:Code/MediaWiki/68111
Revision: 68111 Author: aaron Date: 2010-06-16 00:51:33 +0000 (Wed, 16 Jun 2010) Log Message: ----------- addToDiffView() changes: * Replaced invalidateCache() call with a simple cache correction call * Show review prompt only on diffs when there is something to review * Removed inclusionSetting() check, already handled by findPendingTemplateChanges()/findFileTemplateChanges() Modified Paths: -------------- trunk/extensions/FlaggedRevs/FlaggedArticleView.php Modified: trunk/extensions/FlaggedRevs/FlaggedArticleView.php =================================================================== --- trunk/extensions/FlaggedRevs/FlaggedArticleView.php 2010-06-16 00:26:20 UTC (rev 68110) +++ trunk/extensions/FlaggedRevs/FlaggedArticleView.php 2010-06-16 00:51:33 UTC (rev 68111) @@ -1236,11 +1236,10 @@ # Check the page sync value cache... $key = wfMemcKey( 'flaggedrevs', 'includesSynced', $this->article->getId() ); $value = FlaggedRevs::getMemcValue( $wgMemc->get( $key ), $this->article ); - # Default sync val as false to trigger query - $synced = ( $value === "true" ) ? true : false; $changeList = array(); - if ( !$synced ) { + # Trigger queries if sync cache value is not 'true' + if ( $value !== "true" ) { # Add a list of links to each changed template... $changeList = array_merge( $changeList, $this->fetchTemplateChanges( $frev ) ); # Add a list of links to each changed file... @@ -1249,48 +1248,49 @@ # Some important information about include version selection... $notice = ''; - if ( count( $changeList ) > 0 ) { - # We use the stable version of includes, unless set otherwise - if ( FlaggedRevs::inclusionSetting() != FR_INCLUDES_CURRENT ) { - $notice = wfMsgExt( 'revreview-update-use', 'parse' ); - } - } elseif ( !$synced ) { - # Bad cache said they were not synced - $this->article->getTitle()->invalidateCache(); + if ( count( $changeList ) ) { + $notice = wfMsgExt( 'revreview-update-use', 'parse' ); + } elseif ( $value === "false" ) { + global $wgParserCacheExpireTime; + # Correct bad cache which said they were not synced + $data = FlaggedRevs::makeMemcObj( "true" ); + $wgMemc->set( $key, $data, $wgParserCacheExpireTime ); } - - # If the user is allowed to review, prompt them! - # Only those if there is something to actually review. - if ( $wgRequest->getInt( 'shownotice' ) - && $newRev->isCurrent() - && $newRev->getRawUserText() == $wgUser->getName() ) - { + # If there are pending revs or templates/files changes, + # notify the user and prompt them to review them... + if ( $this->article->revsArePending() || count( $changeList ) ) { // Reviewer just edited... - $title = $this->article->getTitle(); // convenience - // @TODO: make diff class cache this - $n = $title->countRevisionsBetween( $oldRev->getId(), $newRev->getId() ); - if ( $n ) { - $msg = 'revreview-update-edited-prev'; // previous pending edits + if ( $wgRequest->getInt( 'shownotice' ) + && $newRev->isCurrent() + && $newRev->getRawUserText() == $wgUser->getName() ) + { + $title = $this->article->getTitle(); // convenience + // @TODO: make diff class cache this + $n = $title->countRevisionsBetween( $oldRev->getId(), $newRev->getId() ); + if ( $n ) { + $msg = 'revreview-update-edited-prev'; // previous pending edits + } else { + $msg = 'revreview-update-edited'; // just couldn't autoreview + } + // All other cases... } else { - $msg = 'revreview-update-edited'; // just couldn't autoreview + $msg = 'revreview-update'; // generic "Please review" notice... } - } else { - $msg = 'revreview-update'; // generic "Please review" notice... + $changeDiv = wfMsgExt( $msg, 'parse' ); + if ( count( $changeList ) ) { + # Add include change list... + $changeDiv .= '<p>' . + wfMsgExt( 'revreview-update-includes', 'parseinline' ) . + ' ' . implode( ', ', $changeList ) . '</p>'; + # Add include usage notice... + $changeDiv .= $notice; + } + $css = 'flaggedrevs_diffnotice plainlinks'; + $form .= "<div id='mw-fr-difftostable' class='$css'>$changeDiv</div>\n"; + + # Set a key to note that someone is viewing this + $this->markDiffUnderReview( $oldRev, $newRev ); } - $changeDiv = wfMsgExt( $msg, 'parse' ); - if ( count( $changeList ) ) { - # Add include change list... - $changeDiv .= '<p>' . - wfMsgExt( 'revreview-update-includes', 'parseinline' ) . - ' ' . implode( ', ', $changeList ) . '</p>'; - # Add include usage notice... - $changeDiv .= $notice; - } - $css = 'flaggedrevs_diffnotice plainlinks'; - $form .= "<div id='mw-fr-difftostable' class='$css'>$changeDiv</div>\n"; - - # Set a key to note that someone is viewing this - $this->markDiffUnderReview( $oldRev, $newRev ); } # Add a link to diff from stable to current as needed if ( $frev ) { _______________________________________________ MediaWiki-CVS mailing list MediaWiki-CVS@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs