Merge "mw.special.apisandbox: Don't pass $label to OO.ui.FieldLayout"
[lhc/web/wiklou.git] / resources / src / mediawiki.special / mediawiki.special.apisandbox.js
index 7cb67b0..f53850a 100644 (file)
                                        } else if ( Util.apiBool( pi.multi ) ) {
                                                widget = new OO.ui.CapsuleMultiselectWidget( {
                                                        allowArbitrary: true,
-                                                       allowDuplicates: Util.apiBool( pi.allowsduplicates )
+                                                       allowDuplicates: Util.apiBool( pi.allowsduplicates ),
+                                                       $overlay: $( '#mw-apisandbox-ui' )
                                                } );
                                                widget.paramInfo = pi;
                                                $.extend( widget, WidgetMethods.capsuleWidget );
                                                }
 
                                                widget = new OO.ui.CapsuleMultiselectWidget( {
-                                                       menu: { items: items }
+                                                       menu: { items: items },
+                                                       $overlay: $( '#mw-apisandbox-ui' )
                                                } );
                                                widget.paramInfo = pi;
                                                $.extend( widget, WidgetMethods.capsuleWidget );
                                        } else {
                                                widget = new OO.ui.DropdownWidget( {
-                                                       menu: { items: items }
+                                                       menu: { items: items },
+                                                       $overlay: $( '#mw-apisandbox-ui' )
                                                } );
                                                widget.paramInfo = pi;
                                                $.extend( widget, WidgetMethods.dropdownWidget );
                                                }
 
                                                widget = new OO.ui.CapsuleMultiselectWidget( {
-                                                       menu: { items: items }
+                                                       menu: { items: items },
+                                                       $overlay: $( '#mw-apisandbox-ui' )
                                                } );
                                                widget.paramInfo = pi;
                                                $.extend( widget, WidgetMethods.capsuleWidget );
                                                }
                                        } else {
                                                widget = new OO.ui.DropdownWidget( {
-                                                       menu: { items: items }
+                                                       menu: { items: items },
+                                                       $overlay: $( '#mw-apisandbox-ui' )
                                                } );
                                                widget.paramInfo = pi;
                                                $.extend( widget, WidgetMethods.dropdownWidget );
                                widget = new OO.ui.CapsuleMultiselectWidget( {
                                        allowArbitrary: true,
                                        allowDuplicates: Util.apiBool( pi.allowsduplicates ),
+                                       $overlay: $( '#mw-apisandbox-ui' ),
                                        popup: {
                                                classes: [ 'mw-apisandbox-popup' ],
                                                $content: $content
 
                                if ( !formatDropdown ) {
                                        formatDropdown = new OO.ui.DropdownWidget( {
-                                               menu: { items: [] }
+                                               menu: { items: [] },
+                                               $overlay: $( '#mw-apisandbox-ui' )
                                        } );
                                        formatDropdown.getMenu().on( 'choose', Util.onFormatDropdownChange );
                                }
                                                                                icon: 'info',
                                                                                popup: {
                                                                                        $content: $( '<div>' ).append( Util.parseMsg( 'apisandbox-continue-help' ) ),
-                                                                                       padded: true
+                                                                                       padded: true,
+                                                                                       width: 'auto'
                                                                                }
                                                                        } ).$element
                                                                )
 
                Util.fetchModuleInfo( this.apiModule )
                        .done( function ( pi ) {
-                               var prefix, i, j, descriptionContainer, widget, $widgetLabel, widgetField, helpField, tmp, flag, count,
+                               var prefix, i, j, descriptionContainer, widget, widgetField, helpField, tmp, flag, count,
                                        items = [],
                                        deprecatedItems = [],
                                        buttons = [],
                                                label: mw.message( 'apisandbox-helpurls' ).text(),
                                                icon: 'help',
                                                popup: {
+                                                       width: 'auto',
+                                                       padded: true,
                                                        $content: $( '<ul>' ).append( $.map( pi.helpurls, function ( link ) {
                                                                return $( '<li>' ).append( $( '<a>', {
                                                                        href: link,
                                                label: mw.message( 'apisandbox-examples' ).text(),
                                                icon: 'code',
                                                popup: {
+                                                       width: 'auto',
+                                                       padded: true,
                                                        $content: $( '<ul>' ).append( $.map( pi.examples, function ( example ) {
                                                                var a = $( '<a>', {
                                                                        href: '#' + example.query,
                                                        }
                                                );
 
-                                               $widgetLabel = $( '<span>' );
                                                widgetField = new OO.ui.FieldLayout(
                                                        widget,
                                                        {
                                                                align: 'left',
                                                                classes: [ 'mw-apisandbox-widget-field' ],
-                                                               label: prefix + pi.parameters[ i ].name,
-                                                               $label: $widgetLabel
+                                                               label: prefix + pi.parameters[ i ].name
                                                        }
                                                );
 
-                                               // FieldLayout only does click for InputElement
-                                               // widgets. So supply our own click handler.
-                                               $widgetLabel.on( 'click', widgetLabelOnClick.bind( widgetField ) );
+                                               // We need our own click handler on the widget label to
+                                               // turn off the disablement.
+                                               widgetField.$label.on( 'click', widgetLabelOnClick.bind( widgetField ) );
 
                                                // Don't grey out the label when the field is disabled,
                                                // it makes it too hard to read and our "disabled"