1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
|
/**
* @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
*/
CKEDITOR.dialog.add( 'textarea', function( editor ) {
return {
title: editor.lang.forms.textarea.title,
minWidth: 350,
minHeight: 220,
getModel: function( editor ) {
var element = editor.getSelection().getSelectedElement();
if ( element && element.getName() == 'textarea' ) {
return element;
}
return null;
},
onShow: function() {
var element = this.getModel( this.getParentEditor() );
if ( element ) {
this.setupContent( element );
}
},
onOk: function() {
var editor = this.getParentEditor(),
element = this.getModel( editor ),
isInsertMode = this.getMode( editor ) == CKEDITOR.dialog.CREATION_MODE;
if ( isInsertMode ) {
element = editor.document.createElement( 'textarea' );
}
this.commitContent( element );
if ( isInsertMode )
editor.insertElement( element );
},
contents: [ {
id: 'info',
label: editor.lang.forms.textarea.title,
title: editor.lang.forms.textarea.title,
elements: [ {
id: '_cke_saved_name',
type: 'text',
label: editor.lang.common.name,
'default': '',
accessKey: 'N',
setup: function( element ) {
this.setValue( element.data( 'cke-saved-name' ) || element.getAttribute( 'name' ) || '' );
},
commit: function( element ) {
if ( this.getValue() )
element.data( 'cke-saved-name', this.getValue() );
else {
element.data( 'cke-saved-name', false );
element.removeAttribute( 'name' );
}
}
},
{
type: 'hbox',
widths: [ '50%', '50%' ],
children: [ {
id: 'cols',
type: 'text',
label: editor.lang.forms.textarea.cols,
'default': '',
accessKey: 'C',
style: 'width:50px',
validate: CKEDITOR.dialog.validate.integer( editor.lang.common.validateNumberFailed ),
setup: function( element ) {
var value = element.hasAttribute( 'cols' ) && element.getAttribute( 'cols' );
this.setValue( value || '' );
},
commit: function( element ) {
if ( this.getValue() )
element.setAttribute( 'cols', this.getValue() );
else
element.removeAttribute( 'cols' );
}
},
{
id: 'rows',
type: 'text',
label: editor.lang.forms.textarea.rows,
'default': '',
accessKey: 'R',
style: 'width:50px',
validate: CKEDITOR.dialog.validate.integer( editor.lang.common.validateNumberFailed ),
setup: function( element ) {
var value = element.hasAttribute( 'rows' ) && element.getAttribute( 'rows' );
this.setValue( value || '' );
},
commit: function( element ) {
if ( this.getValue() )
element.setAttribute( 'rows', this.getValue() );
else
element.removeAttribute( 'rows' );
}
} ]
},
{
id: 'value',
type: 'textarea',
label: editor.lang.forms.textfield.value,
'default': '',
setup: function( element ) {
this.setValue( element.$.defaultValue );
},
commit: function( element ) {
element.$.value = element.$.defaultValue = this.getValue();
}
},
{
id: 'required',
type: 'checkbox',
label: editor.lang.forms.textfield.required,
'default': '',
accessKey: 'Q',
value: 'required',
setup: CKEDITOR.plugins.forms._setupRequiredAttribute,
commit: function( element ) {
if ( this.getValue() )
element.setAttribute( 'required', 'required' );
else
element.removeAttribute( 'required' );
}
} ]
} ]
};
} );
|