Jforrester has uploaded a new change for review. https://gerrit.wikimedia.org/r/279067
Change subject: Update OOjs UI to v0.16.4 ...................................................................... Update OOjs UI to v0.16.4 Release notes: https://git.wikimedia.org/blob/oojs%2Fui.git/v0.16.4/History.md Change-Id: Ic0f8cf4fc956feff29189c4d3e1d83e071daa8f7 --- M composer.json M composer.lock M composer/installed.json M oojs/oojs-ui/Gemfile.lock M oojs/oojs-ui/History.md M oojs/oojs-ui/README.md M oojs/oojs-ui/bin/doccomparer.rb M oojs/oojs-ui/bin/testsuitegenerator.rb M oojs/oojs-ui/demos/pages/widgets.js M oojs/oojs-ui/i18n/ba.json M oojs/oojs-ui/i18n/hi.json M oojs/oojs-ui/package.json M oojs/oojs-ui/php/Tag.php M oojs/oojs-ui/php/mixins/GroupElement.php M oojs/oojs-ui/php/mixins/LabelElement.php 15 files changed, 136 insertions(+), 64 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/vendor refs/changes/67/279067/1 diff --git a/composer.json b/composer.json index 90ce235..5684cc3 100644 --- a/composer.json +++ b/composer.json @@ -16,7 +16,7 @@ "mediawiki/at-ease": "1.1.0", "monolog/monolog": "1.17.2", "nmred/kafka-php": "0.1.5", - "oojs/oojs-ui": "0.16.3", + "oojs/oojs-ui": "0.16.4", "oyejorge/less.php": "1.7.0.10", "pear/console_getopt": "1.4.1", "pear/mail": "1.2.0", diff --git a/composer.lock b/composer.lock index 6a33293..3cbde94 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": "19062191291287a379f9403b3253cff9", - "content-hash": "255ec534e934729136c0da556c0b9519", + "hash": "01bd1cbf8516b2f035cbacc42d4f6439", + "content-hash": "0fa2716f3acd09f164e8b5396ce922b7", "packages": [ { "name": "composer/semver", @@ -363,16 +363,16 @@ }, { "name": "oojs/oojs-ui", - "version": "v0.16.3", + "version": "v0.16.4", "source": { "type": "git", "url": "https://github.com/wikimedia/oojs-ui.git", - "reference": "837e96a7aaa535adace3527ee1af079170e1c6b6" + "reference": "7047e7f7a2a02bb267d2f81e4895c84c379e6e20" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wikimedia/oojs-ui/zipball/837e96a7aaa535adace3527ee1af079170e1c6b6", - "reference": "837e96a7aaa535adace3527ee1af079170e1c6b6", + "url": "https://api.github.com/repos/wikimedia/oojs-ui/zipball/7047e7f7a2a02bb267d2f81e4895c84c379e6e20", + "reference": "7047e7f7a2a02bb267d2f81e4895c84c379e6e20", "shasum": "" }, "require": { @@ -438,7 +438,7 @@ ], "description": "Provides library of common widgets, layouts, and windows.", "homepage": "https://www.mediawiki.org/wiki/OOjs_UI", - "time": "2016-03-16 19:05:24" + "time": "2016-03-22 22:14:46" }, { "name": "oyejorge/less.php", diff --git a/composer/installed.json b/composer/installed.json index fa2572f..e7d75a0 100644 --- a/composer/installed.json +++ b/composer/installed.json @@ -1685,17 +1685,17 @@ }, { "name": "oojs/oojs-ui", - "version": "v0.16.3", - "version_normalized": "0.16.3.0", + "version": "v0.16.4", + "version_normalized": "0.16.4.0", "source": { "type": "git", "url": "https://github.com/wikimedia/oojs-ui.git", - "reference": "837e96a7aaa535adace3527ee1af079170e1c6b6" + "reference": "7047e7f7a2a02bb267d2f81e4895c84c379e6e20" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wikimedia/oojs-ui/zipball/837e96a7aaa535adace3527ee1af079170e1c6b6", - "reference": "837e96a7aaa535adace3527ee1af079170e1c6b6", + "url": "https://api.github.com/repos/wikimedia/oojs-ui/zipball/7047e7f7a2a02bb267d2f81e4895c84c379e6e20", + "reference": "7047e7f7a2a02bb267d2f81e4895c84c379e6e20", "shasum": "" }, "require": { @@ -1707,7 +1707,7 @@ "mediawiki/mediawiki-codesniffer": "0.6.0", "phpunit/phpunit": "4.8.21" }, - "time": "2016-03-16 19:05:24", + "time": "2016-03-22 22:14:46", "type": "library", "installation-source": "dist", "autoload": { diff --git a/oojs/oojs-ui/Gemfile.lock b/oojs/oojs-ui/Gemfile.lock index a5a0e19..edc16d5 100644 --- a/oojs/oojs-ui/Gemfile.lock +++ b/oojs/oojs-ui/Gemfile.lock @@ -1,25 +1,25 @@ GEM remote: https://rubygems.org/ specs: - ast (2.0.0) - astrolabe (1.3.0) - parser (>= 2.2.0.pre.3, < 3.0) - parser (2.2.0.pre.7) - ast (>= 1.1, < 3.0) - slop (~> 3.4, >= 3.4.5) - powerpack (0.0.9) - rainbow (2.0.0) - rubocop (0.27.1) - astrolabe (~> 1.3) - parser (>= 2.2.0.pre.7, < 3.0) - powerpack (~> 0.0.6) + ast (2.2.0) + parser (2.3.0.6) + ast (~> 2.2) + powerpack (0.1.1) + rainbow (2.1.0) + rubocop (0.38.0) + parser (>= 2.3.0.6, < 3.0) + powerpack (~> 0.1) rainbow (>= 1.99.1, < 3.0) - ruby-progressbar (~> 1.4) - ruby-progressbar (1.7.0) - slop (3.6.0) + ruby-progressbar (~> 1.7) + unicode-display_width (~> 1.0, >= 1.0.1) + ruby-progressbar (1.7.5) + unicode-display_width (1.0.2) PLATFORMS ruby DEPENDENCIES rubocop + +BUNDLED WITH + 1.11.2 diff --git a/oojs/oojs-ui/History.md b/oojs/oojs-ui/History.md index ef19e51..c52310d 100644 --- a/oojs/oojs-ui/History.md +++ b/oojs/oojs-ui/History.md @@ -1,5 +1,23 @@ # OOjs UI Release History +## v0.16.4 / 2016-03-22 +### Features +* NumberInputWidget: Optionally don't show the increment buttons (Thalia Chan) + +### Styles +* NumberInputWidget: Fix rounded corners when showButtons=false (Ed Sanders) + +### Code +* core: Add tests for throttle (David Lynch) +* Tag: Allow appendContent and prependContent to accept an array (Moriel Schottlender) +* LabelElement: Cast label to string before check if it is empty (Florian) +* README.md: Add note about needing composer, clean up more generally (James D. Forrester) +* build: Bump grunt-karma to 0.12.2 (Paladox) +* build: Drop the 'npm prepublish' task which runs pre-install as well (James D. Forrester) +* demos: Restore constructive widgets (James D. Forrester) +* rubocop: Re-run todos, upgrade to newer rule names (James D. Forrester) +* rubocop: Review todos (Bartosz Dziewoński) + ## v0.16.3 / 2016-03-16 ### Features * core: Add `#throttle` to complement `#debounce` (David Lynch) diff --git a/oojs/oojs-ui/README.md b/oojs/oojs-ui/README.md index fd415b0..10a05bf 100644 --- a/oojs/oojs-ui/README.md +++ b/oojs/oojs-ui/README.md @@ -15,9 +15,11 @@ If you don't want to use npm, you can: -1. Clone the repo, `git clone https://git.wikimedia.org/git/oojs/ui.git`. +1. Clone the repo and move into it, `$ git clone https://git.wikimedia.org/git/oojs/ui.git oojs-ui && cd oojs-ui`. 1. Install Grunt command-line utility:<br/>`$ npm install -g grunt-cli` + +1. Install [composer](https://getcomposer.org/download/) and make sure running `composer` will execute it (*e.g.* add it to `$PATH` in POSIX environments). 1. Install dev dependencies and build the distribution files:<br/>`$ npm install` @@ -31,15 +33,15 @@ While the distribution directory is chock-full of files, you will normally only need to load three: -* `oojs-ui.js` containing the full library -* `oojs-ui-apex.css` or `oojs-ui-mediawiki.css` containing theme-specific styles -* `oojs-ui-apex.js` or `oojs-ui-mediawiki.js` containing theme-specific code +* `oojs-ui.js`, containing the full library +* One of `oojs-ui-apex.css` or `oojs-ui-mediawiki.css`, containing theme-specific styles +* One of `oojs-ui-apex.js` or `oojs-ui-mediawiki.js`, containing theme-specific code -You can load additional icons packs from files named `oojs-ui-apex-icons-*.css` or `oojs-ui-mediawiki-icons-*.css`. +You can load additional icon packs from files named `oojs-ui-apex-icons-*.css` or `oojs-ui-mediawiki-icons-*.css`. The remaining files make it possible to load only parts of the whole library. -Furthermore, every CSS file has a right-to-left (RTL) version available, to be used on pages using right-to-left languages. +Furthermore, every CSS file has a right-to-left (RTL) version available, to be used on pages using right-to-left languages if your environment doesn't automatically flip them as needed. Versioning @@ -111,6 +113,6 @@ $ git remote update $ git checkout origin/master $ git tag "vX.X.X" -$ git push --tags +$ npm run publish-build && git push --tags $ npm publish </pre> diff --git a/oojs/oojs-ui/bin/doccomparer.rb b/oojs/oojs-ui/bin/doccomparer.rb index cd3623d..3a7cd31 100644 --- a/oojs/oojs-ui/bin/doccomparer.rb +++ b/oojs/oojs-ui/bin/doccomparer.rb @@ -105,7 +105,8 @@ b_val = b ? canonicalize(b[key]) : nil if [a_val, b_val] == [{}, []] || [a_val, b_val] == [[], {}] - a_val, b_val = {}, {} + a_val = {} + b_val = {} end if a_val.is_a?(Hash) && b_val.is_a?(Hash) @@ -115,16 +116,14 @@ else "#{key}: MISMATCH\n#{comparison_result}" end + elsif a_val == b_val + "#{key}: match" if $VERBOSE + elsif a_val.nil? + "#{key}: #{a_name} missing" + elsif b_val.nil? + "#{key}: #{b_name} missing" else - if a_val == b_val - "#{key}: match" if $VERBOSE - elsif a_val.nil? - "#{key}: #{a_name} missing" - elsif b_val.nil? - "#{key}: #{b_name} missing" - else - "#{key}: MISMATCH\n #{a_name}: #{a_val.inspect}\n #{b_name}: #{b_val.inspect}" - end + "#{key}: MISMATCH\n #{a_name}: #{a_val.inspect}\n #{b_name}: #{b_val.inspect}" end end out.compact.join "\n" diff --git a/oojs/oojs-ui/bin/testsuitegenerator.rb b/oojs/oojs-ui/bin/testsuitegenerator.rb index b08d942..9091052 100644 --- a/oojs/oojs-ui/bin/testsuitegenerator.rb +++ b/oojs/oojs-ui/bin/testsuitegenerator.rb @@ -137,7 +137,7 @@ values.map{|v| config_option.dup.merge(value: v) } + [nil] end } - expanded.length > 0 ? expanded[0].product(*expanded[1..-1]) : [] + expanded.empty? ? [] : expanded[0].product(*expanded[1..-1]) }.inject(:concat).map(&:compact).uniq # really require the required ones diff --git a/oojs/oojs-ui/demos/pages/widgets.js b/oojs/oojs-ui/demos/pages/widgets.js index 4ffd1af..2820c58 100644 --- a/oojs/oojs-ui/demos/pages/widgets.js +++ b/oojs/oojs-ui/demos/pages/widgets.js @@ -189,10 +189,16 @@ flags: [ 'progressive' ] }, { + flags: [ 'constructive' ] + }, + { flags: [ 'destructive' ] }, { flags: [ 'primary', 'progressive' ] + }, + { + flags: [ 'primary', 'constructive' ] }, { flags: [ 'primary', 'destructive' ] @@ -278,7 +284,7 @@ flags: [ 'constructive' ] } ), { - label: 'ButtonWidget (constructive, deprecated)\u200E', + label: 'ButtonWidget (constructive, deprecated in MediaWiki theme)\u200E', align: 'top' } ), @@ -308,7 +314,7 @@ flags: [ 'primary', 'constructive' ] } ), { - label: 'ButtonWidget (primary, constructive, deprecated)\u200E', + label: 'ButtonWidget (primary, constructive, deprecated in MediaWiki theme)\u200E', align: 'top' } ), @@ -784,6 +790,13 @@ } ), new OO.ui.FieldLayout( + new OO.ui.NumberInputWidget( { showButtons: false } ), + { + label: 'NumberInputWidget (no buttons)', + align: 'top' + } + ), + new OO.ui.FieldLayout( new OO.ui.ToggleSwitchWidget(), { label: 'ToggleSwitchWidget', diff --git a/oojs/oojs-ui/i18n/ba.json b/oojs/oojs-ui/i18n/ba.json index ff915b0..d8c99aa 100644 --- a/oojs/oojs-ui/i18n/ba.json +++ b/oojs/oojs-ui/i18n/ba.json @@ -6,9 +6,24 @@ "Assele", "Haqmar", "Sagan", - "Рустам Нурыев" + "Рустам Нурыев", + "Азат Хәлилов" ] }, - "ooui-outline-control-move-down": "Аҫҡа күсерергә", - "ooui-outline-control-move-up": "Өҫкә күсерергә" + "ooui-outline-control-move-down": "Элементты аҫҡа күсерергә", + "ooui-outline-control-move-up": "Элементты өҫкә күсерергә", + "ooui-outline-control-remove": "Биттәрҙе юйырға", + "ooui-toolbar-more": "Тағы", + "ooui-toolgroup-expand": "Күберәк", + "ooui-toolgroup-collapse": "Аҙыраҡ", + "ooui-dialog-message-accept": "Тамам", + "ooui-dialog-message-reject": "Кире алырға", + "ooui-dialog-process-error": "Нимәлер килеп сыҡманы.", + "ooui-dialog-process-dismiss": "Йәшерергә", + "ooui-dialog-process-retry": "Ҡабатлап ҡарарға.", + "ooui-dialog-process-continue": "Дауам итергә", + "ooui-selectfile-button-select": "Файлды һайлағыҙ", + "ooui-selectfile-not-supported": "Файл һайлау хупланмай.", + "ooui-selectfile-placeholder": "Файл һайланмаған", + "ooui-selectfile-dragdrop-placeholder": "Файлды бында күсерегеҙ" } diff --git a/oojs/oojs-ui/i18n/hi.json b/oojs/oojs-ui/i18n/hi.json index 573096f..ce007fc 100644 --- a/oojs/oojs-ui/i18n/hi.json +++ b/oojs/oojs-ui/i18n/hi.json @@ -7,7 +7,8 @@ "Siddhartha Ghai", "Goelujjwal", "Ankita-ks", - "Param Mudgal" + "Param Mudgal", + "Sfic" ] }, "ooui-outline-control-move-down": "प्रविष्टि नीचे ले जाएँ", @@ -22,6 +23,8 @@ "ooui-dialog-process-dismiss": "ख़ारिज करें", "ooui-dialog-process-retry": "पुनः प्रयास करें", "ooui-dialog-process-continue": "जारी रखें", + "ooui-selectfile-button-select": "फ़ाइल चुनें", "ooui-selectfile-not-supported": "फ़ाइल का चयन समर्थित नहीं है", - "ooui-selectfile-placeholder": "कोई फाइल चुनी नही गई हेै" + "ooui-selectfile-placeholder": "कोई फाइल चुनी नही गई हेै", + "ooui-selectfile-dragdrop-placeholder": "फ़ाइल यहाँ डालें" } diff --git a/oojs/oojs-ui/package.json b/oojs/oojs-ui/package.json index 724a7c3..5ebbe8b 100644 --- a/oojs/oojs-ui/package.json +++ b/oojs/oojs-ui/package.json @@ -1,6 +1,6 @@ { "name": "oojs-ui", - "version": "0.16.3", + "version": "0.16.4", "description": "User interface classes built on the OOjs framework.", "keywords": [ "oojs-plugin", @@ -17,7 +17,7 @@ "predoc": "grunt build", "doc": "jsduck", "postdoc": "grunt copy:jsduck", - "prepublish": "grunt publish-build", + "publish-build": "grunt publish-build", "demos": "grunt demos" }, "dependencies": { @@ -44,7 +44,7 @@ "grunt-image": "1.3.0", "grunt-jscs": "2.8.0", "grunt-jsonlint": "1.0.7", - "grunt-karma": "0.12.1", + "grunt-karma": "0.12.2", "grunt-promise-q": "0.1.1", "grunt-svg2png": "git://github.com/jdforrester/grunt-svg2png.git#2fe1dad07eaec4b655263f8b487a672df4b668b4", "grunt-tyops": "0.1.0", diff --git a/oojs/oojs-ui/php/Tag.php b/oojs/oojs-ui/php/Tag.php index 95fe115..b65f5fd 100644 --- a/oojs/oojs-ui/php/Tag.php +++ b/oojs/oojs-ui/php/Tag.php @@ -167,7 +167,14 @@ /** * Add content to the end. * - * Accepts variadic arguments (the $content argument can be repeated any number of times). + * Accepts either variadic arguments (the $content argument can be repeated any number of times) + * or an array of arguments. + * + * For example, these uses are valid: + * * $tag->appendContent( [ $element1, $element2 ] ); + * * $tag->appendContent( $element1, $element2 ); + * This, however, is not acceptable + * * $tag->appendContent( [ $element1, $element2 ], $element3 ); * * @param string|Tag|HtmlSnippet $content Content to append. Strings will be HTML-escaped * for output, use a HtmlSnippet instance to prevent that. @@ -175,14 +182,25 @@ */ public function appendContent( /* $content... */ ) { $contents = func_get_args(); - $this->content = array_merge( $this->content, $contents ); + if ( is_array( $contents[ 0 ] ) ) { + $this->content = array_merge( $this->content, $contents[ 0 ] ); + } else { + $this->content = array_merge( $this->content, $contents ); + } return $this; } /** * Add content to the beginning. * - * Accepts variadic arguments (the $content argument can be repeated any number of times). + * Accepts either variadic arguments (the $content argument can be repeated any number of times) + * or an array of arguments. + * + * For example, these uses are valid: + * * $tag->prependContent( [ $element1, $element2 ] ); + * * $tag->prependContent( $element1, $element2 ); + * This, however, is not acceptable + * * $tag->prependContent( [ $element1, $element2 ], $element3 ); * * @param string|Tag|HtmlSnippet $content Content to prepend. Strings will be HTML-escaped * for output, use a HtmlSnippet instance to prevent that. @@ -190,7 +208,11 @@ */ public function prependContent( /* $content... */ ) { $contents = func_get_args(); - array_splice( $this->content, 0, 0, $contents ); + if ( is_array( $contents[ 0 ] ) ) { + array_splice( $this->content, 0, 0, $contents[ 0 ] ); + } else { + array_splice( $this->content, 0, 0, $contents ); + } return $this; } diff --git a/oojs/oojs-ui/php/mixins/GroupElement.php b/oojs/oojs-ui/php/mixins/GroupElement.php index 1409c0b..93b730d 100644 --- a/oojs/oojs-ui/php/mixins/GroupElement.php +++ b/oojs/oojs-ui/php/mixins/GroupElement.php @@ -77,7 +77,7 @@ // Update actual target element contents to reflect our list $this->target->clearContent(); - call_user_func_array( [ $this->target, 'appendContent' ], $this->items ); + $this->target->appendContent( $this->items ); return $this; } @@ -99,7 +99,7 @@ // Update actual target element contents to reflect our list $this->target->clearContent(); - call_user_func_array( [ $this->target, 'appendContent' ], $this->items ); + $this->target->appendContent( $this->items ); return $this; } diff --git a/oojs/oojs-ui/php/mixins/LabelElement.php b/oojs/oojs-ui/php/mixins/LabelElement.php index 4affb5f..663972c 100644 --- a/oojs/oojs-ui/php/mixins/LabelElement.php +++ b/oojs/oojs-ui/php/mixins/LabelElement.php @@ -43,7 +43,7 @@ * @return $this */ public function setLabel( $label ) { - $this->label = $label; + $this->label = (string)$label ? $label : null; $this->target->clearContent(); if ( $this->label !== null ) { -- To view, visit https://gerrit.wikimedia.org/r/279067 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ic0f8cf4fc956feff29189c4d3e1d83e071daa8f7 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/vendor Gerrit-Branch: master Gerrit-Owner: Jforrester <[email protected]> _______________________________________________ MediaWiki-commits mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits
