Changeset 5295


Ignore:
Timestamp:
03/25/2010 05:53:38 PM (5 years ago)
Author:
m.nguyen
Message:

Fixing #4056: Created face object for hiddenfield.

Location:
CKEditor/branches/versions/3.3.x
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • CKEditor/branches/versions/3.3.x/CHANGES.html

    r5278 r5295  
    4545                Fixed issues:</p> 
    4646        <ul> 
    47                 <li></li> 
     47                <li><a href="http://dev.fckeditor.net/ticket/4056">#4056</a> : Fixed hiddenfield problem.</li> 
    4848        </ul> 
    4949        <h3> 
  • CKEditor/branches/versions/3.3.x/_source/plugins/forms/dialogs/hiddenfield.js

    r4858 r5295  
    77        return { 
    88                title : editor.lang.hidden.title, 
     9                hiddenField : null, 
    910                minWidth : 350, 
    1011                minHeight : 110, 
     
    1314                        delete this.hiddenField; 
    1415 
    15                         var element = this.getParentEditor().getSelection().getSelectedElement(); 
    16                         if ( element && element.getName() == "input" && element.getAttribute( 'type' ) == "checkbox" ) 
     16                        var editor = this.getParentEditor(), 
     17                                selection = editor.getSelection(), 
     18                                element = selection.getSelectedElement(); 
     19                                 
     20                        if ( element && element.getAttribute( '_cke_real_element_type' ) && element.getAttribute( '_cke_real_element_type' ) == 'hiddenfield' ) 
    1721                        { 
    1822                                this.hiddenField = element; 
     23                                element = editor.restoreRealElement( this.hiddenField ); 
    1924                                this.setupContent( element ); 
     25                                selection.selectElement( this.hiddenField ); 
    2026                        } 
    2127                }, 
    2228                onOk : function() 
    2329                { 
    24                         var editor, 
    25                                 element = this.hiddenField, 
    26                                 isInsertMode = !element; 
     30                        var name = this.getValueOf( 'info', '_cke_saved_name' ), 
     31                                value = this.getValueOf( 'info', 'value' ), 
     32                                editor = this.getParentEditor(), 
     33                                element = CKEDITOR.env.ie ? editor.document.createElement( '<input name="' + CKEDITOR.tools.htmlEncode( name ) + '">' ) : editor.document.createElement( 'input' ); 
    2734 
    28                         if ( isInsertMode ) 
     35                        element.setAttribute( 'type', 'hidden' ); 
     36                        this.commitContent( element ); 
     37                        var fakeElement = editor.createFakeElement( element, 'cke_hidden', 'hiddenfield' ); 
     38                        if ( !this.hiddenField ) 
     39                                editor.insertElement( fakeElement ); 
     40                        else 
    2941                        { 
    30                                 editor = this.getParentEditor(); 
    31                                 element = editor.document.createElement( 'input' ); 
    32                                 element.setAttribute( 'type', 'hidden' ); 
     42                                fakeElement.replace( this.hiddenField ); 
     43                                editor.getSelection().selectElement( fakeElement ); 
    3344                        } 
    34  
    35                         if ( isInsertMode ) 
    36                                 editor.insertElement( element ); 
    37                         this.commitContent( element ); 
     45                        return true; 
    3846                }, 
    3947                contents : [ 
     
    5967                                                { 
    6068                                                        if ( this.getValue() ) 
    61                                                                 element.setAttribute( '_cke_saved_name', this.getValue() ); 
     69                                                                element.setAttribute( 'name', this.getValue() ); 
    6270                                                        else 
    6371                                                        { 
    64                                                                 element.removeAttribute( '_cke_saved_name' ); 
    6572                                                                element.removeAttribute( 'name' ); 
    6673                                                        } 
  • CKEditor/branches/versions/3.3.x/_source/plugins/forms/plugin.js

    r5149 r5295  
    1919                                'border: 1px dotted #FF0000;' + 
    2020                                'padding: 2px;' + 
     21                        '}\n' ); 
     22                 
     23                editor.addCss( 
     24                        'img.cke_hidden' +  
     25                        '{' + 
     26                                'background-image: url(' + CKEDITOR.getUrl( this.path + 'images/hiddenfield.gif' ) + ');' +  
     27                                'background-position: center center;' +  
     28                                'background-repeat: no-repeat;' + 
     29                                'border: 1px solid #a9a9a9;' + 
     30                                'width: 16px;' + 
     31                                'height: 16px;' + 
    2132                        '}' ); 
    22  
     33                 
    2334                // All buttons use the same code to register. So, to avoid 
    2435                // duplications, let's use this tool function. 
     
    166177        afterInit : function( editor ) 
    167178        { 
     179                var dataProcessor = editor.dataProcessor, 
     180                        htmlFilter = dataProcessor && dataProcessor.htmlFilter, 
     181                        dataFilter = dataProcessor && dataProcessor.dataFilter; 
     182                 
    168183                // Cleanup certain IE form elements default values. 
    169184                if ( CKEDITOR.env.ie ) 
    170185                { 
    171                         var dataProcessor = editor.dataProcessor, 
    172                                 htmlFilter = dataProcessor && dataProcessor.htmlFilter; 
    173  
    174186                        htmlFilter && htmlFilter.addRules( 
    175187                        { 
     
    186198                        } ); 
    187199                } 
     200                 
     201                if ( dataFilter )  
     202                {  
     203                        dataFilter.addRules(  
     204                        {  
     205                                elements :  
     206                                {  
     207                                        input : function( element )  
     208                                        {  
     209                                                if ( element.attributes.type == 'hidden' )  
     210                                                        return editor.createFakeParserElement( element, 'cke_hidden', 'hiddenfield' );  
     211                                        }  
     212                                }  
     213                        } );  
     214                }  
    188215        }, 
    189         requires : [ 'image' ] 
     216        requires : [ 'image', 'fakeobjects' ] 
    190217} ); 
    191218 
Note: See TracChangeset for help on using the changeset viewer.
© 2003 – 2012 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy