r72548 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r72547‎ | r72548 | r72549 >
Date:20:30, 7 September 2010
Author:catrope
Status:deferred
Tags:
Comment:
ArticleAssessment: Minor JS fixes
* Style fixes
* Get rid of an unnecessary closure
* Prevent exporting a loop variable into the global scope and prevent it from being shadowed by a variable declared inside the loop
* Don't use a for..in loop to loop over an array
* Fix getMsg() so it replaces multiple occurrences of the same variable
Modified paths:
  • /trunk/extensions/ArticleAssessmentPilot/js/ArticleAssessment.js (modified) (history)

Diff [purge]

Index: trunk/extensions/ArticleAssessmentPilot/js/ArticleAssessment.js
@@ -88,11 +88,11 @@
8989 .replace( /\{INSTRUCTIONS\}/g, $.ArticleAssessment.fn.getMsg( 'articleassessment-pleaserate' ) )
9090 .replace( /\{FEEDBACK\}/g, $.ArticleAssessment.fn.getMsg( 'articleassessment-featurefeedback' )
9191 .replace( /\[\[([^\|\]]*)\|([^\|\]]*)\]\]/, '<a href="' + wgArticlePath + '">$2</a>' ) )
92 - .replace( /\{YOURFEEDBACK\}/g, $.ArticleAssessment.fn.getMsg('articleassessment-yourfeedback') )
93 - .replace( /\{ARTICLERATING\}/g, $.ArticleAssessment.fn.getMsg('articleassessment-articlerating' ) )
94 - .replace( /\{RESULTSHIDE\}/g, $.ArticleAssessment.fn.getMsg('articleassessment-results-hide' )
 92+ .replace( /\{YOURFEEDBACK\}/g, $.ArticleAssessment.fn.getMsg( 'articleassessment-yourfeedback') )
 93+ .replace( /\{ARTICLERATING\}/g, $.ArticleAssessment.fn.getMsg( 'articleassessment-articlerating' ) )
 94+ .replace( /\{RESULTSHIDE\}/g, $.ArticleAssessment.fn.getMsg( 'articleassessment-results-hide' )
9595 .replace( /\[\[\|([^\]]*)\]\]/, '<a href="#">$1</a>' ) )
96 - .replace( /\{RESULTSSHOW\}/g, $.ArticleAssessment.fn.getMsg('articleassessment-results-show' )
 96+ .replace( /\{RESULTSSHOW\}/g, $.ArticleAssessment.fn.getMsg( 'articleassessment-results-show' )
9797 .replace( /\[\[\|([^\]]*)\]\]/, '<a href="#">$1</a>' ) ) );
9898 for ( var field in settings.fieldMessages ) {
9999 $output.find( '.article-assessment-rating-fields' )
@@ -102,7 +102,7 @@
103103 .replace( /\{HINT\}/g, $.ArticleAssessment.fn.getMsg( settings.fieldPrefix + settings.fieldMessages[field] + settings.fieldHintSuffix ) ) ) );
104104 $output.find( '#article-assessment-ratings' )
105105 .append( $( settings.ratingHTML
106 - .replace( /\{LABEL\}/g, $.ArticleAssessment.fn.getMsg(settings.fieldPrefix + settings.fieldMessages[field]) )
 106+ .replace( /\{LABEL\}/g, $.ArticleAssessment.fn.getMsg( settings.fieldPrefix + settings.fieldMessages[field] ) )
107107 .replace( /\{FIELD\}/g, settings.fieldMessages[field] )
108108 .replace( /\{VALUE\}/g, '0%' )
109109 .replace( /\{COUNT\}/g, $.ArticleAssessment.fn.getMsg( 'articleassessment-noratings', [0, 0] ) ) )
@@ -202,9 +202,7 @@
203203 url: wgScriptPath + '/api.php',
204204 data: requestData,
205205 dataType: 'json',
206 - success: function( data ) {
207 - $.ArticleAssessment.fn.afterGetRatingData( data );
208 - },
 206+ success: $.ArticleAssessment.fn.afterGetRatingData,
209207 error: function( XMLHttpRequest, textStatus, errorThrown ) {
210208 $.ArticleAssessment.fn.flashNotice( $.ArticleAssessment.fn.getMsg( 'articleassessment-error' ),
211209 { 'class': 'article-assessment-error-msg' } );
@@ -215,8 +213,8 @@
216214 var settings = $( '#article-assessment' ).data( 'articleAssessment-context' ).settings;
217215 // add the correct data to the markup
218216 if ( data.query.articleassessment && data.query.articleassessment.length > 0 ) {
219 - for ( rating in data.query.articleassessment[0].ratings) {
220 - var rating = data.query.articleassessment[0].ratings[rating],
 217+ for ( var r in data.query.articleassessment[0].ratings) {
 218+ var rating = data.query.articleassessment[0].ratings[r],
221219 $rating = $( '#' + rating.ratingdesc ),
222220 count = rating.count,
223221 total = ( rating.total / count ).toFixed( 1 ),
@@ -336,6 +334,7 @@
337335 },
338336 /**
339337 * Get a message
 338+ * FIXME: Parameter expansion is broken in all sorts of edge cases
340339 */
341340 'getMsg': function( key, args ) {
342341 if ( !( key in $.ArticleAssessment.messages ) ) {
@@ -343,11 +342,11 @@
344343 }
345344 var msg = $.ArticleAssessment.messages[key];
346345 if ( typeof args == 'object' || typeof args == 'array' ) {
347 - for ( var argKey in args ) {
348 - msg = msg.replace( '\$' + ( parseInt( argKey ) + 1 ), args[argKey] );
 346+ for ( var i = 0; i < args.length; i++ ) {
 347+ msg = msg.replace( new RegExp( '\$' + ( parseInt( i ) + 1 ), 'g' ), args[i] );
349348 }
350349 } else if ( typeof args == 'string' || typeof args == 'number' ) {
351 - msg = msg.replace( '$1', args );
 350+ msg = msg.replace( /\$1/g, args );
352351 }
353352 return msg;
354353 }

Status & tagging log