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

Change subject: New Wikidata Build - 2015-07-28T10:00:01+0000
......................................................................


New Wikidata Build - 2015-07-28T10:00:01+0000

Change-Id: I5e305c20af3342ea190deed22de0c9ef0feefc7b
---
M composer.lock
M extensions/Wikibase/.jscsrc
M extensions/Wikibase/.jshintignore
M extensions/Wikibase/client/i18n/fi.json
M extensions/Wikibase/client/i18n/tt-cyrl.json
A extensions/Wikibase/lib/i18n/tt-cyrl.json
M extensions/Wikibase/package.json
M extensions/Wikibase/repo/i18n/de.json
M extensions/Wikibase/repo/i18n/en.json
M extensions/Wikibase/repo/i18n/es.json
M extensions/Wikibase/repo/i18n/he.json
M extensions/Wikibase/repo/i18n/lt.json
M extensions/Wikibase/repo/i18n/pt.json
M extensions/Wikibase/repo/i18n/qqq.json
M extensions/Wikibase/repo/i18n/tt-cyrl.json
M extensions/Wikibase/repo/includes/specials/SpecialNewEntity.php
M extensions/Wikibase/repo/tests/phpunit/includes/api/GetEntitiesTest.php
M extensions/Wikibase/repo/tests/phpunit/includes/api/ResultBuilderTest.php
M 
extensions/Wikibase/view/resources/jquery/wikibase/jquery.wikibase.statementview.js
M vendor/composer/installed.json
20 files changed, 290 insertions(+), 31 deletions(-)

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



diff --git a/composer.lock b/composer.lock
index 3a8ddcf..b3b642f 100644
--- a/composer.lock
+++ b/composer.lock
@@ -1326,12 +1326,12 @@
             "source": {
                 "type": "git",
                 "url": 
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git";,
-                "reference": "7d80a60c43ad630fa2339e30631ab9d1b41204e2"
+                "reference": "c437e8eb6dcf9e537a8d2373915e835f99691319"
             },
             "dist": {
                 "type": "zip",
-                "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/7d80a60c43ad630fa2339e30631ab9d1b41204e2";,
-                "reference": "7d80a60c43ad630fa2339e30631ab9d1b41204e2",
+                "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/c437e8eb6dcf9e537a8d2373915e835f99691319";,
+                "reference": "c437e8eb6dcf9e537a8d2373915e835f99691319",
                 "shasum": ""
             },
             "require": {
@@ -1399,7 +1399,7 @@
                 "wikibaserepo",
                 "wikidata"
             ],
-            "time": "2015-07-26 19:42:34"
+            "time": "2015-07-28 08:34:21"
         },
         {
             "name": "wikibase/wikimedia-badges",
diff --git a/extensions/Wikibase/.jscsrc b/extensions/Wikibase/.jscsrc
index f66f6bd..312c030 100644
--- a/extensions/Wikibase/.jscsrc
+++ b/extensions/Wikibase/.jscsrc
@@ -3,12 +3,26 @@
        "preset": "wikimedia",
 
        // ----
-       // Rules from wikimedia preset we don't follow
+       // Rules from wikimedia preset we don't yet? follow
 
        "validateIndentation": null,
        "requireMultipleVarDecl": null,
        "disallowDanglingUnderscores": null,
-       "requireSpacesInsideArrayBrackets": null,
+       "requireSpacesInsideBrackets": null,
+       "requireVarDeclFirst": null,
+       "jsDoc": {
+               // what we don't yet follow is commented out
+               //"checkAnnotations": "jsduck5",
+               //"checkParamNames": true,
+               "requireParamTypes": true,
+               "checkRedundantParams": true,
+               //"checkReturnTypes": true,
+               "checkRedundantReturns": true,
+               //"requireReturnTypes": true,
+               //"checkTypes": "capitalizedNativeCase",
+               "checkRedundantAccess": true
+               //"requireNewlineAfterDescription": true
+       },
 
        // ----
        // Own rules
@@ -24,5 +38,5 @@
                "else"
        ],
 
-       "excludeFiles": [ "node_modules/**", "vendor/**" ]
+       "excludeFiles": [ "node_modules/**", "vendor/**", "extensions/**" ]
 }
