jenkins-bot has submitted this change and it was merged.

Change subject: Update OOjs UI to v0.13.2
......................................................................


Update OOjs UI to v0.13.2

Release notes:
 https://git.wikimedia.org/blob/oojs%2Fui.git/v0.13.2/History.md

Change-Id: I0626d91d4b93e1d680579f1e6a02555c6050127f
---
M composer.json
M composer.lock
M composer/autoload_classmap.php
M composer/installed.json
M oojs/oojs-ui/History.md
M oojs/oojs-ui/bin/testsuitegenerator.rb
M oojs/oojs-ui/demos/pages/dialogs.js
M oojs/oojs-ui/demos/pages/icons.js
M oojs/oojs-ui/demos/pages/widgets.js
M oojs/oojs-ui/demos/styles/demo.css
M oojs/oojs-ui/demos/widgets.php
M oojs/oojs-ui/i18n/bs.json
M oojs/oojs-ui/i18n/cs.json
M oojs/oojs-ui/i18n/wuu.json
M oojs/oojs-ui/package.json
A oojs/oojs-ui/php/widgets/ComboBoxInputWidget.php
16 files changed, 250 insertions(+), 100 deletions(-)

Approvals:
  Esanders: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/composer.json b/composer.json
index 27bb608..2ab40ed 100644
--- a/composer.json
+++ b/composer.json
@@ -17,7 +17,7 @@
                "mediawiki/at-ease": "1.1.0",
                "monolog/monolog": "1.17.2",
                "nmred/kafka-php": "0.1.4",
-               "oojs/oojs-ui": "0.13.1",
+               "oojs/oojs-ui": "0.13.2",
                "oyejorge/less.php": "1.7.0.9",
                "php": ">=5.3.3",
                "psr/log": "1.0.0",
diff --git a/composer.lock b/composer.lock
index 23c7311..2aa14bd 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,8 +4,8 @@
         "Read more about it at 
https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file";,
         "This file is @generated automatically"
     ],
