HTMLUsersMultiselectField: Make auto-infusable when used inside a legacy HTMLForm
authorBartosz Dziewoński <matma.rex@gmail.com>
Sat, 20 May 2017 14:07:35 +0000 (16:07 +0200)
committerBartosz Dziewoński <matma.rex@gmail.com>
Sat, 20 May 2017 14:13:17 +0000 (16:13 +0200)
Change-Id: I23b3a86f06a10b066e6671e398da37c62e3e61b1

includes/htmlform/fields/HTMLUsersMultiselectField.php

index 8c1241d..8829f66 100644 (file)
@@ -72,7 +72,13 @@ class HTMLUsersMultiselectField extends HTMLUserTextField {
                        $params['default'] = $values;
                }
 
-               return new UsersMultiselectWidget( $params );
+               // Make the field auto-infusable when it's used inside a legacy HTMLForm rather than OOUIHTMLForm
+               $params['infusable'] = true;
+               $params['classes'] = [ 'mw-htmlform-field-autoinfuse' ];
+               $widget = new UsersMultiselectWidget( $params );
+               $widget->setAttributes( [ 'data-mw-modules' => implode( ',', $this->getOOUIModules() ) ] );
+
+               return $widget;
        }
 
        protected function shouldInfuseOOUI() {