Ticket #7886: 7886.patch

File 7886.patch, 3.9 KB (added by Garry Yao, 9 years ago)
  • _source/plugins/table/dialogs/table.js

     
    9393                                        }
    9494
    9595                                        // Save a reference to the selected table, and push a new set of default values.
    96                                         this._.selectedElement = selectedTable;
     96                                        this.element = selectedTable;
    9797                                }
    9898
    9999                                // Enable or disable the row, cols, width fields.
     
    116116                        },
    117117                        onOk : function()
    118118                        {
    119                                 if ( this._.selectedElement )
     119                                if ( this.element )
    120120                                {
    121121                                        var selection = editor.getSelection(),
    122122                                                bms = selection.createBookmarks();
    123123                                }
    124124
    125                                 var table = this._.selectedElement || makeElement( 'table' ),
     125                                var table = this.element || ( this.element = makeElement( 'table' ) ),
    126126                                        me = this,
    127127                                        data = {};
    128128
     
    133133                                        var info = data.info;
    134134
    135135                                        // Generate the rows and cols.
    136                                         if ( !this._.selectedElement )
     136                                        if ( this.element.isOffline() )
    137137                                        {
    138138                                                var tbody = table.append( makeElement( 'tbody' ) ),
    139139                                                        rows = parseInt( info.txtRows, 10 ) || 0,
     
    246246                                }
    247247
    248248                                // Insert the table element if we're creating one.
    249                                 if ( !this._.selectedElement )
     249                                if ( table.isOffline() )
    250250                                        editor.insertElement( table );
    251251                                // Properly restore the selection inside table. (#4822)
    252252                                else
  • _source/plugins/showborders/plugin.js

     
    151151
    152152                if ( dialogName == 'table' || dialogName == 'tableProperties' )
    153153                {
    154                         var dialogDefinition = ev.data.definition,
    155                                 infoTab = dialogDefinition.getContents( 'info' ),
    156                                 borderField = infoTab.get( 'txtBorder' ),
    157                                 originalCommit = borderField.commit;
     154                        var dialogDefinition = ev.data.definition;
    158155
    159                         borderField.commit = CKEDITOR.tools.override( originalCommit, function( org )
    160                         {
    161                                 return function( data, selectedTable )
    162                                         {
    163                                                 org.apply( this, arguments );
    164                                                 var value = parseInt( this.getValue(), 10 );
    165                                                 selectedTable[ ( !value || value <= 0 ) ? 'addClass' : 'removeClass' ]( showBorderClassName );
    166                                         };
    167                         } );
    168 
    169156                        var advTab = dialogDefinition.getContents( 'advanced' ),
    170157                                classField = advTab && advTab.get( 'advCSSClasses' );
    171158
     
    179166                                                                this.setValue( this.getValue().replace( /cke_show_border/, '' ) );
    180167                                                        };
    181168                                        });
     169                        }
    182170
    183                                 classField.commit = CKEDITOR.tools.override( classField.commit, function( originalCommit )
    184                                         {
    185                                                 return function( data, element )
    186                                                         {
    187                                                                 originalCommit.apply( this, arguments );
    188 
    189                                                                 if ( !parseInt( element.getAttribute( 'border' ), 10 ) )
    190                                                                         element.addClass( 'cke_show_border' );
    191                                                         };
    192                                         });
    193                         }
    194                 }
     171                        dialogDefinition.onOk = CKEDITOR.tools.override( dialogDefinition.onOk, function( org )
     172                                {
     173                                        return function()
     174                                                {
     175                                                        org.apply( this, arguments );
     176                                                        var border = parseInt( this.element.getAttribute( 'border' ), 10 );
     177                                                        this.element[ !isNaN( border) && border > 0 ?  'removeClass' : 'addClass' ]( showBorderClassName );
     178                                                };
     179                                });
     180
     181                }
    195182        });
    196183
    197184} )();
  • _source/core/dom/element.js

     
    15681568                        return this.$.childNodes.length;
    15691569                },
    15701570
     1571                /**
     1572                 *  Whether this element is not yet presented in the DOM tree.
     1573                 */
     1574                isOffline : function()
     1575                {
     1576                        var root = this.getDocument().getDocumentElement();
     1577                        return !root.contains( this );
     1578                },
     1579
    15711580                disableContextMenu : function()
    15721581                {
    15731582                        this.on( 'contextmenu', function( event )
© 2003 – 2019 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy