http://www.mediawiki.org/wiki/Special:Code/MediaWiki/88621

Revision: 88621
Author:   reedy
Date:     2011-05-22 23:34:19 +0000 (Sun, 22 May 2011)
Log Message:
-----------
jquery.autoEllipsis is good from core

(bug 29099 / bug 26306) Cleanup extensions that include jquery (and common 
plugins) themselves

Modified Paths:
--------------
    trunk/extensions/UploadWizard/UploadWizardHooks.php

Removed Paths:
-------------
    trunk/extensions/UploadWizard/resources/jquery/jquery.autoEllipsis.js

Modified: trunk/extensions/UploadWizard/UploadWizardHooks.php
===================================================================
--- trunk/extensions/UploadWizard/UploadWizardHooks.php 2011-05-22 23:24:56 UTC 
(rev 88620)
+++ trunk/extensions/UploadWizard/UploadWizardHooks.php 2011-05-22 23:34:19 UTC 
(rev 88621)
@@ -15,7 +15,8 @@
                        'scripts' => 'resources/mediawiki.language.parser.js'
                ),
                'ext.uploadWizard' => array(
-                       'dependencies' => array( 
+                       'dependencies' => array(
+                               'jquery.autoEllipsis',
                                'jquery.ui.core',
                                'jquery.ui.dialog',
                                'jquery.ui.datepicker',
@@ -35,7 +36,6 @@
                                'resources/jquery/jquery.arrowSteps.js',
                                'resources/jquery/jquery.autocomplete.js',
                                'resources/jquery/jquery.spinner.js',
-                               'resources/jquery/jquery.autoEllipsis.js',
                                'resources/jquery/jquery.removeCtrl.js',
                                'resources/jquery/jquery.pubsub.js',
 

Deleted: trunk/extensions/UploadWizard/resources/jquery/jquery.autoEllipsis.js
===================================================================
--- trunk/extensions/UploadWizard/resources/jquery/jquery.autoEllipsis.js       
2011-05-22 23:24:56 UTC (rev 88620)
+++ trunk/extensions/UploadWizard/resources/jquery/jquery.autoEllipsis.js       
2011-05-22 23:34:19 UTC (rev 88621)
@@ -1,131 +0,0 @@
-/**
- * Plugin that automatically truncates the plain text contents of an element 
and adds an ellipsis
- */
-( function( $ ) {
-
-// Cache ellipsed substrings for every string-width combination
-var cache = { };
-// Use a seperate cache when match highlighting is enabled
-var matchTextCache = { };
-
-$.fn.autoEllipsis = function( options ) {
-       options = $.extend( {
-               'position': 'center',
-               'tooltip': false,
-               'restoreText': false,
-               'hasSpan': false,
-               'matchText': null
-       }, options );
-       $(this).each( function() {
-               var $this = $(this);
-               if ( options.restoreText ) {
-                       if ( ! $this.data( 'autoEllipsis.originalText' ) ) {
-                               $this.data( 'autoEllipsis.originalText', 
$this.text() );
-                       } else {
-                               $this.text( $this.data( 
'autoEllipsis.originalText' ) );
-                       }
-               }
-               
-               // container element - used for measuring against
-               var $container = $this;
-               // trimmable text element - only the text within this element 
will be trimmed
-               var $trimmableText = null;
-               // protected text element - the width of this element is 
counted, but next is never trimmed from it
-               var $protectedText = null;
-
-               if ( options.hasSpan ) {
-                       $trimmableText = $this.children( options.selector );
-               } else {
-                       $trimmableText = $( '<span />' )
-                               .css( 'whiteSpace', 'nowrap' )
-                               .text( $this.text() );
-                       $this
-                               .empty()
-                               .append( $trimmableText );
-               }
-               
-               var text = $container.text();
-               var trimmableText = $trimmableText.text();
-               var w = $container.width();
-               var pw = $protectedText ? $protectedText.width() : 0;
-               // Try cache
-               if ( !( text in cache ) ) {
-                       cache[text] = {};
-               }
-               if ( options.matchText && !( text in matchTextCache ) ) {
-                       matchTextCache[text] = {};
-               }
-               if ( options.matchText && !( options.matchText in 
matchTextCache[text] ) ) {
-                       matchTextCache[text][options.matchText] = {};
-               }
-               if ( !options.matchText && w in cache[text] ) {
-                       $container.html( cache[text][w] );
-                       if ( options.tooltip )
-                               $container.attr( 'title', text );
-                       return;
-               }
-               if( options.matchText && options.matchText in 
matchTextCache[text] && w in matchTextCache[text][options.matchText] ) {
-                       $container.html( 
matchTextCache[text][options.matchText][w] );
-                       if ( options.tooltip )
-                               $container.attr( 'title', text );
-                       return;
-               }
-               if ( $trimmableText.width() + pw > w ) {
-                       switch ( options.position ) {
-                               case 'right':
-                                       // Use binary search-like technique for 
efficiency
-                                       var l = 0, r = trimmableText.length;
-                                       do {
-                                               var m = Math.ceil( ( l + r ) / 
2 );
-                                               $trimmableText.text( 
trimmableText.substr( 0, m ) + '...' );
-                                               if ( $trimmableText.width() + 
pw > w ) {
-                                                       // Text is too long
-                                                       r = m - 1;
-                                               } else {
-                                                       l = m;
-                                               }
-                                       } while ( l < r );
-                                       $trimmableText.text( 
trimmableText.substr( 0, l ) + '...' );
-                                       break;
-                               case 'center':
-                                       // TODO: Use binary search like for 
'right'
-                                       var i = [Math.round( 
trimmableText.length / 2 ), Math.round( trimmableText.length / 2 )];
-                                       var side = 1; // Begin with making the 
end shorter
-                                       while ( $trimmableText.outerWidth() + 
pw > w  && i[0] > 0 ) {
-                                               $trimmableText.text( 
trimmableText.substr( 0, i[0] ) + '...' + trimmableText.substr( i[1] ) );
-                                               // Alternate between trimming 
the end and begining
-                                               if ( side == 0 ) {
-                                                       // Make the begining 
shorter
-                                                       i[0]--;
-                                                       side = 1;
-                                               } else {
-                                                       // Make the end shorter
-                                                       i[1]++;
-                                                       side = 0;
-                                               }
-                                       }
-                                       break;
-                               case 'left':
-                                       // TODO: Use binary search like for 
'right'
-                                       var r = 0;
-                                       while ( $trimmableText.outerWidth() + 
pw > w && r < trimmableText.length ) {
-                                               $trimmableText.text( '...' + 
trimmableText.substr( r ) );
-                                               r++;
-                                       }
-                                       break;
-                       }
-               }
-               if ( options.tooltip ) {
-                       $container.attr( 'title', text );
-               }
-               if ( options.matchText ) {
-                       $container.highlightText( options.matchText );
-                       matchTextCache[text][options.matchText][w] = 
$container.html();
-               } else {
-                       cache[text][w] = $container.html();
-               }
-               
-       } );
-};
-
-} )( jQuery );


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to