3636use Ibexa \Contracts \Core \Repository \Values \ObjectState \ObjectStateGroup ;
3737use Ibexa \Contracts \Core \Repository \Values \User \Policy ;
3838use Ibexa \Contracts \Core \Repository \Values \User \RoleAssignment ;
39+ use Ibexa \Contracts \Core \SiteAccess \ConfigResolverInterface ;
3940use Ibexa \Core \MVC \Symfony \Locale \UserLanguagePreferenceProviderInterface ;
4041use 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