-    "hash": "5bc963e06bea9445e49482d7e8ff5d45",
-    "content-hash": "225a9474fbaaff1115e0fb91cdabc2b4",
+    "hash": "4607b9de92ca27ae55e2013cf01e136f",
+    "content-hash": "877687875ef0ee085390d293cc8af9f2",
     "packages": [
         {
             "name": "composer/semver",
@@ -393,16 +393,16 @@
         },
         {
             "name": "oojs/oojs-ui",
-            "version": "v0.13.1",
+            "version": "v0.13.2",
             "source": {
                 "type": "git",
                 "url": "https://github.com/wikimedia/oojs-ui.git";,
-                "reference": "c77664633e4d77ad6da991f6afb8d418b20b4058"
+                "reference": "b4ff697cb7d0e9ebe5c3c6c72a6a254a5b508923"
             },
             "dist": {
                 "type": "zip",
-                "url": 
"https://api.github.com/repos/wikimedia/oojs-ui/zipball/c77664633e4d77ad6da991f6afb8d418b20b4058";,
-                "reference": "c77664633e4d77ad6da991f6afb8d418b20b4058",
+                "url": 
"https://api.github.com/repos/wikimedia/oojs-ui/zipball/b4ff697cb7d0e9ebe5c3c6c72a6a254a5b508923";,
+                "reference": "b4ff697cb7d0e9ebe5c3c6c72a6a254a5b508923",
                 "shasum": ""
             },
             "require": {
@@ -460,7 +460,7 @@
             ],
             "description": "Provides library of common widgets, layouts, and 
windows.",
             "homepage": "https://www.mediawiki.org/wiki/OOjs_UI";,
-            "time": "2015-11-03 21:19:39"
+            "time": "2015-11-10 22:24:15"
         },
         {
             "name": "oyejorge/less.php",
diff --git a/composer/autoload_classmap.php b/composer/autoload_classmap.php
index f9788c8..37f573a 100644
--- a/composer/autoload_classmap.php
+++ b/composer/autoload_classmap.php
@@ -479,6 +479,7 @@
     'OOUI\\ButtonInputWidget' => $vendorDir . 
'/oojs/oojs-ui/php/widgets/ButtonInputWidget.php',
     'OOUI\\ButtonWidget' => $vendorDir . 
'/oojs/oojs-ui/php/widgets/ButtonWidget.php',
     'OOUI\\CheckboxInputWidget' => $vendorDir . 
'/oojs/oojs-ui/php/widgets/CheckboxInputWidget.php',
+    'OOUI\\ComboBoxInputWidget' => $vendorDir . 
'/oojs/oojs-ui/php/widgets/ComboBoxInputWidget.php',
     'OOUI\\DropdownInputWidget' => $vendorDir . 
'/oojs/oojs-ui/php/widgets/DropdownInputWidget.php',
     'OOUI\\Element' => $vendorDir . '/oojs/oojs-ui/php/Element.php',
     'OOUI\\ElementMixin' => $vendorDir . '/oojs/oojs-ui/php/ElementMixin.php',
diff --git a/composer/installed.json b/composer/installed.json
index d4d6da4..b9d62e7 100644
--- a/composer/installed.json
+++ b/composer/installed.json
@@ -1146,79 +1146,6 @@
         "homepage": "https://www.mediawiki.org/wiki/base_convert";
     },
     {
-        "name": "oojs/oojs-ui",
-        "version": "v0.13.1",
-        "version_normalized": "0.13.1.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/wikimedia/oojs-ui.git";,
-            "reference": "c77664633e4d77ad6da991f6afb8d418b20b4058"
-        },
-        "dist": {
-            "type": "zip",
-            "url": 
"https://api.github.com/repos/wikimedia/oojs-ui/zipball/c77664633e4d77ad6da991f6afb8d418b20b4058";,
-            "reference": "c77664633e4d77ad6da991f6afb8d418b20b4058",
-            "shasum": ""
-        },
-        "require": {
-            "mediawiki/at-ease": "1.1.0",
-            "php": ">=5.3.3"
-        },
-        "require-dev": {
-            "jakub-onderka/php-parallel-lint": "0.9",
-            "mediawiki/mediawiki-codesniffer": "0.5.0",
-            "phpunit/phpunit": "~4.5"
-        },
-        "time": "2015-11-03 21:19:39",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "classmap": [
-                "php/"
-            ]
-        },
-        "notification-url": "https://packagist.org/downloads/";,
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Timo Tijhof",
-                "email": "krinklem...@gmail.com"
-            },
-            {
-                "name": "Bartosz Dziewoński",
-                "email": "matma....@gmail.com"
-            },
-            {
-                "name": "Ed Sanders",
-                "email": "esand...@wikimedia.org"
-            },
-            {
-                "name": "James D. Forrester",
-                "email": "jforres...@wikimedia.org"
-            },
-            {
-                "name": "Kirsten Menger-Anderson",
-                "email": "kmen...@wikimedia.org"
-            },
-            {
-                "name": "Rob Moen",
-                "email": "rm...@wikimedia.org"
-            },
-            {
-                "name": "Roan Kattouw",
-                "email": "r...@wikimedia.org"
-            },
-            {
-                "name": "Trevor Parscal",
-                "email": "tre...@wikimedia.org"
-            }
-        ],
-        "description": "Provides library of common widgets, layouts, and 
windows.",
-        "homepage": "https://www.mediawiki.org/wiki/OOjs_UI";
-    },
-    {
         "name": "wikimedia/composer-merge-plugin",
         "version": "v1.3.0",
         "version_normalized": "1.3.0.0",
@@ -1268,5 +1195,78 @@
             }
         ],
         "description": "Composer plugin to merge multiple composer.json files"
