]>
git.immae.eu Git - perso/Immae/Projets/packagist/connexionswing-ckeditor-component.git/blob - sources/plugins/forms/dialogs/textfield.js
2 * @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3 * For licensing, see LICENSE.md or http://ckeditor.com/license
5 CKEDITOR
.dialog
.add( 'textfield', function( editor
) {
7 var acceptedTypes
= { email: 1, password: 1, search: 1, tel: 1, text: 1, url: 1 };
9 function autoCommit( data
) {
10 var element
= data
.element
;
11 var value
= this.getValue();
13 value
? element
.setAttribute( this.id
, value
) : element
.removeAttribute( this.id
);
16 function autoSetup( element
) {
17 var value
= element
.hasAttribute( this.id
) && element
.getAttribute( this.id
);
18 this.setValue( value
|| '' );
22 title: editor
.lang
.forms
.textfield
.title
,
26 delete this.textField
;
28 var element
= this.getParentEditor().getSelection().getSelectedElement();
29 if ( element
&& element
.getName() == 'input' && ( acceptedTypes
[ element
.getAttribute( 'type' ) ] || !element
.getAttribute( 'type' ) ) ) {
30 this.textField
= element
;
31 this.setupContent( element
);
35 var editor
= this.getParentEditor(),
36 element
= this.textField
,
37 isInsertMode
= !element
;
40 element
= editor
.document
.createElement( 'input' );
41 element
.setAttribute( 'type', 'text' );
44 var data
= { element: element
};
47 editor
.insertElement( data
.element
);
49 this.commitContent( data
);
51 // Element might be replaced by commitment.
53 editor
.getSelection().selectElement( data
.element
);
56 this.foreach( function( contentObj
) {
57 if ( contentObj
.getValue
) {
58 if ( !contentObj
.setup
)
59 contentObj
.setup
= autoSetup
;
60 if ( !contentObj
.commit
)
61 contentObj
.commit
= autoCommit
;
67 label: editor
.lang
.forms
.textfield
.title
,
68 title: editor
.lang
.forms
.textfield
.title
,
71 widths: [ '50%', '50%' ],
73 id: '_cke_saved_name',
75 label: editor
.lang
.forms
.textfield
.name
,
78 setup: function( element
) {
79 this.setValue( element
.data( 'cke-saved-name' ) || element
.getAttribute( 'name' ) || '' );
81 commit: function( data
) {
82 var element
= data
.element
;
84 if ( this.getValue() )
85 element
.data( 'cke-saved-name', this.getValue() );
87 element
.data( 'cke-saved-name', false );
88 element
.removeAttribute( 'name' );
95 label: editor
.lang
.forms
.textfield
.value
,
98 commit: function( data
) {
99 if ( CKEDITOR
.env
.ie
&& !this.getValue() ) {
100 var element
= data
.element
,
101 fresh
= new CKEDITOR
.dom
.element( 'input', editor
.document
);
102 element
.copyAttributes( fresh
, { value: 1 } );
103 fresh
.replace( element
);
104 data
.element
= fresh
;
106 autoCommit
.call( this, data
);
113 widths: [ '50%', '50%' ],
117 label: editor
.lang
.forms
.textfield
.charWidth
,
121 validate: CKEDITOR
.dialog
.validate
.integer( editor
.lang
.common
.validateNumberFailed
)
126 label: editor
.lang
.forms
.textfield
.maxChars
,
130 validate: CKEDITOR
.dialog
.validate
.integer( editor
.lang
.common
.validateNumberFailed
)
133 // Repaint the style for IE7 (#6068)
134 if ( CKEDITOR
.env
.ie7Compat
)
135 this.getElement().setStyle( 'zoom', '100%' );
141 label: editor
.lang
.forms
.textfield
.type
,
145 [ editor
.lang
.forms
.textfield
.typeEmail
, 'email' ],
146 [ editor
.lang
.forms
.textfield
.typePass
, 'password' ],
147 [ editor
.lang
.forms
.textfield
.typeSearch
, 'search' ],
148 [ editor
.lang
.forms
.textfield
.typeTel
, 'tel' ],
149 [ editor
.lang
.forms
.textfield
.typeText
, 'text' ],
150 [ editor
.lang
.forms
.textfield
.typeUrl
, 'url' ]
152 setup: function( element
) {
153 this.setValue( element
.getAttribute( 'type' ) );
155 commit: function( data
) {
156 var element
= data
.element
;
158 if ( CKEDITOR
.env
.ie
) {
159 var elementType
= element
.getAttribute( 'type' );
160 var myType
= this.getValue();
162 if ( elementType
!= myType
) {
163 var replace
= CKEDITOR
.dom
.element
.createFromHtml( '<input type="' + myType
+ '"></input>', editor
.document
);
164 element
.copyAttributes( replace
, { type: 1 } );
165 replace
.replace( element
);
166 data
.element
= replace
;
169 element
.setAttribute( 'type', this.getValue() );
176 label: editor
.lang
.forms
.textfield
.required
,
180 setup: function( element
) {
181 this.setValue( element
.getAttribute( 'required' ) );
183 commit: function( data
) {
184 var element
= data
.element
;
185 if ( this.getValue() )
186 element
.setAttribute( 'required', 'required' );
188 element
.removeAttribute( 'required' );