diff --git a/extensions/Wikibase/.jshintignore 
b/extensions/Wikibase/.jshintignore
index a860310..48b4341 100644
--- a/extensions/Wikibase/.jshintignore
+++ b/extensions/Wikibase/.jshintignore
@@ -1 +1,3 @@
 node_modules/**
+vendor/**
+extensions/**
diff --git a/extensions/Wikibase/client/i18n/fi.json 
b/extensions/Wikibase/client/i18n/fi.json
index 6413045..b9aa968 100644
--- a/extensions/Wikibase/client/i18n/fi.json
+++ b/extensions/Wikibase/client/i18n/fi.json
@@ -13,8 +13,8 @@
        "wikibase-client-desc": "Wikibase-laajennuksen asiakasohjelma",
        "tooltip-t-wikibase": "Linkki yhdistettyyn keskustietovaraston 
kohteeseen",
        "wikibase-after-page-move": "Voit myös [$1 päivittää] sivuun liittyvän 
{{WBREPONAME}}-kohteen säilyttääksesi kielilinkit siirretyllä sivulla.",
-       "wikibase-after-page-move-queued": "Tähän sivuun liitetty [$1 
{{WBREPONAME}}-kohde] päivitetään pian automaattisesti.",
-       "wikibase-after-page-delete-queued": "Tähän sivuun liitetty [$1 
{{WBREPONAME}}-kohde] päivitetään pian automaattisesti.",
+       "wikibase-after-page-move-queued": "Tähän sivuun liitetty [$1 
{{WBREPONAME}}-kohde] päivitetään pian automaattisesti. Huomaa, että se ei 
välttämättä tapahdu välittömästi.",
+       "wikibase-after-page-delete-queued": "Tähän sivuun liitetty [$1 
{{WBREPONAME}}-kohde] päivitetään pian automaattisesti. Huomaa, että se ei 
välttämättä tapahdu välittömästi.",
        "wikibase-comment-add": "{{WBREPONAME}}-kohde luotu.",
        "wikibase-comment-remove": "Sivuun liittyvä {{WBREPONAME}}-kohde 
poistettu. Kielilinkit poistettu.",
        "wikibase-comment-linked": "{{WBREPONAME}}-kohteesta on tehty linkki 
tähän sivuun.",
@@ -54,8 +54,7 @@
        "wikibase-watchlist-show-changes-pref": "Näytä 
{{WBREPONAME}}-muokkaukset tarkkailulistalla",
        "wikibase-error-serialize-error": "Tietojen sarjoittaminen 
epäonnistui.",
        "wikibase-error-invalid-entity-id": "Antamasi tunniste on 
järjestelmälle tuntematon. Käytä kelvollista tunnistetta.",
-       "special-unconnectedpages": "Sivut, joita ei ole liitetty kohteisiin",
-       "wikibase-unconnectedpages-legend": "Liittämättömien sivujen valinnat",
+       "unconnectedpages": "Sivut, joita ei ole liitetty kohteisiin",
        "wikibase-unconnectedpages-page": "Aloita tulokset sivusta",
        "wikibase-unconnectedpages-submit": "Siirry",
        "wikibase-unconnectedpages-invalid-language": "”$1” ei ole kelvollinen 
kielikoodi.",
diff --git a/extensions/Wikibase/client/i18n/tt-cyrl.json 
b/extensions/Wikibase/client/i18n/tt-cyrl.json
index 3bbdf4e..39b9f80 100644
--- a/extensions/Wikibase/client/i18n/tt-cyrl.json
+++ b/extensions/Wikibase/client/i18n/tt-cyrl.json
@@ -3,10 +3,12 @@
                "authors": [
                        "Ilnur efende",
                        "Умар",
-                       "Derslek"
+                       "Derslek",
+                       "Ильнар"
                ]
        },
        "tooltip-t-wikibase": "Үзара бәйләнгән мәгълүматләр репозиториясе 
элементларына сылтама",
+       "wikibase-comment-update": "{{grammar:genitive|{{WBREPONAME}}}} 
элементы үзгәртелде",
        "wikibase-dataitem": "{{grammar:genitive|{{WBREPONAME}}}} мәгълүмат 
элементы",
        "wikibase-editlinks": "Сылтамалар өстәү",
        "wikibase-editlinkstitle": "Башка телләргә сылтамалар өстәү",
diff --git a/extensions/Wikibase/lib/i18n/tt-cyrl.json 
b/extensions/Wikibase/lib/i18n/tt-cyrl.json
new file mode 100644
index 0000000..0f3fb0c
--- /dev/null
+++ b/extensions/Wikibase/lib/i18n/tt-cyrl.json
@@ -0,0 +1,8 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Ильнар"
+               ]
+       },
+       "wikibase-sitelinks-wikipedia": "Википедия"
+}
diff --git a/extensions/Wikibase/package.json b/extensions/Wikibase/package.json
index 2e22208..43022cd 100644
--- a/extensions/Wikibase/package.json
+++ b/extensions/Wikibase/package.json
@@ -11,7 +11,7 @@
        "author": "The Wikidata team",
        "license": "GPL-2.0+",
        "devDependencies": {
-               "jscs": "",
+               "jscs": ">=2.0",
                "jshint": ""
        }
 }
diff --git a/extensions/Wikibase/repo/i18n/de.json 
b/extensions/Wikibase/repo/i18n/de.json
index cea94f3..b0ce8bc 100644
--- a/extensions/Wikibase/repo/i18n/de.json
+++ b/extensions/Wikibase/repo/i18n/de.json
@@ -50,6 +50,7 @@
        "wikibase-description-empty": "Keine Beschreibung vorhanden",
        "wikibase-description-edit-placeholder": "Beschreibung eingeben",
        "wikibase-description-edit-placeholder-language-aware": "Beschreibung 
auf $1 eingeben",
+       "wikibase-aliases-edit-placeholder-language-aware": "Einige Aliasse auf 
$1 angeben",
        "wikibase-diffview-reference": "Referenz",
        "wikibase-diffview-rank": "Rang",
        "wikibase-diffview-rank-preferred": "Vorrangig",
@@ -168,6 +169,7 @@
        "wikibase-newitem-not-recognized-siteid": "Die angegebene 
Websitekennung ist nicht bekannt.",
        "wikibase-newentity-label": "Bezeichnung:",
        "wikibase-newentity-description": "Beschreibung:",
+       "wikibase-newentity-aliases": "Aliasse, mit Pipes getrennt:",
        "wikibase-newentity-submit": "Erstellen",
        "special-setlabel": "Eine Bezeichnung festlegen",
        "wikibase-setlabel-introfull": "Du legst die Bezeichnung für [[$1]] in 
der Sprache $2 fest.",
diff --git a/extensions/Wikibase/repo/i18n/en.json 
b/extensions/Wikibase/repo/i18n/en.json
index 53133fe..26bbfb4 100644
--- a/extensions/Wikibase/repo/i18n/en.json
+++ b/extensions/Wikibase/repo/i18n/en.json
@@ -41,6 +41,7 @@
        "wikibase-description-empty": "No description defined",
        "wikibase-description-edit-placeholder": "enter a description",
        "wikibase-description-edit-placeholder-language-aware": "enter a 
description in $1",
+       "wikibase-aliases-edit-placeholder-language-aware": "enter some aliases 
in $1",
        "wikibase-diffview-reference": "reference",
        "wikibase-diffview-rank": "rank",
        "wikibase-diffview-rank-preferred": "Preferred rank",
@@ -167,6 +168,7 @@
        "wikibase-newitem-not-recognized-siteid": "The provided site identifier 
was not recognized.",
        "wikibase-newentity-label": "Label:",
        "wikibase-newentity-description": "Description:",
+       "wikibase-newentity-aliases": "Aliases, pipe-separated:",
        "wikibase-newentity-submit": "Create",
        "special-setlabel": "Set a label",
        "wikibase-setlabel-introfull": "You are setting the label in $2 for 
[[$1]].",
diff --git a/extensions/Wikibase/repo/i18n/es.json 
b/extensions/Wikibase/repo/i18n/es.json
index 7ff7e09..320bbf5 100644
--- a/extensions/Wikibase/repo/i18n/es.json
+++ b/extensions/Wikibase/repo/i18n/es.json
@@ -57,6 +57,7 @@
        "wikibase-description-empty": "Ninguna descripción definida",
        "wikibase-description-edit-placeholder": "escribe una descripción",
        "wikibase-description-edit-placeholder-language-aware": "escribe una 
descripción en $1",
+       "wikibase-aliases-edit-placeholder-language-aware": "escribe algunos 
alias en $1",
        "wikibase-diffview-reference": "referencia",
        "wikibase-diffview-rank": "clasificación",
        "wikibase-diffview-rank-preferred": "Nivel preferido",
@@ -167,6 +168,7 @@
        "wikibase-newitem-not-recognized-siteid": "No se reconoció el 
identificador de sitio especificado.",
        "wikibase-newentity-label": "Etiqueta:",
        "wikibase-newentity-description": "Descripción:",
+       "wikibase-newentity-aliases": "Alias, separados por '|':",
        "wikibase-newentity-submit": "Crear",
        "special-setlabel": "Definir una etiqueta",
        "wikibase-setlabel-introfull": "Estás definiendo la etiqueta en $2 para 
[[$1]].",
diff --git a/extensions/Wikibase/repo/i18n/he.json 
b/extensions/Wikibase/repo/i18n/he.json
index 8e468fb..f68e5c0 100644
--- a/extensions/Wikibase/repo/i18n/he.json
+++ b/extensions/Wikibase/repo/i18n/he.json
@@ -40,6 +40,7 @@
        "wikibase-description-empty": "לא הוגדר תיאור",
        "wikibase-description-edit-placeholder": "נא להזין תיאור",
        "wikibase-description-edit-placeholder-language-aware": "נא להזין תיאור 
ב$1",
+       "wikibase-aliases-edit-placeholder-language-aware": "נא לכתוב כמה 
כינויים ב$1",
        "wikibase-diffview-reference": "הפניה למקור",
        "wikibase-diffview-rank": "דירוג",
        "wikibase-diffview-rank-preferred": "דירוג מועדף",
@@ -157,6 +158,7 @@
        "wikibase-newitem-not-recognized-siteid": "מזהה האתר שסופק אינו 
מוּכּר.",
        "wikibase-newentity-label": "תווית:",
        "wikibase-newentity-description": "תיאור:",
+       "wikibase-newentity-aliases": "כינויים, מופרדים במקל:",
        "wikibase-newentity-submit": "יצירה",
        "special-setlabel": "הגדרת תווית",
        "wikibase-setlabel-introfull": "נא לכתוב תווית ב$2 עבור [[$1]].",
diff --git a/extensions/Wikibase/repo/i18n/lt.json 
b/extensions/Wikibase/repo/i18n/lt.json
index 8be06c1..8ed0bb1 100644
--- a/extensions/Wikibase/repo/i18n/lt.json
+++ b/extensions/Wikibase/repo/i18n/lt.json
@@ -37,6 +37,7 @@
        "wikibase-description-empty": "Dar nenurodytas aprašymas",
        "wikibase-description-edit-placeholder": "įvesti aprašą",
        "wikibase-description-edit-placeholder-language-aware": "įveskitą 
aprašymą $1 kalba",
+       "wikibase-aliases-edit-placeholder-language-aware": "įveskite 
alternatyvių pavadinimų $1",
        "wikibase-diffview-reference": "išnaša",
        "wikibase-diffview-rank": "rangas",
        "wikibase-diffview-rank-preferred": "Pageidautinas reitingas",
diff --git a/extensions/Wikibase/repo/i18n/pt.json 
b/extensions/Wikibase/repo/i18n/pt.json
index 10735e2..ee07601 100644
--- a/extensions/Wikibase/repo/i18n/pt.json
+++ b/extensions/Wikibase/repo/i18n/pt.json
@@ -41,6 +41,7 @@
        "wikibase-description-empty": "Nenhuma descrição definida",
        "wikibase-description-edit-placeholder": "introduza uma descrição",
        "wikibase-description-edit-placeholder-language-aware": "introduza uma 
descrição em $1",
+       "wikibase-aliases-edit-placeholder-language-aware": "introduza alguns 
nomes alternativos em $1",
        "wikibase-diffview-reference": "referência",
        "wikibase-diffview-rank": "posição",
        "wikibase-diffview-rank-preferred": "Classificação preferencial",
@@ -155,6 +156,7 @@
        "wikibase-newitem-not-recognized-siteid": "O identificador do sítio 
fornecido não foi reconhecido.",
        "wikibase-newentity-label": "Rótulo:",
        "wikibase-newentity-description": "Descrição:",
+       "wikibase-newentity-aliases": "Nomes alternativos, separados por barras 
retas (|):",
        "wikibase-newentity-submit": "Criar",
        "special-setlabel": "Definir um rótulo",
        "wikibase-setlabel-introfull": "Está a definir o rótulo \"$2\" para 
[[$1]].",
diff --git a/extensions/Wikibase/repo/i18n/qqq.json 
b/extensions/Wikibase/repo/i18n/qqq.json
index f52dc12..445414c 100644
--- a/extensions/Wikibase/repo/i18n/qqq.json
+++ b/extensions/Wikibase/repo/i18n/qqq.json
@@ -70,6 +70,7 @@
        "wikibase-description-empty": "Placeholder message displayed instead of 
the item's description in case no description has been specified yet.  This 
message is displayed only when the user has JavaScript disabled. (When 
JavaScript is enabled, an input box will be displayed instead.)",
        "wikibase-description-edit-placeholder": "[[File:Screenshot 
WikidataRepo 2012-05-13 G.png|right|0x150px]]\nThis is a generic text used as a 
placeholder while editing a new description. See also the Wikidata glossary on 
[[d:Wikidata:Glossary#languageattribute-description|description]].",
        "wikibase-description-edit-placeholder-language-aware": "Like 
{{msg-mw|Wikibase-description-edit-placeholder}}, but language ($1) aware.",
+       "wikibase-aliases-edit-placeholder-language-aware": "Like 
{{msg-mw|Wikibase-alias-edit-placeholder}}, but for multiple pipe-separated 
aliases and language ($1) aware.",
        "wikibase-diffview-reference": "Label within the header of a 
diff-operation on the entity diff view to describe that the diff-operation 
affects a reference. Will be shown as e.g. \"claim / property q1 / 
reference\".\n{{Identical|Reference}}",
        "wikibase-diffview-rank": "Label within the header of a diff-operation 
on the entity diff view to describe that the diff-operation affects the rank of 
the statement. Will be shown as e.g. \"claim / property q1 / 
rank\".\n{{Identical|Rank}}",
        "wikibase-diffview-rank-preferred": "The 
[[d:Wikidata:Glossary#Rank-preferred|Preferred Rank]] to be shown in diffs.",
@@ -195,6 +196,7 @@
        "wikibase-newitem-not-recognized-siteid": "Error message shown when a 
user tries to add a link to a site with an unknown identifier.\n\nSee also:\n* 
{{msg-mw|Wikibase-api-not-recognized-siteid}}",
        "wikibase-newentity-label": "Label for the \"label\" textfield holding 
the label of the new item.\n{{Identical|Label}}",
        "wikibase-newentity-description": "Label for the \"description\" 
textfield holding the description of the new item.\n{{Identical|Description}}",
+       "wikibase-newentity-aliases": "Label for the \"aliases\" textfield 
holding the pipe-separated aliases of the new item.",
        "wikibase-newentity-submit": "Text for the submit button on the 
CreateItem special page.\n{{Identical|Create}}",
        "special-setlabel": "{{doc-special|SetLabel}}\nThe special page allows 
the user to set an entity's label in a particular language.",
        "wikibase-setlabel-introfull": "Intro text when label is to be set. 
Parameters:\n* $1 - the ID that links to the entity\n* $2 - the translated 
language name (possibly autonym) label, description and aliases are to be set 
in.",
diff --git a/extensions/Wikibase/repo/i18n/tt-cyrl.json 
b/extensions/Wikibase/repo/i18n/tt-cyrl.json
index 1f20a01..7f3d06c 100644
--- a/extensions/Wikibase/repo/i18n/tt-cyrl.json
+++ b/extensions/Wikibase/repo/i18n/tt-cyrl.json
@@ -1,9 +1,17 @@
 {
        "@metadata": {
                "authors": [
-                       "Derslek"
+                       "Derslek",
+                       "Ильнар"
                ]
        },
-       "wikibase-label-empty": "Исем (лейбл) әле куелмаган",
-       "wikibase-statementview-rank-normal": "Нормаль ранг"
+       "wikibase-edit": "үзгәртү",
+       "wikibase-add": "өстәү",
+       "wikibase-label-empty": "Тамга (исем) күрсәтелмәгән",
+       "wikibase-description-empty": "Тасвирлама тутырылмаган",
+       "wikibase-statements": "Шартлар",
+       "wikibase-sitelinks-special": "Башка сайтлар",
+       "wikibase-aliases-empty": "Альтернатив исемнәр (синонимнар) 
күрсәтелмәгән",
+       "wikibase-statementview-rank-normal": "Нормаль ранг",
+       "wikibase-statementview-referencesheading-pendingcountersubject": 
"{{PLURAL:$1|чыганак}}"
 }
diff --git a/extensions/Wikibase/repo/includes/specials/SpecialNewEntity.php 
b/extensions/Wikibase/repo/includes/specials/SpecialNewEntity.php
index 6e57ca2..3c3f767 100644
--- a/extensions/Wikibase/repo/includes/specials/SpecialNewEntity.php
+++ b/extensions/Wikibase/repo/includes/specials/SpecialNewEntity.php
@@ -155,6 +155,8 @@
                        'description',
                        isset( $this->parts[1] ) ? $this->parts[1] : ''
                );
+               $aliases = $this->getRequest()->getVal( 'aliases' );
+               $this->aliases = ( $aliases === null ? array() : explode( '|', 
$aliases ) );
                $this->contentLanguage = Language::factory( 
$this->getRequest()->getVal(
                        'lang',
                        $this->getLanguage()->getCode()
@@ -170,7 +172,11 @@
         */
        protected function hasSufficientArguments() {
                return $this->stringNormalizer->trimWhitespace( $this->label ) 
!== ''
-                       || $this->stringNormalizer->trimWhitespace( 
$this->description ) !== '';
+                       || $this->stringNormalizer->trimWhitespace( 
$this->description ) !== ''
+                       || implode( '', array_map(
+                                       array( $this->stringNormalizer, 
'trimWhitespace' ),
+                                       $this->aliases
+                               ) ) !== '';
        }
 
        /**
@@ -197,6 +203,9 @@
                if ( $this->description !== '' ) {
                        $entity->setDescription( $contentLanguageCode, 
$this->description );
                }
+               if ( count( $this->aliases ) !== 0 ) {
+                       $entity->setAliases( $contentLanguageCode, 
$this->aliases );
+               }
                return \Status::newGood();
        }
 
@@ -208,9 +217,12 @@
         * @return string Formatted HTML for inclusion in the form
         */
        protected function additionalFormElements() {
+               $langCode = $this->contentLanguage->getCode();
+               $langName = Language::fetchLanguageName( $langCode );
+               $langDir = $this->contentLanguage->getDir();
                return Html::hidden(
                        'lang',
-                       $this->contentLanguage->getCode()
+                       $langCode
                )
                . Html::element(
                        'label',
@@ -227,11 +239,11 @@
                        array(
                                'id' => 'wb-newentity-label',
                                'class' => 'wb-input',
-                               'lang' => $this->contentLanguage->getCode(),
-                               'dir' => $this->contentLanguage->getDir(),
+                               'lang' => $langCode,
+                               'dir' => $langDir,
                                'placeholder' => $this->msg(
                                        
'wikibase-label-edit-placeholder-language-aware',
-                                       Language::fetchLanguageName( 
$this->contentLanguage->getCode() )
+                                       $langName
                                )->text(),
                        )
                )
@@ -250,11 +262,33 @@
                        array(
                                'id' => 'wb-newentity-description',
                                'class' => 'wb-input',
-                               'lang' => $this->contentLanguage->getCode(),
-                               'dir' => $this->contentLanguage->getDir(),
+                               'lang' => $langCode,
+                               'dir' => $langDir,
                                'placeholder' => $this->msg(
                                        
'wikibase-description-edit-placeholder-language-aware',
-                                       Language::fetchLanguageName( 
$this->contentLanguage->getCode() )
+                                       $langName
+                               )->text(),
+                       )
+               ). Html::element(
+                       'label',
+                       array(
+                               'for' => 'wb-newentity-aliases',
+                               'class' => 'wb-label'
+                       ),
+                       $this->msg( 'wikibase-newentity-aliases' )->text()
+               )
+               . Html::input(
+                       'aliases',
+                       $this->aliases ? implode( '|', $this->aliases ) : '',
+                       'text',
+                       array(
+                               'id' => 'wb-newentity-aliases',
+                               'class' => 'wb-input',
+                               'lang' => $langCode,
+                               'dir' => $langDir,
+                               'placeholder' => $this->msg(
+                                       
'wikibase-aliases-edit-placeholder-language-aware',
+                                       $langName
                                )->text(),
                        )
                );
