X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=resources%2Fmediawiki%2Fmediawiki.user.js;h=5c5c87e29522889edf4cc5d6f10c5751686c7bcf;hb=a8c4507f6f7094dcecab6cd08e72e53af308b64d;hp=48f30df7f0420b59e41114f34fdd14979defd7b3;hpb=d87b72d3527a828c23405b1c7c6cf576a1bc9078;p=lhc%2Fweb%2Fwiklou.git diff --git a/resources/mediawiki/mediawiki.user.js b/resources/mediawiki/mediawiki.user.js index 48f30df7f0..5c5c87e295 100644 --- a/resources/mediawiki/mediawiki.user.js +++ b/resources/mediawiki/mediawiki.user.js @@ -2,17 +2,18 @@ * Implementation for mediaWiki.user */ -( function ( $ ) { +( function ( mw, $ ) { /** * User object */ function User( options, tokens ) { + var user, callbacks; /* Private Members */ - var that = this; - var callbacks = {}; + user = this; + callbacks = {}; /** * Gets the current user's groups or rights. @@ -61,9 +62,10 @@ * @return String: Random set of 32 alpha-numeric characters */ function generateId() { - var id = ''; - var seed = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; - for ( var i = 0, r; i < 32; i++ ) { + var i, r, + id = '', + seed = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; + for ( i = 0; i < 32; i++ ) { r = Math.floor( Math.random() * seed.length ); id += seed.substring( r, r + 1 ); } @@ -92,14 +94,14 @@ * @return Boolean */ this.isAnon = function () { - return that.getName() === null; + return user.getName() === null; }; /** * @deprecated since 1.20 use mw.user.isAnon() instead */ this.anonymous = function () { - return that.isAnon(); + return user.isAnon(); }; /** @@ -129,16 +131,20 @@ * @return String: User name or random session ID */ this.id = function() { - var name = that.getName(); + var id, + name = user.getName(); if ( name ) { return name; } - var id = $.cookie( 'mediaWiki.user.id' ); + id = $.cookie( 'mediaWiki.user.id' ); if ( typeof id === 'undefined' || id === null ) { id = generateId(); } // Set cookie if not set, or renew it if already set - $.cookie( 'mediaWiki.user.id', id, { 'expires': 365, 'path': '/' } ); + $.cookie( 'mediaWiki.user.id', id, { + expires: 365, + path: '/' + } ); return id; }; @@ -165,38 +171,41 @@ * 'expires': 7 * } ); */ - this.bucket = function( key, options ) { + this.bucket = function ( key, options ) { + var cookie, parts, version, bucket, + range, k, rand, total; + options = $.extend( { - 'buckets': {}, - 'version': 0, - 'tracked': false, - 'expires': 30 + buckets: {}, + version: 0, + tracked: false, + expires: 30 }, options || {} ); - var cookie = $.cookie( 'mediaWiki.user.bucket:' + key ); - var bucket = null; - var version = 0; + + cookie = $.cookie( 'mediaWiki.user.bucket:' + key ); + // Bucket information is stored as 2 integers, together as version:bucket like: "1:2" if ( typeof cookie === 'string' && cookie.length > 2 && cookie.indexOf( ':' ) > 0 ) { - var parts = cookie.split( ':' ); - if ( parts.length > 1 && parts[0] == options.version ) { + parts = cookie.split( ':' ); + if ( parts.length > 1 && Number( parts[0] ) === options.version ) { version = Number( parts[0] ); bucket = String( parts[1] ); } } - if ( bucket === null ) { + if ( bucket === undefined ) { if ( !$.isPlainObject( options.buckets ) ) { throw 'Invalid buckets error. Object expected for options.buckets.'; } version = Number( options.version ); // Find range - var range = 0, k; + range = 0; for ( k in options.buckets ) { range += options.buckets[k]; } // Select random value within range - var rand = Math.random() * range; + rand = Math.random() * range; // Determine which bucket the value landed in - var total = 0; + total = 0; for ( k in options.buckets ) { bucket = k; total += options.buckets[k]; @@ -205,7 +214,7 @@ } } if ( options.tracked ) { - mw.loader.using( 'jquery.clickTracking', function() { + mw.loader.using( 'jquery.clickTracking', function () { $.trackAction( 'mediaWiki.user.bucket:' + key + '@' + version + ':' + bucket ); @@ -239,4 +248,4 @@ // This is kind of ugly but we're stuck with this for b/c reasons mw.user = new User( mw.user.options, mw.user.tokens ); -}( jQuery ) ); +}( mediaWiki, jQuery ) );