2 Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
\r
3 For licensing, see LICENSE.html or http://ckeditor.com/license
\r
5 CKEDITOR.dialog.add( 'textfield', function( editor )
\r
21 title : editor.lang.textfield.title,
\r
26 delete this.textField;
\r
28 var element = this.getParentEditor().getSelection().getSelectedElement();
\r
29 if ( element && element.getName() == "input" &&
\r
30 ( acceptedTypes[ element.getAttribute( 'type' ) ] || !element.getAttribute( 'type' ) ) )
\r
32 this.textField = element;
\r
33 this.setupContent( element );
\r
39 element = this.textField,
\r
40 isInsertMode = !element;
\r
44 editor = this.getParentEditor();
\r
45 element = editor.document.createElement( 'input' );
\r
46 element.setAttribute( 'type', 'text' );
\r
50 editor.insertElement( element );
\r
51 this.commitContent( { element : element } );
\r
55 var autoSetup = function( element )
\r
57 var value = element.hasAttribute( this.id ) && element.getAttribute( this.id );
\r
58 this.setValue( value || '' );
\r
61 var autoCommit = function( data )
\r
63 var element = data.element;
\r
64 var value = this.getValue();
\r
67 element.setAttribute( this.id, value );
\r
69 element.removeAttribute( this.id );
\r
72 this.foreach( function( contentObj )
\r
74 if ( autoAttributes[ contentObj.id ] )
\r
76 contentObj.setup = autoSetup;
\r
77 contentObj.commit = autoCommit;
\r
84 label : editor.lang.textfield.title,
\r
85 title : editor.lang.textfield.title,
\r
89 widths : [ '50%', '50%' ],
\r
93 id : '_cke_saved_name',
\r
95 label : editor.lang.textfield.name,
\r
98 setup : function( element )
\r
101 element.getAttribute( '_cke_saved_name' ) ||
\r
102 element.getAttribute( 'name' ) ||
\r
105 commit : function( data )
\r
107 var element = data.element;
\r
109 if ( this.getValue() )
\r
110 element.setAttribute( '_cke_saved_name', this.getValue() );
\r
113 element.removeAttribute( '_cke_saved_name' );
\r
114 element.removeAttribute( 'name' );
\r
121 label : editor.lang.textfield.value,
\r
129 widths : [ '50%', '50%' ],
\r
135 label : editor.lang.textfield.charWidth,
\r
138 style : 'width:50px',
\r
139 validate : CKEDITOR.dialog.validate.integer( editor.lang.common.validateNumberFailed )
\r
144 label : editor.lang.textfield.maxChars,
\r
147 style : 'width:50px',
\r
148 validate : CKEDITOR.dialog.validate.integer( editor.lang.common.validateNumberFailed )
\r
155 label : editor.lang.textfield.type,
\r
156 'default' : 'text',
\r
160 [ editor.lang.textfield.typeText, 'text' ],
\r
161 [ editor.lang.textfield.typePass, 'password' ]
\r
163 setup : function( element )
\r
165 this.setValue( element.getAttribute( 'type' ) );
\r
167 commit : function( data )
\r
169 var element = data.element;
\r
171 if ( CKEDITOR.env.ie )
\r
173 var elementType = element.getAttribute( 'type' );
\r
174 var myType = this.getValue();
\r
176 if ( elementType != myType )
\r
178 var replace = CKEDITOR.dom.element.createFromHtml( '<input type="' + myType + '"></input>', editor.document );
\r
179 element.copyAttributes( replace, { type : 1 } );
\r
180 replace.replace( element );
\r
181 editor.getSelection().selectElement( replace );
\r
182 data.element = replace;
\r
186 element.setAttribute( 'type', this.getValue() );
\r