[MediaWiki-commits] [Gerrit] mediawiki...Wikibase[master]: Let LabelDescriptionLookup work in action=info in client for...

2016-09-26 Thread jenkins-bot (Code Review)
jenkins-bot has submitted this change and it was merged.

Change subject: Let LabelDescriptionLookup work in action=info in client for 
EntityUsage
..


Let LabelDescriptionLookup work in action=info in client for EntityUsage

Bug: T145965
Change-Id: I6c03dd7ef67471e51807048816769a496fc1d931
---
M client/WikibaseClient.hooks.php
M client/includes/Hooks/InfoActionHookHandler.php
M client/includes/RepoLinker.php
M client/tests/phpunit/includes/Hooks/InfoActionHookHandlerTest.php
4 files changed, 195 insertions(+), 45 deletions(-)

Approvals:
  Hoo man: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/client/WikibaseClient.hooks.php b/client/WikibaseClient.hooks.php
index 476e209..1a5ee70 100644
--- a/client/WikibaseClient.hooks.php
+++ b/client/WikibaseClient.hooks.php
@@ -31,6 +31,7 @@
 use Wikibase\Client\WikibaseClient;
 use Wikibase\DataModel\Entity\EntityId;
 use Wikibase\Lib\AutoCommentFormatter;
+use Wikibase\Lib\Store\LanguageFallbackLabelDescriptionLookupFactory;
 
 /**
  * File defining the hook handlers for the Wikibase Client extension.
@@ -409,6 +410,12 @@
 
$namespaceChecker = $wikibaseClient->getNamespaceChecker();
$usageLookup = $wikibaseClient->getStore()->getUsageLookup();
+   $labelDescriptionLookupFactory = new 
LanguageFallbackLabelDescriptionLookupFactory(
+   $wikibaseClient->getLanguageFallbackChainFactory(),
+   $wikibaseClient->getTermLookup(),
+   $wikibaseClient->getTermBuffer()
+   );
+   $idParser = $wikibaseClient->getEntityIdParser();
 
if ( !$namespaceChecker->isWikibaseEnabled( 
$context->getTitle()->getNamespace() ) ) {
// shorten out
@@ -420,7 +427,9 @@
$wikibaseClient->newRepoLinker(),
$wikibaseClient->getStore()->getSiteLinkLookup(),
$settings->getSetting( 'siteGlobalID' ),
-   $usageLookup
+   $usageLookup,
+   $labelDescriptionLookupFactory,
+   $idParser
);
 
$pageInfo = $infoActionHookHandler->handle( $context, $pageInfo 
);
diff --git a/client/includes/Hooks/InfoActionHookHandler.php 
b/client/includes/Hooks/InfoActionHookHandler.php
index 874fc4b..0c5f1e1 100644
--- a/client/includes/Hooks/InfoActionHookHandler.php
+++ b/client/includes/Hooks/InfoActionHookHandler.php
@@ -7,8 +7,10 @@
 use Title;
 use Wikibase\Client\RepoLinker;
 use Wikibase\Client\Usage\UsageLookup;
+use Wikibase\DataModel\Entity\EntityIdParser;
 use Wikibase\DataModel\Entity\ItemId;
 use Wikibase\Lib\Store\SiteLinkLookup;
+use Wikibase\Lib\Store\LanguageFallbackLabelDescriptionLookupFactory;
 use Wikibase\NamespaceChecker;
 
 /**
@@ -44,13 +46,32 @@
 */
private $usageLookup;
 