diff --git 
a/extensions/Wikibase/repo/tests/phpunit/includes/api/GetEntitiesTest.php 
b/extensions/Wikibase/repo/tests/phpunit/includes/api/GetEntitiesTest.php
index 9cfbd12..37ec89b 100644
--- a/extensions/Wikibase/repo/tests/phpunit/includes/api/GetEntitiesTest.php
+++ b/extensions/Wikibase/repo/tests/phpunit/includes/api/GetEntitiesTest.php
@@ -514,6 +514,46 @@
 
                                ),
                        ),
+                       array(
+                               'Oslo',
+                               array( 'sli', 'de-formal', 'kn', 'nb' ),
+                               array(
+                                       'sli' => array(
+                                               'language' => 'de',
+                                               'value' => 'Oslo',
+                                       ),
+                                       'de-formal' => array(
+                                               'language' => 'de',
+                                               'value' => 'Oslo',
+                                       ),
+                                       'kn' => array(
+                                               'language' => 'en',
+                                               'value' => 'Oslo',
+                                       ),
+                                       'nb' => array(
+                                               'language' => 'nb',
+                                               'value' => 'Oslo',
+                                       ),
+                               ),
+                               array(
+                                       'sli' => array(
+                                               'language' => 'de',
+                                               'value' => 'Hauptstadt der 
Norwegen.',
+                                       ),
+                                       'de-formal' => array(
+                                               'language' => 'de',
+                                               'value' => 'Hauptstadt der 
Norwegen.',
+                                       ),
+                                       'kn' => array(
+                                               'language' => 'en',
+                                               'value' => 'Capital city in 
Norway.',
+                                       ),
+                                       'nb' => array(
+                                               'language' => 'nb',
+                                               'value' => 'Hovedsted i Norge.',
+                                       ),
+                               ),
+                       ),
                );
        }
 
