Skip to content

Commit 8a99030

Browse files
author
Ryan Lee
committed
IBX-10186 Fix value factory constraints
1 parent 6f5f109 commit 8a99030

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

src/lib/UI/Value/ValueFactory.php

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
use Ibexa\Contracts\Core\Repository\Values\ObjectState\ObjectStateGroup;
3737
use Ibexa\Contracts\Core\Repository\Values\User\Policy;
3838
use Ibexa\Contracts\Core\Repository\Values\User\RoleAssignment;
39+
use Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface;
3940
use Ibexa\Core\MVC\Symfony\Locale\UserLanguagePreferenceProviderInterface;
4041
use Ibexa\Core\Repository\LocationResolver\LocationResolver;
4142

@@ -74,7 +75,8 @@ class ValueFactory
7475
/** @var \Ibexa\Core\Repository\LocationResolver\LocationResolver */
7576
protected $locationResolver;
7677

77-
/** @var \eZ\Publish\Core\MVC\ConfigResolverInterface */
78+
/** @var \Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface */
79+
protected $configResolver;
7880

7981
/**
8082
* @param \Ibexa\Contracts\Core\Repository\UserService $userService
@@ -88,6 +90,7 @@ class ValueFactory
8890
* @param \Ibexa\AdminUi\UI\Dataset\DatasetFactory $datasetFactory
8991
* @param \Ibexa\Core\MVC\Symfony\Locale\UserLanguagePreferenceProviderInterface $userLanguagePreferenceProvider
9092
* @param \Ibexa\Core\Repository\LocationResolver\LocationResolver $locationResolver
93+
* @param \Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface $configResolver
9194
*/
9295
public function __construct(
9396
UserService $userService,
@@ -100,7 +103,8 @@ public function __construct(
100103
PathService $pathService,
101104
DatasetFactory $datasetFactory,
102105
UserLanguagePreferenceProviderInterface $userLanguagePreferenceProvider,
103-
LocationResolver $locationResolver
106+
LocationResolver $locationResolver,
107+
ConfigResolverInterface $configResolver
104108
) {
105109
$this->userService = $userService;
106110
$this->languageService = $languageService;
@@ -113,6 +117,7 @@ public function __construct(
113117
$this->datasetFactory = $datasetFactory;
114118
$this->userLanguagePreferenceProvider = $userLanguagePreferenceProvider;
115119
$this->locationResolver = $locationResolver;
120+
$this->configResolver = $configResolver;
116121
}
117122

118123
/**
@@ -239,9 +244,11 @@ public function createLocation(Location $location): UIValue\Content\Location
239244
{
240245
$translations = $location->getContent()->getVersionInfo()->languageCodes;
241246
$target = (new Target\Version())->deleteTranslations($translations);
247+
$limit = $this->configResolver->getParameter('subtree_operations.query_subtree.limit');
248+
$useLimit = $limit > 0;
242249

243250
return new UIValue\Content\Location($location, [
244-
'childCount' => $this->locationService->getLocationChildCount($location),
251+
'childCount' => $this->locationService->getLocationChildCount($location, $useLimit ? $limit + 1 : null),
245252
'pathLocations' => $this->pathService->loadPathLocations($location),
246253
'userCanManage' => $this->permissionResolver->canUser(
247254
'content',

0 commit comments

Comments
 (0)