@@ -130,9 +130,19 @@ CKEDITOR.plugins.add( 'dialogui', {
130
130
var innerHTML = function ( ) {
131
131
var html = [ ] ,
132
132
requiredClass = elementDefinition . required ? ' cke_required' : '' ;
133
- if ( elementDefinition . labelLayout != 'horizontal' )
134
- html . push ( '<label class="cke_dialog_ui_labeled_label' + requiredClass + '" ' , ' id="' + _ . labelId + '"' , ( _ . inputId ? ' for="' + _ . inputId + '"' : '' ) , ( elementDefinition . labelStyle ? ' style="' + elementDefinition . labelStyle + '"' : '' ) + '>' , elementDefinition . label , '</label>' , '<div class="cke_dialog_ui_labeled_content"' + ( elementDefinition . controlStyle ? ' style="' + elementDefinition . controlStyle + '"' : '' ) + ' role="presentation">' , contentHtml . call ( this , dialog , elementDefinition ) , '</div>' ) ;
135
- else {
133
+ if ( elementDefinition . labelLayout != 'horizontal' ) {
134
+ html . push (
135
+ '<label class="cke_dialog_ui_labeled_label' + requiredClass + '" ' , ' id="' + _ . labelId + '"' ,
136
+ ( _ . inputId ? ' for="' + _ . inputId + '"' : '' ) ,
137
+ ( elementDefinition . labelStyle ? ' style="' + elementDefinition . labelStyle + '"' : '' ) + '>' ,
138
+ elementDefinition . label ,
139
+ '</label>' ,
140
+ '<div class="cke_dialog_ui_labeled_content"' ,
141
+ ( elementDefinition . controlStyle ? ' style="' + elementDefinition . controlStyle + '"' : '' ) ,
142
+ ' role="radiogroup" aria-labelledby="' + _ . labelId + '">' ,
143
+ contentHtml . call ( this , dialog , elementDefinition ) ,
144
+ '</div>' ) ;
145
+ } else {
136
146
var hboxDefinition = {
137
147
type : 'hbox' ,
138
148
widths : elementDefinition . widths ,
@@ -371,56 +381,76 @@ CKEDITOR.plugins.add( 'dialogui', {
371
381
return ;
372
382
373
383
initPrivateObject . call ( this , elementDefinition ) ;
384
+
374
385
if ( ! this . _ [ 'default' ] )
375
386
this . _ [ 'default' ] = this . _ . initValue = elementDefinition . items [ 0 ] [ 1 ] ;
387
+
376
388
if ( elementDefinition . validate )
377
389
this . validate = elementDefinition . valdiate ;
390
+
378
391
var children = [ ] ,
379
392
me = this ;
380
393
381
394
var innerHTML = function ( ) {
382
- var inputHtmlList = [ ] ,
383
- html = [ ] ,
384
- commonAttributes = { 'class' : 'cke_dialog_ui_radio_item' , 'aria-labelledby' : this . _ . labelId } ,
385
- commonName = elementDefinition . id ? elementDefinition . id + '_radio' : CKEDITOR . tools . getNextId ( ) + '_radio' ;
386
- for ( var i = 0 ; i < elementDefinition . items . length ; i ++ ) {
387
- var item = elementDefinition . items [ i ] ,
388
- title = item [ 2 ] !== undefined ? item [ 2 ] : item [ 0 ] ,
389
- value = item [ 1 ] !== undefined ? item [ 1 ] : item [ 0 ] ,
390
- inputId = CKEDITOR . tools . getNextId ( ) + '_radio_input' ,
391
- labelId = inputId + '_label' ,
392
- inputDefinition = CKEDITOR . tools . extend ( { } , elementDefinition , {
393
- id : inputId ,
394
- title : null ,
395
- type : null
396
- } , true ) ,
397
- labelDefinition = CKEDITOR . tools . extend ( { } , inputDefinition , {
398
- title : title
399
- } , true ) ,
400
- inputAttributes = {
401
- type : 'radio' ,
402
- 'class' : 'cke_dialog_ui_radio_input' ,
403
- name : commonName ,
404
- value : value ,
405
- 'aria-labelledby' : labelId
406
- } ,
407
- inputHtml = [ ] ;
408
- if ( me . _ [ 'default' ] == value )
409
- inputAttributes . checked = 'checked' ;
410
- cleanInnerDefinition ( inputDefinition ) ;
411
- cleanInnerDefinition ( labelDefinition ) ;
412
-
413
- if ( typeof inputDefinition . inputStyle != 'undefined' )
414
- inputDefinition . style = inputDefinition . inputStyle ;
415
-
416
- children . push ( new CKEDITOR . ui . dialog . uiElement ( dialog , inputDefinition , inputHtml , 'input' , null , inputAttributes ) ) ;
417
- inputHtml . push ( ' ' ) ;
418
- new CKEDITOR . ui . dialog . uiElement ( dialog , labelDefinition , inputHtml , 'label' , null , { id : labelId , 'for' : inputAttributes . id } , item [ 0 ] ) ;
419
- inputHtmlList . push ( inputHtml . join ( '' ) ) ;
420
- }
421
- new CKEDITOR . ui . dialog . hbox ( dialog , children , inputHtmlList , html ) ;
422
- return html . join ( '' ) ;
423
- } ;
395
+ var inputHtmlList = [ ] ,
396
+ html = [ ] ,
397
+ commonName = ( elementDefinition . id ? elementDefinition . id : CKEDITOR . tools . getNextId ( ) ) + '_radio' ;
398
+
399
+ for ( var i = 0 ; i < elementDefinition . items . length ; i ++ ) {
400
+ var item = elementDefinition . items [ i ] ,
401
+ title = item [ 2 ] !== undefined ? item [ 2 ] : item [ 0 ] ,
402
+ value = item [ 1 ] !== undefined ? item [ 1 ] : item [ 0 ] ,
403
+ inputId = CKEDITOR . tools . getNextId ( ) + '_radio_input' ,
404
+ labelId = inputId + '_label' ,
405
+
406
+ inputDefinition = CKEDITOR . tools . extend ( { } , elementDefinition , {
407
+ id : inputId ,
408
+ title : null ,
409
+ type : null
410
+ } , true ) ,
411
+
412
+ labelDefinition = CKEDITOR . tools . extend ( { } , inputDefinition , {
413
+ title : title
414
+ } , true ) ,
415
+
416
+ inputAttributes = {
417
+ type : 'radio' ,
418
+ 'class' : 'cke_dialog_ui_radio_input' ,
419
+ name : commonName ,
420
+ value : value ,
421
+ 'aria-labelledby' : labelId
422
+ } ,
423
+
424
+ inputHtml = [ ] ;
425
+
426
+ if ( me . _ [ 'default' ] == value )
427
+ inputAttributes . checked = 'checked' ;
428
+
429
+ cleanInnerDefinition ( inputDefinition ) ;
430
+ cleanInnerDefinition ( labelDefinition ) ;
431
+
432
+ if ( typeof inputDefinition . inputStyle != 'undefined' )
433
+ inputDefinition . style = inputDefinition . inputStyle ;
434
+
435
+ // Make inputs of radio type focusable (#10866).
436
+ inputDefinition . keyboardFocusable = true ;
437
+
438
+ children . push ( new CKEDITOR . ui . dialog . uiElement ( dialog , inputDefinition , inputHtml , 'input' , null , inputAttributes ) ) ;
439
+
440
+ inputHtml . push ( ' ' ) ;
441
+
442
+ new CKEDITOR . ui . dialog . uiElement ( dialog , labelDefinition , inputHtml , 'label' , null , {
443
+ id : labelId ,
444
+ 'for' : inputAttributes . id
445
+ } , item [ 0 ] ) ;
446
+
447
+ inputHtmlList . push ( inputHtml . join ( '' ) ) ;
448
+ }
449
+
450
+ new CKEDITOR . ui . dialog . hbox ( dialog , children , inputHtmlList , html ) ;
451
+
452
+ return html . join ( '' ) ;
453
+ } ;
424
454
425
455
CKEDITOR . ui . dialog . labeledElement . call ( this , dialog , elementDefinition , htmlList , innerHTML ) ;
426
456
this . _ . children = children ;
@@ -1158,9 +1188,7 @@ CKEDITOR.plugins.add( 'dialogui', {
1158
1188
}
1159
1189
return null ;
1160
1190
}
1161
- } ,
1162
-
1163
- keyboardFocusable : true
1191
+ }
1164
1192
} , commonPrototype , true ) ;
1165
1193
1166
1194
/** @class CKEDITOR.ui.dialog.file */
0 commit comments