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