JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
vanilla ckeditor-3.5
[ckeditor.git] / _source / plugins / forms / dialogs / hiddenfield.js
1 /*\r
2 Copyright (c) 2003-2010, 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 ? editor.document.createElement( '<input name="' + CKEDITOR.tools.htmlEncode( name ) + '">' ) : editor.document.createElement( 'input' );\r
34 \r
35                         element.setAttribute( 'type', 'hidden' );\r
36                         this.commitContent( element );\r
37                         var fakeElement = editor.createFakeElement( element, 'cke_hidden', 'hiddenfield' );\r
38                         if ( !this.hiddenField )\r
39                                 editor.insertElement( fakeElement );\r
40                         else\r
41                         {\r
42                                 fakeElement.replace( this.hiddenField );\r
43                                 editor.getSelection().selectElement( fakeElement );\r
44                         }\r
45                         return true;\r
46                 },\r
47                 contents : [\r
48                         {\r
49                                 id : 'info',\r
50                                 label : editor.lang.hidden.title,\r
51                                 title : editor.lang.hidden.title,\r
52                                 elements : [\r
53                                         {\r
54                                                 id : '_cke_saved_name',\r
55                                                 type : 'text',\r
56                                                 label : editor.lang.hidden.name,\r
57                                                 'default' : '',\r
58                                                 accessKey : 'N',\r
59                                                 setup : function( element )\r
60                                                 {\r
61                                                         this.setValue(\r
62                                                                         element.data( 'cke-saved-name' ) ||\r
63                                                                         element.getAttribute( 'name' ) ||\r
64                                                                         '' );\r
65                                                 },\r
66                                                 commit : function( element )\r
67                                                 {\r
68                                                         if ( this.getValue() )\r
69                                                                 element.setAttribute( 'name', this.getValue() );\r
70                                                         else\r
71                                                         {\r
72                                                                 element.removeAttribute( 'name' );\r
73                                                         }\r
74                                                 }\r
75                                         },\r
76                                         {\r
77                                                 id : 'value',\r
78                                                 type : 'text',\r
79                                                 label : editor.lang.hidden.value,\r
80                                                 'default' : '',\r
81                                                 accessKey : 'V',\r
82                                                 setup : function( element )\r
83                                                 {\r
84                                                         this.setValue( element.getAttribute( 'value' ) || '' );\r
85                                                 },\r
86                                                 commit : function( element )\r
87                                                 {\r
88                                                         if ( this.getValue() )\r
89                                                                 element.setAttribute( 'value', this.getValue() );\r
90                                                         else\r
91                                                                 element.removeAttribute( 'value' );\r
92                                                 }\r
93                                         }\r
94                                 ]\r
95                         }\r
96                 ]\r
97         };\r
98 });\r