+    },
+    {
+        "name": "oojs/oojs-ui",
+        "version": "v0.13.2",
+        "version_normalized": "0.13.2.0",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/wikimedia/oojs-ui.git";,
+            "reference": "b4ff697cb7d0e9ebe5c3c6c72a6a254a5b508923"
+        },
+        "dist": {
+            "type": "zip",
+            "url": 
"https://api.github.com/repos/wikimedia/oojs-ui/zipball/b4ff697cb7d0e9ebe5c3c6c72a6a254a5b508923";,
+            "reference": "b4ff697cb7d0e9ebe5c3c6c72a6a254a5b508923",
+            "shasum": ""
+        },
+        "require": {
+            "mediawiki/at-ease": "1.1.0",
+            "php": ">=5.3.3"
+        },
+        "require-dev": {
+            "jakub-onderka/php-parallel-lint": "0.9",
+            "mediawiki/mediawiki-codesniffer": "0.5.0",
+            "phpunit/phpunit": "~4.5"
+        },
+        "time": "2015-11-10 22:24:15",
+        "type": "library",
+        "installation-source": "dist",
+        "autoload": {
+            "classmap": [
+                "php/"
+            ]
+        },
+        "notification-url": "https://packagist.org/downloads/";,
+        "license": [
+            "MIT"
+        ],
+        "authors": [
+            {
+                "name": "Timo Tijhof",
+                "email": "krinklem...@gmail.com"
+            },
+            {
+                "name": "Bartosz Dziewoński",
+                "email": "matma....@gmail.com"
+            },
+            {
+                "name": "Ed Sanders",
+                "email": "esand...@wikimedia.org"
+            },
+            {
+                "name": "James D. Forrester",
+                "email": "jforres...@wikimedia.org"
+            },
+            {
+                "name": "Kirsten Menger-Anderson",
+                "email": "kmen...@wikimedia.org"
+            },
+            {
+                "name": "Rob Moen",
+                "email": "rm...@wikimedia.org"
+            },
+            {
+                "name": "Roan Kattouw",
+                "email": "r...@wikimedia.org"
+            },
+            {
+                "name": "Trevor Parscal",
+                "email": "tre...@wikimedia.org"
+            }
+        ],
+        "description": "Provides library of common widgets, layouts, and 
windows.",
+        "homepage": "https://www.mediawiki.org/wiki/OOjs_UI";
     }
 ]
diff --git a/oojs/oojs-ui/History.md b/oojs/oojs-ui/History.md
index 51edb31..b665e57 100644
--- a/oojs/oojs-ui/History.md
+++ b/oojs/oojs-ui/History.md
@@ -1,5 +1,24 @@
 # OOjs UI Release History
 
+## v0.13.2 / 2015-11-10
+### Deprecations
+* [DEPRECATING CHANGE] ComboBoxWidget: Refactor into ComboBoxInputWidget 
(Bartosz Dziewoński)
+* [DEPRECATING CHANGE] MediaWiki, Apex themes: Unify add/insert icons (Ed 
Sanders)
+
+### Features
+* ComboBoxInputWidget: Implement PHP version (Bartosz Dziewoński)
+* LookupElement: Make auto-highlighting the first term configurable (Florian)
+
+### Styles
+* Add some missing white backgrounds and use variables when possible (Bartosz 
Dziewoński)
+* MediaWiki theme: Make the menu icon identical to Apex's (Ed Sanders)
+* MediaWiki theme: Specify 'line-height' for DropdownWidget's handle (Bartosz 
Dziewoński)
+* WikiText icon: Make slightly narrower (Ed Sanders)
+
+### Code
+* Apex theme: Remove dead styles for ComboBoxWidget (Bartosz Dziewoński)
+* build: Make copy:fastcomposerdemos work again (Bartosz Dziewoński)
+
 ## v0.13.1 / 2015-11-03
 ### Deprecations
 * [DEPRECATING CHANGE] InputWidget: Replace `#setRTL` with `#setDir` (Ed 
Sanders)
diff --git a/oojs/oojs-ui/bin/testsuitegenerator.rb 
b/oojs/oojs-ui/bin/testsuitegenerator.rb
index 48ba012..b012ca0 100644
--- a/oojs/oojs-ui/bin/testsuitegenerator.rb
+++ b/oojs/oojs-ui/bin/testsuitegenerator.rb
@@ -14,11 +14,12 @@
        tests = []
        classes = php.select{|c| class_names.include? c[:name] }
 
