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
|
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.dialog.add( 'radio', function( editor ) {
return {
title: editor.lang.forms.checkboxAndRadio.radioTitle,
minWidth: 350,
minHeight: 140,
onShow: function() {
delete this.radioButton;
var element = this.getParentEditor().getSelection().getSelectedElement();
if ( element && element.getName() == 'input' && element.getAttribute( 'type' ) == 'radio' ) {
this.radioButton = element;
this.setupContent( element );
}
},
onOk: function() {
var editor,
element = this.radioButton,
isInsertMode = !element;
if ( isInsertMode ) {
editor = this.getParentEditor();
element = editor.document.createElement( 'input' );
element.setAttribute( 'type', 'radio' );
}
if ( isInsertMode )
editor.insertElement( element );
this.commitContent( { element: element } );
},
contents: [
{
id: 'info',
label: editor.lang.forms.checkboxAndRadio.radioTitle,
title: editor.lang.forms.checkboxAndRadio.radioTitle,
elements: [
{
id: '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( data ) {
var element = data.element;
if ( this.getValue() )
element.data( 'cke-saved-name', this.getValue() );
else {
element.data( 'cke-saved-name', false );
element.removeAttribute( 'name' );
}
}
},
{
id: 'value',
type: 'text',
label: editor.lang.forms.checkboxAndRadio.value,
'default': '',
accessKey: 'V',
setup: function( element ) {
this.setValue( element.getAttribute( 'value' ) || '' );
},
commit: function( data ) {
var element = data.element;
if ( this.getValue() )
element.setAttribute( 'value', this.getValue() );
else
element.removeAttribute( 'value' );
}
},
{
id: 'checked',
type: 'checkbox',
label: editor.lang.forms.checkboxAndRadio.selected,
'default': '',
accessKey: 'S',
value: "checked",
setup: function( element ) {
this.setValue( element.getAttribute( 'checked' ) );
},
commit: function( data ) {
var element = data.element;
if ( !CKEDITOR.env.ie ) {
if ( this.getValue() )
element.setAttribute( 'checked', 'checked' );
else
element.removeAttribute( 'checked' );
} else {
var isElementChecked = element.getAttribute( 'checked' );
var isChecked = !!this.getValue();
if ( isElementChecked != isChecked ) {
var replace = CKEDITOR.dom.element.createFromHtml( '<input type="radio"' + ( isChecked ? ' checked="checked"' : '' )
+ '></input>', editor.document );
element.copyAttributes( replace, { type: 1, checked: 1 } );
replace.replace( element );
editor.getSelection().selectElement( replace );
data.element = replace;
}
}
}
}
]
}
]
};
} );
|