diff --git a/bundles/core/src/main/java/com/adobe/cq/commerce/core/components/internal/models/v1/categorylist/FeaturedCategoryListImpl.java b/bundles/core/src/main/java/com/adobe/cq/commerce/core/components/internal/models/v1/categorylist/FeaturedCategoryListImpl.java index 1a7fa39d69..b57cecfb76 100644 --- a/bundles/core/src/main/java/com/adobe/cq/commerce/core/components/internal/models/v1/categorylist/FeaturedCategoryListImpl.java +++ b/bundles/core/src/main/java/com/adobe/cq/commerce/core/components/internal/models/v1/categorylist/FeaturedCategoryListImpl.java @@ -102,14 +102,12 @@ private void initModel() { Asset overrideAsset = assetResource.adaptTo(Asset.class); assetOverride.put(categoryId, overrideAsset); } - } - if (categoryIds.size() > 0) { - MagentoGraphqlClient magentoGraphqlClient = MagentoGraphqlClient.create(resource); - categoriesRetriever = new CategoriesRetriever(magentoGraphqlClient); - categoriesRetriever.setIdentifiers(categoryIds); - } else { - LOGGER.debug("There are no categories configured for CategoryList Component."); + if (categoryIds.size() > 0) { + MagentoGraphqlClient magentoGraphqlClient = MagentoGraphqlClient.create(resource); + categoriesRetriever = new CategoriesRetriever(magentoGraphqlClient); + categoriesRetriever.setIdentifiers(categoryIds); + } } } @@ -138,6 +136,11 @@ public List getCategories() { return categories; } + @Override + public boolean isConfigured() { + return resource.getChild(ITEMS_PROP) != null; + } + @Override public AbstractCategoriesRetriever getCategoriesRetriever() { return this.categoriesRetriever; diff --git a/bundles/core/src/main/java/com/adobe/cq/commerce/core/components/models/categorylist/FeaturedCategoryList.java b/bundles/core/src/main/java/com/adobe/cq/commerce/core/components/models/categorylist/FeaturedCategoryList.java index f7565cbe0e..03565d98e7 100644 --- a/bundles/core/src/main/java/com/adobe/cq/commerce/core/components/models/categorylist/FeaturedCategoryList.java +++ b/bundles/core/src/main/java/com/adobe/cq/commerce/core/components/models/categorylist/FeaturedCategoryList.java @@ -41,4 +41,10 @@ public interface FeaturedCategoryList { */ AbstractCategoriesRetriever getCategoriesRetriever(); + /** + * Returns true if the component is correctly configured, false otherwise. + * + * @return true or false + */ + boolean isConfigured(); } diff --git a/bundles/core/src/test/java/com/adobe/cq/commerce/core/components/internal/models/v1/categorylist/FeaturedCategoryListImplTest.java b/bundles/core/src/test/java/com/adobe/cq/commerce/core/components/internal/models/v1/categorylist/FeaturedCategoryListImplTest.java index fcdd4cdeda..9ad7802bc6 100644 --- a/bundles/core/src/test/java/com/adobe/cq/commerce/core/components/internal/models/v1/categorylist/FeaturedCategoryListImplTest.java +++ b/bundles/core/src/test/java/com/adobe/cq/commerce/core/components/internal/models/v1/categorylist/FeaturedCategoryListImplTest.java @@ -121,6 +121,7 @@ public void setup() throws Exception { @Test public void verifyModel() { Assert.assertNotNull(slingModelConfigured); + Assert.assertTrue(slingModelConfigured.isConfigured()); List list = slingModelConfigured.getCategories(); Assert.assertNotNull(list); Assert.assertEquals(list.size(), 3); @@ -128,6 +129,8 @@ public void verifyModel() { @Test public void verifyCategory() { + Assert.assertNotNull(slingModelConfigured); + Assert.assertTrue(slingModelConfigured.isConfigured()); categories = slingModelConfigured.getCategories(); Assert.assertNotNull(categories); Assert.assertEquals(categories.get(0).getName(), TEST_CATEGORY_NAME); @@ -146,6 +149,7 @@ public void verifyAssetOverride() { public void verifyNotConfigired() { Assert.assertNotNull(slingModelNotConfigured); Assert.assertNull(slingModelNotConfigured.getCategoriesRetriever()); + Assert.assertFalse(slingModelNotConfigured.isConfigured()); categories = slingModelNotConfigured.getCategories(); Assert.assertNotNull(categories); Assert.assertEquals(categories.size(), 0); diff --git a/ui.apps/src/main/content/jcr_root/apps/core/cif/components/commerce/featuredcategorylist/v1/featuredcategorylist/featuredcategorylist.html b/ui.apps/src/main/content/jcr_root/apps/core/cif/components/commerce/featuredcategorylist/v1/featuredcategorylist/featuredcategorylist.html index b3f844a917..615c73c8ae 100755 --- a/ui.apps/src/main/content/jcr_root/apps/core/cif/components/commerce/featuredcategorylist/v1/featuredcategorylist/featuredcategorylist.html +++ b/ui.apps/src/main/content/jcr_root/apps/core/cif/components/commerce/featuredcategorylist/v1/featuredcategorylist/featuredcategorylist.html @@ -15,8 +15,9 @@ */--> - + data-sly-use.category="com.adobe.cq.commerce.core.components.models.categorylist.FeaturedCategoryList" + data-sly-use.templates="core/wcm/components/commons/v1/templates.html"> +

@@ -33,10 +34,7 @@

-
- ${'Featured Category List' @ i18n}
-

${'Please configure categories' @ i18n}

-
+ + -