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