WikidataBuilder has uploaded a new change for review.
https://gerrit.wikimedia.org/r/297759
Change subject: New Wikidata Build - 2016-07-07T10:00:01+0000
......................................................................
New Wikidata Build - 2016-07-07T10:00:01+0000
Change-Id: I3b84706c39f7aa10b134ba3a61d2813294d04d8d
---
M composer.lock
M extensions/Wikibase/client/i18n/frp.json
M extensions/Wikibase/client/i18n/nl.json
M extensions/Wikibase/client/i18n/wuu.json
M extensions/Wikibase/client/i18n/zgh.json
M extensions/Wikibase/composer.json
M extensions/Wikibase/lib/i18n/ko.json
M extensions/Wikibase/lib/includes/Formatters/HtmlTimeFormatter.php
M extensions/Wikibase/lib/tests/phpunit/Formatters/HtmlTimeFormatterTest.php
M extensions/Wikibase/repo/i18n/fa.json
M extensions/Wikibase/repo/i18n/frp.json
M extensions/Wikibase/repo/i18n/ka.json
M extensions/Wikibase/repo/i18n/pl.json
M extensions/Wikibase/repo/i18n/zgh.json
M extensions/Wikibase/repo/includes/Parsers/MwTimeIsoParser.php
M extensions/Wikibase/repo/includes/Parsers/TimeParserFactory.php
M
extensions/Wikibase/repo/tests/phpunit/includes/Parsers/MwTimeIsoParserTest.php
M
extensions/Wikibase/repo/tests/phpunit/includes/Parsers/TimeParserFactoryTest.php
M
extensions/Wikibase/view/resources/jquery/wikibase/jquery.wikibase.entityselector.js
M
extensions/Wikibase/view/resources/jquery/wikibase/jquery.wikibase.sitelinkgroupview.js
M extensions/Wikibase/view/resources/wikibase/view/ViewFactory.js
M
extensions/Wikibase/view/tests/qunit/jquery/wikibase/jquery.wikibase.sitelinkgroupview.tests.js
M vendor/composer/installed.json
23 files changed, 206 insertions(+), 170 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikidata
refs/changes/59/297759/1
diff --git a/composer.lock b/composer.lock
index 98d5a8f..cb8eb94 100644
--- a/composer.lock
+++ b/composer.lock
@@ -1572,12 +1572,12 @@
"source": {
"type": "git",
"url":
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git",
- "reference": "322a6a96762cb42310c9a6848d4b08a0445b77e8"
+ "reference": "aff01e1b44fc1a6b2139d48b6d9d4b5afa75e97d"
},
"dist": {
"type": "zip",
- "url":
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/322a6a96762cb42310c9a6848d4b08a0445b77e8",
- "reference": "322a6a96762cb42310c9a6848d4b08a0445b77e8",
+ "url":
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/aff01e1b44fc1a6b2139d48b6d9d4b5afa75e97d",
+ "reference": "aff01e1b44fc1a6b2139d48b6d9d4b5afa75e97d",
"shasum": ""
},
"require": {
@@ -1601,7 +1601,6 @@
"wikibase/internal-serialization": "~2.3",
"wikibase/javascript-api": "~1.1",
"wikibase/serialization-javascript": "~2.0.5",
- "wikimedia/assert": "~0.2.2",
"wikimedia/purtle": "~1.0"
},
"conflict": {
@@ -1650,7 +1649,7 @@
"wikibaserepo",
"wikidata"
],
- "time": "2016-07-06 08:20:46"
+ "time": "2016-07-07 09:23:42"
},
{
"name": "wikibase/wikimedia-badges",
diff --git a/extensions/Wikibase/client/i18n/frp.json
b/extensions/Wikibase/client/i18n/frp.json
index 9c213e9..a2c1c67 100644
--- a/extensions/Wikibase/client/i18n/frp.json
+++ b/extensions/Wikibase/client/i18n/frp.json
@@ -18,5 +18,5 @@
"wikibase-rc-show-wikidata-pref": "Montrar los changements de Wikidata
dedens los dèrriérs changements",
"wikibase-rc-wikibase-edit-letter": "B",
"wikibase-rc-wikibase-edit-title": "Changement de {{WBREPONAME}}",
- "wikibase-otherprojects": "Ôtros projèts"
+ "wikibase-otherprojects": "En ôtros projèts"
}
diff --git a/extensions/Wikibase/client/i18n/nl.json
b/extensions/Wikibase/client/i18n/nl.json
index 9586bb2..e80b71b 100644
--- a/extensions/Wikibase/client/i18n/nl.json
+++ b/extensions/Wikibase/client/i18n/nl.json
@@ -9,7 +9,8 @@
"Sjoerddebruin",
"Mar(c)",
"Robin0van0der0vliet",
- "Robin van der Vliet"
+ "Robin van der Vliet",
+ "Patio"
]
},
"wikibase-client-desc": "Client voor de uitbreiding Wikibase",
@@ -18,7 +19,7 @@
"apihelp-query+pageterms-example-item": "Labels en aliassen voor het
item Q84 opvragen.",
"wikibase-after-page-move": "U kunt ook het gekoppelde item van
{{WBREPONAME}} [$1 bijwerken] om de taalkoppelingen op de hernoemde pagina te
kunnen beheren.",
"wikibase-after-page-move-queued": "Het aan deze pagina gekoppelde [$1
item van {{WBREPONAME}}] wordt binnenkort automatisch bijgewerkt. Houdt er dus
rekening mee dat dit niet gelijk gebeurd.",
- "wikibase-after-page-delete-queued": "Het aan deze pagina gekoppelde
[$1 item van {{WBREPONAME}}] wordt binnenkort automatisch bijgewerkt. Houdt er
dus rekening mee dat dit niet gelijk gebeurd.",
+ "wikibase-after-page-delete-queued": "Het aan deze pagina gekoppelde
[$1 item van {{WBREPONAME}}] wordt binnenkort automatisch bijgewerkt. Houd er
dus rekening mee dat dit niet direct gebeurt.",
"wikibase-comment-add": "Item van {{WBREPONAME}} aangemaakt.",
"wikibase-comment-remove": "Het gekoppelde item van {{WBREPONAME}} is
verwijderd. De taalkoppelingen zijn verwijderd.",
"wikibase-comment-linked": "Er is een item van {{WBREPONAME}} gekoppeld
aan deze pagina.",
diff --git a/extensions/Wikibase/client/i18n/wuu.json
b/extensions/Wikibase/client/i18n/wuu.json
index 0a2dfc1..bad8a9c 100644
--- a/extensions/Wikibase/client/i18n/wuu.json
+++ b/extensions/Wikibase/client/i18n/wuu.json
@@ -15,5 +15,5 @@
"wikibase-rc-hide-wikidata-show": "显示",
"wikibase-rc-wikibase-edit-letter": "数",
"wikibase-rc-wikibase-edit-title": "{{WBREPONAME}}编辑",
- "wikibase-otherprojects": "来别样项目里"
+ "wikibase-otherprojects": "别样项目里向"
}
diff --git a/extensions/Wikibase/client/i18n/zgh.json
b/extensions/Wikibase/client/i18n/zgh.json
index 1a6e8d3..01a389d 100644
--- a/extensions/Wikibase/client/i18n/zgh.json
+++ b/extensions/Wikibase/client/i18n/zgh.json
@@ -8,5 +8,6 @@
"wikibase-rc-hide-wikidata-hide": "ⵙⵙⵏⵜⵍ",
"wikibase-rc-hide-wikidata-show": "ⵙⴽⵏ",
"wikibase-rc-wikibase-edit-letter": "ⴷ",
+ "wikibase-rc-wikibase-edit-title": "ⴰⵙⵏⴼⵍ ⵏ {{WBREPONAME}}",
"wikibase-otherprojects": "ⴳ ⵉⵙⵏⵜⴰⵢⵏ ⵏⵏⵉⴹⵏ"
}
diff --git a/extensions/Wikibase/composer.json
b/extensions/Wikibase/composer.json
index d563171..f6d63e1 100644
--- a/extensions/Wikibase/composer.json
+++ b/extensions/Wikibase/composer.json
@@ -41,8 +41,7 @@
"wikibase/javascript-api": "~1.1",
"wikibase/serialization-javascript": "~2.0.5",
"diff/diff": "~2.0",
- "wikimedia/purtle": "~1.0",
- "wikimedia/assert": "~0.2.2"
+ "wikimedia/purtle": "~1.0"
},
"require-dev": {
"jakub-onderka/php-parallel-lint": "0.9.2",
diff --git a/extensions/Wikibase/lib/i18n/ko.json
b/extensions/Wikibase/lib/i18n/ko.json
index da697d5..22c9029 100644
--- a/extensions/Wikibase/lib/i18n/ko.json
+++ b/extensions/Wikibase/lib/i18n/ko.json
@@ -84,7 +84,7 @@
"wikibase-time-precision-annum": "서기 {{PLURAL:$1|$1년}}",
"wikibase-time-precision-millennium": "$1. 천년",
"wikibase-time-precision-century": "$1. 세기",
- "wikibase-time-precision-10annum": "$1",
+ "wikibase-time-precision-10annum": "$1년대",
"wikibase-time-precision-BCE-Gannum": "기원전 $1십억년",
"wikibase-time-precision-BCE-Mannum": "기원전 $1백만년",
"wikibase-time-precision-BCE-annum": "기원전 {{PLURAL:$1|$1년}}",
diff --git a/extensions/Wikibase/lib/includes/Formatters/HtmlTimeFormatter.php
b/extensions/Wikibase/lib/includes/Formatters/HtmlTimeFormatter.php
index 5469f38..4182c84 100644
--- a/extensions/Wikibase/lib/includes/Formatters/HtmlTimeFormatter.php
+++ b/extensions/Wikibase/lib/includes/Formatters/HtmlTimeFormatter.php
@@ -80,6 +80,11 @@
* @return bool
*/
private function calendarNameNeeded( TimeValue $value ) {
+ // Do not care about possibly wrong calendar models with
precision 10 years and more.
+ if ( $value->getPrecision() <= TimeValue::PRECISION_YEAR10 ) {
+ return false;
+ }
+
// Loose check if the timestamp string is ISO-ish and starts
with a year.
if ( !preg_match( '/^[-+]?\d+\b/', $value->getTime(), $matches
) ) {
return true;
diff --git
a/extensions/Wikibase/lib/tests/phpunit/Formatters/HtmlTimeFormatterTest.php
b/extensions/Wikibase/lib/tests/phpunit/Formatters/HtmlTimeFormatterTest.php
index a48811e..3f5a7ad 100644
--- a/extensions/Wikibase/lib/tests/phpunit/Formatters/HtmlTimeFormatterTest.php
+++ b/extensions/Wikibase/lib/tests/phpunit/Formatters/HtmlTimeFormatterTest.php
@@ -66,11 +66,9 @@
/**
* @dataProvider timeFormatProvider
*/
- public function testFormat( TimeValue $value, $pattern ) {
+ public function testFormat( TimeValue $value, $expected ) {
$formatter = $this->getFormatter();
-
- $html = $formatter->format( $value );
- $this->assertRegExp( $pattern, $html );
+ $this->assertSame( $expected, $formatter->format( $value ) );
}
public function timeFormatProvider() {
@@ -82,161 +80,167 @@
'+1520-05-01T00:00:00Z',
TimeValue::PRECISION_DAY,
$gregorian,
- '/^MOCKDATE<sup
class="wb-calendar-name">\(valueview-expert-timevalue-calendar-gregorian\)<\/sup>$/'
+ 'MOCKDATE<sup
class="wb-calendar-name">(valueview-expert-timevalue-calendar-gregorian)</sup>'
),
'a gregorian month in 1520' => array(
'+1520-05-01T00:00:00Z',
TimeValue::PRECISION_MONTH,
$gregorian,
- '/^MOCKDATE<sup
class="wb-calendar-name">\(valueview-expert-timevalue-calendar-gregorian\)<\/sup>$/'
+ 'MOCKDATE<sup
class="wb-calendar-name">(valueview-expert-timevalue-calendar-gregorian)</sup>'
),
'a julian day in 1520' => array(
'+1520-05-01T00:00:00Z',
TimeValue::PRECISION_DAY,
$julian,
- '/^MOCKDATE$/'
+ 'MOCKDATE'
),
'a gregorian day in 1920' => array(
'+1920-05-01T00:00:00Z',
TimeValue::PRECISION_DAY,
$gregorian,
- '/^MOCKDATE<sup
class="wb-calendar-name">\(valueview-expert-timevalue-calendar-gregorian\)<\/sup>$/'
+ 'MOCKDATE<sup
class="wb-calendar-name">(valueview-expert-timevalue-calendar-gregorian)</sup>'
),
'a julian day in 1920' => array(
'+1920-05-01T00:00:00Z',
TimeValue::PRECISION_DAY,
$julian,
- '/^MOCKDATE<sup
class="wb-calendar-name">\(valueview-expert-timevalue-calendar-julian\)<\/sup>$/'
+ 'MOCKDATE<sup
class="wb-calendar-name">(valueview-expert-timevalue-calendar-julian)</sup>'
),
'a julian day in 1980' => array(
'+1980-05-01T00:00:00Z',
TimeValue::PRECISION_DAY,
$julian,
- '/^MOCKDATE<sup
class="wb-calendar-name">\(valueview-expert-timevalue-calendar-julian\)<\/sup>$/'
+ 'MOCKDATE<sup
class="wb-calendar-name">(valueview-expert-timevalue-calendar-julian)</sup>'
),
'a gregorian day in 1980' => array(
'+1980-05-01T00:00:00Z',
TimeValue::PRECISION_DAY,
$gregorian,
- '/^MOCKDATE$/'
+ 'MOCKDATE'
),
'a gregorian year in -1000000' => array(
'-1000000-00-00T00:00:00Z',
TimeValue::PRECISION_YEAR,
$gregorian,
- '/^MOCKDATE<sup
class="wb-calendar-name">\(valueview-expert-timevalue-calendar-gregorian\)<\/sup>$/'
+ 'MOCKDATE<sup
class="wb-calendar-name">(valueview-expert-timevalue-calendar-gregorian)</sup>'
),
'a julian year in -1000000' => array(
'-1000000-05-01T00:00:00Z',
TimeValue::PRECISION_YEAR,
$julian,
- '/^MOCKDATE$/'
+ 'MOCKDATE'
),
'a gregorian year in 1520' => array(
'+1520-05-01T00:00:00Z',
TimeValue::PRECISION_YEAR,
$gregorian,
- '/^MOCKDATE<sup
class="wb-calendar-name">\(valueview-expert-timevalue-calendar-gregorian\)<\/sup>$/'
+ 'MOCKDATE<sup
class="wb-calendar-name">(valueview-expert-timevalue-calendar-gregorian)</sup>'
),
'a julian year in 1520' => array(
'+1520-05-01T00:00:00Z',
TimeValue::PRECISION_YEAR,
$julian,
- '/^MOCKDATE$/'
+ 'MOCKDATE'
),
'a gregorian year in 1920' => array(
'+1920-05-01T00:00:00Z',
TimeValue::PRECISION_YEAR,
$gregorian,
- '/^MOCKDATE$/'
+ 'MOCKDATE'
),
'a julian year in 1920' => array(
'+1920-05-01T00:00:00Z',
TimeValue::PRECISION_YEAR,
$julian,
- '/^MOCKDATE<sup
class="wb-calendar-name">\(valueview-expert-timevalue-calendar-julian\)<\/sup>$/'
+ 'MOCKDATE<sup
class="wb-calendar-name">(valueview-expert-timevalue-calendar-julian)</sup>'
),
'a julian year in 1980' => array(
'+1980-05-01T00:00:00Z',
TimeValue::PRECISION_YEAR,
$julian,
- '/^MOCKDATE<sup
class="wb-calendar-name">\(valueview-expert-timevalue-calendar-julian\)<\/sup>$/'
+ 'MOCKDATE<sup
class="wb-calendar-name">(valueview-expert-timevalue-calendar-julian)</sup>'
+ ),
+ 'do not enforce calendar model on rough precisions' =>
array(
+ '+1980-05-01T00:00:00Z',
+ TimeValue::PRECISION_YEAR10,
+ $julian,
+ 'MOCKDATE'
),
'a gregorian year in 1980' => array(
'+1980-05-01T00:00:00Z',
TimeValue::PRECISION_YEAR,
$gregorian,
- '/^MOCKDATE$/'
+ 'MOCKDATE'
),
'a month in 1980' => array(
'+1980-05-01T00:00:00Z',
TimeValue::PRECISION_MONTH,
$gregorian,
- '/^MOCKDATE$/'
+ 'MOCKDATE'
),
'14th century' => array(
'+1300-00-00T00:00:00Z',
TimeValue::PRECISION_YEAR100,
$julian,
- '/^MOCKDATE$/'
+ 'MOCKDATE'
),
'2014-10-10' => array(
'+2014-10-10T00:00:00Z',
TimeValue::PRECISION_DAY,
$gregorian,
- '/^MOCKDATE$/'
+ 'MOCKDATE'
),
'2014-10-10 with leading zeros' => array(
'+00000002014-10-10T00:00:00Z',
TimeValue::PRECISION_DAY,
$gregorian,
- '/^MOCKDATE$/'
+ 'MOCKDATE'
),
'massive year' => array(
'+00123452014-10-10T00:00:00Z',
TimeValue::PRECISION_DAY,
$gregorian,
- '/^MOCKDATE$/'
+ 'MOCKDATE'
),
'negative' => array(
'-1-01-01T00:00:00Z',
TimeValue::PRECISION_DAY,
$gregorian,
- '/^MOCKDATE<sup
class="wb-calendar-name">\(valueview-expert-timevalue-calendar-gregorian\)<\/sup>$/'
+ 'MOCKDATE<sup
class="wb-calendar-name">(valueview-expert-timevalue-calendar-gregorian)</sup>'
),
'32-bit integer overflow' => array(
'-2147483649-01-01T00:00:00Z',
TimeValue::PRECISION_DAY,
$gregorian,
- '/^MOCKDATE<sup
class="wb-calendar-name">\(valueview-expert-timevalue-calendar-gregorian\)<\/sup>$/'
+ 'MOCKDATE<sup
class="wb-calendar-name">(valueview-expert-timevalue-calendar-gregorian)</sup>'
),
'unknown calendar model' => array(
'+2015-01-01T00:00:00Z',
TimeValue::PRECISION_DAY,
'Stardate',
- '/^MOCKDATE<sup
class="wb-calendar-name">Stardate<\/sup>$/'
+ 'MOCKDATE<sup
class="wb-calendar-name">Stardate</sup>'
),
'optional sign' => array(
'2015-01-01T00:00:00Z',
TimeValue::PRECISION_DAY,
$gregorian,
- '/^MOCKDATE$/'
+ 'MOCKDATE'
),
'unsupported time' => array(
'MOCKTIME',
TimeValue::PRECISION_DAY,
$gregorian,
- '/^MOCKDATE<sup
class="wb-calendar-name">\(valueview-expert-timevalue-calendar-gregorian\)<\/sup>$/'
+ 'MOCKDATE<sup
class="wb-calendar-name">(valueview-expert-timevalue-calendar-gregorian)</sup>'
),
'HTML entities' => array(
'<a>injection</a>',
+ TimeValue::PRECISION_DAY,
'<a>injection</a>',
- '<a>injection</a>',
- '/^MOCKDATE<sup
class="wb-calendar-name"><a>injection<\/a><\/sup>$/'
+ 'MOCKDATE<sup
class="wb-calendar-name"><a>injection</a></sup>'
),
);
diff --git a/extensions/Wikibase/repo/i18n/fa.json
b/extensions/Wikibase/repo/i18n/fa.json
index 5737dbe..4c6c1bd 100644
--- a/extensions/Wikibase/repo/i18n/fa.json
+++ b/extensions/Wikibase/repo/i18n/fa.json
@@ -22,7 +22,8 @@
"درفش کاویانی",
"Alirezaaa",
"Bersam",
- "Huji"
+ "Huji",
+ "Alifakoor"
]
},
"wikibase-desc": "مخزن دادههای ساختیافته",
@@ -66,7 +67,7 @@
"wikibase-diffview-alias": "نامهای دیگر",
"wikibase-diffview-description": "توضیحات",
"wikibase-diffview-link": "پیوندها",
- "wikibase-sitelink-site-edit-placeholder": "وبگاه",
+ "wikibase-sitelink-site-edit-placeholder": "ویکی",
"wikibase-sitelink-page-edit-placeholder": "صفحه",
"wikibase-alias-edit-placeholder": "واردکردن نام مستعار",
"wikibase-label-input-help-message": "برچسب این موجودیت را به $1 وارد
کنید.",
diff --git a/extensions/Wikibase/repo/i18n/frp.json
b/extensions/Wikibase/repo/i18n/frp.json
index 6a3a421..22e5447 100644
--- a/extensions/Wikibase/repo/i18n/frp.json
+++ b/extensions/Wikibase/repo/i18n/frp.json
@@ -15,9 +15,9 @@
"wikibase-add": "apondre",
"wikibase-save-inprogress": "Encartâjo en cors...",
"wikibase-remove-inprogress": "Suprèssion en cors...",
- "wikibase-label-empty": "Gins de lambél dèfeni",
+ "wikibase-label-empty": "Nion lambél dèfeni",
"wikibase-label-edit-placeholder": "buchiér un lambél",
- "wikibase-description-empty": "Gins de dèscripcion dèfenia",
+ "wikibase-description-empty": "Niona dèscripcion dèfenia",
"wikibase-description-edit-placeholder": "buchiér na dèscripcion",
"wikibase-sitelink-site-edit-placeholder": "seto",
"wikibase-sitelink-page-edit-placeholder": "articllo",
@@ -38,6 +38,7 @@
"wikibase-disambiguation-title": "Homonimia por « $1 »",
"wb-special-newitem-new-item-notification": "Un novél èlèment $1 fêt et
pués redirigiê vers la sina pâge. Retôrn a $2.",
"wikibase-propertypage-datatype": "Tipo de donâs",
+ "wikibase-statementview-rank-normal": "Renche normala",
"wikibase-snakview-property-input-placeholder": "propriètât",
"wikibase-validator-label-conflict": "N’ôtra propriètât ($3) at ja lo
lambél « $1 » associyê u code lengoua $2",
"wikibase-validator-label-with-description-conflict": "Un ôtr’èlèment
($3) at ja lo lambél « $1 » et la dèscripcion « $4 » associyês u code lengoua
$2",
diff --git a/extensions/Wikibase/repo/i18n/ka.json
b/extensions/Wikibase/repo/i18n/ka.json
index ed19ab6..b06526d 100644
--- a/extensions/Wikibase/repo/i18n/ka.json
+++ b/extensions/Wikibase/repo/i18n/ka.json
@@ -38,7 +38,7 @@
"wikibase-diffview-alias": "ფსევდონიმები",
"wikibase-diffview-description": "აღწერა",
"wikibase-diffview-link": "ბმულები",
- "wikibase-sitelink-site-edit-placeholder": "ვებ-გვერდი",
+ "wikibase-sitelink-site-edit-placeholder": "ვიკი",
"wikibase-sitelink-page-edit-placeholder": "გვერდი",
"wikibase-alias-edit-placeholder": "ფსევდონიმის შეყვანა",
"wikibase-label-input-help-message": "დაამატეთ ამ მონაცემთა ნაკრების
სათაური შემდეგ ენაზე: $1.",
diff --git a/extensions/Wikibase/repo/i18n/pl.json
b/extensions/Wikibase/repo/i18n/pl.json
index 9ec1844..343b4c7 100644
--- a/extensions/Wikibase/repo/i18n/pl.json
+++ b/extensions/Wikibase/repo/i18n/pl.json
@@ -150,7 +150,7 @@
"wikibase-newproperty-datatype": "Typ danych:",
"wikibase-newproperty-invalid-datatype": "Podano nieprawidłowy typ
danych.",
"special-newitem": "Utwórz nowy element",
- "wikibase-newitem-summary": "Upewnij się czy [[Special:Search|dany
element już istnieje]]!<br />Dla wszystkich nowych elementów powinno się
utworzyć [[Help:Label|etykietę]] oraz [[Help:Description|opis]].",
+ "wikibase-newitem-summary": "Upewnij się, [[Special:Search|czy dany
element już istnieje]]!<br />Dla wszystkich nowych elementów należy utworzyć
[[Help:Label|etykietę]] oraz [[Help:Description|opis]].",
"wikibase-newitem-fieldset": "Utwórz nowy element",
"wikibase-newitem-site": "Położenie pierwszej linkowanej strony",
"wikibase-newitem-page": "Nazwa pierwszej linkowanej strony",
diff --git a/extensions/Wikibase/repo/i18n/zgh.json
b/extensions/Wikibase/repo/i18n/zgh.json
index c7a375c..c226843 100644
--- a/extensions/Wikibase/repo/i18n/zgh.json
+++ b/extensions/Wikibase/repo/i18n/zgh.json
@@ -5,5 +5,6 @@
]
},
"wikibase-edit": "ⵙⵏⴼⵍ",
- "wikibase-add": "ⵔⵏⵓ"
+ "wikibase-add": "ⵔⵏⵓ",
+ "wikibase-sitelinks-special": "ⵉⵙⵉⵜⵏ ⵢⴰⴹⵏ"
}
diff --git a/extensions/Wikibase/repo/includes/Parsers/MwTimeIsoParser.php
b/extensions/Wikibase/repo/includes/Parsers/MwTimeIsoParser.php
index 973ab85..04ace74 100644
--- a/extensions/Wikibase/repo/includes/Parsers/MwTimeIsoParser.php
+++ b/extensions/Wikibase/repo/includes/Parsers/MwTimeIsoParser.php
@@ -148,6 +148,11 @@
*/
private function parseFromOutputString( Language $lang, $value,
$precision, $msgKey ) {
$msgText = $lang->getMessage( $msgKey );
+
+ if ( strpos( $msgText, '$1' ) === false || $msgText === '$1' ) {
+ return null;
+ }
+
$isBceMsg = $this->isBceMsg( $msgKey );
$msgRegexp = $this->getRegexpFromMessageText( $msgText );
diff --git a/extensions/Wikibase/repo/includes/Parsers/TimeParserFactory.php
b/extensions/Wikibase/repo/includes/Parsers/TimeParserFactory.php
index 2cd8d75..259c6d8 100644
--- a/extensions/Wikibase/repo/includes/Parsers/TimeParserFactory.php
+++ b/extensions/Wikibase/repo/includes/Parsers/TimeParserFactory.php
@@ -105,9 +105,15 @@
$canonicalMonthNames =
$this->monthNameProvider->getLocalizedMonthNames(
self::CANONICAL_LANGUAGE_CODE
);
- $replacements = array_map( function( $i ) use (
$canonicalMonthNames ) {
- return $canonicalMonthNames[$i];
- }, $this->monthNameProvider->getMonthNumbers(
$languageCode ) );
+ $replacements =
$this->monthNameProvider->getMonthNumbers( $languageCode );
+
+ foreach ( $replacements as $localizedMonthName => &$i )
{
+ if ( !is_string( $localizedMonthName ) ) {
+ unset(
$replacements[$localizedMonthName] );
+ } else {
+ $i = $canonicalMonthNames[$i];
+ }
+ }
}
return new MonthNameUnlocalizer( $replacements );
diff --git
a/extensions/Wikibase/repo/tests/phpunit/includes/Parsers/MwTimeIsoParserTest.php
b/extensions/Wikibase/repo/tests/phpunit/includes/Parsers/MwTimeIsoParserTest.php
index 999eb50..ad3400f 100644
---
a/extensions/Wikibase/repo/tests/phpunit/includes/Parsers/MwTimeIsoParserTest.php
+++
b/extensions/Wikibase/repo/tests/phpunit/includes/Parsers/MwTimeIsoParserTest.php
@@ -99,7 +99,13 @@
// With $1 in the PLURAL case
'wikibase-time-precision-BCE-century' =>
'{{PLURAL:$1|$1 one|$1 more|$1 evenmore}} precision-BCE-century',
// A random template in the message
- 'wikibase-time-precision-10annum' => '$1
precision-10annum{{PLURAL:$1||s}} {{dummy|1|2|3}}'
+ 'wikibase-time-precision-10annum' => '$1
precision-10annum{{PLURAL:$1||s}} {{dummy|1|2|3}}',
+
+ // Invalid messages
+ 'wikibase-time-precision-BCE-10annum' => '$1',
+ 'wikibase-time-precision-BCE-millennium' => '-',
+ 'wikibase-time-precision-BCE-annum' => '',
+ 'wikibase-time-precision-BCE-Gannum' => null,
];
}
diff --git
a/extensions/Wikibase/repo/tests/phpunit/includes/Parsers/TimeParserFactoryTest.php
b/extensions/Wikibase/repo/tests/phpunit/includes/Parsers/TimeParserFactoryTest.php
index e6e3766..b6ed55f 100644
---
a/extensions/Wikibase/repo/tests/phpunit/includes/Parsers/TimeParserFactoryTest.php
+++
b/extensions/Wikibase/repo/tests/phpunit/includes/Parsers/TimeParserFactoryTest.php
@@ -54,11 +54,17 @@
return $monthNameProvider;
}
- private function newTimeParserFactory( $languageCode ) {
+ private function newTimeParserFactory(
+ $languageCode,
+ MonthNameProvider $monthNameProvider = null
+ ) {
$options = new ParserOptions();
$options->setOption( ValueParser::OPT_LANG, $languageCode );
- return new TimeParserFactory( $options,
$this->newMonthNameProvider() );
+ return new TimeParserFactory(
+ $options,
+ $monthNameProvider ?: $this->newMonthNameProvider()
+ );
}
public function testGetTimeParser() {
@@ -76,7 +82,7 @@
$parser = $factory->getTimeParser();
$actual = $parser->parse( $value );
- $this->assertEquals( $expected->getArrayValue(),
$actual->getArrayValue() );
+ $this->assertSame( $expected->getArrayValue(),
$actual->getArrayValue() );
}
public function validInputProvider() {
@@ -287,7 +293,7 @@
);
$actual = $factory->getTimeParser()->parse( $value );
- $this->assertEquals( $expected->getArrayValue(),
$actual->getArrayValue() );
+ $this->assertSame( $expected->getArrayValue(),
$actual->getArrayValue() );
}
public function parserOptionsProvider() {
@@ -373,7 +379,7 @@
$factory = $this->newTimeParserFactory( $languageCode );
$unlocalizer = $factory->getMonthNameUnlocalizer();
- $this->assertEquals( $expected, $unlocalizer->unlocalize( $date
) );
+ $this->assertSame( $expected, $unlocalizer->unlocalize( $date )
);
}
public function localizedMonthNameProvider() {
@@ -457,7 +463,7 @@
$date = $unlocalizer->unlocalize( $date );
}
- $this->assertEquals( $expected, $date );
+ $this->assertSame( $expected, $date );
}
public function localizedMonthName_withLanguageChainProvider() {
@@ -476,4 +482,18 @@
);
}
+ public function testMonthNameUnlocalizer_withUnlocalizedMonthNumbers() {
+ $monthNameProvider = $this->getMock( MonthNameProvider::class );
+ $monthNameProvider->expects( $this->any() )
+ ->method( 'getLocalizedMonthNames' )
+ ->will( $this->returnValue( [ 2 => 'Localized' ] ) );
+ $monthNameProvider->expects( $this->any() )
+ ->method( 'getMonthNumbers' )
+ ->will( $this->returnValue( [ '2' => 2 ] ) );
+
+ $factory = $this->newTimeParserFactory( 'ko',
$monthNameProvider );
+ $unlocalizer = $factory->getMonthNameUnlocalizer();
+ $this->assertSame( '2000', $unlocalizer->unlocalize( '2000' ) );
+ }
+
}
diff --git
a/extensions/Wikibase/view/resources/jquery/wikibase/jquery.wikibase.entityselector.js
b/extensions/Wikibase/view/resources/jquery/wikibase/jquery.wikibase.entityselector.js
index 509efa5..f7ba671 100644
---
a/extensions/Wikibase/view/resources/jquery/wikibase/jquery.wikibase.entityselector.js
+++
b/extensions/Wikibase/view/resources/jquery/wikibase/jquery.wikibase.entityselector.js
@@ -172,7 +172,6 @@
_search: function( event ) {
var self = this;
- this._cache = {};
this._select( null );
clearTimeout( this._searching );
@@ -214,17 +213,25 @@
* @param {string} term
* @return {Object}
*/
- _getData: function( term ) {
- return {
+ _getSearchApiParameters: function( term ) {
+ var data = {
action: 'wbsearchentities',
search: term,
format: 'json',
language: this.options.language,
uselang: this.options.language,
- type: this.options.type,
- 'continue': this._cache[term] &&
this._cache[term].nextSuggestionOffset
- ? this._cache[term].nextSuggestionOffset : 0
+ type: this.options.type
};
+
+ if ( this._cache.term === term &&
this._cache.nextSuggestionOffset ) {
+ data.continue = this._cache.nextSuggestionOffset;
+ }
+
+ if ( this.options.limit ) {
+ data.limit = this.options.limit;
+ }
+
+ return data;
},
/**
@@ -239,20 +246,13 @@
var self = this;
return function( term ) {
- var deferred = $.Deferred(),
- data = self._getData( term );
-
- if ( self.options.limit ) {
- $.extend( data, {
- limit: self.options.limit
- } );
- }
+ var deferred = $.Deferred();
$.ajax( {
url: self.options.url,
timeout: self.options.timeout,
dataType: 'json',
- data: data
+ data: self._getSearchApiParameters( term )
} )
.done( function( response ) {
deferred.resolve(
@@ -358,10 +358,7 @@
customItems.unshift( new $.ui.ooMenu.CustomItem(
this.options.messages.more,
function() {
- var cached = self._cache[self._term];
- return cached
- && cached.nextSuggestionOffset
- && cached.nextSuggestionOffset >
cached.suggestions.length - 1;
+ return self._cache.term === self._term &&
self._cache.nextSuggestionOffset;
},
function() {
self.search( $.Event( 'programmatic' ) );
@@ -393,18 +390,18 @@
.then( function( suggestions, searchTerm, nextSuggestionOffset
) {
var deferred = $.Deferred();
- if ( self._cache[searchTerm] &&
self._cache[searchTerm].nextSuggestionOffset ) {
- self._cache[searchTerm].suggestions =
self._cache[searchTerm].suggestions.concat( suggestions );
- self._cache[searchTerm].nextSuggestionOffset =
nextSuggestionOffset;
+ if ( self._cache.term === searchTerm &&
self._cache.nextSuggestionOffset ) {
+ self._cache.suggestions =
self._cache.suggestions.concat( suggestions );
+ self._cache.nextSuggestionOffset =
nextSuggestionOffset;
} else {
- self._cache = {};
- self._cache[searchTerm] = {
+ self._cache = {
+ term: searchTerm,
suggestions: suggestions,
nextSuggestionOffset:
nextSuggestionOffset
};
}
- deferred.resolve( self._cache[searchTerm].suggestions,
searchTerm );
+ deferred.resolve( self._cache.suggestions, searchTerm );
return deferred.promise();
} );
},
diff --git
a/extensions/Wikibase/view/resources/jquery/wikibase/jquery.wikibase.sitelinkgroupview.js
b/extensions/Wikibase/view/resources/jquery/wikibase/jquery.wikibase.sitelinkgroupview.js
index 6bae21d..8a6f175 100644
---
a/extensions/Wikibase/view/resources/jquery/wikibase/jquery.wikibase.sitelinkgroupview.js
+++
b/extensions/Wikibase/view/resources/jquery/wikibase/jquery.wikibase.sitelinkgroupview.js
@@ -93,11 +93,14 @@
* @see jQuery.ui.TemplatedWidget._create
*/
_create: function() {
- if ( !this.options.groupName || !this.options.siteLinksChanger
|| !this.options.entityIdPlainFormatter ) {
+ if ( !this.options.groupName
+ || !this.options.siteLinksChanger
+ || !this.options.entityIdPlainFormatter
+ ) {
throw new Error( 'Required parameter(s) missing' );
}
- this.options.value = this._checkValue( this.options.value );
+ this.options.value = this.options.value || [];
this._siteIdsOfGroup = getSiteIdsOfGroup(
this.options.groupName );
PARENT.prototype._create.call( this );
@@ -203,18 +206,6 @@
},
/**
- * @param {*} value
- * @return {Object}
- */
- _checkValue: function( value ) {
- if ( !value ) {
- value = [];
- }
-
- return value;
- },
-
- /**
* @see jQuery.ui.EditableTemplatedWidget.startEditing
*/
startEditing: function() {
@@ -271,8 +262,8 @@
/**
* @see jQuery.ui.EditableTemplatedWidget.value
*
- * @param {Object} [value]
- * @return {Object|*}
+ * @param {wikibase.datamodel.SiteLink[]} [value]
+ * @return {wikibase.datamodel.SiteLink[]}
*/
value: function( value ) {
if ( value !== undefined ) {
@@ -286,7 +277,7 @@
* @see jQuery.ui.EditableTemplatedWidget.isEmpty
*/
isEmpty: function() {
- return !this.value().length;
+ return !this.options.value.length;
},
/**
@@ -317,7 +308,13 @@
*/
_setOption: function( key, value ) {
if ( key === 'value' ) {
- value = this._checkValue( value );
+ value = value || [];
+ } else if ( key === 'groupName' && value !==
this.options.groupName ) {
+ this._siteIdsOfGroup = getSiteIdsOfGroup( value );
+ this.$sitelinklistview.data( 'sitelinklistview' )
+ .option( 'allowedSiteIds', this._siteIdsOfGroup
);
+
+ this.draw();
}
var response = PARENT.prototype._setOption.call( this, key,
value );
@@ -325,12 +322,6 @@
if ( key === 'value' ) {
this.$sitelinklistview.data( 'sitelinklistview' )
.value( this.options.value );
-
- this.draw();
- } else if ( key === 'groupName' ) {
- this._siteIdsOfGroup = getSiteIdsOfGroup( value );
- this.$sitelinklistview.data( 'sitelinklistview' )
- .option( 'allowedSiteIds', this._siteIdsOfGroup );
this.draw();
} else if ( key === 'disabled' ) {
diff --git a/extensions/Wikibase/view/resources/wikibase/view/ViewFactory.js
b/extensions/Wikibase/view/resources/wikibase/view/ViewFactory.js
index c504756..19f2bbb 100644
--- a/extensions/Wikibase/view/resources/wikibase/view/ViewFactory.js
+++ b/extensions/Wikibase/view/resources/wikibase/view/ViewFactory.js
@@ -214,17 +214,17 @@
*
* @param {jQuery.util.EventSingletonManager} eventSingletonManager
* @param {string} groupName
- * @param {wikibase.datamodel.SiteLink[]} value
+ * @param {wikibase.datamodel.SiteLink[]} siteLinks
* @param {jQuery} $sitelinkgroupview
* @return {jQuery.wikibase.sitelinkgroupview} The constructed
sitelinkgroupview
**/
- SELF.prototype.getSitelinkGroupView = function( eventSingletonManager,
groupName, value, $sitelinkgroupview ) {
+ SELF.prototype.getSitelinkGroupView = function( eventSingletonManager,
groupName, siteLinks, $sitelinkgroupview ) {
return this._getView(
'sitelinkgroupview',
$sitelinkgroupview,
{
groupName: groupName,
- value: value,
+ value: siteLinks,
eventSingletonManager: eventSingletonManager,
siteLinksChanger:
this._entityChangersFactory.getSiteLinksChanger(),
entityIdPlainFormatter:
this._entityIdPlainFormatter
diff --git
a/extensions/Wikibase/view/tests/qunit/jquery/wikibase/jquery.wikibase.sitelinkgroupview.tests.js
b/extensions/Wikibase/view/tests/qunit/jquery/wikibase/jquery.wikibase.sitelinkgroupview.tests.js
index 4d615aa..b9619cf 100644
---
a/extensions/Wikibase/view/tests/qunit/jquery/wikibase/jquery.wikibase.sitelinkgroupview.tests.js
+++
b/extensions/Wikibase/view/tests/qunit/jquery/wikibase/jquery.wikibase.sitelinkgroupview.tests.js
@@ -229,29 +229,29 @@
QUnit.test( 'value()', function( assert ) {
assert.expect( 2 );
var siteLink = new wikibase.datamodel.SiteLink( 'enwiki', 'Main Page' ),
- value = [siteLink],
+ siteLinks = [siteLink],
$sitelinkgroupview = createSitelinkgroupview( {
groupName: 'group1',
- value: value
+ value: siteLinks
} ),
sitelinkgroupview = $sitelinkgroupview.data(
'sitelinkgroupview' );
assert.deepEqual(
sitelinkgroupview.value(),
- value,
+ siteLinks,
'Retrieved initial value.'
);
- value = [
+ siteLinks = [
new wikibase.datamodel.SiteLink( 'dewiki', '1234' ),
new wikibase.datamodel.SiteLink( 'enwiki', '5678' )
];
- sitelinkgroupview.value( value );
+ sitelinkgroupview.value( siteLinks );
assert.deepEqual(
sitelinkgroupview.value(),
- value,
+ siteLinks,
'Set and retrieved new value.'
);
} );
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index c227be5..5be0f95 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -207,53 +207,6 @@
]
},
{
- "name": "wikimedia/assert",
- "version": "v0.2.2",
- "version_normalized": "0.2.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/wmde/Assert.git",
- "reference": "2da55927525975f8d52825fc3ee02e5e36f5036c"
- },
- "dist": {
- "type": "zip",
- "url":
"https://api.github.com/repos/wmde/Assert/zipball/2da55927525975f8d52825fc3ee02e5e36f5036c",
- "reference": "2da55927525975f8d52825fc3ee02e5e36f5036c",
- "shasum": ""
- },
- "require-dev": {
- "phpunit/phpunit": "3.7.*"
- },
- "time": "2015-04-29 17:23:50",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "Wikimedia\\Assert\\": "src/",
- "Wikimedia\\Assert\\Test\\": "tests/phpunit/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Daniel Kinzler"
- }
- ],
- "description": "Provides runtime assertions",
- "homepage": "https://github.com/wmde/Assert",
- "keywords": [
- "assert",
- "assertions",
- "php",
- "postcondition",
- "precondition",
- "qa"
- ]
- },
- {
"name": "data-values/javascript",
"version": "0.8.2",
"version_normalized": "0.8.2.0",
@@ -1394,12 +1347,12 @@
"source": {
"type": "git",
"url":
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git",
- "reference": "322a6a96762cb42310c9a6848d4b08a0445b77e8"
+ "reference": "aff01e1b44fc1a6b2139d48b6d9d4b5afa75e97d"
},
"dist": {
"type": "zip",
- "url":
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/322a6a96762cb42310c9a6848d4b08a0445b77e8",
- "reference": "322a6a96762cb42310c9a6848d4b08a0445b77e8",
+ "url":
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/aff01e1b44fc1a6b2139d48b6d9d4b5afa75e97d",
+ "reference": "aff01e1b44fc1a6b2139d48b6d9d4b5afa75e97d",
"shasum": ""
},
"require": {
@@ -1423,7 +1376,6 @@
"wikibase/internal-serialization": "~2.3",
"wikibase/javascript-api": "~1.1",
"wikibase/serialization-javascript": "~2.0.5",
- "wikimedia/assert": "~0.2.2",
"wikimedia/purtle": "~1.0"
},
"conflict": {
@@ -1433,7 +1385,7 @@
"jakub-onderka/php-parallel-lint": "0.9.2",
"mediawiki/mediawiki-codesniffer": "0.4.0|0.5.0"
},
- "time": "2016-07-06 08:20:46",
+ "time": "2016-07-07 09:23:42",
"type": "mediawiki-extension",
"installation-source": "dist",
"autoload": {
@@ -1574,6 +1526,53 @@
}
},
{
+ "name": "wikimedia/assert",
+ "version": "v0.2.2",
+ "version_normalized": "0.2.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/wmde/Assert.git",
+ "reference": "2da55927525975f8d52825fc3ee02e5e36f5036c"
+ },
+ "dist": {
+ "type": "zip",
+ "url":
"https://api.github.com/repos/wmde/Assert/zipball/2da55927525975f8d52825fc3ee02e5e36f5036c",
+ "reference": "2da55927525975f8d52825fc3ee02e5e36f5036c",
+ "shasum": ""
+ },
+ "require-dev": {
+ "phpunit/phpunit": "3.7.*"
+ },
+ "time": "2015-04-29 17:23:50",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Wikimedia\\Assert\\": "src/",
+ "Wikimedia\\Assert\\Test\\": "tests/phpunit/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Daniel Kinzler"
+ }
+ ],
+ "description": "Provides runtime assertions",
+ "homepage": "https://github.com/wmde/Assert",
+ "keywords": [
+ "assert",
+ "assertions",
+ "php",
+ "postcondition",
+ "precondition",
+ "qa"
+ ]
+ },
+ {
"name": "wikibase/external-validation",
"version": "dev-master",
"version_normalized": "9999999-dev",
--
To view, visit https://gerrit.wikimedia.org/r/297759
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I3b84706c39f7aa10b134ba3a61d2813294d04d8d
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikidata
Gerrit-Branch: master
Gerrit-Owner: WikidataBuilder <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits