Ticket #5418: 5418_5.patch

File 5418_5.patch, 6.5 KB (added by Frederico Caldeira Knabben, 9 years ago)
  • _source/lang/en.js

     
    105105                targetTop               : 'Topmost Window (_top)',
    106106                targetSelf              : 'Same Window (_self)',
    107107                targetParent    : 'Parent Window (_parent)',
     108                advanced        : 'Advanced',
     109                langDirLTR              : 'Left to Right (LTR)',
     110                langDirRTL              : 'Right to Left (RTL)',
     111                styles                  : 'Style',
     112                cssClasses              : 'Stylesheet Classes',
    108113
    109114                // Put the voice-only part of the label in the span.
    110115                unavailable             : '%1<span class="cke_accessibility">, unavailable</span>'
  • _source/plugins/showborders/plugin.js

     
    161161                                                selectedTable[ ( !value || value <= 0 ) ? 'addClass' : 'removeClass' ]( showBorderClassName );
    162162                                        };
    163163                        } );
     164
     165                        var advTab = dialogDefinition.getContents( 'advanced' ),
     166                                classField = advTab && advTab.get( 'advCSSClasses' );
     167
     168                        if ( classField )
     169                        {
     170                                classField.setup = CKEDITOR.tools.override( classField.setup, function( originalSetup )
     171                                        {
     172                                                return function()
     173                                                        {
     174                                                                originalSetup.apply( this, arguments );
     175                                                                this.setValue( this.getValue().replace( /cke_show_border/, '' ) );
     176                                                        };
     177                                        });
     178
     179                                classField.commit = CKEDITOR.tools.override( classField.commit, function( originalCommit )
     180                                        {
     181                                                return function( data, element )
     182                                                        {
     183                                                                originalCommit.apply( this, arguments );
     184                                                               
     185                                                                if ( !parseInt( element.getAttribute( 'border' ) ) )
     186                                                                        element.addClass( 'cke_show_border' );
     187                                                        };
     188                                        });
     189                        }
    164190                }
    165191        });
    166192
  • _source/plugins/table/dialogs/table.js

     
    1818
    1919        function tableDialog( editor, command )
    2020        {
    21                 var makeElement = function( name ){ return new CKEDITOR.dom.element( name, editor.document ); };
     21                var makeElement = function( name )
     22                        {
     23                                return new CKEDITOR.dom.element( name, editor.document );
     24                        };
     25               
     26                var dialogadvtab = editor.plugins.dialogadvtab;
    2227
    2328                return {
    2429                        title : editor.lang.table.title,
    2530                        minWidth : 310,
    2631                        minHeight : CKEDITOR.env.ie ? 310 : 280,
     32                       
     33                        onLoad : function()
     34                        {
     35                                var dialog = this,
     36                                        isUpdating;
     37
     38                                dialog.getContentElement( 'advanced', 'advStyles' ).on( 'change', function( evt )
     39                                        {
     40                                                if ( isUpdating )
     41                                                        return;
     42                                               
     43                                                // Flag to avoid recursion.
     44                                                isUpdating = 1;
     45                                               
     46                                                // Synchronize width value.
     47                                                var width = this.getStyle( 'width', '' ),
     48                                                        isPx = 1;
     49
     50                                                if ( width )
     51                                                {
     52                                                        isPx = ( width.length < 3 || width.substr( width.length - 1 ) != '%' );
     53                                                        width = parseInt( width );
     54                                                }
     55                                                       
     56                                                dialog.getContentElement( 'info', 'txtWidth' ).setValue( width );
     57                                                dialog.getContentElement( 'info', 'cmbWidthType' ).setValue( isPx ? 'pixels' : 'percents' );
     58                                               
     59                                                // Synchronize height value.
     60                                                var height = this.getStyle( 'height', '' );
     61                                                height && ( height = parseInt( height, 10 ) );
     62                                                dialog.getContentElement( 'info', 'txtHeight' ).setValue( height );
     63
     64                                                isUpdating = 0;
     65                                        });
     66                        },
     67                       
    2768                        onShow : function()
    2869                        {
    2970                                // Detect if there's a selected table.
     
    70111                                        colsInput && colsInput.enable();
    71112                                        rowsInput && rowsInput.select();
    72113                                }
     114
     115                                // Call the onChange method for the widht and height fields so
     116                                // they get reflected into the Advanced tab.
     117                                widthInput.onChange();
     118                                this.getContentElement( 'info', 'txtHeight' ).onChange();
    73119                        },
    74120                        onOk : function()
    75121                        {
     
    380426                                                                                                        id : 'txtWidth',
    381427                                                                                                        style : 'width:5em',
    382428                                                                                                        label : editor.lang.table.width,
    383                                                                                                         'default' : 200,
     429                                                                                                        'default' : 500,
    384430                                                                                                        validate : CKEDITOR.dialog.validate['number']( editor.lang.table.invalidWidth ),
    385431
    386432                                                                                                        // Extra labelling of width unit type.
     
    394440                                                                                                                inputElement.setAttribute( 'aria-labelledby', [ ariaLabelledByAttr, labelElement.$.id ].join( ' ' ) );
    395441                                                                                                        },
    396442
     443                                                                                                        onChange : function()
     444                                                                                                        {
     445                                                                                                                var value = this.getValue();
     446                                                                                                               
     447                                                                                                                if ( value )
     448                                                                                                                        value += this.getDialog().getContentElement( 'info', 'cmbWidthType' ).getValue() == 'percents' ? '%' : 'px';
     449
     450                                                                                                                this.getDialog()
     451                                                                                                                        .getContentElement( 'advanced', 'advStyles' )
     452                                                                                                                        .updateStyle( 'width', value );
     453                                                                                                        },
     454
    397455                                                                                                        setup : function( selectedTable )
    398456                                                                                                        {
    399457                                                                                                                var widthMatch = widthPattern.exec( selectedTable.$.style.width );
     
    421479                                                                                                                if ( widthMatch )
    422480                                                                                                                        this.setValue( widthMatch[2] == 'px' ? 'pixels' : 'percents' );
    423481                                                                                                        },
     482                                                                                                        onChange : function()
     483                                                                                                        {
     484                                                                                                                this.getDialog().getContentElement( 'info', 'txtWidth' ).onChange();
     485                                                                                                        },
    424486                                                                                                        commit : commitValue
    425487                                                                                                }
    426488                                                                                        ]
     
    449511                                                                                                                inputElement.setAttribute( 'aria-labelledby', [ ariaLabelledByAttr, labelElement.$.id ].join( ' ' ) );
    450512                                                                                                        },
    451513
     514                                                                                                        onChange : function()
     515                                                                                                        {
     516                                                                                                                var value = this.getValue();
     517
     518                                                                                                                this.getDialog()
     519                                                                                                                        .getContentElement( 'advanced', 'advStyles' )
     520                                                                                                                        .updateStyle( 'height', value && ( value + 'px' ) );
     521                                                                                                        },
     522
    452523                                                                                                        setup : function( selectedTable )
    453524                                                                                                        {
    454525                                                                                                                var heightMatch = heightPattern.exec( selectedTable.$.style.height );
     
    582653                                                        ]
    583654                                                }
    584655                                        ]
    585                                 }
     656                                },
     657                                dialogadvtab.createAdvancedTab( editor )
    586658                        ]
    587659                };
    588660        }
  • _source/plugins/table/plugin.js

     
    55
    66CKEDITOR.plugins.add( 'table',
    77{
     8        requires : [ 'dialog', 'dialogadvtab' ],
     9
    810        init : function( editor )
    911        {
    1012                var table = CKEDITOR.plugins.table,
© 2003 – 2019 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy