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