/*\r
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.html or http://ckeditor.com/license\r
*/\r
CKEDITOR.dialog.add( 'hiddenfield', function( editor )\r
{\r
return {\r
title : editor.lang.hidden.title,\r
+ hiddenField : null,\r
minWidth : 350,\r
minHeight : 110,\r
onShow : function()\r
{\r
delete this.hiddenField;\r
\r
- var element = this.getParentEditor().getSelection().getSelectedElement();\r
- if ( element && element.getName() == "input" && element.getAttribute( 'type' ) == "checkbox" )\r
+ var editor = this.getParentEditor(),\r
+ selection = editor.getSelection(),\r
+ element = selection.getSelectedElement();\r
+\r
+ if ( element && element.data( 'cke-real-element-type' ) && element.data( 'cke-real-element-type' ) == 'hiddenfield' )\r
{\r
this.hiddenField = element;\r
+ element = editor.restoreRealElement( this.hiddenField );\r
this.setupContent( element );\r
+ selection.selectElement( this.hiddenField );\r
}\r
},\r
onOk : function()\r
{\r
- var editor,\r
- element = this.hiddenField,\r
- isInsertMode = !element;\r
+ var name = this.getValueOf( 'info', '_cke_saved_name' ),\r
+ value = this.getValueOf( 'info', 'value' ),\r
+ editor = this.getParentEditor(),\r
+ element = CKEDITOR.env.ie ? editor.document.createElement( '<input name="' + CKEDITOR.tools.htmlEncode( name ) + '">' ) : editor.document.createElement( 'input' );\r
\r
- if ( isInsertMode )\r
+ element.setAttribute( 'type', 'hidden' );\r
+ this.commitContent( element );\r
+ var fakeElement = editor.createFakeElement( element, 'cke_hidden', 'hiddenfield' );\r
+ if ( !this.hiddenField )\r
+ editor.insertElement( fakeElement );\r
+ else\r
{\r
- editor = this.getParentEditor();\r
- element = editor.document.createElement( 'input' );\r
- element.setAttribute( 'type', 'hidden' );\r
+ fakeElement.replace( this.hiddenField );\r
+ editor.getSelection().selectElement( fakeElement );\r
}\r
-\r
- if ( isInsertMode )\r
- editor.insertElement( element );\r
- this.commitContent( element );\r
+ return true;\r
},\r
contents : [\r
{\r
setup : function( element )\r
{\r
this.setValue(\r
- element.getAttribute( '_cke_saved_name' ) ||\r
+ element.data( 'cke-saved-name' ) ||\r
element.getAttribute( 'name' ) ||\r
'' );\r
},\r
commit : function( element )\r
{\r
if ( this.getValue() )\r
- element.setAttribute( '_cke_saved_name', this.getValue() );\r
+ element.setAttribute( 'name', this.getValue() );\r
else\r
{\r
- element.removeAttribute( '_cke_saved_name' );\r
element.removeAttribute( 'name' );\r
}\r
}\r