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

Reply via email to