Ticket #7023: 7023.patch

File 7023.patch, 4.5 KB (added by Garry Yao, 10 years ago)
  • _source/lang/en.js

     
    728728                flash           : 'Flash Animation',
    729729                iframe          : 'IFrame',
    730730                hiddenfield     : 'Hidden Field',
     731                select : 'Select List',
    731732                unknown         : 'Unknown Object'
    732733        },
    733734
  • _source/plugins/forms/dialogs/select.js

     
    138138                        delete this.selectBox;
    139139                        this.setupContent( 'clear' );
    140140                        var element = this.getParentEditor().getSelection().getSelectedElement();
    141                         if ( element && element.getName() == "select" )
     141                        if ( element && element.data( 'cke-real-element-type' ) && element.data( 'cke-real-element-type' ) == 'select' )
    142142                        {
     143                                this.fakeObj = element;
     144                                element = editor.restoreRealElement( element );
    143145                                this.selectBox = element;
    144146                                this.setupContent( element.getName(), element );
    145147
     
    159161                                element = editor.document.createElement( 'select' );
    160162                        this.commitContent( element );
    161163
     164                        // Insert a new anchor.
     165                        var fakeElement = editor.createFakeElement( element, 'cke_select', 'select' );
    162166                        if ( isInsertMode )
     167                                editor.insertElement( fakeElement );
     168                        else
    163169                        {
    164                                 editor.insertElement( element );
    165                                 if ( CKEDITOR.env.ie )
    166                                 {
    167                                         var sel = editor.getSelection(),
    168                                                 bms = sel.createBookmarks();
    169                                         setTimeout(function()
    170                                         {
    171                                                 sel.selectBookmarks( bms );
    172                                         }, 0 );
    173                                 }
    174                         }
     170                                fakeElement.replace( this.fakeObj );
     171                                editor.getSelection().selectElement( fakeElement );
     172                        }
    175173                },
    176174                contents : [
    177175                        {
  • _source/plugins/forms/plugin.js

     
    3131                                'height: 16px !important;' +
    3232                        '}' );
    3333
     34                editor.addCss(
     35                        'img.cke_select' +
     36                        '{' +
     37                                'background-image: url(' + CKEDITOR.getUrl( this.path + 'images/select.gif' ) + ');' +
     38                                'background-position: center center;' +
     39                                'background-repeat: no-repeat;' +
     40                                'border: 1px solid #a9a9a9;' +
     41                                'width: 18px !important;' +
     42                                'height: 18px !important;' +
     43                        '}' );
     44
    3445                // All buttons use the same code to register. So, to avoid
    3546                // duplications, let's use this tool function.
    3647                var addButtonCommand = function( buttonName, commandName, dialogFile )
     
    141152                                        {
    142153                                                var name = element.getName();
    143154
    144                                                 if ( name == 'select' )
    145                                                         return { select : CKEDITOR.TRISTATE_OFF };
    146 
    147155                                                if ( name == 'textarea' )
    148156                                                        return { textarea : CKEDITOR.TRISTATE_OFF };
    149157
    150158                                                if ( name == 'input' )
    151159                                                {
    152                                                         switch( element.getAttribute( 'type' ) )
     160                                                        switch ( element.getAttribute( 'type' ) )
    153161                                                        {
    154162                                                                case 'button' :
    155163                                                                case 'submit' :
     
    170178                                                        }
    171179                                                }
    172180
    173                                                 if ( name == 'img' && element.data( 'cke-real-element-type' ) == 'hiddenfield' )
    174                                                         return { hiddenfield : CKEDITOR.TRISTATE_OFF };
    175                                         }
     181                                                if ( name == 'img' )
     182                                                {
     183                                                        switch ( element.data( 'cke-real-element-type' ) )
     184                                                        {
     185                                                                case 'hiddenfield' :
     186                                                                        return { hiddenfield : CKEDITOR.TRISTATE_OFF };
     187                                                                case 'select' :
     188                                                                        return { select : CKEDITOR.TRISTATE_OFF };
     189                                                                default :
     190                                                                        return { textfield : CKEDITOR.TRISTATE_OFF };
     191                                                        }
     192                                                }
     193                                        }
    176194                                });
    177195                }
    178196
     
    182200
    183201                                if ( element.is( 'form' ) )
    184202                                        evt.data.dialog = 'form';
    185                                 else if ( element.is( 'select' ) )
    186                                         evt.data.dialog = 'select';
    187203                                else if ( element.is( 'textarea' ) )
    188204                                        evt.data.dialog = 'textarea';
    189205                                else if ( element.is( 'img' ) && element.data( 'cke-real-element-type' ) == 'hiddenfield' )
    190206                                        evt.data.dialog = 'hiddenfield';
     207                                else if ( element.is( 'img' ) && element.data( 'cke-real-element-type' ) == 'select' )
     208                                        evt.data.dialog = 'select';
    191209                                else if ( element.is( 'input' ) )
    192210                                {
    193211                                        switch ( element.getAttribute( 'type' ) )
     
    251269                                        {
    252270                                                if ( element.attributes.type == 'hidden' )
    253271                                                        return editor.createFakeParserElement( element, 'cke_hidden', 'hiddenfield' );
     272                                        },
     273                                        select : function( element )
     274                                        {
     275                                                return editor.createFakeParserElement( element, 'cke_select', 'select' );
    254276                                        }
    255277                                }
    256278                        } );
© 2003 – 2021 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy