WordPress.org

Make WordPress Core

Ticket #12921: 12921.1.patch

File 12921.1.patch, 3.7 KB (added by koopersmith, 8 years ago)
  • wp-includes/js/tinymce/plugins/wordpress/editor_plugin.dev.js

     
    99                mceTout : 0,
    1010
    1111                init : function(ed, url) {
    12                         var t = this, tbId = ed.getParam('wordpress_adv_toolbar', 'toolbar2'), last = 0, moreHTML, nextpageHTML;
     12                        var t = this, tbId = ed.getParam('wordpress_adv_toolbar', 'toolbar2'), moreHTML, nextpageHTML;
    1313                        moreHTML = '<img src="' + url + '/img/trans.gif" class="mceWPmore mceItemNoResize" title="'+ed.getLang('wordpress.wp_more_alt')+'" />';
    1414                        nextpageHTML = '<img src="' + url + '/img/trans.gif" class="mceWPnextpage mceItemNoResize" title="'+ed.getLang('wordpress.wp_page_alt')+'" />';
    1515
     
    162162                        // Word count if script is loaded
    163163                        if ( 'undefined' != typeof wpWordCount ) {
    164164                                ed.onKeyUp.add(function(ed, e) {
    165                                         if ( e.keyCode == last ) return;
    166                                         if ( 13 == e.keyCode || 8 == last || 46 == last ) wpWordCount.wc( ed.getContent({format : 'raw'}) );
    167                                         last = e.keyCode;
     165                                        wpWordCount.keyup( e, function(){ return ed.getContent({format : 'raw'}); });
    168166                                });
     167                                ed.onPaste.add(function(ed, e) {
     168                                        wpWordCount.update();
     169                                });
    169170                        };
    170171
    171172                        ed.onSaveContent.add(function(ed, o) {
  • wp-admin/js/word-count.dev.js

     
    33        wpWordCount = {
    44
    55                init : function() {
    6                         var t = this, last = 0, co = $('#content');
     6                        var t = this, co = $('#content'), fn = function() { return co.val(); };
    77
    88                        $('#wp-word-count').html( wordCountL10n.count.replace( /%d/, '<span id="word-count">0</span>' ) );
    9                         t.block = 0;
    10                         t.wc(co.val());
     9                        t.block = false;
     10                        t.pending = false;
     11                        t.last = 0;
     12                       
     13                        t.wc( fn );
     14                       
    1115                        co.keyup( function(e) {
    12                                 if ( e.keyCode == last ) return true;
    13                                 if ( 13 == e.keyCode || 8 == last || 46 == last ) t.wc(co.val());
    14                                 last = e.keyCode;
    15                                 return true;
     16                                t.keyup( e, fn );
     17                        }).bind('paste select', function(){
     18                                t.update();
    1619                        });
    1720                },
     21               
     22                keyup : function( e, fn ) {
     23                        if ( ! (e instanceof $.Event) ) e = $.event.fix(e);
     24                       
     25                        var t = this, key = e.which;
     26                       
     27                        if ( key == t.last ) return;
     28                       
     29                        if ( t.block && 32 == key && 8 != t.last && 46 != t.last ) t.increment();
     30                        if ( 32 == key || 13 == key || 8 == t.last || 46 == t.last ) t.wc( fn );
     31                       
     32                        t.last = key;
     33                },
     34               
     35                update : function() {
     36                        this.last = 8;
     37                },
     38               
     39                increment : function() {
     40                        var w = $('#word-count');
     41                        w.html( (w.html() * 1 + 1).toString() );
     42                },
     43               
     44                wc : function(fn) {
     45                        var t = this;
    1846
    19                 wc : function(tx) {
    20                         var t = this, w = $('#word-count'), tc = 0;
     47                        if ( t.block ) {
     48                                t.pending = fn;
     49                                return;
     50                        }
     51                        t.block = true;
     52                        t.pending = false;
     53                       
     54                        var w = $('#word-count'), tc = 0, tx = fn();
    2155
    22                         if ( t.block ) return;
    23                         t.block = 1;
    24 
    2556                        setTimeout( function() {
     57                                var time = new Date().getMilliseconds();
     58                       
    2659                                if ( tx ) {
     60                                        tx = tx + " ";
    2761                                        tx = tx.replace( /<.[^<>]*?>/g, ' ' ).replace( /&nbsp;|&#160;/gi, ' ' );
    2862                                        tx = tx.replace( /[0-9.(),;:!?%#$¿'"_+=\\/-]*/g, '' );
    2963                                        tx.replace( /\S\s+/g, function(){tc++;} );
    3064                                }
    3165                                w.html(tc.toString());
     66                               
     67                                time = ( new Date().getMilliseconds() - time ) * 100;
     68                                time = ( time > 2000 ) ? time : 2000;
    3269
    33                                 setTimeout( function() { t.block = 0; }, 2000 );
     70                                setTimeout( function() {
     71                                        t.block = false;
     72                                        if( t.pending ) t.wc(t.pending);
     73                                }, time );
    3474                        }, 1 );
    3575                }
    3676        }