+       untestable_classes = %w[DropdownInputWidget ComboBoxInputWidget 
RadioSelectInputWidget]
        testable_classes = classes
                .reject{|c| c[:abstract] } # can't test abstract classes
                .reject{|c| !c[:parent] || c[:parent] == 'ElementMixin' || 
c[:parent] == 'Theme' } # can't test abstract
                .reject{|c| %w[Element Widget Layout Theme].include? c[:name] } 
# no toplevel
-               .reject{|c| %w[DropdownInputWidget 
RadioSelectInputWidget].include? c[:name] } # different PHP and JS 
implementations
+               .reject{|c| untestable_classes.include? c[:name] } # different 
PHP and JS implementations
 
        # values to test for each type
        expandos = {
diff --git a/oojs/oojs-ui/demos/pages/dialogs.js 
b/oojs/oojs-ui/demos/pages/dialogs.js
index 3e99ecb..66c36c2 100644
--- a/oojs/oojs-ui/demos/pages/dialogs.js
+++ b/oojs/oojs-ui/demos/pages/dialogs.js
@@ -543,8 +543,8 @@
                                } ), $spacer.clone() ]
                        } ),
                        new SamplePage( 'combobox', {
-                               label: 'ComboBoxWidget',
-                               content: [ $spacer.clone(), new 
OO.ui.ComboBoxWidget( {
+                               label: 'ComboBoxInputWidget',
+                               content: [ $spacer.clone(), new 
OO.ui.ComboBoxInputWidget( {
                                        $overlay: this.$overlay,
                                        menu: {
                                                items: this.makeItems()
@@ -552,9 +552,9 @@
                                } ), $spacer.clone() ]
                        } ),
                        new SamplePage( 'combobox2', {
-                               label: 'ComboBoxWidget',
+                               label: 'ComboBoxInputWidget',
                                icon: 'alert',
-                               content: [ $spacer.clone(), new 
OO.ui.ComboBoxWidget( {
+                               content: [ $spacer.clone(), new 
OO.ui.ComboBoxInputWidget( {
                                        menu: {
                                                items: this.makeItems()
                                        }
diff --git a/oojs/oojs-ui/demos/pages/icons.js 
b/oojs/oojs-ui/demos/pages/icons.js
index ffc5112..a645431 100644
--- a/oojs/oojs-ui/demos/pages/icons.js
+++ b/oojs/oojs-ui/demos/pages/icons.js
@@ -130,7 +130,6 @@
                                'alignRight',
                                'calendar',
                                'find',
-                               'insert',
                                'layout',
                                'newline',
                                'noWikiText',
diff --git a/oojs/oojs-ui/demos/pages/widgets.js 
b/oojs/oojs-ui/demos/pages/widgets.js
index b2d5f51..708768b 100644
--- a/oojs/oojs-ui/demos/pages/widgets.js
+++ b/oojs/oojs-ui/demos/pages/widgets.js
@@ -56,11 +56,11 @@
         * @extends OO.ui.TextInputWidget
         * @mixins OO.ui.mixin.LookupElement
         */
-       function NumberLookupTextInputWidget() {
+       function NumberLookupTextInputWidget( config ) {
                // Parent constructor
                OO.ui.TextInputWidget.call( this, { validate: 'integer' } );
                // Mixin constructors
-               OO.ui.mixin.LookupElement.call( this );
+               OO.ui.mixin.LookupElement.call( this, config );
        }
        OO.inheritClass( NumberLookupTextInputWidget, OO.ui.TextInputWidget );
        OO.mixinClass( NumberLookupTextInputWidget, OO.ui.mixin.LookupElement );
@@ -1133,7 +1133,7 @@
                                        }
                                ),
                                new OO.ui.FieldLayout(
-                                       new OO.ui.ComboBoxWidget( {
+                                       new OO.ui.ComboBoxInputWidget( {
                                                menu: {
                                                        items: [
                                                                new 
OO.ui.MenuOptionWidget( { data: 'asd', label: 'Label for asd' } ),
@@ -1145,12 +1145,12 @@
                                                }
                                        } ),
                                        {
-                                               label: 'ComboBoxWidget',
+                                               label: 'ComboBoxInputWidget',
                                                align: 'top'
                                        }
                                ),
                                new OO.ui.FieldLayout(
-                                       new OO.ui.ComboBoxWidget( {
+                                       new OO.ui.ComboBoxInputWidget( {
                                                disabled: true,
                                                menu: {
                                                        items: [
@@ -1163,14 +1163,14 @@
                                                }
                                        } ),
                                        {
-                                               label: 'ComboBoxWidget 
(disabled)\u200E',
+                                               label: 'ComboBoxInputWidget 
(disabled)\u200E',
                                                align: 'top'
                                        }
                                ),
                                new OO.ui.FieldLayout(
-                                       new OO.ui.ComboBoxWidget(),
+                                       new OO.ui.ComboBoxInputWidget(),
                                        {
-                                               label: 'ComboBoxWidget 
(empty)\u200E',
+                                               label: 'ComboBoxInputWidget 
(empty)\u200E',
                                                align: 'top'
                                        }
                                ),
@@ -1588,6 +1588,15 @@
                                        }
                                ),
                                new OO.ui.FieldLayout(
+                                       new NumberLookupTextInputWidget( {
+                                               highlightFirst: false
+                                       } ),
+                                       {
+                                               label: 'LookupElement without 
highlighting 1st term (try inputting an integer)\u200E',
+                                               align: 'top'
+                                       }
+                               ),
+                               new OO.ui.FieldLayout(
                                        new OO.ui.ProgressBarWidget( {
                                                progress: 33
                                        } ),
diff --git a/oojs/oojs-ui/demos/styles/demo.css 
b/oojs/oojs-ui/demos/styles/demo.css
index 9d6bad4..5b3fed0 100644
--- a/oojs/oojs-ui/demos/styles/demo.css
+++ b/oojs/oojs-ui/demos/styles/demo.css
@@ -108,6 +108,7 @@
 
 .oo-ui-demo-console-expanded {
        width: 100%;
+       background-color: #fff;
        border-color: #aaa;
        margin: 0.5em 0;
        -webkit-box-sizing: border-box;
diff --git a/oojs/oojs-ui/demos/widgets.php b/oojs/oojs-ui/demos/widgets.php
index d55f3a5..4ce45ed 100644
--- a/oojs/oojs-ui/demos/widgets.php
+++ b/oojs/oojs-ui/demos/widgets.php
@@ -678,6 +678,44 @@
                                                        )
                                                ),
                                                new OOUI\FieldLayout(
+                                                       new 
OOUI\ComboBoxInputWidget( array(
+                                                               'options' => 
array(
+                                                                       array( 
'data' => 'asd', 'label' => 'Label for asd' ),
+                                                                       array( 
'data' => 'fgh', 'label' => 'Label for fgh' ),
+                                                                       array( 
'data' => 'jkl', 'label' => 'Label for jkl' ),
+                                                                       array( 
'data' => 'zxc', 'label' => 'Label for zxc' ),
+                                                                       array( 
'data' => 'vbn', 'label' => 'Label for vbn' ),
+                                                               )
+                                                       ) ),
+                                                       array(
+                                                               'label' => 
'ComboBoxInputWidget',
+                                                               'align' => 'top'
+                                                       )
+                                               ),
+                                               new OOUI\FieldLayout(
+                                                       new 
OOUI\ComboBoxInputWidget( array(
+                                                               'disabled' => 
true,
+                                                               'options' => 
array(
+                                                                       array( 
'data' => 'asd', 'label' => 'Label for asd' ),
+                                                                       array( 
'data' => 'fgh', 'label' => 'Label for fgh' ),
+                                                                       array( 
'data' => 'jkl', 'label' => 'Label for jkl' ),
+                                                                       array( 
'data' => 'zxc', 'label' => 'Label for zxc' ),
+                                                                       array( 
'data' => 'vbn', 'label' => 'Label for vbn' ),
+                                                               )
+                                                       ) ),
+                                                       array(
+                                                               'label' => 
"ComboBoxInputWidget (disabled)\xE2\x80\x8E",
+                                                               'align' => 'top'
+                                                       )
+                                               ),
+                                               new OOUI\FieldLayout(
+                                                       new 
OOUI\ComboBoxInputWidget(),
+                                                       array(
+                                                               'label' => 
"ComboBoxInputWidget (empty)\xE2\x80\x8E",
+                                                               'align' => 'top'
+                                                       )
+                                               ),
+                                               new OOUI\FieldLayout(
                                                        new 
OOUI\ButtonInputWidget( array(
                                                                'label' => 
'Submit the form',
                                                                'type' => 
'submit'
diff --git a/oojs/oojs-ui/i18n/bs.json b/oojs/oojs-ui/i18n/bs.json
index 162790e..d41efdb 100644
--- a/oojs/oojs-ui/i18n/bs.json
+++ b/oojs/oojs-ui/i18n/bs.json
@@ -18,5 +18,6 @@
        "ooui-dialog-process-dismiss": "Odbaci",
        "ooui-dialog-process-retry": "Pokušajte ponovo",
        "ooui-dialog-process-continue": "Nastavi",
+       "ooui-selectfile-button-select": "Izaberi datoteku",
        "ooui-selectfile-placeholder": "Nijedna datoteka nije izabrana"
 }
diff --git a/oojs/oojs-ui/i18n/cs.json b/oojs/oojs-ui/i18n/cs.json
index fb93e3a..734b738 100644
--- a/oojs/oojs-ui/i18n/cs.json
+++ b/oojs/oojs-ui/i18n/cs.json
@@ -11,7 +11,8 @@
                        "Polda18",
                        "Tchoř",
                        "ශ්වෙත",
-                       "Vojtěch Dostál"
+                       "Vojtěch Dostál",
+                       "Matěj Suchánek"
                ]
        },
        "ooui-outline-control-move-down": "Přesunout položku dolů",
@@ -28,5 +29,6 @@
        "ooui-dialog-process-continue": "Pokračovat",
        "ooui-selectfile-button-select": "Vybrat soubor",
        "ooui-selectfile-not-supported": "Výběr souboru není podporován",
-       "ooui-selectfile-placeholder": "Nebyl vybrán žádný soubor"
+       "ooui-selectfile-placeholder": "Nebyl vybrán žádný soubor",
+       "ooui-selectfile-dragdrop-placeholder": "Umístěte soubor sem"
 }
diff --git a/oojs/oojs-ui/i18n/wuu.json b/oojs/oojs-ui/i18n/wuu.json
index 61e3d01..6481624 100644
--- a/oojs/oojs-ui/i18n/wuu.json
+++ b/oojs/oojs-ui/i18n/wuu.json
@@ -2,8 +2,9 @@
        "@metadata": {
                "authors": [
                        "Malafaya",
-                       "十弌"
+                       "十弌",
+                       "飞舞回堂前"
                ]
        },
-       "ooui-toolbar-more": "還多"
+       "ooui-toolbar-more": "更多"
 }
diff --git a/oojs/oojs-ui/package.json b/oojs/oojs-ui/package.json
index d2e43af..9a897eb 100644
--- a/oojs/oojs-ui/package.json
+++ b/oojs/oojs-ui/package.json
@@ -1,6 +1,6 @@
 {
   "name": "oojs-ui",
-  "version": "0.13.1",
+  "version": "0.13.2",
   "description": "User interface classes built on the OOjs framework.",
   "keywords": [
     "oojs-plugin",
diff --git a/oojs/oojs-ui/php/widgets/ComboBoxInputWidget.php 
b/oojs/oojs-ui/php/widgets/ComboBoxInputWidget.php
new file mode 100644
index 0000000..e8e4208
--- /dev/null
+++ b/oojs/oojs-ui/php/widgets/ComboBoxInputWidget.php
@@ -0,0 +1,78 @@
+<?php
+
+namespace OOUI;
+
+/**
+ * Combo box input widget, wrapping a text input with `<datalist>`. Intended 
to be used within a
+ * OO.ui.FormLayout.
+ */
+class ComboBoxInputWidget extends TextInputWidget {
+
+       /**
+        * HTML `<option>` tags for this widget.
+        * @var Tag[]
+        */
+       protected $options = array();
+
+       /**
+        * @param array $config Configuration options
+        * @param array[] $config['options'] Array of menu options in the format
+        *   `array( 'data' => …, 'label' => … )`
+        */
+       public function __construct( array $config = array() ) {
+               // Config initialization
+               $config = array_merge( array(
+                       'indicator' => 'down',
+               ), $config );
+
+               // Parent constructor
+               parent::__construct( $config );
+
+               // Mixins
+               $this->mixin( new TitledElement( $this,
+                       array_merge( $config, array( 'titled' => $this->input ) 
) ) );
+
+               // Initialization
+               $this->datalist = new Tag( 'datalist' );
+               $this->datalist->ensureInfusableId();
+               $this->input->setAttributes( array( 'list' => 
$this->datalist->getAttribute( 'id' ) ) );
+
+               $this->setOptions( isset( $config['options'] ) ? 
$config['options'] : array() );
+               $this->addClasses( array( 'oo-ui-comboBoxInputWidget', 
'oo-ui-comboBoxInputWidget-php' ) );
+               $this->appendContent( $this->datalist );
+       }
+
+       /**
+        * Set the options available for this input.
+        *
+        * @param array[] $options Array of menu options in the format
+        *   `array( 'data' => …, 'label' => … )`
+        * @chainable
+        */
+       public function setOptions( $options ) {
+               $this->options = array();
+
+               $this->datalist->clearContent();
+               foreach ( $options as $opt ) {
+                       $option = new Tag( 'option' );
+                       $option->setAttributes( array( 'value' => $opt['data'] 
) );
+                       $option->appendContent( isset( $opt['label'] ) ? 
$opt['label'] : $opt['data'] );
+
+                       $this->options[] = $option;
+                       $this->datalist->appendContent( $option );
+               }
+
+               return $this;
+       }
+
+       public function getConfig( &$config ) {
+               $o = array();
+               foreach ( $this->options as $option ) {
+                       $label = $option->content[0];
+                       $data = $option->getAttribute( 'value' );
+                       $o[] = array( 'data' => $data, 'label' => $label );
+               }
+               $config['options'] = $o;
+               return parent::getConfig( $config );
+       }
+}

-- 
To view, visit https://gerrit.wikimedia.org/r/252356
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I0626d91d4b93e1d680579f1e6a02555c6050127f
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/vendor
Gerrit-Branch: master
Gerrit-Owner: Jforrester <jforres...@wikimedia.org>
Gerrit-Reviewer: Esanders <esand...@wikimedia.org>
Gerrit-Reviewer: Legoktm <legoktm.wikipe...@gmail.com>
Gerrit-Reviewer: Siebrand <siebr...@kitano.nl>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to