WikidataBuilder has uploaded a new change for review. https://gerrit.wikimedia.org/r/291888
Change subject: New Wikidata Build - 2016-05-31T10:00:01+0000 ...................................................................... New Wikidata Build - 2016-05-31T10:00:01+0000 Change-Id: I5745fde44e6b5cf246f749e29af95f3acffde9f2 --- M composer.lock M extensions/ArticlePlaceholder/modules/ext.articleplaceholder.defaultDisplay.css M extensions/MediaInfo/src/Content/MediaInfoHandler.php M extensions/MediaInfo/tests/phpunit/mediawiki/View/MediaInfoViewTest.php M extensions/Wikibase/client/i18n/inh.json M extensions/Wikibase/client/includes/WikibaseClient.php M extensions/Wikibase/composer.json M extensions/Wikibase/lib/i18n/it.json M extensions/Wikibase/lib/includes/Store/BufferingTermLookup.php M extensions/Wikibase/lib/includes/Store/Sql/SqlEntityInfoBuilder.php M extensions/Wikibase/lib/includes/Store/Sql/TermSqlIndex.php M extensions/Wikibase/lib/includes/TermIndexEntry.php M extensions/Wikibase/repo/i18n/it.json M extensions/Wikibase/repo/includes/ValidatorBuilders.php M extensions/Wikibase/repo/includes/WikibaseRepo.php M extensions/Wikibase/repo/resources/wikibase.ui.entityViewInit.js A extensions/Wikibase/tests/browser/ci.yml M extensions/Wikibase/view/resources/jquery/wikibase/jquery.wikibase.entitytermsview.js M vendor/composer/installed.json M vendor/wikibase/javascript-api/README.md M vendor/wikibase/javascript-api/WikibaseJavaScriptApi.php M vendor/wikibase/javascript-api/src/getLocationAgnosticMwApi.js 22 files changed, 346 insertions(+), 293 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikidata refs/changes/88/291888/1 diff --git a/composer.lock b/composer.lock index 67ba63f..23eb22a 100644 --- a/composer.lock +++ b/composer.lock @@ -780,12 +780,12 @@ "source": { "type": "git", "url": "https://github.com/wikimedia/mediawiki-extensions-ArticlePlaceholder.git", - "reference": "6025c71f8be6b2d17b46749ec298d07b091b9e82" + "reference": "be49fc7fef64e29f5f1f3ae5d6aa420c7c9aa6d9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-ArticlePlaceholder/zipball/6025c71f8be6b2d17b46749ec298d07b091b9e82", - "reference": "6025c71f8be6b2d17b46749ec298d07b091b9e82", + "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-ArticlePlaceholder/zipball/be49fc7fef64e29f5f1f3ae5d6aa420c7c9aa6d9", + "reference": "be49fc7fef64e29f5f1f3ae5d6aa420c7c9aa6d9", "shasum": "" }, "require-dev": { @@ -809,7 +809,7 @@ ], "description": "Provides a special page with Wikibase information about a certain topic, with invitation to create an article for the topic", "homepage": "https://www.mediawiki.org/wiki/Extension:ArticlePlaceholder", - "time": "2016-05-29 20:25:30" + "time": "2016-05-30 14:11:53" }, { "name": "propertysuggester/property-suggester", @@ -1369,16 +1369,16 @@ }, { "name": "wikibase/javascript-api", - "version": "1.1.0", + "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/wikimedia/mediawiki-extensions-WikibaseJavaScriptApi.git", - "reference": "a9c0202a33f278edd024f0c150d6281a6635bfc0" + "reference": "8c5eef73fc5a22c5ddb46da24dbeeaf14094c28c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-WikibaseJavaScriptApi/zipball/a9c0202a33f278edd024f0c150d6281a6635bfc0", - "reference": "a9c0202a33f278edd024f0c150d6281a6635bfc0", + "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-WikibaseJavaScriptApi/zipball/8c5eef73fc5a22c5ddb46da24dbeeaf14094c28c", + "reference": "8c5eef73fc5a22c5ddb46da24dbeeaf14094c28c", "shasum": "" }, "require": { @@ -1409,7 +1409,7 @@ } ], "description": "JavaScript client for the Wikibase Repository web API", - "time": "2016-02-17 10:46:01" + "time": "2016-05-30 17:31:31" }, { "name": "wikibase/media-info", @@ -1417,7 +1417,7 @@ "source": { "type": "git", "url": "https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseMediaInfo", - "reference": "79b264dd93e26f00b7438dc00c79cd468acdde23" + "reference": "8111551b13188e898811f2af51637997a2a08f64" }, "require": { "php": ">=5.5.0", @@ -1463,7 +1463,7 @@ "issues": "https://phabricator.wikimedia.org/", "irc": "irc://irc.freenode.net/wikidata" }, - "time": "2016-05-24 16:10:19" + "time": "2016-05-31 07:02:52" }, { "name": "wikibase/quality", @@ -1569,12 +1569,12 @@ "source": { "type": "git", "url": "https://github.com/wikimedia/mediawiki-extensions-Wikibase.git", - "reference": "6600063308c7019fef6219973c8969fa6bb9f629" + "reference": "8307e06a9ab386302085184571dcad270ef4a77d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/6600063308c7019fef6219973c8969fa6bb9f629", - "reference": "6600063308c7019fef6219973c8969fa6bb9f629", + "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/8307e06a9ab386302085184571dcad270ef4a77d", + "reference": "8307e06a9ab386302085184571dcad270ef4a77d", "shasum": "" }, "require": { @@ -1585,7 +1585,7 @@ "data-values/interfaces": "~0.2.0|~0.1.5", "data-values/javascript": "~0.8.0", "data-values/number": "~0.7.0", - "data-values/serialization": "~1.0", + "data-values/serialization": "~1.1", "data-values/time": "~0.8.4", "data-values/validators": "~0.1.0", "data-values/value-view": "~0.17.1", @@ -1646,7 +1646,7 @@ "wikibaserepo", "wikidata" ], - "time": "2016-05-30 08:56:04" + "time": "2016-05-31 09:34:42" }, { "name": "wikibase/wikimedia-badges", diff --git a/extensions/ArticlePlaceholder/modules/ext.articleplaceholder.defaultDisplay.css b/extensions/ArticlePlaceholder/modules/ext.articleplaceholder.defaultDisplay.css index 0040bd3..20c70c4 100644 --- a/extensions/ArticlePlaceholder/modules/ext.articleplaceholder.defaultDisplay.css +++ b/extensions/ArticlePlaceholder/modules/ext.articleplaceholder.defaultDisplay.css @@ -12,6 +12,10 @@ padding-right: 305px; } +.mw-body .mw-body-content .articleplaceholder-statementgroup h1 { + margin-top: 0; /*overwrite standard 1em top margin*/ +} + #create-article-button { position: absolute; top: 0px; @@ -30,11 +34,15 @@ .articleplaceholder-identifierlist { clear: both; - border: 1px solid black; + border: 1px solid #ccc; background-color: #F9F9F9; width: 100%; - padding: 0.6em; - text-align: left; + padding: 0.4em; +} + +.articleplaceholder-identifierlist td{ + vertical-align: top; + padding:0.25em; } .mw-body .articleplaceholder-identifierlist p { @@ -45,18 +53,23 @@ word-break:break-all; } -.articleplaceholder-statementgrouplist { - margin-top: 5%; +.articleplaceholder-statement { + margin-top: 0em; } -.articleplaceholder-value { - font-size: 130%; +.articleplaceholder-statementgrouplist { + margin-top: 1.5em; } .articleplaceholder-identifierlist .articleplaceholder-value { font-size: 100%; } -.articleplaceholder-qualifier { - text-indent: 1em; +.articleplaceholder-identifierlist .articleplaceholder-value { + font-size: 100%; + margin-left: 1.5em; } + +.articleplaceholder-qualifier { + margin-left: 1em; +} \ No newline at end of file diff --git a/extensions/MediaInfo/src/Content/MediaInfoHandler.php b/extensions/MediaInfo/src/Content/MediaInfoHandler.php index ff4c23c..1185c93 100644 --- a/extensions/MediaInfo/src/Content/MediaInfoHandler.php +++ b/extensions/MediaInfo/src/Content/MediaInfoHandler.php @@ -3,7 +3,6 @@ namespace Wikibase\MediaInfo\Content; use IContextSource; -use Language; use Page; use Wikibase\DataModel\Entity\EntityIdParser; use Wikibase\EditEntityAction; diff --git a/extensions/MediaInfo/tests/phpunit/mediawiki/View/MediaInfoViewTest.php b/extensions/MediaInfo/tests/phpunit/mediawiki/View/MediaInfoViewTest.php index 7063b32..641d0cc 100644 --- a/extensions/MediaInfo/tests/phpunit/mediawiki/View/MediaInfoViewTest.php +++ b/extensions/MediaInfo/tests/phpunit/mediawiki/View/MediaInfoViewTest.php @@ -102,7 +102,6 @@ public function testGetHtml( MediaInfo $entity, MediaInfoId $entityId = null, - TermList $descriptions = null, $contentLanguageCode = 'en', StatementList $statements = null ) { @@ -145,7 +144,6 @@ public function provideTestGetHtml() { $mediaInfoId = new MediaInfoId( 'M1' ); - $descriptions = new TermList( [ new Term( 'en', 'EN_DESCRIPTION' ) ] ); $statements = new StatementList( [ new Statement( new PropertyNoValueSnak( new PropertyId( 'P1' ) ) ) ] ); @@ -155,42 +153,23 @@ new MediaInfo() ], [ - new MediaInfo( - $mediaInfoId - ), + new MediaInfo( $mediaInfoId ), $mediaInfoId ], [ - new MediaInfo( - $mediaInfoId, - null, - $descriptions, - $statements - ), + new MediaInfo( $mediaInfoId, null, null, $statements ), $mediaInfoId, - $descriptions, 'en', $statements ], [ - new MediaInfo( - $mediaInfoId, - null, - $descriptions - ), + new MediaInfo( $mediaInfoId ), $mediaInfoId, - $descriptions, 'lkt' ], [ - new MediaInfo( - $mediaInfoId, - null, - $descriptions, - $statements - ), + new MediaInfo( $mediaInfoId, null, null, $statements ), $mediaInfoId, - $descriptions, 'lkt', $statements ], diff --git a/extensions/Wikibase/client/i18n/inh.json b/extensions/Wikibase/client/i18n/inh.json index 8da3e61..562026c 100644 --- a/extensions/Wikibase/client/i18n/inh.json +++ b/extensions/Wikibase/client/i18n/inh.json @@ -13,7 +13,7 @@ "wikibase-editlinkstitle": "Меттий юкъера тIахьожаяргаш тоаяр", "wikibase-linkitem-input-page": "ОагIув:", "wikibase-rc-hide-wikidata": "$1 {{WBREPONAME}}", - "wikibase-rc-hide-wikidata-hide": "ДIакъайладаккха", + "wikibase-rc-hide-wikidata-hide": "Къайладаккха", "wikibase-rc-hide-wikidata-show": "Хьахьокха", "wikibase-rc-wikibase-edit-letter": "д", "wikibase-rc-wikibase-edit-title": "{{grammar:genitive|{{WBREPONAME}}}} нийсдар", diff --git a/extensions/Wikibase/client/includes/WikibaseClient.php b/extensions/Wikibase/client/includes/WikibaseClient.php index ef164df..e161c83 100644 --- a/extensions/Wikibase/client/includes/WikibaseClient.php +++ b/extensions/Wikibase/client/includes/WikibaseClient.php @@ -917,7 +917,11 @@ 'multilingualtext' => MultilingualTextValue::class, 'quantity' => QuantityValue::class, 'time' => TimeValue::class, - 'wikibase-entityid' => EntityIdValue::class, + 'wikibase-entityid' => function( $value ) { + return isset( $value['id'] ) + ? $this->getEntityIdParser()->parse( $value['id'] ) + : EntityIdValue::newFromArray( $value ); + }, ) ); } diff --git a/extensions/Wikibase/composer.json b/extensions/Wikibase/composer.json index d6f6267..f6d63e1 100644 --- a/extensions/Wikibase/composer.json +++ b/extensions/Wikibase/composer.json @@ -30,7 +30,7 @@ "data-values/time": "~0.8.4", "data-values/validators": "~0.1.0", "data-values/data-types": "~0.5.0", - "data-values/serialization": "~1.0", + "data-values/serialization": "~1.1", "data-values/javascript": "~0.8.0", "data-values/value-view": "~0.17.1", "wikibase/data-model": "~6.0", diff --git a/extensions/Wikibase/lib/i18n/it.json b/extensions/Wikibase/lib/i18n/it.json index d6610e9..ce4c917 100644 --- a/extensions/Wikibase/lib/i18n/it.json +++ b/extensions/Wikibase/lib/i18n/it.json @@ -74,7 +74,7 @@ "datatypes-type-wikibase-item": "Elemento", "datatypes-type-wikibase-property": "Proprietà", "datatypes-type-commonsMedia": "File multimediale su Commons", - "datatypes-type-external-id": "Identificatore esterno", + "datatypes-type-external-id": "Identificativo esterno", "version-wikibase": "Wikibase", "wikibase-time-precision-Gannum": "$1 miliardi di anni d.C.", "wikibase-time-precision-Mannum": "$1 milioni di anni d.C.", diff --git a/extensions/Wikibase/lib/includes/Store/BufferingTermLookup.php b/extensions/Wikibase/lib/includes/Store/BufferingTermLookup.php index f21663c..9c48fe4 100644 --- a/extensions/Wikibase/lib/includes/Store/BufferingTermLookup.php +++ b/extensions/Wikibase/lib/includes/Store/BufferingTermLookup.php @@ -184,7 +184,13 @@ $keys = array(); foreach ( $terms as $term ) { - $key = $this->getBufferKey( $term->getEntityId(), $term->getType(), $term->getLanguage() ); + $id = $term->getEntityId(); + + if ( $id === null ) { + continue; + } + + $key = $this->getBufferKey( $id, $term->getType(), $term->getLanguage() ); $this->buffer->set( $key, $term->getText() ); $keys[] = $key; } diff --git a/extensions/Wikibase/lib/includes/Store/Sql/SqlEntityInfoBuilder.php b/extensions/Wikibase/lib/includes/Store/Sql/SqlEntityInfoBuilder.php index b4a0416..a973b1e 100644 --- a/extensions/Wikibase/lib/includes/Store/Sql/SqlEntityInfoBuilder.php +++ b/extensions/Wikibase/lib/includes/Store/Sql/SqlEntityInfoBuilder.php @@ -373,7 +373,13 @@ private function injectTerms( ResultWrapper $dbResult ) { foreach ( $dbResult as $row ) { // FIXME: this only works for items and properties - $entityId = LegacyIdInterpreter::newIdFromTypeAndNumber( $row->term_entity_type, (int)$row->term_entity_id ); + try { + $entityId = LegacyIdInterpreter::newIdFromTypeAndNumber( $row->term_entity_type, (int)$row->term_entity_id ); + } catch ( InvalidArgumentException $ex ) { + wfWarn( 'Unsupported entity type "' . $row->term_entity_type . '"' ); + continue; + } + $key = $entityId->getSerialization(); if ( !isset( $this->entityInfo[$key] ) ) { diff --git a/extensions/Wikibase/lib/includes/Store/Sql/TermSqlIndex.php b/extensions/Wikibase/lib/includes/Store/Sql/TermSqlIndex.php index fe98528..c38a294 100644 --- a/extensions/Wikibase/lib/includes/Store/Sql/TermSqlIndex.php +++ b/extensions/Wikibase/lib/includes/Store/Sql/TermSqlIndex.php @@ -10,9 +10,11 @@ use Wikibase\DataModel\Entity\EntityDocument; use Wikibase\DataModel\Entity\EntityId; use Wikibase\DataModel\Entity\Item; -use Wikibase\DataModel\Term\Fingerprint; -use Wikibase\DataModel\Term\FingerprintProvider; +use Wikibase\DataModel\Term\AliasesProvider; +use Wikibase\DataModel\Term\AliasGroupList; +use Wikibase\DataModel\Term\DescriptionsProvider; use Wikibase\DataModel\Term\LabelsProvider; +use Wikibase\DataModel\Term\TermList; use Wikibase\Lib\Store\LabelConflictFinder; /** @@ -25,6 +27,7 @@ * @author Jens Ohlig < jens.oh...@wikimedia.de > * @author Daniel Kinzler * @author Denny + * @author Thiemo Mättig */ class TermSqlIndex extends DBAccessBase implements TermIndex, LabelConflictFinder { @@ -177,51 +180,77 @@ * @return TermIndexEntry[] */ public function getEntityTerms( EntityDocument $entity ) { - // FIXME: OCP violation. No support for new types of entities can be registered + // FIXME: Introduce and use an Int32EntityId interface. + if ( !method_exists( $entity->getId(), 'getNumericId' ) ) { + wfWarn( 'Entity type "' . $entity->getType() . '" does not implement getNumericId' ); + return []; + } + $terms = []; $extraFields = [ 'entityType' => $entity->getType(), 'entityId' => $entity->getId()->getNumericId(), ]; - if ( $entity instanceof FingerprintProvider ) { - $fingerprint = $entity->getFingerprint(); - return $this->getFingerprintTerms( $fingerprint, $extraFields ); + if ( $entity instanceof DescriptionsProvider ) { + $terms = array_merge( $terms, $this->getTermListTerms( + TermIndexEntry::TYPE_DESCRIPTION, + $entity->getDescriptions(), + $extraFields + ) ); } - return array(); + if ( $entity instanceof LabelsProvider ) { + $terms = array_merge( $terms, $this->getTermListTerms( + TermIndexEntry::TYPE_LABEL, + $entity->getLabels(), + $extraFields + ) ); + } + + if ( $entity instanceof AliasesProvider ) { + $terms = array_merge( $terms, $this->getAliasGroupListTerms( + $entity->getAliasGroups(), + $extraFields + ) ); + } + + return $terms; } /** - * @param Fingerprint $fingerprint + * @param string $termType + * @param TermList $termList * @param array $extraFields * * @return TermIndexEntry[] */ - private function getFingerprintTerms( Fingerprint $fingerprint, array $extraFields ) { - $terms = array(); + private function getTermListTerms( $termType, TermList $termList, array $extraFields ) { + $terms = []; - foreach ( $fingerprint->getDescriptions()->toTextArray() as $languageCode => $description ) { + foreach ( $termList->toTextArray() as $languageCode => $text ) { $term = new TermIndexEntry( $extraFields ); $term->setLanguage( $languageCode ); - $term->setType( TermIndexEntry::TYPE_DESCRIPTION ); - $term->setText( $description ); + $term->setType( $termType ); + $term->setText( $text ); $terms[] = $term; } - foreach ( $fingerprint->getLabels()->toTextArray() as $languageCode => $label ) { - $term = new TermIndexEntry( $extraFields ); + return $terms; + } - $term->setLanguage( $languageCode ); - $term->setType( TermIndexEntry::TYPE_LABEL ); - $term->setText( $label ); + /** + * @param AliasGroupList $aliasGroupList + * @param array $extraFields + * + * @return TermIndexEntry[] + */ + private function getAliasGroupListTerms( AliasGroupList $aliasGroupList, array $extraFields ) { + $terms = []; - $terms[] = $term; - } - - foreach ( $fingerprint->getAliasGroups()->toArray() as $aliasGroup ) { + foreach ( $aliasGroupList->toArray() as $aliasGroup ) { $languageCode = $aliasGroup->getLanguageCode(); foreach ( $aliasGroup->getAliases() as $alias ) { @@ -300,8 +329,6 @@ * @return float */ private function getWeight( EntityDocument $entity ) { - // FIXME: OCP violation. No support for new types of entities can be registered - $weight = 0.0; if ( $entity instanceof LabelsProvider ) { diff --git a/extensions/Wikibase/lib/includes/TermIndexEntry.php b/extensions/Wikibase/lib/includes/TermIndexEntry.php index 0a893d5..08e87c1 100644 --- a/extensions/Wikibase/lib/includes/TermIndexEntry.php +++ b/extensions/Wikibase/lib/includes/TermIndexEntry.php @@ -220,7 +220,12 @@ $numericId = $this->fields['entityId']; // FIXME: this only works for items and properties - return LegacyIdInterpreter::newIdFromTypeAndNumber( $entityType, $numericId ); + try { + return LegacyIdInterpreter::newIdFromTypeAndNumber( $entityType, $numericId ); + } catch ( InvalidArgumentException $ex ) { + wfWarn( 'Unsupported entity type "' . $entityType . '"' ); + return null; + } } return null; diff --git a/extensions/Wikibase/repo/i18n/it.json b/extensions/Wikibase/repo/i18n/it.json index ce8bf62..4e6b623 100644 --- a/extensions/Wikibase/repo/i18n/it.json +++ b/extensions/Wikibase/repo/i18n/it.json @@ -322,8 +322,8 @@ "wikibase-listdatatypes-time-body": "Campo dati letterale per un punto nel tempo. Fornito come data e ora con una certa precisione e limiti. Il tempo è salvato internamente nel modello di calendario specifico.\n* tempo - valore esplicito per un istante nel tempo, rappresentato come un timestamp simile a ISO 8601, ad esempio: +2013-01-01T00:00:00Z. L'anno ha sempre il segno e tra 4 e 16 cifre.\n* fuso orario – valore espresso come un intero con segno. L'informazioni del fuso orario è indicata come offset dall'orario UTC in minuti.\n* prima – valore intero espresso per quante unità, dopo il tempo specificato, potrebbe essere. L'unità è data dalla precisione.\n* dopo – valore intero espresso per quanti unità, prima che il tempo specificato, potrebbe essere. L'unità è data dalla precisione.\n* precisione – valore espresso codificato in un intero breve. I numeri hanno il seguente significato: 0 - miliardi di anni, 100 milioni anni,..., 6 - millennio, 7 - secolo, 8 - decade, 9 - anno, 10 - mese, 11 - giorno, 12 - ora, 13 - minuto, 14 - secondo.\n* calendario – valore espresso fornito come un URI. Identifica il modello di calendario del timestamp.", "wikibase-listdatatypes-url-head": "URL", "wikibase-listdatatypes-url-body": "Campo dati letterale per un URL. Gli URL sono limitati ai protocolli supportati per i collegamenti esterni nel wikitesto.", - "wikibase-listdatatypes-external-id-head": "Identificatore esterno", - "wikibase-listdatatypes-external-id-body": "Campo dati letterale per un identificatore esterno. Identificatori esterni possono essere collegati automaticamente a risorsa autorevole per la visualizzazione.", + "wikibase-listdatatypes-external-id-head": "Identificativo esterno", + "wikibase-listdatatypes-external-id-body": "Campo dati letterale per un identificativo esterno. Identificatori esterni possono essere collegati automaticamente a una risorsa autorevole per la visualizzazione.", "wikibase-concept-uri": "URI del concetto", "wikibase-concept-uri-tooltip": "URI che identifica il concetto descritto da questo elemento", "wikibase-pageimage-helptext": "Questa immagine è stata presa dalle dichiarazioni di questo elemento. Puoi regolare l'immagine cambiando la dichiarazione.", diff --git a/extensions/Wikibase/repo/includes/ValidatorBuilders.php b/extensions/Wikibase/repo/includes/ValidatorBuilders.php index 2282927..dfd8f79 100644 --- a/extensions/Wikibase/repo/includes/ValidatorBuilders.php +++ b/extensions/Wikibase/repo/includes/ValidatorBuilders.php @@ -132,13 +132,10 @@ * @return ValueValidator[] */ private function getEntityValidators( $entityType = null ) { - $validators = array(); - - //NOTE: The DataValue in question is going to be an instance of EntityId! - $validators[] = new TypeValidator( EntityIdValue::class ); - $validators[] = new EntityExistsValidator( $this->entityLookup, $entityType ); - - return $validators; + return [ + new TypeValidator( EntityIdValue::class ), + new EntityExistsValidator( $this->entityLookup, $entityType ), + ]; } /** diff --git a/extensions/Wikibase/repo/includes/WikibaseRepo.php b/extensions/Wikibase/repo/includes/WikibaseRepo.php index f7dbe59..b57164f 100644 --- a/extensions/Wikibase/repo/includes/WikibaseRepo.php +++ b/extensions/Wikibase/repo/includes/WikibaseRepo.php @@ -1364,7 +1364,11 @@ 'multilingualtext' => MultilingualTextValue::class, 'quantity' => QuantityValue::class, 'time' => TimeValue::class, - 'wikibase-entityid' => EntityIdValue::class, + 'wikibase-entityid' => function( $value ) { + return isset( $value['id'] ) + ? $this->getEntityIdParser()->parse( $value['id'] ) + : EntityIdValue::newFromArray( $value ); + }, ) ); } diff --git a/extensions/Wikibase/repo/resources/wikibase.ui.entityViewInit.js b/extensions/Wikibase/repo/resources/wikibase.ui.entityViewInit.js index d236900..07d1e1b 100644 --- a/extensions/Wikibase/repo/resources/wikibase.ui.entityViewInit.js +++ b/extensions/Wikibase/repo/resources/wikibase.ui.entityViewInit.js @@ -252,7 +252,7 @@ $.cookie( cookieKey, copyRightVersion, { expires: 365 * 3, path: '/' } ); } else { var api = new mw.Api(); - api.postWithToken( 'options', { + api.postWithToken( 'csrf', { action: 'options', optionname: optionsKey, optionvalue: copyRightVersion @@ -290,7 +290,7 @@ $.cookie( cookieKey, copyRightVersion, { expires: 365 * 3, path: '/' } ); } else { var api = new mw.Api(); - api.postWithToken( 'options', { + api.postWithToken( 'csrf', { action: 'options', optionname: optionsKey, optionvalue: copyRightVersion diff --git a/extensions/Wikibase/tests/browser/ci.yml b/extensions/Wikibase/tests/browser/ci.yml new file mode 100644 index 0000000..8c9865e --- /dev/null +++ b/extensions/Wikibase/tests/browser/ci.yml @@ -0,0 +1,8 @@ +BROWSER: + - firefox + +MEDIAWIKI_ENVIRONMENT: + - beta + +PLATFORM: + - Linux diff --git a/extensions/Wikibase/view/resources/jquery/wikibase/jquery.wikibase.entitytermsview.js b/extensions/Wikibase/view/resources/jquery/wikibase/jquery.wikibase.entitytermsview.js index ce568c7..4efc9d5 100644 --- a/extensions/Wikibase/view/resources/jquery/wikibase/jquery.wikibase.entitytermsview.js +++ b/extensions/Wikibase/view/resources/jquery/wikibase/jquery.wikibase.entitytermsview.js @@ -236,7 +236,7 @@ { expires: 365, path: '/' } ); } else { - api.postWithToken( 'options', { + api.postWithToken( 'csrf', { action: 'options', optionname: 'wikibase-entitytermsview-showEntitytermslistview', optionvalue: params.visible ? '1' : '0' diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 9229044..7637f5d 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -108,19 +108,19 @@ "source": { "type": "git", "url": "https://github.com/wikimedia/mediawiki-extensions-ArticlePlaceholder.git", - "reference": "6025c71f8be6b2d17b46749ec298d07b091b9e82" + "reference": "be49fc7fef64e29f5f1f3ae5d6aa420c7c9aa6d9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-ArticlePlaceholder/zipball/6025c71f8be6b2d17b46749ec298d07b091b9e82", - "reference": "6025c71f8be6b2d17b46749ec298d07b091b9e82", + "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-ArticlePlaceholder/zipball/be49fc7fef64e29f5f1f3ae5d6aa420c7c9aa6d9", + "reference": "be49fc7fef64e29f5f1f3ae5d6aa420c7c9aa6d9", "shasum": "" }, "require-dev": { "jakub-onderka/php-parallel-lint": "0.9.2", "mediawiki/mediawiki-codesniffer": "0.7.2" }, - "time": "2016-05-29 20:25:30", + "time": "2016-05-30 14:11:53", "type": "mediawiki-extension", "installation-source": "dist", "autoload": { @@ -139,6 +139,181 @@ ], "description": "Provides a special page with Wikibase information about a certain topic, with invitation to create an article for the topic", "homepage": "https://www.mediawiki.org/wiki/Extension:ArticlePlaceholder" + }, + { + "name": "serialization/serialization", + "version": "3.2.1", + "version_normalized": "3.2.1.0", + "source": { + "type": "git", + "url": "https://github.com/wmde/Serialization.git", + "reference": "8e06ec58c8f52079942c9cb2f30b2260f62dc1f4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wmde/Serialization/zipball/8e06ec58c8f52079942c9cb2f30b2260f62dc1f4", + "reference": "8e06ec58c8f52079942c9cb2f30b2260f62dc1f4", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "time": "2014-08-19 01:53:31", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "files": [ + "Serialization.php" + ], + "psr-4": { + "Deserializers\\": "src/Deserializers/", + "Serializers\\": "src/Serializers/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0+" + ], + "authors": [ + { + "name": "Jeroen De Dauw", + "email": "jeroended...@gmail.com", + "homepage": "http://jeroendedauw.com", + "role": "Developer" + } + ], + "description": "Library defining a Serializer and a Deserializer interface and basic utilities", + "homepage": "https://github.com/wmde/Serialization", + "keywords": [ + "deserialization", + "deserializer", + "serialization", + "serializer", + "unserialization", + "wikidata" + ] + }, + { + "name": "data-values/data-values", + "version": "1.0.0", + "version_normalized": "1.0.0.0", + "source": { + "type": "git", + "url": "https://github.com/DataValues/DataValues.git", + "reference": "de2b9abdbc26c4c393b25aa621619dfe3fc10fdc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/DataValues/DataValues/zipball/de2b9abdbc26c4c393b25aa621619dfe3fc10fdc", + "reference": "de2b9abdbc26c4c393b25aa621619dfe3fc10fdc", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "replace": { + "mediawiki/data-values": "*" + }, + "time": "2014-09-26 07:02:27", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "files": [ + "DataValues.php" + ], + "classmap": [ + "src/interfaces", + "tests/phpunit/DataValueTest.php" + ], + "psr-0": { + "DataValues\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0+" + ], + "authors": [ + { + "name": "Jeroen De Dauw", + "email": "jeroended...@gmail.com", + "homepage": "http://jeroendedauw.com", + "role": "Developer" + } + ], + "description": "Defines the DataValue interface and some trivial implementations", + "homepage": "https://github.com/DataValues/DataValues", + "keywords": [ + "datavalues", + "wikibase", + "wikidata" + ] + }, + { + "name": "data-values/serialization", + "version": "1.1.0", + "version_normalized": "1.1.0.0", + "source": { + "type": "git", + "url": "https://github.com/DataValues/Serialization.git", + "reference": "4b6d810d86866a3f43dcfecb2e336dfda5de2386" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/DataValues/Serialization/zipball/4b6d810d86866a3f43dcfecb2e336dfda5de2386", + "reference": "4b6d810d86866a3f43dcfecb2e336dfda5de2386", + "shasum": "" + }, + "require": { + "data-values/data-values": "~1.0|~0.1", + "php": ">=5.3.0", + "serialization/serialization": "~3.0" + }, + "time": "2016-05-24 15:11:29", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "DataValues\\Serializers\\": "src/Serializers", + "DataValues\\Deserializers\\": "src/Deserializers" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0+" + ], + "authors": [ + { + "name": "Jeroen De Dauw", + "email": "jeroended...@gmail.com", + "homepage": "http://jeroendedauw.com", + "role": "Developer" + } + ], + "description": "Serializers and deserializers for DataValue implementations", + "homepage": "https://github.com/DataValues/Serialization", + "keywords": [ + "datavalues", + "deserializers", + "serialization", + "serializers", + "wikidata" + ] }, { "name": "wikimedia/purtle", @@ -257,67 +432,6 @@ "valueformatters", "valueparsers", "valuevalidators", - "wikidata" - ] - }, - { - "name": "data-values/data-values", - "version": "1.0.0", - "version_normalized": "1.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/DataValues/DataValues.git", - "reference": "de2b9abdbc26c4c393b25aa621619dfe3fc10fdc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/DataValues/DataValues/zipball/de2b9abdbc26c4c393b25aa621619dfe3fc10fdc", - "reference": "de2b9abdbc26c4c393b25aa621619dfe3fc10fdc", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "replace": { - "mediawiki/data-values": "*" - }, - "time": "2014-09-26 07:02:27", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "files": [ - "DataValues.php" - ], - "classmap": [ - "src/interfaces", - "tests/phpunit/DataValueTest.php" - ], - "psr-0": { - "DataValues\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0+" - ], - "authors": [ - { - "name": "Jeroen De Dauw", - "email": "jeroended...@gmail.com", - "homepage": "http://jeroendedauw.com", - "role": "Developer" - } - ], - "description": "Defines the DataValue interface and some trivial implementations", - "homepage": "https://github.com/DataValues/DataValues", - "keywords": [ - "datavalues", - "wikibase", "wikidata" ] }, @@ -780,120 +894,6 @@ ] }, { - "name": "serialization/serialization", - "version": "3.2.1", - "version_normalized": "3.2.1.0", - "source": { - "type": "git", - "url": "https://github.com/wmde/Serialization.git", - "reference": "8e06ec58c8f52079942c9cb2f30b2260f62dc1f4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/wmde/Serialization/zipball/8e06ec58c8f52079942c9cb2f30b2260f62dc1f4", - "reference": "8e06ec58c8f52079942c9cb2f30b2260f62dc1f4", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "time": "2014-08-19 01:53:31", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.2.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "files": [ - "Serialization.php" - ], - "psr-4": { - "Deserializers\\": "src/Deserializers/", - "Serializers\\": "src/Serializers/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0+" - ], - "authors": [ - { - "name": "Jeroen De Dauw", - "email": "jeroended...@gmail.com", - "homepage": "http://jeroendedauw.com", - "role": "Developer" - } - ], - "description": "Library defining a Serializer and a Deserializer interface and basic utilities", - "homepage": "https://github.com/wmde/Serialization", - "keywords": [ - "deserialization", - "deserializer", - "serialization", - "serializer", - "unserialization", - "wikidata" - ] - }, - { - "name": "data-values/serialization", - "version": "1.1.0", - "version_normalized": "1.1.0.0", - "source": { - "type": "git", - "url": "https://github.com/DataValues/Serialization.git", - "reference": "4b6d810d86866a3f43dcfecb2e336dfda5de2386" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/DataValues/Serialization/zipball/4b6d810d86866a3f43dcfecb2e336dfda5de2386", - "reference": "4b6d810d86866a3f43dcfecb2e336dfda5de2386", - "shasum": "" - }, - "require": { - "data-values/data-values": "~1.0|~0.1", - "php": ">=5.3.0", - "serialization/serialization": "~3.0" - }, - "time": "2016-05-24 15:11:29", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "DataValues\\Serializers\\": "src/Serializers", - "DataValues\\Deserializers\\": "src/Deserializers" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0+" - ], - "authors": [ - { - "name": "Jeroen De Dauw", - "email": "jeroended...@gmail.com", - "homepage": "http://jeroendedauw.com", - "role": "Developer" - } - ], - "description": "Serializers and deserializers for DataValue implementations", - "homepage": "https://github.com/DataValues/Serialization", - "keywords": [ - "datavalues", - "deserializers", - "serialization", - "serializers", - "wikidata" - ] - }, - { "name": "wikibase/data-model-serialization", "version": "2.2.0", "version_normalized": "2.2.0.0", @@ -1030,17 +1030,17 @@ }, { "name": "wikibase/javascript-api", - "version": "1.1.0", - "version_normalized": "1.1.0.0", + "version": "1.1.1", + "version_normalized": "1.1.1.0", "source": { "type": "git", "url": "https://github.com/wikimedia/mediawiki-extensions-WikibaseJavaScriptApi.git", - "reference": "a9c0202a33f278edd024f0c150d6281a6635bfc0" + "reference": "8c5eef73fc5a22c5ddb46da24dbeeaf14094c28c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-WikibaseJavaScriptApi/zipball/a9c0202a33f278edd024f0c150d6281a6635bfc0", - "reference": "a9c0202a33f278edd024f0c150d6281a6635bfc0", + "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-WikibaseJavaScriptApi/zipball/8c5eef73fc5a22c5ddb46da24dbeeaf14094c28c", + "reference": "8c5eef73fc5a22c5ddb46da24dbeeaf14094c28c", "shasum": "" }, "require": { @@ -1050,7 +1050,7 @@ "jakub-onderka/php-parallel-lint": "0.9.2", "mediawiki/mediawiki-codesniffer": "0.5.1" }, - "time": "2016-02-17 10:46:01", + "time": "2016-05-30 17:31:31", "type": "library", "installation-source": "dist", "autoload": { @@ -1345,12 +1345,12 @@ "source": { "type": "git", "url": "https://github.com/wikimedia/mediawiki-extensions-Wikibase.git", - "reference": "6600063308c7019fef6219973c8969fa6bb9f629" + "reference": "8307e06a9ab386302085184571dcad270ef4a77d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/6600063308c7019fef6219973c8969fa6bb9f629", - "reference": "6600063308c7019fef6219973c8969fa6bb9f629", + "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/8307e06a9ab386302085184571dcad270ef4a77d", + "reference": "8307e06a9ab386302085184571dcad270ef4a77d", "shasum": "" }, "require": { @@ -1361,7 +1361,7 @@ "data-values/interfaces": "~0.2.0|~0.1.5", "data-values/javascript": "~0.8.0", "data-values/number": "~0.7.0", - "data-values/serialization": "~1.0", + "data-values/serialization": "~1.1", "data-values/time": "~0.8.4", "data-values/validators": "~0.1.0", "data-values/value-view": "~0.17.1", @@ -1383,7 +1383,7 @@ "jakub-onderka/php-parallel-lint": "0.9.2", "mediawiki/mediawiki-codesniffer": "0.4.0|0.5.0" }, - "time": "2016-05-30 08:56:04", + "time": "2016-05-31 09:34:42", "type": "mediawiki-extension", "installation-source": "dist", "autoload": { @@ -1640,7 +1640,7 @@ "source": { "type": "git", "url": "https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseMediaInfo", - "reference": "79b264dd93e26f00b7438dc00c79cd468acdde23" + "reference": "8111551b13188e898811f2af51637997a2a08f64" }, "require": { "php": ">=5.5.0", @@ -1654,7 +1654,7 @@ "mediawiki/mediawiki-codesniffer": "0.6.0", "phpunit/phpunit": "~4.8" }, - "time": "2016-05-24 16:10:19", + "time": "2016-05-31 07:02:52", "type": "mediawiki-extension", "installation-source": "source", "autoload": { diff --git a/vendor/wikibase/javascript-api/README.md b/vendor/wikibase/javascript-api/README.md index 22f34bc..e6dc91b 100644 --- a/vendor/wikibase/javascript-api/README.md +++ b/vendor/wikibase/javascript-api/README.md @@ -6,6 +6,10 @@ ## Release notes +### 1.1.1 (2016-05-30) + +* Fix getLocationAgnosticMwApi behavior in Internet Explorer + ### 1.1.0 (2016-02-17) * Added optional propertyId parameter to RepoApi::formatValue diff --git a/vendor/wikibase/javascript-api/WikibaseJavaScriptApi.php b/vendor/wikibase/javascript-api/WikibaseJavaScriptApi.php index 157c013..a6d22f2 100644 --- a/vendor/wikibase/javascript-api/WikibaseJavaScriptApi.php +++ b/vendor/wikibase/javascript-api/WikibaseJavaScriptApi.php @@ -5,7 +5,7 @@ return 1; } -define( 'WIKIBASE_JAVASCRIPT_API_VERSION', '1.1.0' ); +define( 'WIKIBASE_JAVASCRIPT_API_VERSION', '1.1.1' ); // Include the composer autoloader if it is present. if ( is_readable( __DIR__ . '/vendor/autoload.php' ) ) { diff --git a/vendor/wikibase/javascript-api/src/getLocationAgnosticMwApi.js b/vendor/wikibase/javascript-api/src/getLocationAgnosticMwApi.js index 90c5c61..24c8fa6 100644 --- a/vendor/wikibase/javascript-api/src/getLocationAgnosticMwApi.js +++ b/vendor/wikibase/javascript-api/src/getLocationAgnosticMwApi.js @@ -8,6 +8,11 @@ * @return {string} */ function getHost( url ) { + // Internet Explorer returns an incomplete host (without port) when the protocol is missing. + if ( /^\/\//.test( url ) ) { + url = location.protocol + url; + } + var parser = document.createElement( 'A' ); parser.href = url; return parser.host; @@ -26,11 +31,7 @@ * @return {mediaWiki.Api} */ wb.api.getLocationAgnosticMwApi = function( apiEndpoint ) { - var localApiEndpoint = mw.config.get( 'wgServer' ) - + mw.config.get( 'wgScriptPath' ) - + '/api.php'; - - if ( getHost( localApiEndpoint ) !== getHost( apiEndpoint ) ) { + if ( getHost( apiEndpoint ) !== getHost( mw.config.get( 'wgServer' ) ) ) { // Use mw.ForeignApi if the api we want to use is on a different domain. return new mw.ForeignApi( apiEndpoint ); } -- To view, visit https://gerrit.wikimedia.org/r/291888 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I5745fde44e6b5cf246f749e29af95f3acffde9f2 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/Wikidata Gerrit-Branch: master Gerrit-Owner: WikidataBuilder <wikidata-servi...@wikimedia.de> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits