From: Alex Monk Date: Tue, 19 Feb 2013 12:38:38 +0000 (+0000) Subject: jquery.badge: Treat non-Latin variants of zero as zero as well. X-Git-Tag: 1.31.0-rc.0~20344 X-Git-Url: http://git.cyclocoop.org/%7B%24www_url%7Dadmin/compta/operations/recherche.php?a=commitdiff_plain;h=a1059d766ac73d166a1fa3b23e2fc2edbb81c215;p=lhc%2Fweb%2Fwiklou.git jquery.badge: Treat non-Latin variants of zero as zero as well. Bug: 45143 Change-Id: Ib8a36913df1ec4ae966551d1d5b8de712c34b96c --- diff --git a/RELEASE-NOTES-1.21 b/RELEASE-NOTES-1.21 index 3ee0704a6d..e7e718dd04 100644 --- a/RELEASE-NOTES-1.21 +++ b/RELEASE-NOTES-1.21 @@ -202,6 +202,7 @@ production. * (bug 42430) Calling numRows on MySQL no longer propagates unrelated errors. * (bug 44719) Removed mention of non-existing maintenance/migrateCurStubs.php script in includes/DefaultSettings.php +* (bug 45143) jquery.badge: Treat non-Latin variants of zero as zero as well. === API changes in 1.21 === * prop=revisions can now report the contentmodel and contentformat. diff --git a/resources/Resources.php b/resources/Resources.php index 1a11cd4956..f5a31fd675 100644 --- a/resources/Resources.php +++ b/resources/Resources.php @@ -149,6 +149,7 @@ return array( 'jquery.badge' => array( 'scripts' => 'resources/jquery/jquery.badge.js', 'styles' => 'resources/jquery/jquery.badge.css', + 'dependencies' => 'mediawiki.language', ), 'jquery.byteLength' => array( 'scripts' => 'resources/jquery/jquery.byteLength.js', diff --git a/resources/jquery/jquery.badge.js b/resources/jquery/jquery.badge.js index 16e71969c1..9404e81833 100644 --- a/resources/jquery/jquery.badge.js +++ b/resources/jquery/jquery.badge.js @@ -21,32 +21,37 @@ * * This program is distributed WITHOUT ANY WARRANTY. */ -( function ( $ ) { +( function ( $, mw ) { /** * Allows you to put a "badge" on an item on the page. The badge container * will be appended to the selected element(s). * See mediawiki.org/wiki/ResourceLoader/Default_modules#jQuery.badge * * @param {number|string} text The value to display in the badge. If the value is falsey (0, - * null, false, '', etc.), any existing badge will be removed. + * null, false, '', etc.), any existing badge will be removed. * @param {boolean} inline True if the badge should be displayed inline, false - * if the badge should overlay the parent element (default is inline) + * if the badge should overlay the parent element (default is inline) * @param {boolean} displayZero True if the number zero should be displayed, - * false if the number zero should result in the badge being hidden - * (default is zero will result in the badge being hidden) + * false if the number zero should result in the badge being hidden + * (default is zero will result in the badge being hidden) */ $.fn.badge = function ( text, inline, displayZero ) { var $badge = this.find( '.mw-badge' ), badgeStyleClass = 'mw-badge-' + ( inline ? 'inline' : 'overlay' ), - isImportant = true; + isImportant = true, displayBadge = true; // If we're displaying zero, ensure style to be non-important - if ( text === 0 && displayZero ) { + if ( mw.language.convertNumber( text, true ) === 0 ) { isImportant = false; - text = '0'; + if ( !displayZero ) { + displayBadge = false; + } + // If text is falsey (besides 0), hide the badge + } else if ( !text ) { + displayBadge = false; } - if ( text ) { + if ( displayBadge ) { // If a badge already exists, reuse it if ( $badge.length ) { $badge @@ -59,7 +64,7 @@ .addClass( badgeStyleClass ) .toggleClass( 'mw-badge-important', isImportant ) .append( - $( '' ).text ( text ) + $( '' ).text( text ) ) .appendTo( this ); } @@ -68,4 +73,4 @@ } return this; }; -}( jQuery ) ); +}( jQuery, mediaWiki ) );