JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
vanilla ckeditor-3.5.3
[ckeditor.git] / _source / plugins / forms / dialogs / hiddenfield.js
1 /*\r
2 Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.\r
3 For licensing, see LICENSE.html or http://ckeditor.com/license\r
4 */\r
5 CKEDITOR.dialog.add( 'hiddenfield', function( editor )\r
6 {\r
7         return {\r
8                 title : editor.lang.hidden.title,\r
9                 hiddenField : null,\r
10                 minWidth : 350,\r
11                 minHeight : 110,\r
12                 onShow : function()\r
13                 {\r
14                         delete this.hiddenField;\r
15 \r
16                         var editor = this.getParentEditor(),\r
17                                 selection = editor.getSelection(),\r
18                                 element = selection.getSelectedElement();\r
19 \r
20                         if ( element && element.data( 'cke-real-element-type' ) && element.data( 'cke-real-element-type' ) == 'hiddenfield' )\r
21                         {\r
22                                 this.hiddenField = element;\r
23                                 element = editor.restoreRealElement( this.hiddenField );\r
24                                 this.setupContent( element );\r
25                                 selection.selectElement( this.hiddenField );\r
26                         }\r
27                 },\r
28                 onOk : function()\r
29                 {\r
30                         var name = this.getValueOf( 'info', '_cke_saved_name' ),\r
31                                 value = this.getValueOf( 'info', 'value' ),\r
32                                 editor = this.getParentEditor(),\r
33                                 element = CKEDITOR.env.ie && !( CKEDITOR.document.$.documentMode >= 8 ) ?\r
34                                         editor.document.createElement( '<input name="' + CKEDITOR.tools.htmlEncode( name ) + '">' )\r
35                                         : editor.document.createElement( 'input' );\r
36 \r
37                         element.setAttribute( 'type', 'hidden' );\r
38                         this.commitContent( element );\r
39                         var fakeElement = editor.createFakeElement( element, 'cke_hidden', 'hiddenfield' );\r
40                         if ( !this.hiddenField )\r
41                                 editor.insertElement( fakeElement );\r
42                         else\r
43                         {\r
44                                 fakeElement.replace( this.hiddenField );\r
45                                 editor.getSelection().selectElement( fakeElement );\r
46                         }\r
47                         return true;\r
48                 },\r
49                 contents : [\r
50                         {\r
51                                 id : 'info',\r
52                                 label : editor.lang.hidden.title,\r
53                                 title : editor.lang.hidden.title,\r
54                                 elements : [\r
55                                         {\r
56                                                 id : '_cke_saved_name',\r
57                                                 type : 'text',\r
58                                                 label : editor.lang.hidden.name,\r
59                                                 'default' : '',\r
60                                                 accessKey : 'N',\r
61                                                 setup : function( element )\r
62                                                 {\r
63                                                         this.setValue(\r
64                                                                         element.data( 'cke-saved-name' ) ||\r
65                                                                         element.getAttribute( 'name' ) ||\r
66                                                                         '' );\r
67                                                 },\r
68                                                 commit : function( element )\r
69                                                 {\r
70                                                         if ( this.getValue() )\r
71                                                                 element.setAttribute( 'name', this.getValue() );\r
72                                                         else\r
73                                                         {\r
74                                                                 element.removeAttribute( 'name' );\r
75                                                         }\r
76                                                 }\r
77                                         },\r
78                                         {\r
79                                                 id : 'value',\r
80                                                 type : 'text',\r
81                                                 label : editor.lang.hidden.value,\r
82                                                 'default' : '',\r
83                                                 accessKey : 'V',\r
84                                                 setup : function( element )\r
85                                                 {\r
86                                                         this.setValue( element.getAttribute( 'value' ) || '' );\r
87                                                 },\r
88                                                 commit : function( element )\r
89                                                 {\r
90                                                         if ( this.getValue() )\r
91                                                                 element.setAttribute( 'value', this.getValue() );\r
92                                                         else\r
93                                                                 element.removeAttribute( 'value' );\r
94                                                 }\r
95                                         }\r
96                                 ]\r
97                         }\r
98                 ]\r
99         };\r
100 });\r