diff options
Diffstat (limited to '_source/plugins/forms/dialogs/hiddenfield.js')
| -rw-r--r-- | _source/plugins/forms/dialogs/hiddenfield.js | 189 |
1 files changed, 98 insertions, 91 deletions
diff --git a/_source/plugins/forms/dialogs/hiddenfield.js b/_source/plugins/forms/dialogs/hiddenfield.js index 21fa26f..3e31706 100644 --- a/_source/plugins/forms/dialogs/hiddenfield.js +++ b/_source/plugins/forms/dialogs/hiddenfield.js @@ -1,91 +1,98 @@ -/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-CKEDITOR.dialog.add( 'hiddenfield', function( editor )
-{
- return {
- title : editor.lang.hidden.title,
- minWidth : 350,
- minHeight : 110,
- onShow : function()
- {
- delete this.hiddenField;
-
- var element = this.getParentEditor().getSelection().getSelectedElement();
- if ( element && element.getName() == "input" && element.getAttribute( 'type' ) == "checkbox" )
- {
- this.hiddenField = element;
- this.setupContent( element );
- }
- },
- onOk : function()
- {
- var editor,
- element = this.hiddenField,
- isInsertMode = !element;
-
- if ( isInsertMode )
- {
- editor = this.getParentEditor();
- element = editor.document.createElement( 'input' );
- element.setAttribute( 'type', 'hidden' );
- }
-
- if ( isInsertMode )
- editor.insertElement( element );
- this.commitContent( element );
- },
- contents : [
- {
- id : 'info',
- label : editor.lang.hidden.title,
- title : editor.lang.hidden.title,
- elements : [
- {
- id : '_cke_saved_name',
- type : 'text',
- label : editor.lang.hidden.name,
- 'default' : '',
- accessKey : 'N',
- setup : function( element )
- {
- this.setValue(
- element.getAttribute( '_cke_saved_name' ) ||
- element.getAttribute( 'name' ) ||
- '' );
- },
- commit : function( element )
- {
- if ( this.getValue() )
- element.setAttribute( '_cke_saved_name', this.getValue() );
- else
- {
- element.removeAttribute( '_cke_saved_name' );
- element.removeAttribute( 'name' );
- }
- }
- },
- {
- id : 'value',
- type : 'text',
- label : editor.lang.hidden.value,
- 'default' : '',
- accessKey : 'V',
- setup : function( element )
- {
- this.setValue( element.getAttribute( 'value' ) || '' );
- },
- commit : function( element )
- {
- if ( this.getValue() )
- element.setAttribute( 'value', this.getValue() );
- else
- element.removeAttribute( 'value' );
- }
- }
- ]
- }
- ]
- };
-});
+/* +Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add( 'hiddenfield', function( editor ) +{ + return { + title : editor.lang.hidden.title, + hiddenField : null, + minWidth : 350, + minHeight : 110, + onShow : function() + { + delete this.hiddenField; + + var editor = this.getParentEditor(), + selection = editor.getSelection(), + element = selection.getSelectedElement(); + + if ( element && element.getAttribute( '_cke_real_element_type' ) && element.getAttribute( '_cke_real_element_type' ) == 'hiddenfield' ) + { + this.hiddenField = element; + element = editor.restoreRealElement( this.hiddenField ); + this.setupContent( element ); + selection.selectElement( this.hiddenField ); + } + }, + onOk : function() + { + var name = this.getValueOf( 'info', '_cke_saved_name' ), + value = this.getValueOf( 'info', 'value' ), + editor = this.getParentEditor(), + element = CKEDITOR.env.ie ? editor.document.createElement( '<input name="' + CKEDITOR.tools.htmlEncode( name ) + '">' ) : editor.document.createElement( 'input' ); + + element.setAttribute( 'type', 'hidden' ); + this.commitContent( element ); + var fakeElement = editor.createFakeElement( element, 'cke_hidden', 'hiddenfield' ); + if ( !this.hiddenField ) + editor.insertElement( fakeElement ); + else + { + fakeElement.replace( this.hiddenField ); + editor.getSelection().selectElement( fakeElement ); + } + return true; + }, + contents : [ + { + id : 'info', + label : editor.lang.hidden.title, + title : editor.lang.hidden.title, + elements : [ + { + id : '_cke_saved_name', + type : 'text', + label : editor.lang.hidden.name, + 'default' : '', + accessKey : 'N', + setup : function( element ) + { + this.setValue( + element.getAttribute( '_cke_saved_name' ) || + element.getAttribute( 'name' ) || + '' ); + }, + commit : function( element ) + { + if ( this.getValue() ) + element.setAttribute( 'name', this.getValue() ); + else + { + element.removeAttribute( 'name' ); + } + } + }, + { + id : 'value', + type : 'text', + label : editor.lang.hidden.value, + 'default' : '', + accessKey : 'V', + setup : function( element ) + { + this.setValue( element.getAttribute( 'value' ) || '' ); + }, + commit : function( element ) + { + if ( this.getValue() ) + element.setAttribute( 'value', this.getValue() ); + else + element.removeAttribute( 'value' ); + } + } + ] + } + ] + }; +}); |
