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