-   public function __construct( NamespaceChecker $namespaceChecker, 
RepoLinker $repoLinker,
-   SiteLinkLookup $siteLinkLookup, $siteId, UsageLookup 
$usageLookup ) {
+   /**
+* @var LanguageFallbackLabelDescriptionLookupFactory
+*/
+   private $labelDescriptionLookupFactory;
+
+   /**
+* @var EntityIdParser
+*/
+   private $idParser;
+
+   public function __construct(
+   NamespaceChecker $namespaceChecker,
+   RepoLinker $repoLinker,
+   SiteLinkLookup $siteLinkLookup,
+   $siteId,
+   UsageLookup $usageLookup,
+   LanguageFallbackLabelDescriptionLookupFactory 
$labelDescriptionLookupFactory,
+   EntityIdParser $idParser
+   ) {
$this->namespaceChecker = $namespaceChecker;
$this->repoLinker = $repoLinker;
$this->siteLinkLookup = $siteLinkLookup;
$this->siteId = $siteId;
$this->usageLookup = $usageLookup;
+   $this->labelDescriptionLookupFactory = 
$labelDescriptionLookupFactory;
+   $this->idParser = $idParser;
}
 
/**
@@ -165,12 +186,25 @@
];
}
$output = '';
-
+   $entityIds = array_map(
+   function( $entityId ) {
+   return $this->idParser->parse( $entityId );
+   },
+   array_keys( $usageAspectsByEntity )
+   );
+   $labelLookup = 
$this->labelDescriptionLookupFactory->newLabelDescriptionLookup(
+   $context->getLanguage(),
+   $entityIds
+   );
foreach ( $usageAspectsByEntity as $entityId => $aspects ) {
+   $label = $labelLookup->getLabel( 
$this->idParser->parse( $entityId ) );
+   $text = $label === null ? $entit

[MediaWiki-commits] [Gerrit] mediawiki...Wikibase[master]: Let LabelDescriptionLookup work in action=info in client for...

2016-09-21 Thread Ladsgroup (Code Review)
Ladsgroup has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/312130

Change subject: Let LabelDescriptionLookup work in action=info in client for 
EntityUsage
..

Let LabelDescriptionLookup work in action=info in client for EntityUsage

Bug: T145965
Change-Id: I6c03dd7ef67471e51807048816769a496fc1d931
---
M client/WikibaseClient.hooks.php
M client/includes/Hooks/InfoActionHookHandler.php
M client/includes/RepoLinker.php
M client/tests/phpunit/includes/Hooks/InfoActionHookHandlerTest.php
4 files changed, 112 insertions(+), 8 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase 
refs/changes/30/312130/1

diff --git a/client/WikibaseClient.hooks.php b/client/WikibaseClient.hooks.php
index 476e209..1a5ee70 100644
--- a/client/WikibaseClient.hooks.php
+++ b/client/WikibaseClient.hooks.php
@@ -31,6 +31,7 @@
 use Wikibase\Client\WikibaseClient;
 use Wikibase\DataModel\Entity\EntityId;
 use Wikibase\Lib\AutoCommentFormatter;
+use Wikibase\Lib\Store\LanguageFallbackLabelDescriptionLookupFactory;
 
 /**
  * File defining the hook handlers for the Wikibase Client extension.
@@ -409,6 +410,12 @@
 
$namespaceChecker = $wikibaseClient->getNamespaceChecker();
$usageLookup = $wikibaseClient->getStore()->getUsageLookup();
+   $labelDescriptionLookupFactory = new 
LanguageFallbackLabelDescriptionLookupFactory(
+   $wikibaseClient->getLanguageFallbackChainFactory(),
+   $wikibaseClient->getTermLookup(),
+   $wikibaseClient->getTermBuffer()
+   );
+   $idParser = $wikibaseClient->getEntityIdParser();
 
if ( !$namespaceChecker->isWikibaseEnabled( 
$context->getTitle()->getNamespace() ) ) {
// shorten out
@@ -420,7 +427,9 @@
$wikibaseClient->newRepoLinker(),
$wikibaseClient->getStore()->getSiteLinkLookup(),
$settings->getSetting( 'siteGlobalID' ),
-   $usageLookup
+   $usageLookup,
+   $labelDescriptionLookupFactory,
+   $idParser
);
 
$pageInfo = $infoActionHookHandler->handle( $context, $pageInfo 
);
diff --git a/client/includes/Hooks/InfoActionHookHandler.php 
b/client/includes/Hooks/InfoActionHookHandler.php
index 874fc4b..17ff861 100644
--- a/client/includes/Hooks/InfoActionHookHandler.php
+++ b/client/includes/Hooks/InfoActionHookHandler.php
@@ -7,8 +7,10 @@
 use Title;
 use Wikibase\Client\RepoLinker;
 use Wikibase\Client\Usage\UsageLookup;
+use Wikibase\DataModel\Entity\EntityIdParser;
 use Wikibase\DataModel\Entity\ItemId;
 use Wikibase\Lib\Store\SiteLinkLookup;
+use Wikibase\Lib\Store\LanguageFallbackLabelDescriptionLookupFactory;
 use Wikibase\NamespaceChecker;
 
 /**
@@ -44,13 +46,32 @@
 */
private $usageLookup;
 
-   public function __construct( NamespaceChecker $namespaceChecker, 
RepoLinker $repoLinker,
-   SiteLinkLookup $siteLinkLookup, $siteId, UsageLookup 
$usageLookup ) {
+   /**
+* @var LanguageFallbackLabelDescriptionLookupFactory
+*/
+   private $labelDescriptionLookupFactory;
+
+   /**
+* @var EntityIdParser
+*/
+   private $idParser;
+
+   public function __construct(
+   NamespaceChecker $namespaceChecker,
+   RepoLinker $repoLinker,
+   SiteLinkLookup $siteLinkLookup,
+   $siteId,
+   UsageLookup $usageLookup,
+   LanguageFallbackLabelDescriptionLookupFactory 
$labelDescriptionLookupFactory,
+   EntityIdParser $idParser
+   ) {
$this->namespaceChecker = $namespaceChecker;
$this->repoLinker = $repoLinker;
$this->siteLinkLookup = $siteLinkLookup;
$this->siteId = $siteId;
$this->usageLookup = $usageLookup;
+   $this->labelDescriptionLookupFactory = 
$labelDescriptionLookupFactory;
+   $this->idParser = $idParser;
}
 
/**
@@ -165,12 +186,25 @@
];
}
$output = '';
-
+   $entityIds = array_map(
+   function( $entityId ) {
+   return $this->idParser->parse( $entityId );
+   },
+   array_keys( $usageAspectsByEntity )
+   );
+   $labelLookup = 
$this->labelDescriptionLookupFactory->newLabelDescriptionLookup(
+   $context->getLanguage(),
+   $entityIds
+   );
foreach ( $usageAspectsByEntity as $entityId => $aspects ) {
+   $label = $labelLookup->getLabel( 
$this->idParser->parse( $entityId ) );