Changeset 4473


Ignore:
Timestamp:
11/12/2009 09:48:09 PM (5 years ago)
Author:
tobiasz.cudnik
Message:

Updating #4210 branch (features/4210) with missing review fixes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • CKEditor/branches/features/4210/3.1.x/_source/adapters/jquery.js

    r4469 r4473  
    107107                        { 
    108108                                var $element = jQuery( this ), 
    109                                         instance = $element.data( 'ckeditorInstance' ), 
     109                                        editor = $element.data( 'ckeditorInstance' ), 
     110                                        instanceLock = $element.data( '_ckeditorInstanceLock' ), 
    110111                                        element = this; 
    111112 
    112                                 if ( instance ) 
     113                                if ( editor && !instanceLock ) 
    113114                                { 
    114115                                        if ( callback ) 
    115                                                 callback.apply( instance, [ this ] ); 
     116                                                callback.apply( editor, [ this ] ); 
    116117                                } 
    117                                 else if ( $element.data( '_ckeditorInstanceLock' ) ) 
    118                                 { 
    119                                         // Editor is already during creation process, bind our code to the event. 
    120                                         CKEDITOR.on( 'instanceReady', function( event ) 
     118                                else if ( !instanceLock ) 
     119                                { 
     120                                        // CREATE NEW INSTANCE 
     121 
     122                                        // Handle config.autoUpdateElement inside this plugin if desired. 
     123                                        if ( config.autoUpdateElement 
     124                                                || ( typeof config.autoUpdateElement == 'undefined' && CKEDITOR.config.autoUpdateElement ) ) 
     125                                        { 
     126                                                config.autoUpdateElementJquery = true; 
     127                                        } 
     128 
     129                                        // Always disable config.autoUpdateElement. 
     130                                        config.autoUpdateElement = false; 
     131                                        $element.data( '_ckeditorInstanceLock', true ); 
     132 
     133                                        // Set instance reference in element's data. 
     134                                        editor = CKEDITOR.replace( element, config ); 
     135                                        $element.data( 'ckeditorInstance', editor ); 
     136 
     137                                        // Register callback. 
     138                                        editor.on( 'instanceReady', function( event ) 
    121139                                        { 
    122140                                                var editor = event.editor; 
     
    126144                                                        if ( !editor.element ) 
    127145                                                                return setTimeout( arguments.callee, 100 ); 
    128  
    129                                                         if ( editor.element.$ == element ) 
    130                                                         { 
    131                                                                 // Run given code. 
    132                                                                 if ( callback ) 
    133                                                                         callback.apply( editor, [ element ] ); 
    134                                                         } 
    135                                                 }, 0 ); 
    136                                         }, null, null, 9999); 
    137                                 } 
    138                                 else 
    139                                 { 
    140                                         // CREATE NEW INSTANCE 
    141                                         // Register callback. 
    142                                         CKEDITOR.on( 'instanceReady', function( event ) 
    143                                         { 
    144                                                 var editor = event.editor; 
    145                                                 setTimeout( function() 
    146                                                 { 
    147                                                         // Delay bit more if editor is still not ready. 
    148                                                         if ( !editor.element ) 
    149                                                                 return setTimeout( arguments.callee, 100 ); 
    150  
    151                                                         if ( editor.element.$ != element ) 
    152                                                                 return; 
    153146 
    154147                                                        // Remove this listener. 
     
    167160 
    168161                                                        // Forward destroy event. 
    169                                                         editor.on( 'destroy', function( event ) 
     162                                                        editor.on( 'destroy', function() 
    170163                                                        { 
    171164                                                                $element.trigger( 'destroy.ckeditor', [ editor ] ); 
     
    193186                                                        } 
    194187 
    195                                                         // Set instance reference in element's data. 
    196                                                         $element.data( 'ckeditorInstance', editor ); 
    197  
    198188                                                        // Garbage collect on destroy. 
    199189                                                        editor.on( 'destroy', function() 
     
    213203                                                }, 0 ); 
    214204                                        }, null, null, 9999); 
    215  
    216                                         // Trigger instance creation. 
    217  
    218                                         // Handle config.autoUpdateElement inside this plugin if desired. 
    219                                         if ( config.autoUpdateElement 
    220                                                 || ( typeof config.autoUpdateElement == 'undefined' && CKEDITOR.config.autoUpdateElement ) ) 
    221                                         { 
    222                                                 config.autoUpdateElementJquery = true; 
    223                                         } 
    224  
    225                                         // Always disable config.autoUpdateElement. 
    226                                         config.autoUpdateElement = false; 
    227                                         $element.data( '_ckeditorInstanceLock', true ); 
    228                                         CKEDITOR.replace( element, config ); 
     205                                } 
     206                                else 
     207                                { 
     208                                        // Editor is already during creation process, bind our code to the event. 
     209                                        CKEDITOR.on( 'instanceReady', function( event ) 
     210                                        { 
     211                                                var editor = event.editor; 
     212                                                setTimeout( function() 
     213                                                { 
     214                                                        // Delay bit more if editor is still not ready. 
     215                                                        if ( !editor.element ) 
     216                                                                return setTimeout( arguments.callee, 100 ); 
     217 
     218                                                        if ( editor.element.$ == element ) 
     219                                                        { 
     220                                                                // Run given code. 
     221                                                                if ( callback ) 
     222                                                                        callback.apply( editor, [ element ] ); 
     223                                                        } 
     224                                                }, 0 ); 
     225                                        }, null, null, 9999); 
    229226                                } 
    230227                        }); 
Note: See TracChangeset for help on using the changeset viewer.
© 2003 – 2012 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy