jenkins-bot has submitted this change and it was merged. Change subject: New Wikidata Build - 2015-07-23T10:00:01+0000 ......................................................................
New Wikidata Build - 2015-07-23T10:00:01+0000 Change-Id: I9d262aec7a2fb80acb1dd24b01c5a70dd5122007 --- M composer.lock M extensions/Constraints/WikibaseQualityConstraints.php M extensions/Wikibase/client/i18n/br.json M extensions/Wikibase/client/i18n/es.json M extensions/Wikibase/client/i18n/yue.json M extensions/Wikibase/client/i18n/zh-hant.json M extensions/Wikibase/client/includes/DataAccess/PropertyParserFunction/PropertyClaimsRendererFactory.php M extensions/Wikibase/client/tests/phpunit/MockClientStore.php M extensions/Wikibase/lib/i18n/zh-hant.json M extensions/Wikibase/lib/includes/formatters/FormatterLabelDescriptionLookupFactory.php M extensions/Wikibase/lib/includes/formatters/WikibaseValueFormatterBuilders.php M extensions/Wikibase/lib/includes/serializers/LibSerializerFactory.php M extensions/Wikibase/lib/tests/phpunit/formatters/FormatterLabelDescriptionLookupFactoryTest.php M extensions/Wikibase/lib/tests/phpunit/formatters/WikibaseValueFormatterBuildersTest.php M extensions/Wikibase/lib/tests/phpunit/serializers/DataModelSerializationRoundtripTest.php M extensions/Wikibase/lib/tests/phpunit/serializers/LibSerializerFactoryTest.php M extensions/Wikibase/repo/i18n/eu.json M extensions/Wikibase/repo/i18n/hy.json M extensions/Wikibase/repo/i18n/yi.json M extensions/Wikibase/repo/i18n/zh-hant.json M extensions/Wikibase/repo/includes/WikibaseHtmlSnakFormatterFactory.php M extensions/Wikibase/repo/includes/api/EditEntity.php M extensions/Wikibase/repo/includes/api/SetClaim.php M extensions/Wikibase/repo/includes/content/EntityContent.php M extensions/Wikibase/repo/includes/content/ItemContent.php M extensions/Wikibase/repo/includes/content/PropertyContent.php M extensions/Wikibase/repo/tests/phpunit/includes/WikibaseHtmlSnakFormatterFactoryTest.php M extensions/Wikibase/repo/tests/phpunit/includes/api/SetClaimTest.php M extensions/Wikibase/repo/tests/phpunit/includes/api/SetReferenceTest.php M extensions/Wikibase/repo/tests/phpunit/includes/content/EntityContentTest.php M extensions/Wikibase/repo/tests/phpunit/includes/content/ItemContentTest.php M extensions/Wikibase/view/resources/jquery/wikibase/jquery.wikibase.sitelinkview.js M vendor/composer/installed.json 33 files changed, 175 insertions(+), 259 deletions(-) Approvals: Tobias Gritschacher: Looks good to me, approved jenkins-bot: Verified diff --git a/composer.lock b/composer.lock index 79b0c6a..e727569 100644 --- a/composer.lock +++ b/composer.lock @@ -909,7 +909,7 @@ "source": { "type": "git", "url": "https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseQualityConstraints", - "reference": "9f68ef591546a4a900f16128fddccd51acc8e0dd" + "reference": "a04eb8fe6f62d5545a0de45440e90b4c99256914" }, "require": { "php": ">=5.3.0", @@ -954,7 +954,7 @@ "support": { "issues": "https://phabricator.wikimedia.org/project/profile/1202/" }, - "time": "2015-07-13 14:10:20" + "time": "2015-07-22 13:21:59" }, { "name": "wikibase/data-model", @@ -1326,12 +1326,12 @@ "source": { "type": "git", "url": "https://github.com/wikimedia/mediawiki-extensions-Wikibase.git", - "reference": "c1e8527a87f29049f9cb318ac0661b144b3c0cd6" + "reference": "86d1a2b39c73bce7928be46f121c4c6ee8effece" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/c1e8527a87f29049f9cb318ac0661b144b3c0cd6", - "reference": "c1e8527a87f29049f9cb318ac0661b144b3c0cd6", + "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/86d1a2b39c73bce7928be46f121c4c6ee8effece", + "reference": "86d1a2b39c73bce7928be46f121c4c6ee8effece", "shasum": "" }, "require": { @@ -1399,7 +1399,7 @@ "wikibaserepo", "wikidata" ], - "time": "2015-07-21 19:49:13" + "time": "2015-07-23 01:14:59" }, { "name": "wikibase/wikimedia-badges", diff --git a/extensions/Constraints/WikibaseQualityConstraints.php b/extensions/Constraints/WikibaseQualityConstraints.php index a4338d7..4a3e0f7 100755 --- a/extensions/Constraints/WikibaseQualityConstraints.php +++ b/extensions/Constraints/WikibaseQualityConstraints.php @@ -44,5 +44,4 @@ // Jobs $GLOBALS['wgJobClasses']['evaluateConstraintReportJob'] = 'WikibaseQuality\ConstraintReport\EvaluateConstraintReportJob'; - $GLOBALS['wgDebugLogGroups']['wbq_evaluation'] = '/var/log/mediawiki/wbq_evaluation.log'; } ); \ No newline at end of file diff --git a/extensions/Wikibase/client/i18n/br.json b/extensions/Wikibase/client/i18n/br.json index ea7532a..6735f38 100644 --- a/extensions/Wikibase/client/i18n/br.json +++ b/extensions/Wikibase/client/i18n/br.json @@ -23,7 +23,7 @@ "wikibase-rc-hide-wikidata-show": "Diskouez", "wikibase-rc-show-wikidata-pref": "Diskouez kemmoù {{WBREPONAME}} er c'hemmoù ziwezhañ", "wikibase-rc-wikibase-edit-letter": "R", - "wikibase-rc-wikibase-edit-title": "Kemmañ {{WBREPONAME}}.", - "special-unconnectedpages": "Pajennoù n’int ket liammet gant elfennoù", + "wikibase-rc-wikibase-edit-title": "Ur c'hemm eus {{WBREPONAME}}", + "unconnectedpages": "Pajennoù n’int ket liammet gant elfennoù", "wikibase-otherprojects": "Raktresoù all" } diff --git a/extensions/Wikibase/client/i18n/es.json b/extensions/Wikibase/client/i18n/es.json index 76a5790..74bc693 100644 --- a/extensions/Wikibase/client/i18n/es.json +++ b/extensions/Wikibase/client/i18n/es.json @@ -55,7 +55,7 @@ "wikibase-linkitem-confirmitem-button": "Confirmar", "wikibase-linkitem-not-loggedin-title": "Debes iniciar sesión", "wikibase-linkitem-not-loggedin": "Debes iniciar sesión en esta wiki y en el [$1 repositorio central de datos] para usar esta función.", - "wikibase-linkitem-success-link": "Se han enlazado las páginas correctamente. Puede encontrar el elemento que contiene los enlaces en el [$1 depósito central de datos].", + "wikibase-linkitem-success-link": "Se han enlazado las páginas correctamente. Puedes encontrar el elemento que contiene los enlaces en nuestro [$1 depósito central de datos].", "wikibase-property-notfound": "No se encontró la propiedad «$1».", "wikibase-rc-hide-wikidata": "$1 {{WBREPONAME}}", "wikibase-rc-hide-wikidata-hide": "Ocultar", diff --git a/extensions/Wikibase/client/i18n/yue.json b/extensions/Wikibase/client/i18n/yue.json index c398836..9865b22 100644 --- a/extensions/Wikibase/client/i18n/yue.json +++ b/extensions/Wikibase/client/i18n/yue.json @@ -2,12 +2,13 @@ "@metadata": { "authors": [ "Waihorace", - "Yueman" + "Yueman", + "CRCHF" ] }, "wikibase-client-desc": "Wikibase擴展客戶端", "tooltip-t-wikibase": "連到接住資料儲存庫嘅項目", - "wikibase-after-page-move": "你仲可以[$1 更新]有關嘅維基數據項目,將佢連結去搬咗之後嘅頁面。", + "wikibase-after-page-move": "你重可以[$1 更新]有關嘅維基數據項目,將佢連結去搬咗之後嘅頁。", "wikibase-comment-update": "改好{{WBREPONAME}}項目", "wikibase-dataitem": "{{WBREPONAME}}項目", "wikibase-editlinks": "修改連結", diff --git a/extensions/Wikibase/client/i18n/zh-hant.json b/extensions/Wikibase/client/i18n/zh-hant.json index 7e1e450..bc3104c 100644 --- a/extensions/Wikibase/client/i18n/zh-hant.json +++ b/extensions/Wikibase/client/i18n/zh-hant.json @@ -32,6 +32,7 @@ "wikibase-dataitem": "{{WBREPONAME}} 項目", "wikibase-editlinks": "編輯連結", "wikibase-editlinkstitle": "編輯跨語言連結", + "wikibase-addlinkstitle": "加入跨語言連結", "wikibase-linkitem-addlinks": "新增連結", "wikibase-linkitem-alreadylinked": "您欲連結的頁面已與於中央資料儲存庫的 [$1 項目] 關聯,於本站的連結為 $2。 \n每個項目僅可以關聯網站的一個頁面,請選擇其他要連結頁面。", "wikibase-linkitem-close": "關閉對話方塊並重新整理頁面", @@ -57,8 +58,7 @@ "wikibase-watchlist-show-changes-pref": "顯示 {{WBREPONAME}} 編輯於您的監視清單中", "wikibase-error-serialize-error": "序列化資料失敗", "wikibase-error-invalid-entity-id": "系統無法辨識輸入的 ID。請使用一個有效的 ID。", - "special-unconnectedpages": "頁面未連結至項目", - "wikibase-unconnectedpages-legend": "未連結頁面選項", + "unconnectedpages": "頁面未連結至項目", "wikibase-unconnectedpages-page": "從此頁面開始顯示結果:", "wikibase-unconnectedpages-submit": "執行", "wikibase-unconnectedpages-invalid-language": "\"$1\" 不是有效的語言代碼。", diff --git a/extensions/Wikibase/client/includes/DataAccess/PropertyParserFunction/PropertyClaimsRendererFactory.php b/extensions/Wikibase/client/includes/DataAccess/PropertyParserFunction/PropertyClaimsRendererFactory.php index b726219..0c625cd 100644 --- a/extensions/Wikibase/client/includes/DataAccess/PropertyParserFunction/PropertyClaimsRendererFactory.php +++ b/extensions/Wikibase/client/includes/DataAccess/PropertyParserFunction/PropertyClaimsRendererFactory.php @@ -12,6 +12,7 @@ use Wikibase\DataAccess\StatementTransclusionInteractor; use Wikibase\DataAccess\SnaksFinder; use Wikibase\LanguageFallbackChainFactory; +use Wikibase\Lib\FormatterLabelDescriptionLookupFactory; use Wikibase\Lib\OutputFormatSnakFormatterFactory; use Wikibase\Lib\SnakFormatter; use Wikibase\Lib\Store\EntityLookup; @@ -198,7 +199,7 @@ ); $options = new FormatterOptions( array( - 'languages' => $languageFallbackChain, + FormatterLabelDescriptionLookupFactory::OPT_LANGUAGE_FALLBACK_CHAIN => $languageFallbackChain, // ...more options... (?) ) ); diff --git a/extensions/Wikibase/client/tests/phpunit/MockClientStore.php b/extensions/Wikibase/client/tests/phpunit/MockClientStore.php index a6aaa73..1cef882 100644 --- a/extensions/Wikibase/client/tests/phpunit/MockClientStore.php +++ b/extensions/Wikibase/client/tests/phpunit/MockClientStore.php @@ -5,16 +5,10 @@ use Wikibase\ChangesTable; use Wikibase\Client\Usage\NullSubscriptionManager; use Wikibase\Client\Usage\NullUsageTracker; -use Wikibase\Client\Usage\SubscriptionManager; -use Wikibase\Client\Usage\UsageLookup; -use Wikibase\Client\Usage\UsageTracker; use Wikibase\ClientStore; -use Wikibase\Lib\Store\EntityLookup; -use Wikibase\Lib\Store\EntityRevisionLookup; use Wikibase\Lib\Store\NullEntityPrefetcher; -use Wikibase\Lib\Store\SiteLinkLookup; use Wikibase\PropertyInfoStore; -use Wikibase\PropertyLabelResolver; +use Wikibase\Store\EntityIdLookup; use Wikibase\TermIndex; /** @@ -52,7 +46,7 @@ /** * @see ClientStore::getUsageLookup * - * @return UsageLookup + * @return NullUsageTracker */ public function getUsageLookup() { return new NullUsageTracker(); @@ -61,7 +55,7 @@ /** * @see ClientStore::getUsageTracker * - * @return UsageTracker + * @return NullUsageTracker */ public function getUsageTracker() { return new NullUsageTracker(); @@ -70,7 +64,7 @@ /** * @see ClientStore::getSubscriptionManager * - * @return SubscriptionManager + * @return NullSubscriptionManager */ public function getSubscriptionManager() { return new NullSubscriptionManager(); @@ -79,7 +73,7 @@ /** * @see ClientStore::getPropertyLabelResolver * - * @return PropertyLabelResolver + * @return MockPropertyLabelResolver */ public function getPropertyLabelResolver() { return new MockPropertyLabelResolver( @@ -100,7 +94,7 @@ /** * @see ClientStore::getEntityIdLookup * - * @return \Wikibase\Store\EntityIdLookup + * @return EntityIdLookup */ public function getEntityIdLookup() { // FIXME: Incomplete @@ -141,7 +135,7 @@ /** * @see ClientStore::getEntityLookup * - * @return EntityLookup + * @return MockRepository */ public function getEntityLookup() { return $this->getMockRepository(); @@ -150,7 +144,7 @@ /** * @see ClientStore::getEntityRevisionLookup * - * @return EntityRevisionLookup + * @return MockRepository */ public function getEntityRevisionLookup() { return $this->getMockRepository(); @@ -159,7 +153,7 @@ /** * @see ClientStore::getSiteLinkLookup * - * @return SiteLinkLookup + * @return MockRepository */ public function getSiteLinkLookup() { return $this->getMockRepository(); @@ -168,7 +162,7 @@ /** * @see ClientStore::getPropertyInfoStore * - * @return PropertyInfoStore + * @return MockPropertyInfoStore */ public function getPropertyInfoStore() { if ( self::$propertyInfoStore === null ) { @@ -181,7 +175,7 @@ /** * @see ClientStore::getEntityPrefetcher * - * @return EntityPrefetcher + * @return NullEntityPrefetcher */ public function getEntityPrefetcher() { return new NullEntityPrefetcher(); diff --git a/extensions/Wikibase/lib/i18n/zh-hant.json b/extensions/Wikibase/lib/i18n/zh-hant.json index fb2acd2..6ef31a1 100644 --- a/extensions/Wikibase/lib/i18n/zh-hant.json +++ b/extensions/Wikibase/lib/i18n/zh-hant.json @@ -14,7 +14,7 @@ ] }, "wikibase-lib-desc": "Wikibase 與 Wikibase 用戶端擴充套件所共用的功能", - "specialpages-group-wikibase": "Wikibase 儲存庫", + "specialpages-group-wikibase": "Wikibase", "wikibase-deletedentity-item": "已刪除項目", "wikibase-deletedentity-property": "已刪除屬性", "wikibase-deletedentity-query": "已刪除查詢", @@ -29,12 +29,13 @@ "wikibase-error-autocomplete-response": "伺服器回應:$1", "wikibase-error-ui-no-external-page": "於關聯的網站查無指定的文章。", "wikibase-error-ui-edit-conflict": "發生編輯衝突。請重新整理再儲存一次。", + "wikibase-language-fallback-transliteration-hint": "$1 (已轉換拼寫)", "wikibase-quantitydetails-amount": "總計", "wikibase-quantitydetails-upperbound": "上限", "wikibase-quantitydetails-lowerbound": "下限", "wikibase-quantitydetails-unit": "單位", "wikibase-timedetails-time": "時間", - "wikibase-timedetails-isotime": "ISO 時間戳記", + "wikibase-timedetails-isotime": "時間戳記", "wikibase-timedetails-timezone": "時區", "wikibase-timedetails-calendar": "日曆", "wikibase-timedetails-precision": "精度", @@ -85,7 +86,12 @@ "wikibase-time-precision-millennium": "$1 千年", "wikibase-time-precision-century": "$1 世紀", "wikibase-time-precision-10annum": "$1", + "wikibase-time-precision-BCE-Gannum": "公元前 $1 十億年", "wikibase-time-precision-BCE-Mannum": "$1 百萬年 BCE", + "wikibase-time-precision-BCE-annum": "公元前 $1 年", + "wikibase-time-precision-BCE-millennium": "公元前 $1 千年", + "wikibase-time-precision-BCE-century": "公元前 $1 世紀", + "wikibase-time-precision-BCE-10annum": "公元前 $1 年", "wikibase-snakformatter-valuetype-mismatch": "數值型態 \"$1\" 與屬性型態 \"$2\" 不符。", "wikibase-snakformatter-property-not-found": "查無屬性 $1,無法辨識要使用的資料型態。" } diff --git a/extensions/Wikibase/lib/includes/formatters/FormatterLabelDescriptionLookupFactory.php b/extensions/Wikibase/lib/includes/formatters/FormatterLabelDescriptionLookupFactory.php index a62f4bf..d539852 100644 --- a/extensions/Wikibase/lib/includes/formatters/FormatterLabelDescriptionLookupFactory.php +++ b/extensions/Wikibase/lib/includes/formatters/FormatterLabelDescriptionLookupFactory.php @@ -6,19 +6,19 @@ use ValueFormatters\FormatterOptions; use ValueFormatters\ValueFormatter; use Wikibase\LanguageFallbackChain; -use Wikibase\Lib\Store\TermLookup; use Wikibase\Lib\Store\LabelDescriptionLookup; use Wikibase\Lib\Store\LanguageFallbackLabelDescriptionLookup; use Wikibase\Lib\Store\LanguageLabelDescriptionLookup; +use Wikibase\Lib\Store\TermLookup; /** * Factory for LabelDescriptionLookup objects based on FormatterOptions. * * The LabelDescriptionLookup is created based on the values of the options - * 'LabelDescriptionLookup', 'languages', and ValueFormatter::OPT_LANG: + * OPT_LABEL_DESCRIPTION_LOOKUP, OPT_LANGUAGE_FALLBACK_CHAIN, and ValueFormatter::OPT_LANG: * - * * 'LabelDescriptionLookup' can be used to provide a custom LabelDescriptionLookup instance directly - * * If 'languages' is set, a LanguageFallbackLabelDescriptionLookup will be created byed on + * * OPT_LABEL_DESCRIPTION_LOOKUP can be used to provide a custom LabelDescriptionLookup instance directly + * * If OPT_LANGUAGE_FALLBACK_CHAIN is set, a LanguageFallbackLabelDescriptionLookup will be created byed on * the LanguageFallbackChain contained in that option. * * If ValueFormatter::OPT_LANG is set, a LanguageLabelDescriptionLookup is created * * If none of these options is set, an InvalidArgumentException is thrown. @@ -29,6 +29,9 @@ * @author Daniel Kinzler */ class FormatterLabelDescriptionLookupFactory { + + const OPT_LABEL_DESCRIPTION_LOOKUP = 'LabelDescriptionLookup'; + const OPT_LANGUAGE_FALLBACK_CHAIN = 'languages'; /** * @var TermLookup @@ -46,23 +49,23 @@ * @return LabelDescriptionLookup */ public function getLabelDescriptionLookup( FormatterOptions $options ) { - if ( $options->hasOption( 'LabelDescriptionLookup' ) ) { + if ( $options->hasOption( self::OPT_LABEL_DESCRIPTION_LOOKUP ) ) { return $this->getLabelDescriptionLookupFromOptions( $options ); - } elseif ( $options->hasOption( 'languages' ) ) { + } elseif ( $options->hasOption( self::OPT_LANGUAGE_FALLBACK_CHAIN ) ) { return $this->newLanguageFallbackLabelDescriptionLookup( $options ); } elseif ( $options->hasOption( ValueFormatter::OPT_LANG ) ) { return $this->newLanguageLabelDescriptionLookup( $options ); } else { - throw new InvalidArgumentException( 'OPT_LANG, languages (fallback chain), ' - . 'or LabelDescriptionLookup must be set in FormatterOptions.' ); + throw new InvalidArgumentException( 'OPT_LANG, OPT_LANGUAGE_FALLBACK_CHAIN, ' + . 'or OPT_LABEL_DESCRIPTION_LOOKUP must be set in FormatterOptions.' ); } } private function getLabelDescriptionLookupFromOptions( FormatterOptions $options ) { - $labelDescriptionLookup = $options->getOption( 'LabelDescriptionLookup' ); + $labelDescriptionLookup = $options->getOption( self::OPT_LABEL_DESCRIPTION_LOOKUP ); if ( !( $labelDescriptionLookup instanceof LabelDescriptionLookup ) ) { - throw new InvalidArgumentException( 'Option LabelDescriptionLookup must be used ' . + throw new InvalidArgumentException( 'OPT_LABEL_DESCRIPTION_LOOKUP must be used ' . 'with an instance of LabelDescriptionLookup.' ); } @@ -70,10 +73,10 @@ } private function newLanguageFallbackLabelDescriptionLookup( FormatterOptions $options ) { - $fallbackChain = $options->getOption( 'languages' ); + $fallbackChain = $options->getOption( self::OPT_LANGUAGE_FALLBACK_CHAIN ); if ( !( $fallbackChain instanceof LanguageFallbackChain ) ) { - throw new InvalidArgumentException( 'Option `languages` must be used ' . + throw new InvalidArgumentException( 'OPT_LANGUAGE_FALLBACK_CHAIN must be used ' . 'with an instance of LanguageFallbackChain.' ); } diff --git a/extensions/Wikibase/lib/includes/formatters/WikibaseValueFormatterBuilders.php b/extensions/Wikibase/lib/includes/formatters/WikibaseValueFormatterBuilders.php index 84b2916..7e1ce1d 100644 --- a/extensions/Wikibase/lib/includes/formatters/WikibaseValueFormatterBuilders.php +++ b/extensions/Wikibase/lib/includes/formatters/WikibaseValueFormatterBuilders.php @@ -261,8 +261,8 @@ } /** - * Initializes the options keys ValueFormatter::OPT_LANG and 'languages' if - * they are not yet set. + * Initializes the options keys ValueFormatter::OPT_LANG and + * FormatterLabelDescriptionLookupFactory::OPT_LANGUAGE_FALLBACK_CHAIN if they are not yet set. * * @param FormatterOptions $options The options to modify. * @@ -279,20 +279,25 @@ $lang = $options->getOption( ValueFormatter::OPT_LANG ); if ( !is_string( $lang ) ) { - throw new InvalidArgumentException( 'The value of OPT_LANG must be a language code. For a fallback chain, use the `languages` option.' ); + throw new InvalidArgumentException( + 'The value of OPT_LANG must be a language code. For a fallback chain, use OPT_LANGUAGE_FALLBACK_CHAIN.' + ); } - if ( !$options->hasOption( 'languages' ) ) { + if ( !$options->hasOption( FormatterLabelDescriptionLookupFactory::OPT_LANGUAGE_FALLBACK_CHAIN ) ) { $fallbackMode = ( LanguageFallbackChainFactory::FALLBACK_VARIANTS | LanguageFallbackChainFactory::FALLBACK_OTHERS | LanguageFallbackChainFactory::FALLBACK_SELF ); - $options->setOption( 'languages', $languageFallbackChainFactory->newFromLanguageCode( $lang, $fallbackMode ) ); + $options->setOption( + FormatterLabelDescriptionLookupFactory::OPT_LANGUAGE_FALLBACK_CHAIN, + $languageFallbackChainFactory->newFromLanguageCode( $lang, $fallbackMode ) + ); } - if ( !( $options->getOption( 'languages' ) instanceof LanguageFallbackChain ) ) { - throw new InvalidArgumentException( 'The value of the `languages` option must be an instance of LanguageFallbackChain.' ); + if ( !( $options->getOption( FormatterLabelDescriptionLookupFactory::OPT_LANGUAGE_FALLBACK_CHAIN ) instanceof LanguageFallbackChain ) ) { + throw new InvalidArgumentException( 'The value of OPT_LANGUAGE_FALLBACK_CHAIN must be an instance of LanguageFallbackChain.' ); } } diff --git a/extensions/Wikibase/lib/includes/serializers/LibSerializerFactory.php b/extensions/Wikibase/lib/includes/serializers/LibSerializerFactory.php index 77c75ec..b8ec77b 100644 --- a/extensions/Wikibase/lib/includes/serializers/LibSerializerFactory.php +++ b/extensions/Wikibase/lib/includes/serializers/LibSerializerFactory.php @@ -67,13 +67,6 @@ } /** - * @param PropertyDataTypeLookup $dataTypeLookup - */ - public function setDataTypeLookup( PropertyDataTypeLookup $dataTypeLookup ) { - $this->dataTypeLookup = $dataTypeLookup; - } - - /** * @param mixed $object * @param SerializationOptions $options * @@ -111,46 +104,6 @@ } throw new OutOfBoundsException( 'There is no serializer for the provided type of object "' . get_class( $object ) . '"' ); - } - - /** - * @param string $className - * @param SerializationOptions $options - * - * @return Unserializer - * @throws OutOfBoundsException - * @throws InvalidArgumentException - */ - public function newUnserializerForClass( $className, $options = null ) { - if ( $options === null ) { - $options = new SerializationOptions(); - } - - //TODO: The factory should take options in the constructor (?!) - //TODO: The factory should offer clones of the options via newSerializationOptions(). - //TODO: This method should merge to options given with the options from the constructor. - - if ( !is_string( $className ) ) { - throw new OutOfBoundsException( '$className needs to be a string' ); - } - - switch ( ltrim( $className, '\\' ) ) { - case 'Wikibase\DataModel\Entity\Item': - return $this->newItemUnserializer( $options ); - case 'Wikibase\DataModel\Entity\Property': - return $this->newPropertyUnserializer( $options ); - //TODO: support extra entity types! - case 'Wikibase\DataModel\Snak\Snak': - return $this->newSnakUnserializer( $options ); - case 'Wikibase\DataModel\Reference': - return $this->newReferenceUnserializer($options ); - case 'Wikibase\DataModel\Claim\Claim': - return $this->newClaimUnserializer( $options ); - case 'Wikibase\DataModel\Claim\Claims': - return $this->newClaimsUnserializer( $options ); - } - - throw new OutOfBoundsException( '"' . $className . '" has no associated unserializer' ); } /** @@ -250,44 +203,8 @@ * * @return Serializer */ - public function newSiteLinkSerializer( SerializationOptions $options ) { - return new SiteLinkSerializer( $this->makeOptions( $options ), $this->siteStore ); - } - - /** - * @param SerializationOptions $options - * - * @return Serializer - */ - public function newLabelSerializer( SerializationOptions $options ) { - return new LabelSerializer( $this->makeOptions( $options ) ); - } - - /** - * @param SerializationOptions $options - * - * @return Serializer - */ - public function newDescriptionSerializer( SerializationOptions $options ) { - return new DescriptionSerializer( $this->makeOptions( $options ) ); - } - - /** - * @param SerializationOptions $options - * - * @return Serializer - */ public function newAliasSerializer( SerializationOptions $options ) { return new AliasSerializer( $this->makeOptions( $options ) ); - } - - /** - * @param SerializationOptions $options - * - * @return Unserializer - */ - public function newSnakUnserializer( SerializationOptions $options ) { - return $this->newSnakSerializer( $this->makeOptions( $options ) ); } /** @@ -313,15 +230,6 @@ * * @return Unserializer */ - public function newClaimsUnserializer( SerializationOptions $options ) { - return $this->newClaimsSerializer( $this->makeOptions( $options ) ); - } - - /** - * @param SerializationOptions $options - * - * @return Unserializer - */ public function newItemUnserializer( SerializationOptions $options ) { return $this->newItemSerializer( $this->makeOptions( $options ) ); } @@ -333,33 +241,6 @@ */ public function newPropertyUnserializer( SerializationOptions $options ) { return $this->newPropertySerializer( $this->makeOptions( $options ) ); - } - - /** - * @param SerializationOptions $options - * - * @return Unserializer - */ - public function newLabelUnserializer( SerializationOptions $options ) { - return $this->newLabelSerializer( $this->makeOptions( $options ) ); - } - - /** - * @param SerializationOptions $options - * - * @return Unserializer - */ - public function newDescriptionUnserializer( SerializationOptions $options ) { - return $this->newDescriptionSerializer( $this->makeOptions( $options ) ); - } - - /** - * @param SerializationOptions $options - * - * @return Unserializer - */ - public function newAliasUnserializer( SerializationOptions $options ) { - return $this->newAliasSerializer( $this->makeOptions( $options ) ); } /** diff --git a/extensions/Wikibase/lib/tests/phpunit/formatters/FormatterLabelDescriptionLookupFactoryTest.php b/extensions/Wikibase/lib/tests/phpunit/formatters/FormatterLabelDescriptionLookupFactoryTest.php index eb63c01..b61cff5 100644 --- a/extensions/Wikibase/lib/tests/phpunit/formatters/FormatterLabelDescriptionLookupFactoryTest.php +++ b/extensions/Wikibase/lib/tests/phpunit/formatters/FormatterLabelDescriptionLookupFactoryTest.php @@ -79,7 +79,7 @@ $termLookup, new FormatterOptions( array( ValueFormatter::OPT_LANG => 'fr', - 'languages' => $deChChain, + FormatterLabelDescriptionLookupFactory::OPT_LANGUAGE_FALLBACK_CHAIN => $deChChain, ) ), 'Kätzchen' ), @@ -87,8 +87,8 @@ $termLookup, new FormatterOptions( array( ValueFormatter::OPT_LANG => 'fr', - 'languages' => $frChain, - 'LabelDescriptionLookup' => $labelDescriptionLookup + FormatterLabelDescriptionLookupFactory::OPT_LANGUAGE_FALLBACK_CHAIN => $frChain, + FormatterLabelDescriptionLookupFactory::OPT_LABEL_DESCRIPTION_LOOKUP => $labelDescriptionLookup ) ), 'Kätzchen' ), @@ -115,12 +115,12 @@ ), 'bad fallback chain' => array( new FormatterOptions( array( - 'languages' => array( 'x', 'y', 'z' ), + FormatterLabelDescriptionLookupFactory::OPT_LANGUAGE_FALLBACK_CHAIN => array( 'x', 'y', 'z' ), ) ), ), 'bad LabelDescriptionLookup' => array( new FormatterOptions( array( - 'LabelDescriptionLookup' => new LanguageFallbackChain( array() ) + FormatterLabelDescriptionLookupFactory::OPT_LABEL_DESCRIPTION_LOOKUP => new LanguageFallbackChain( array() ) ) ), ), 'no options' => array( diff --git a/extensions/Wikibase/lib/tests/phpunit/formatters/WikibaseValueFormatterBuildersTest.php b/extensions/Wikibase/lib/tests/phpunit/formatters/WikibaseValueFormatterBuildersTest.php index de059b7..fa7dc73 100644 --- a/extensions/Wikibase/lib/tests/phpunit/formatters/WikibaseValueFormatterBuildersTest.php +++ b/extensions/Wikibase/lib/tests/phpunit/formatters/WikibaseValueFormatterBuildersTest.php @@ -327,14 +327,14 @@ ), 'fallback option' => array( new FormatterOptions( array( - 'languages' => $fallbackChain, + FormatterLabelDescriptionLookupFactory::OPT_LANGUAGE_FALLBACK_CHAIN => $fallbackChain, ) ), new ItemId( 'Q5' ), '@>Name für Q5<@' ), 'LabelDescriptionLookup option' => array( new FormatterOptions( array( - 'LabelDescriptionLookup' => $labelDescriptionLookup, + FormatterLabelDescriptionLookupFactory::OPT_LABEL_DESCRIPTION_LOOKUP => $labelDescriptionLookup, ) ), new ItemId( 'Q5' ), '@>Custom LabelDescriptionLookup<@' @@ -611,16 +611,16 @@ if ( $expectedLanguage !== null ) { $lang = $options->getOption( ValueFormatter::OPT_LANG ); - $this->assertEquals( $expectedLanguage, $lang, 'option: ' . ValueFormatter::OPT_LANG ); + $this->assertEquals( $expectedLanguage, $lang, 'OPT_LANG' ); } if ( $expectedFallback !== null ) { /** @var LanguageFallbackChain $languageFallback */ - $languageFallback = $options->getOption( 'languages' ); + $languageFallback = $options->getOption( FormatterLabelDescriptionLookupFactory::OPT_LANGUAGE_FALLBACK_CHAIN ); $languages = $languageFallback->getFallbackChain(); $lang = $languages[0]->getLanguage()->getCode(); - $this->assertEquals( $expectedFallback, $lang, 'option: languages' ); + $this->assertEquals( $expectedFallback, $lang, 'OPT_LANGUAGE_FALLBACK_CHAIN' ); } } @@ -640,12 +640,17 @@ 'de' // derived from language code ), 'language fallback set' => array( - new FormatterOptions( array( 'languages' => $languageFallback ) ), + new FormatterOptions( array( + FormatterLabelDescriptionLookupFactory::OPT_LANGUAGE_FALLBACK_CHAIN => $languageFallback + ) ), 'en', // default code is taken from the constructor, not the fallback chain 'fr' // as given ), 'language code and fallback set' => array( - new FormatterOptions( array( ValueFormatter::OPT_LANG => 'de', 'languages' => $languageFallback ) ), + new FormatterOptions( array( + ValueFormatter::OPT_LANG => 'de', + FormatterLabelDescriptionLookupFactory::OPT_LANGUAGE_FALLBACK_CHAIN => $languageFallback + ) ), 'de', // as given 'fr' // as given ), diff --git a/extensions/Wikibase/lib/tests/phpunit/serializers/DataModelSerializationRoundtripTest.php b/extensions/Wikibase/lib/tests/phpunit/serializers/DataModelSerializationRoundtripTest.php index 53cb995..71f4f19 100644 --- a/extensions/Wikibase/lib/tests/phpunit/serializers/DataModelSerializationRoundtripTest.php +++ b/extensions/Wikibase/lib/tests/phpunit/serializers/DataModelSerializationRoundtripTest.php @@ -26,7 +26,7 @@ use Wikibase\DataModel\Snak\SnakList; use Wikibase\DataModel\Statement\Statement; use Wikibase\Lib\Serializers\SerializationOptions; -use Wikibase\Lib\Serializers\LibSerializerFactory as LegacySerializerFactory; +use Wikibase\Lib\Serializers\LibSerializerFactory; /** * @todo Add tests with $options->setIndexTags( true ). @@ -283,17 +283,17 @@ private function getLegacySerializer( Entity $entity ) { $options = new SerializationOptions(); - $legacySerializerFactory = new LegacySerializerFactory(); + $LibSerializerFactory = new LibSerializerFactory(); $entityType = $entity->getType(); - return $legacySerializerFactory->newSerializerForEntity( $entityType, $options ); + return $LibSerializerFactory->newSerializerForEntity( $entityType, $options ); } private function getLegacyUnserializer( Entity $entity ) { $options = new SerializationOptions(); - $legacySerializerFactory = new LegacySerializerFactory(); + $LibSerializerFactory = new LibSerializerFactory(); $entityType = $entity->getType(); - return $legacySerializerFactory->newUnserializerForEntity( $entityType, $options ); + return $LibSerializerFactory->newUnserializerForEntity( $entityType, $options ); } private function getSerializer() { diff --git a/extensions/Wikibase/lib/tests/phpunit/serializers/LibSerializerFactoryTest.php b/extensions/Wikibase/lib/tests/phpunit/serializers/LibSerializerFactoryTest.php index 07f6177..063f5d4 100644 --- a/extensions/Wikibase/lib/tests/phpunit/serializers/LibSerializerFactoryTest.php +++ b/extensions/Wikibase/lib/tests/phpunit/serializers/LibSerializerFactoryTest.php @@ -66,22 +66,6 @@ return $argLists; } - /** - * @dataProvider serializationProvider - * - * @param string $className - * @param array $serialization - */ - public function testNewUnserializerForClass( $className, array $serialization ) { - $factory = new LibSerializerFactory(); - - $unserializer = $factory->newUnserializerForClass( $className ); - - $this->assertInstanceOf( 'Wikibase\Lib\Serializers\Unserializer', $unserializer ); - - $unserializer->newFromSerialization( $serialization ); - } - public function entityTypeProvider() { return array( array( Item::ENTITY_TYPE ), @@ -115,15 +99,10 @@ public function newUnserializerProvider() { $names = array( - 'SnakUnserializer', 'ReferenceUnserializer', 'ClaimUnserializer', - 'ClaimsUnserializer', 'PropertyUnserializer', 'ItemUnserializer', - 'LabelUnserializer', - 'DescriptionUnserializer', - 'AliasUnserializer', ); return array_map( function( $name ) { @@ -152,11 +131,7 @@ 'ClaimsSerializer', 'PropertySerializer', 'ItemSerializer', - 'LabelSerializer', - 'DescriptionSerializer', 'AliasSerializer', - - 'SiteLinkSerializer', ); return array_map( function( $name ) { diff --git a/extensions/Wikibase/repo/i18n/eu.json b/extensions/Wikibase/repo/i18n/eu.json index 74624c0..d0b528e 100644 --- a/extensions/Wikibase/repo/i18n/eu.json +++ b/extensions/Wikibase/repo/i18n/eu.json @@ -14,13 +14,24 @@ "wikibase-save": "gorde", "wikibase-cancel": "utzi", "wikibase-add": "gehitu", + "wikibase-addreference": "Erreferentzia gehitu", "wikibase-save-inprogress": "Gordetzen...", "wikibase-remove-inprogress": "Ezabatzen...", + "wikibase-entitytermsview-entitytermsforlanguagelistview-toggler": "Hizkuntza gehiagotan", + "wikibase-entitytermsview-entitytermsforlanguagelistview-configure-link-label": "Konfiguratu", + "wikibase-entitytermsforlanguagelistview-description": "Deskribapena", + "wikibase-entitytermsforlanguagelistview-label": "Etiketa", + "wikibase-entitytermsforlanguagelistview-language": "Hizkuntza", "wikibase-label-empty": "Ez da etiketarik zehaztu", + "wikibase-label-edit-placeholder": "Sartu etiketa bat", + "wikibase-description-edit-placeholder-language-aware": "sartu deskribapen bat $1-n", + "wikibase-diffview-label": "etiketa", + "wikibase-diffview-description": "deskribapena", "wikibase-statements": "Adierazpenak", "wikibase-terms": "Beste hizkuntzetan", "wikibase-sitelinks-special": "Beste guneak", "wikibase-remove": "kendu", + "wikibase-propertyedittool-counter-entrieslabel": "{{PLURAL:$1|entry|sarrera}}", "wikibase-aliases-empty": "Ez da aliasik zehaztu", "wikibase-statementview-referencesheading-pendingcountersubject": "{{PLURAL:$1|iturri|iturriak}}", "wikibase-statementview-referencesheading-pendingcountertooltip": "{{PLURAL:$1|Iturri bat ez da|$1 iturri ez dira}} gorde oraindik", @@ -30,9 +41,19 @@ "wikibase-itembytitle-submit": "Bilatu", "wikibase-itemdisambiguation-lookup-language": "Hizkuntza kodea:", "wikibase-itemdisambiguation-submit": "Bilatu", + "special-newproperty": "Propietate berria sortu", + "special-newitem": "Elementu berria sortu", + "wikibase-newentity-label": "Etiketa:", + "wikibase-newentity-description": "Deskribapena:", "wikibase-newentity-submit": "Sortu", "wikibase-setlabel-label": "Etiketa:", + "wikibase-setlabeldescriptionaliases-description-label": "Deskribapena:", "wikibase-modifyentity-id": "ID:", + "wikibase-modifyterm-language": "Hizkuntza kodea:", + "wikibase-entitieswithoutlabel-label-language": "Hizkuntza kodea:", + "wikibase-entitieswithoutlabel-invalid-language": "\"$1\" ez da hizkuntza kode erabilgarria.", "wikibase-restoreold": "leheneratu", - "apihelp-wbsetdescription-param-language": "Deskribapenaren hizkuntza" + "apihelp-wbsearchentities-param-language": "Bilatu hizkuntza honetan.", + "apihelp-wbsetdescription-param-language": "Deskribapenaren hizkuntza", + "apihelp-wbsetlabel-param-language": "Etiketaren hizkuntza" } diff --git a/extensions/Wikibase/repo/i18n/hy.json b/extensions/Wikibase/repo/i18n/hy.json index c23eb32..15255a1 100644 --- a/extensions/Wikibase/repo/i18n/hy.json +++ b/extensions/Wikibase/repo/i18n/hy.json @@ -24,6 +24,7 @@ "wikibase-statements": "Պնդումներ", "wikibase-sitelinks-special": "Այլ կայքեր", "wikibase-aliases-empty": "Այլ անվանումներ (հոմանիշներ) նշված չեն", + "wikibase-statementview-rank-normal": "Նորմալ աստիճան", "wikibase-statementview-referencesheading-pendingcountersubject": "{{PLURAL:$1|աղբյուր|աղբյուրներ}}", "wikibase-entityselector-more": "Ավելին" } diff --git a/extensions/Wikibase/repo/i18n/yi.json b/extensions/Wikibase/repo/i18n/yi.json index 56ecf2e..e32a104 100644 --- a/extensions/Wikibase/repo/i18n/yi.json +++ b/extensions/Wikibase/repo/i18n/yi.json @@ -281,5 +281,6 @@ "content-model-wikibase-item": "Wikibase-דאטנאביעקט", "content-model-wikibase-property": "Wikibase-אייגנשאפֿט", "content-model-wikibase-query": "Wikibase-פֿראגע", + "action-property-create": "שאַפן אייגנשאַפֿטן", "apihelp-wbremoveclaims-description": "נעמט אראפ וויקיבאזע טענות." } diff --git a/extensions/Wikibase/repo/i18n/zh-hant.json b/extensions/Wikibase/repo/i18n/zh-hant.json index b4bb2bf..9034a67 100644 --- a/extensions/Wikibase/repo/i18n/zh-hant.json +++ b/extensions/Wikibase/repo/i18n/zh-hant.json @@ -233,7 +233,12 @@ "wikibase-listdatatypes-intro": "此為目前所有可用的資料型態:", "wikibase-history-title-with-label": "\"$2\" ($1) 的修訂歷史", "wikibase-history-title-without-label": "($1) 的修訂歷史", + "special-listproperties": "屬性清單", + "wikibase-listproperties-legend": "依資料型態取得屬性清單", + "wikibase-listproperties-datatype": "資料型態:", + "wikibase-listproperties-all": "所有資料型態", "wikibase-listproperties-submit": "尋找", + "wikibase-listproperties-invalid-datatype": "\"$1\" 不是有效的資料型態。", "special-entitieswithoutdescription": "無描述的實體", "wikibase-entitieswithoutdescription-legend": "取得無描述的實體清單", "special-entitieswithoutlabel": "無標籤的實體", @@ -384,6 +389,7 @@ "right-item-redirect": "建立項目重新導向", "right-property-term": "更改屬性用語 (標籤、描述與別名)", "right-property-create": "建立屬性", + "action-item-merge": "合併項目", "action-property-create": "建立屬性", "apihelp-wbcreateclaim-description": "建立 Wikibase 主張。", "apihelp-wbcreateredirect-description": "建立實體重新導向。", @@ -399,6 +405,7 @@ "apihelp-wbsearchentities-description": "搜尋項目。", "apihelp-wbsearchentities-param-search": "搜尋此文字。", "apihelp-wbsearchentities-param-language": "搜尋此語言。", + "apihelp-wbsearchentities-param-strictlanguage": "是否要關閉備用語言", "apihelp-wbsearchentities-param-type": "搜尋此類型的實體。", "apihelp-wbsearchentities-param-limit": "結果數量上限", "apihelp-wbsetaliases-description": "設定 Wikibase 實體的別名。", diff --git a/extensions/Wikibase/repo/includes/WikibaseHtmlSnakFormatterFactory.php b/extensions/Wikibase/repo/includes/WikibaseHtmlSnakFormatterFactory.php index a8b796a..8520b30 100644 --- a/extensions/Wikibase/repo/includes/WikibaseHtmlSnakFormatterFactory.php +++ b/extensions/Wikibase/repo/includes/WikibaseHtmlSnakFormatterFactory.php @@ -5,6 +5,7 @@ use ValueFormatters\FormatterOptions; use ValueFormatters\ValueFormatter; use Wikibase\LanguageFallbackChain; +use Wikibase\Lib\FormatterLabelDescriptionLookupFactory; use Wikibase\Lib\OutputFormatSnakFormatterFactory; use Wikibase\Lib\SnakFormatter; use Wikibase\Lib\Store\LabelDescriptionLookup; @@ -43,8 +44,8 @@ ) { $formatterOptions = new FormatterOptions( array( ValueFormatter::OPT_LANG => $languageCode, - 'languages' => $languageFallbackChain, - 'LabelDescriptionLookup' => $labelDescriptionLookup, + FormatterLabelDescriptionLookupFactory::OPT_LANGUAGE_FALLBACK_CHAIN => $languageFallbackChain, + FormatterLabelDescriptionLookupFactory::OPT_LABEL_DESCRIPTION_LOOKUP => $labelDescriptionLookup, ) ); return $formatterOptions; } diff --git a/extensions/Wikibase/repo/includes/api/EditEntity.php b/extensions/Wikibase/repo/includes/api/EditEntity.php index fbb9ab0..8b81160 100644 --- a/extensions/Wikibase/repo/includes/api/EditEntity.php +++ b/extensions/Wikibase/repo/includes/api/EditEntity.php @@ -24,6 +24,7 @@ use Wikibase\DataModel\Entity\Property; use Wikibase\DataModel\Term\FingerprintProvider; use Wikibase\Lib\Serializers\LibSerializerFactory; +use Wikibase\Lib\Serializers\SerializationOptions; use Wikibase\Lib\Store\EntityRevisionLookup; use Wikibase\Lib\ContentLanguages; use Wikibase\Repo\WikibaseRepo; @@ -515,7 +516,7 @@ $opsToReturn = array(); $serializerFactory = new LibSerializerFactory(); - $unserializer = $serializerFactory->newUnserializerForClass( 'Wikibase\DataModel\Claim\Claim' ); + $unserializer = $serializerFactory->newClaimUnserializer( new SerializationOptions() ); foreach ( $claims as $claimArray ) { if ( !array_key_exists( 'remove', $claimArray ) ) { diff --git a/extensions/Wikibase/repo/includes/api/SetClaim.php b/extensions/Wikibase/repo/includes/api/SetClaim.php index 237ee4d..1e5e5d7 100644 --- a/extensions/Wikibase/repo/includes/api/SetClaim.php +++ b/extensions/Wikibase/repo/includes/api/SetClaim.php @@ -17,6 +17,7 @@ use Wikibase\DataModel\Statement\StatementGuidParsingException; use Wikibase\DataModel\Statement\StatementListProvider; use Wikibase\Lib\Serializers\LibSerializerFactory; +use Wikibase\Lib\Serializers\SerializationOptions; use Wikibase\Repo\Diff\ClaimDiffer; use Wikibase\Repo\WikibaseRepo; use Wikibase\Summary; @@ -142,7 +143,7 @@ */ private function getClaimFromParams( array $params ) { $serializerFactory = new LibSerializerFactory(); - $unserializer = $serializerFactory->newUnserializerForClass( 'Wikibase\DataModel\Claim\Claim' ); + $unserializer = $serializerFactory->newClaimUnserializer( new SerializationOptions() ); try { $serializedClaim = json_decode( $params['claim'], true ); diff --git a/extensions/Wikibase/repo/includes/content/EntityContent.php b/extensions/Wikibase/repo/includes/content/EntityContent.php index 547ec12..d7e18c7 100644 --- a/extensions/Wikibase/repo/includes/content/EntityContent.php +++ b/extensions/Wikibase/repo/includes/content/EntityContent.php @@ -292,7 +292,6 @@ $output = $outputGenerator->getParserOutput( $entityRevision, $options, $generateHtml ); - // register page properties $this->applyEntityPageProperties( $output ); return $output; @@ -710,8 +709,11 @@ * @param ParserOutput $output */ private function applyEntityPageProperties( ParserOutput $output ) { - $properties = $this->getEntityPageProperties(); + if ( $this->isRedirect() ) { + return; + } + $properties = $this->getEntityPageProperties(); foreach ( $properties as $name => $value ) { $output->setProperty( $name, $value ); } @@ -729,13 +731,9 @@ * @return array A map from property names to property values. */ public function getEntityPageProperties() { - if ( $this->isRedirect() ) { - return array(); - } - $properties = array(); - $status = $this->getEntityStatus(); + $status = $this->getEntityStatus(); if ( $status !== self::STATUS_NONE ) { $properties['wb-status'] = $status; } diff --git a/extensions/Wikibase/repo/includes/content/ItemContent.php b/extensions/Wikibase/repo/includes/content/ItemContent.php index d9853a1..bea8366 100644 --- a/extensions/Wikibase/repo/includes/content/ItemContent.php +++ b/extensions/Wikibase/repo/includes/content/ItemContent.php @@ -42,7 +42,7 @@ private $redirect; /** - * @var Title|null + * @var Title|null Title of the redirect target. */ private $redirectTitle; @@ -55,7 +55,7 @@ * * @param EntityHolder|null $itemHolder * @param EntityRedirect|null $entityRedirect - * @param Title|null $redirectTitle + * @param Title|null $redirectTitle Title of the redirect target. * * @throws InvalidArgumentException */ @@ -112,7 +112,7 @@ * @since 0.5 * * @param EntityRedirect $redirect - * @param Title $redirectTitle + * @param Title $redirectTitle Title of the redirect target. * * @return ItemContent */ @@ -123,7 +123,7 @@ /** * @see Content::getRedirectTarget * - * @return null|Title + * @return Title|null */ public function getRedirectTarget() { return $this->redirectTitle; @@ -233,7 +233,9 @@ * @return bool True if the item is not empty, but does not contain statements. */ public function isStub() { - return !$this->isEmpty() && $this->getItem()->getStatements()->isEmpty(); + return !$this->isRedirect() + && !$this->getItem()->isEmpty() + && $this->getItem()->getStatements()->isEmpty(); } /** @@ -245,13 +247,13 @@ * @return array A map from property names to property values. */ public function getEntityPageProperties() { - if ( $this->isRedirect() ) { - return array(); - } - $properties = parent::getEntityPageProperties(); - $properties['wb-claims'] = $this->getItem()->getStatements()->count(); - $properties['wb-sitelinks'] = $this->getItem()->getSiteLinkList()->count(); + + if ( !$this->isRedirect() ) { + $item = $this->getItem(); + $properties['wb-claims'] = $item->getStatements()->count(); + $properties['wb-sitelinks'] = $item->getSiteLinkList()->count(); + } return $properties; } @@ -271,12 +273,15 @@ */ public function getEntityStatus() { $status = parent::getEntityStatus(); - $hasSiteLinks = !$this->getItem()->getSiteLinkList()->isEmpty(); - if ( $status === self::STATUS_EMPTY && $hasSiteLinks ) { - $status = self::STATUS_LINKSTUB; - } elseif ( $status === self::STATUS_STUB && $hasSiteLinks ) { - $status = self::STATUS_LINKSTUB; + if ( !$this->isRedirect() ) { + $hasSiteLinks = !$this->getItem()->getSiteLinkList()->isEmpty(); + + if ( $status === self::STATUS_EMPTY && $hasSiteLinks ) { + $status = self::STATUS_LINKSTUB; + } elseif ( $status === self::STATUS_STUB && $hasSiteLinks ) { + $status = self::STATUS_LINKSTUB; + } } return $status; diff --git a/extensions/Wikibase/repo/includes/content/PropertyContent.php b/extensions/Wikibase/repo/includes/content/PropertyContent.php index 0ceaa0d..3f35d6f 100644 --- a/extensions/Wikibase/repo/includes/content/PropertyContent.php +++ b/extensions/Wikibase/repo/includes/content/PropertyContent.php @@ -100,11 +100,8 @@ * @return array A map from property names to property values. */ public function getEntityPageProperties() { - if ( $this->isRedirect() ) { - return array(); - } - $properties = parent::getEntityPageProperties(); + $properties['wb-claims'] = $this->getProperty()->getStatements()->count(); return $properties; @@ -148,7 +145,9 @@ * @return bool True if the property is not empty, but does not contain statements. */ public function isStub() { - return !$this->isEmpty() && $this->getProperty()->getStatements()->isEmpty(); + return !$this->isRedirect() + && !$this->getProperty()->isEmpty() + && $this->getProperty()->getStatements()->isEmpty(); } } diff --git a/extensions/Wikibase/repo/tests/phpunit/includes/WikibaseHtmlSnakFormatterFactoryTest.php b/extensions/Wikibase/repo/tests/phpunit/includes/WikibaseHtmlSnakFormatterFactoryTest.php index c99804f..4774884 100644 --- a/extensions/Wikibase/repo/tests/phpunit/includes/WikibaseHtmlSnakFormatterFactoryTest.php +++ b/extensions/Wikibase/repo/tests/phpunit/includes/WikibaseHtmlSnakFormatterFactoryTest.php @@ -6,6 +6,7 @@ use ValueFormatters\FormatterOptions; use ValueFormatters\ValueFormatter; use Wikibase\LanguageFallbackChain; +use Wikibase\Lib\FormatterLabelDescriptionLookupFactory; use Wikibase\Lib\SnakFormatter; use Wikibase\Repo\WikibaseHtmlSnakFormatterFactory; @@ -35,8 +36,8 @@ SnakFormatter::FORMAT_HTML_WIDGET, new FormatterOptions( array( ValueFormatter::OPT_LANG => 'en', - 'languages' => $languageFallbackChain, - 'LabelDescriptionLookup' => $labelDescriptionLookup + FormatterLabelDescriptionLookupFactory::OPT_LANGUAGE_FALLBACK_CHAIN => $languageFallbackChain, + FormatterLabelDescriptionLookupFactory::OPT_LABEL_DESCRIPTION_LOOKUP => $labelDescriptionLookup ) ) ) ->will( $this->returnValue( $snakFormatter ) ); diff --git a/extensions/Wikibase/repo/tests/phpunit/includes/api/SetClaimTest.php b/extensions/Wikibase/repo/tests/phpunit/includes/api/SetClaimTest.php index ce90b54..c3d257f 100644 --- a/extensions/Wikibase/repo/tests/phpunit/includes/api/SetClaimTest.php +++ b/extensions/Wikibase/repo/tests/phpunit/includes/api/SetClaimTest.php @@ -21,6 +21,7 @@ use Wikibase\DataModel\Statement\Statement; use Wikibase\Lib\ClaimGuidGenerator; use Wikibase\Lib\Serializers\LibSerializerFactory; +use Wikibase\Lib\Serializers\SerializationOptions; use Wikibase\Repo\WikibaseRepo; /** @@ -301,7 +302,7 @@ $serializer = $serializerFactory->newSerializerForObject( $claim ); $serializedClaim = $serializer->getSerialized( $claim ); } else { - $unserializer = $serializerFactory->newUnserializerForClass( 'Wikibase\DataModel\Claim\Claim' ); + $unserializer = $serializerFactory->newClaimUnserializer( new SerializationOptions() ); $serializedClaim = $claim; $claim = $unserializer->newFromSerialization( $serializedClaim ); } diff --git a/extensions/Wikibase/repo/tests/phpunit/includes/api/SetReferenceTest.php b/extensions/Wikibase/repo/tests/phpunit/includes/api/SetReferenceTest.php index b38e842..26ab7ef 100644 --- a/extensions/Wikibase/repo/tests/phpunit/includes/api/SetReferenceTest.php +++ b/extensions/Wikibase/repo/tests/phpunit/includes/api/SetReferenceTest.php @@ -16,6 +16,7 @@ use Wikibase\DataModel\Snak\SnakList; use Wikibase\DataModel\Statement\Statement; use Wikibase\Lib\Serializers\LibSerializerFactory; +use Wikibase\Lib\Serializers\SerializationOptions; use Wikibase\Repo\WikibaseRepo; /** @@ -253,7 +254,7 @@ if ( is_array( $reference ) ) { unset( $reference['hash'] ); $reference = $this->newLibSerializerFactory() - ->newUnserializerForClass( 'Wikibase\DataModel\Reference' ) + ->newReferenceUnserializer( new SerializationOptions() ) ->newFromSerialization( $reference ); } return $reference; diff --git a/extensions/Wikibase/repo/tests/phpunit/includes/content/EntityContentTest.php b/extensions/Wikibase/repo/tests/phpunit/includes/content/EntityContentTest.php index 13d576e..a59a3c6 100644 --- a/extensions/Wikibase/repo/tests/phpunit/includes/content/EntityContentTest.php +++ b/extensions/Wikibase/repo/tests/phpunit/includes/content/EntityContentTest.php @@ -234,7 +234,6 @@ 'wb-claims' => 0, ) ), - 'labels' => array( $labeledEntityContent, array( diff --git a/extensions/Wikibase/repo/tests/phpunit/includes/content/ItemContentTest.php b/extensions/Wikibase/repo/tests/phpunit/includes/content/ItemContentTest.php index b4f744a..451620f 100644 --- a/extensions/Wikibase/repo/tests/phpunit/includes/content/ItemContentTest.php +++ b/extensions/Wikibase/repo/tests/phpunit/includes/content/ItemContentTest.php @@ -204,6 +204,14 @@ $case[1]['wb-sitelinks'] = 0; } + $cases['redirect'] = array( + ItemContent::newFromRedirect( + new EntityRedirect( new ItemId( 'Q1' ), new ItemId( 'Q2' ) ), + Title::newFromText( 'Item:Q2' ) + ), + array() + ); + $cases['claims'] = array( $this->getItemContentWithClaim(), array( diff --git a/extensions/Wikibase/view/resources/jquery/wikibase/jquery.wikibase.sitelinkview.js b/extensions/Wikibase/view/resources/jquery/wikibase/jquery.wikibase.sitelinkview.js index fd7d0fb..e7789e8 100644 --- a/extensions/Wikibase/view/resources/jquery/wikibase/jquery.wikibase.sitelinkview.js +++ b/extensions/Wikibase/view/resources/jquery/wikibase/jquery.wikibase.sitelinkview.js @@ -300,7 +300,8 @@ $pageNameInput .attr( 'lang', site.getLanguageCode() ) .attr( 'dir', site.getLanguageDirection() ) - .show(); + .show() + .focus(); } else { $pageNameInput.hide(); } diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 96039b0..3ff400f 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": "c1e8527a87f29049f9cb318ac0661b144b3c0cd6" + "reference": "86d1a2b39c73bce7928be46f121c4c6ee8effece" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/c1e8527a87f29049f9cb318ac0661b144b3c0cd6", - "reference": "c1e8527a87f29049f9cb318ac0661b144b3c0cd6", + "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/86d1a2b39c73bce7928be46f121c4c6ee8effece", + "reference": "86d1a2b39c73bce7928be46f121c4c6ee8effece", "shasum": "" }, "require": { @@ -1200,7 +1200,7 @@ "require-dev": { "squizlabs/php_codesniffer": "~2.1" }, - "time": "2015-07-21 19:49:13", + "time": "2015-07-23 01:14:59", "type": "mediawiki-extension", "installation-source": "dist", "autoload": { @@ -1401,7 +1401,7 @@ "source": { "type": "git", "url": "https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseQualityConstraints", - "reference": "9f68ef591546a4a900f16128fddccd51acc8e0dd" + "reference": "a04eb8fe6f62d5545a0de45440e90b4c99256914" }, "require": { "php": ">=5.3.0", @@ -1412,7 +1412,7 @@ "phpunit/phpunit": "~3.7,>=3.7.37|~4.5", "satooshi/php-coveralls": "master-dev" }, - "time": "2015-06-22 16:50:01", + "time": "2015-07-22 13:21:59", "type": "mediawiki-extension", "installation-source": "source", "autoload": { -- To view, visit https://gerrit.wikimedia.org/r/226505 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I9d262aec7a2fb80acb1dd24b01c5a70dd5122007 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