Automatically infuse any infusable OOUI widgets present on the page
authorRoan Kattouw <roan.kattouw@gmail.com>
Mon, 25 May 2015 09:58:36 +0000 (11:58 +0200)
committerBartosz Dziewoński <matma.rex@gmail.com>
Tue, 30 Jun 2015 16:07:22 +0000 (16:07 +0000)
Change-Id: I931df032c3d8dc5807c7590a763b8d9060c5ee87

includes/htmlform/OOUIHTMLForm.php
resources/Resources.php
resources/src/mediawiki.page/mediawiki.page.ready.js
resources/src/mediawiki/mediawiki.htmlform.ooui.js [deleted file]

index 1ac7956..80e91f7 100644 (file)
@@ -34,7 +34,6 @@ class OOUIHTMLForm extends HTMLForm {
        public function __construct( $descriptor, $context = null, $messagePrefix = '' ) {
                parent::__construct( $descriptor, $context, $messagePrefix );
                $this->getOutput()->enableOOUI();
-               $this->getOutput()->addModules( 'mediawiki.htmlform.ooui' );
                $this->getOutput()->addModuleStyles( 'mediawiki.htmlform.ooui.styles' );
        }
 
index f7a0531..bd9788e 100644 (file)
@@ -963,10 +963,6 @@ return array(
                        'colon-separator',
                ),
        ),
-       'mediawiki.htmlform.ooui' => array(
-               'scripts' => 'resources/src/mediawiki/mediawiki.htmlform.ooui.js',
-               'dependencies' => 'oojs-ui',
-       ),
        'mediawiki.htmlform.ooui.styles' => array(
                'styles' => 'resources/src/mediawiki/mediawiki.htmlform.ooui.css',
                'position' => 'top',
index 36eb9d4..3a8e0e7 100644 (file)
                }
                $nodes.updateTooltipAccessKeys();
 
+               // Infuse OOUI widgets, if any are present
+               $nodes = $( '[data-ooui]' );
+               if ( $nodes.length ) {
+                       mw.loader.using( 'mediawiki.widgets' ).done( function () {
+                               // HACK: OO.ui.infuse assumes all widgets are in the OO.ui. namespace
+                               $.extend( OO.ui, mw.widgets );
+                               $nodes.each( function () {
+                                       OO.ui.infuse( this );
+                               } );
+                       } );
+               }
+
        } );
 
 }( mediaWiki, jQuery ) );
diff --git a/resources/src/mediawiki/mediawiki.htmlform.ooui.js b/resources/src/mediawiki/mediawiki.htmlform.ooui.js
deleted file mode 100644 (file)
index 48b8a87..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-/*global OO */
-jQuery( function ( $ ) {
-
-       // Infuse everything with JavaScript widgets
-       $( '.mw-htmlform-ooui [data-ooui]' ).each( function () {
-               OO.ui.infuse( this.id );
-       } );
-
-} );