@@ -528,7 +568,6 @@
                                'action' => 'wbgetentities',
                                'languages' => join( '|', $languages ),
                                'languagefallback' => '',
-                               'format' => 'json', // make sure IDs are used 
as keys
                                'ids' => $id,
                        )
                );
diff --git 
a/extensions/Wikibase/repo/tests/phpunit/includes/api/ResultBuilderTest.php 
b/extensions/Wikibase/repo/tests/phpunit/includes/api/ResultBuilderTest.php
index 274e5b2..538983f 100644
--- a/extensions/Wikibase/repo/tests/phpunit/includes/api/ResultBuilderTest.php
+++ b/extensions/Wikibase/repo/tests/phpunit/includes/api/ResultBuilderTest.php
@@ -5,6 +5,8 @@
 use ApiResult;
 use DataValues\Serializers\DataValueSerializer;
 use DataValues\StringValue;
+use Wikibase\LanguageFallbackChainFactory;
+use Wikibase\Lib\Serializers\EntitySerializer;
 use Wikibase\Repo\Api\ResultBuilder;
 use Wikibase\DataModel\Entity\Item;
 use Wikibase\DataModel\Entity\ItemId;
@@ -504,6 +506,144 @@
                $this->assertArrayHasKey( 'FOO', $data['entities'] );
        }
 
