]> git.immae.eu Git - perso/Immae/Projets/packagist/connexionswing-ckeditor-component.git/blame - sources/plugins/forms/dialogs/radio.js
Initial commit
[perso/Immae/Projets/packagist/connexionswing-ckeditor-component.git] / sources / plugins / forms / dialogs / radio.js
CommitLineData
7adcb81e
IB
1/**\r
2 * @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.\r
3 * For licensing, see LICENSE.md or http://ckeditor.com/license\r
4 */\r
5CKEDITOR.dialog.add( 'radio', function( editor ) {\r
6 return {\r
7 title: editor.lang.forms.checkboxAndRadio.radioTitle,\r
8 minWidth: 350,\r
9 minHeight: 140,\r
10 onShow: function() {\r
11 delete this.radioButton;\r
12\r
13 var element = this.getParentEditor().getSelection().getSelectedElement();\r
14 if ( element && element.getName() == 'input' && element.getAttribute( 'type' ) == 'radio' ) {\r
15 this.radioButton = element;\r
16 this.setupContent( element );\r
17 }\r
18 },\r
19 onOk: function() {\r
20 var editor,\r
21 element = this.radioButton,\r
22 isInsertMode = !element;\r
23\r
24 if ( isInsertMode ) {\r
25 editor = this.getParentEditor();\r
26 element = editor.document.createElement( 'input' );\r
27 element.setAttribute( 'type', 'radio' );\r
28 }\r
29\r
30 if ( isInsertMode )\r
31 editor.insertElement( element );\r
32 this.commitContent( { element: element } );\r
33 },\r
34 contents: [ {\r
35 id: 'info',\r
36 label: editor.lang.forms.checkboxAndRadio.radioTitle,\r
37 title: editor.lang.forms.checkboxAndRadio.radioTitle,\r
38 elements: [ {\r
39 id: 'name',\r
40 type: 'text',\r
41 label: editor.lang.common.name,\r
42 'default': '',\r
43 accessKey: 'N',\r
44 setup: function( element ) {\r
45 this.setValue( element.data( 'cke-saved-name' ) || element.getAttribute( 'name' ) || '' );\r
46 },\r
47 commit: function( data ) {\r
48 var element = data.element;\r
49\r
50 if ( this.getValue() )\r
51 element.data( 'cke-saved-name', this.getValue() );\r
52 else {\r
53 element.data( 'cke-saved-name', false );\r
54 element.removeAttribute( 'name' );\r
55 }\r
56 }\r
57 },\r
58 {\r
59 id: 'value',\r
60 type: 'text',\r
61 label: editor.lang.forms.checkboxAndRadio.value,\r
62 'default': '',\r
63 accessKey: 'V',\r
64 setup: function( element ) {\r
65 this.setValue( element.getAttribute( 'value' ) || '' );\r
66 },\r
67 commit: function( data ) {\r
68 var element = data.element;\r
69\r
70 if ( this.getValue() )\r
71 element.setAttribute( 'value', this.getValue() );\r
72 else\r
73 element.removeAttribute( 'value' );\r
74 }\r
75 },\r
76 {\r
77 id: 'checked',\r
78 type: 'checkbox',\r
79 label: editor.lang.forms.checkboxAndRadio.selected,\r
80 'default': '',\r
81 accessKey: 'S',\r
82 value: 'checked',\r
83 setup: function( element ) {\r
84 this.setValue( element.getAttribute( 'checked' ) );\r
85 },\r
86 commit: function( data ) {\r
87 var element = data.element;\r
88\r
89 if ( !CKEDITOR.env.ie ) {\r
90 if ( this.getValue() )\r
91 element.setAttribute( 'checked', 'checked' );\r
92 else\r
93 element.removeAttribute( 'checked' );\r
94 } else {\r
95 var isElementChecked = element.getAttribute( 'checked' );\r
96 var isChecked = !!this.getValue();\r
97\r
98 if ( isElementChecked != isChecked ) {\r
99 var replace = CKEDITOR.dom.element.createFromHtml( '<input type="radio"' + ( isChecked ? ' checked="checked"' : '' ) +\r
100 '></input>', editor.document );\r
101 element.copyAttributes( replace, { type: 1, checked: 1 } );\r
102 replace.replace( element );\r
103 editor.getSelection().selectElement( replace );\r
104 data.element = replace;\r
105 }\r
106 }\r
107 }\r
108 },\r
109 {\r
110 id: 'required',\r
111 type: 'checkbox',\r
112 label: editor.lang.forms.checkboxAndRadio.required,\r
113 'default': '',\r
114 accessKey: 'Q',\r
115 value: 'required',\r
116 setup: function( element ) {\r
117 this.setValue( element.getAttribute( 'required' ) );\r
118 },\r
119 commit: function( data ) {\r
120 var element = data.element;\r
121 if ( this.getValue() )\r
122 element.setAttribute( 'required', 'required' );\r
123 else\r
124 element.removeAttribute( 'required' );\r
125 }\r
126 } ]\r
127 } ]\r
128 };\r
129} );\r