Ticket #4056: 4056_3.patch
File 4056_3.patch, 4.5 KB (added by , 14 years ago) |
---|
-
_source/plugins/forms/dialogs/hiddenfield.js
6 6 { 7 7 return { 8 8 title : editor.lang.hidden.title, 9 hiddenField : null, 9 10 minWidth : 350, 10 11 minHeight : 110, 11 12 onShow : function() 12 13 { 13 14 delete this.hiddenField; 14 15 15 var element = this.getParentEditor().getSelection().getSelectedElement(); 16 if ( element && element.getName() == "input" && element.getAttribute( 'type' ) == "checkbox" ) 17 { 18 this.hiddenField = element; 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' ) 21 { 22 this.hiddenField = element; 23 element = editor.restoreRealElement( this.hiddenField ); 19 24 this.setupContent( element ); 20 } 25 selection.selectElement( this.hiddenField ); 26 } 21 27 }, 22 28 onOk : function() 23 29 { 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 ? 34 editor.document.createElement( '<input name="' + CKEDITOR.tools.htmlEncode( name ) + '">' ) : 35 editor.document.createElement( 'input' ); 27 36 28 if ( isInsertMode ) 29 { 30 editor = this.getParentEditor(); 31 element = editor.document.createElement( 'input' ); 32 element.setAttribute( 'type', 'hidden' ); 33 } 34 35 if ( isInsertMode ) 36 editor.insertElement( element ); 37 element.setAttribute( 'type', 'hidden' ); 37 38 this.commitContent( element ); 39 var fakeElement = editor.createFakeElement( element, 'cke_hidden', 'hiddenfield' ); 40 41 if ( !this.hiddenField ) 42 editor.insertElement( fakeElement ); 43 else 44 { 45 fakeElement.replace( this.hiddenField ); 46 editor.getSelection().selectElement( fakeElement ); 47 } 48 49 return true; 38 50 }, 39 51 contents : [ 40 52 { … … 50 62 accessKey : 'N', 51 63 setup : function( element ) 52 64 { 65 53 66 this.setValue( 54 67 element.getAttribute( '_cke_saved_name' ) || 55 68 element.getAttribute( 'name' ) || … … 58 71 commit : function( element ) 59 72 { 60 73 if ( this.getValue() ) 61 element.setAttribute( ' _cke_saved_name', this.getValue() );74 element.setAttribute( 'name', this.getValue() ); 62 75 else 63 76 { 64 element.removeAttribute( '_cke_saved_name' );65 77 element.removeAttribute( 'name' ); 66 78 } 67 79 } -
_source/plugins/forms/plugin.js
18 18 '{' + 19 19 'border: 1px dotted #FF0000;' + 20 20 'padding: 2px;' + 21 '}' ); 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;' + 32 '}' ); 22 33 23 34 // All buttons use the same code to register. So, to avoid 24 35 // duplications, let's use this tool function. … … 165 176 166 177 afterInit : function( editor ) 167 178 { 179 var dataProcessor = editor.dataProcessor, 180 htmlFilter = dataProcessor && dataProcessor.htmlFilter, 181 dataFilter = dataProcessor && dataProcessor.dataFilter; 182 168 183 // Cleanup certain IE form elements default values. 169 184 if ( CKEDITOR.env.ie ) 170 185 { … … 185 200 } 186 201 } ); 187 202 } 203 204 if ( dataFilter ) 205 { 206 dataFilter.addRules( 207 { 208 elements : 209 { 210 input : function( element ) 211 { 212 if ( element.attributes.type == 'hidden' ) { 213 return editor.createFakeParserElement( element, 'cke_hidden', 'hiddenfield' ); 214 } 215 } 216 } 217 } ); 218 } 188 219 }, 189 requires : [ 'image' ] 220 221 requires : [ 'image', 'fakeobjects' ] 190 222 } ); 191 223 192 224 if ( CKEDITOR.env.ie )