+       public function provideTestAddEntityRevisionFallback() {
+               return array(
+                       array(
+                               false,
+                               array(
+                                       'entities' => array(
+                                               'Q123101' => array(
+                                                       'id' => 'Q123101',
+                                                       'type' => 'item',
+                                                       'labels' => array(
+                                                               'de-formal' => 
array(
+                                                                       
'language' => 'de',
+                                                                       'value' 
=> 'Oslo-de',
+                                                               ),
+                                                               'es' => array(
+                                                                       
'language' => 'en',
+                                                                       'value' 
=> 'Oslo-en',
+                                                               ),
+                                                               'qug' => array(
+                                                                       
'language' => 'en',
+                                                                       'value' 
=> 'Oslo-en',
+                                                               ),
+                                                               'zh-my' => 
array(
+                                                                       
'language' => 'en',
+                                                                       'value' 
=> 'Oslo-en',
+                                                               ),
+                                                       ),
+                                                       'descriptions' => array(
+                                                               'es' => array(
+                                                                       
'language' => 'es',
+                                                                       'value' 
=> 'desc-es',
+                                                               ),
+                                                               'qug' => array(
+                                                                       
'language' => 'es',
+                                                                       'value' 
=> 'desc-es',
+                                                               ),
+                                                               'zh-my' => 
array(
+                                                                       
'language' => 'zh-my',
+                                                                       'value' 
=> 'desc-zh-sg',
+                                                                       
'source-language' => 'zh-sg',
+                                                               ),
+                                                       ),
+                                               ),
+                                               '_element' => 'entity',
+                                       )
+                               ),
+                       ),
+                       array(
+                               true,
+                               array(
+                                       'entities' => array(
+                                               array(
+                                                       'id' => 'Q123101',
+                                                       'type' => 'item',
+                                                       'labels' => array(
+                                                               array(
+                                                                       
'language' => 'de',
+                                                                       'value' 
=> 'Oslo-de',
+                                                                       
'for-language' => 'de-formal'
+                                                               ),
+                                                               array(
+                                                                       
'language' => 'en',
+                                                                       'value' 
=> 'Oslo-en',
+                                                                       
'for-language' => 'es',
+                                                               ),
+                                                               array(
+                                                                       
'language' => 'en',
+                                                                       'value' 
=> 'Oslo-en',
+                                                                       
'for-language' => 'qug'
+                                                               ),
+                                                               array(
+                                                                       
'language' => 'en',
+                                                                       'value' 
=> 'Oslo-en',
+                                                                       
'for-language' => 'zh-my'
+                                                               ),
+                                                               '_element' => 
'label',
+                                                       ),
+                                                       'descriptions' => array(
+                                                               array(
+                                                                       
'language' => 'es',
+                                                                       'value' 
=> 'desc-es',
+                                                               ),
+                                                               array(
+                                                                       
'language' => 'es',
+                                                                       'value' 
=> 'desc-es',
+                                                                       
'for-language' => 'qug'
+                                                               ),
+                                                               array(
+                                                                       
'language' => 'zh-my',
+                                                                       'value' 
=> 'desc-zh-sg',
+                                                                       
'source-language' => 'zh-sg',
+                                                               ),
+                                                               '_element' => 
'description',
+                                                       ),
+                                               ),
+                                               '_element' => 'entity',
+                                       )
+                               ),
+                       ),
+               );
+       }
+
+       /**
+        * @dataProvider provideTestAddEntityRevisionFallback
+        */
+       public function testAddEntityRevisionFallback( $indexedMode, $expected  
) {
+               $item = new Item( new ItemId( 'Q123101' ) );
+               $item->getFingerprint()->setLabel( 'de', 'Oslo-de' );
+               $item->getFingerprint()->setLabel( 'en', 'Oslo-en' );
+               $item->getFingerprint()->setDescription( 'es', 'desc-es' );
+               $item->getFingerprint()->setDescription( 'zh-sg', 'desc-zh-sg' 
);
+               $entityRevision = new EntityRevision( $item );
+
+               $fallbackChainFactory = new LanguageFallbackChainFactory();
+               $languages = array(
+                       'de-formal' => 
$fallbackChainFactory->newFromLanguageCode( 'de-formal' ),
+                       'es' => $fallbackChainFactory->newFromLanguageCode( 
'es' ),
+                       'qug' => $fallbackChainFactory->newFromLanguageCode( 
'qug' ),
+                       'zh-my' => $fallbackChainFactory->newFromLanguageCode( 
'zh-my' ),
+               );
+
+               $props = array( 'labels', 'descriptions' );
+
+               $options = new SerializationOptions();
+               $options->setIndexTags( $indexedMode );
+               $options->setLanguages( $languages );
+               $options->setOption( EntitySerializer::OPT_PARTS, $props );
+
+               $result = $this->getDefaultResult();
+               $resultBuilder = $this->getResultBuilder( $result, $options, 
$indexedMode );
+               $resultBuilder->addEntityRevision( null, $entityRevision, 
$options, $props );
+
+               $data = $result->getResultData();
+               $this->removeElementsWithKeysRecursively( $data, array( '_type' 
) );
+
+               $this->assertEquals( $expected, $data );
+       }
+
        public function testAddEntityRevisionWithSiteLinksFilter() {
                $item = new Item( new ItemId( 'Q123099' ) );
                $item->getSiteLinkList()->addNewSiteLink( 'enwiki', 'Berlin' );
diff --git 
a/extensions/Wikibase/view/resources/jquery/wikibase/jquery.wikibase.statementview.js
 
b/extensions/Wikibase/view/resources/jquery/wikibase/jquery.wikibase.statementview.js
index 30dfca0..ff7e451 100644
--- 
a/extensions/Wikibase/view/resources/jquery/wikibase/jquery.wikibase.statementview.js
+++ 
b/extensions/Wikibase/view/resources/jquery/wikibase/jquery.wikibase.statementview.js
@@ -626,8 +626,8 @@
                        numberOfPendingValues = 0;
 
                if( this._referencesListview ) {
-                       numberOfValues = 
this._referencesListview.nonEmptyItems().length;
-                       numberOfPendingValues = 
this._referencesListview.items().length - numberOfValues;
+                       numberOfPendingValues = 
this._referencesListview.items().filter( '.wb-reference-new' ).length;
+                       numberOfValues = 
this._referencesListview.items().length - numberOfPendingValues;
                }
 
                // build a nice counter, displaying fixed and pending values:
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index 5f8e9ce..d8f888c 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -1165,12 +1165,12 @@
         "source": {
             "type": "git",
             "url": 
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git";,
-            "reference": "7d80a60c43ad630fa2339e30631ab9d1b41204e2"
+            "reference": "c437e8eb6dcf9e537a8d2373915e835f99691319"
         },
         "dist": {
             "type": "zip",
-            "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/7d80a60c43ad630fa2339e30631ab9d1b41204e2";,
-            "reference": "7d80a60c43ad630fa2339e30631ab9d1b41204e2",
+            "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/c437e8eb6dcf9e537a8d2373915e835f99691319";,
+            "reference": "c437e8eb6dcf9e537a8d2373915e835f99691319",
             "shasum": ""
         },
         "require": {
@@ -1200,7 +1200,7 @@
         "require-dev": {
             "squizlabs/php_codesniffer": "~2.1"
         },
-        "time": "2015-07-26 19:42:34",
+        "time": "2015-07-28 08:34:21",
         "type": "mediawiki-extension",
         "installation-source": "dist",
         "autoload": {

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I5e305c20af3342ea190deed22de0c9ef0feefc7b
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikidata
Gerrit-Branch: master
Gerrit-Owner: WikidataBuilder <wikidata-servi...@wikimedia.de>
Gerrit-Reviewer: Addshore <addshorew...@gmail.com>
Gerrit-Reviewer: Aude <aude.w...@gmail.com>
Gerrit-Reviewer: Siebrand <siebr...@kitano.nl>
Gerrit-Reviewer: Tobias Gritschacher <tobias.gritschac...@wikimedia.de>
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