diff --git a/core/src/main/java/com/adobe/aem/modernize/job/datasource/ConversionJobBucketDataSource.java b/core/src/main/java/com/adobe/aem/modernize/job/datasource/ConversionJobBucketDataSource.java index 6e91b556..204a6dc2 100644 --- a/core/src/main/java/com/adobe/aem/modernize/job/datasource/ConversionJobBucketDataSource.java +++ b/core/src/main/java/com/adobe/aem/modernize/job/datasource/ConversionJobBucketDataSource.java @@ -21,6 +21,8 @@ */ import java.io.IOException; +import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -99,6 +101,7 @@ protected void doGet(@NotNull SlingHttpServletRequest request, @NotNull SlingHtt } private DataSource buildDataSource(final ResourceResolver rr, final ConversionJobBucket bucket, int offset, int limit) { + Map> warningsByPath = parseWarnings(bucket); List entries = bucket.getPaths().stream().skip(offset).limit(limit).map(p -> { Map vm = new HashMap<>(); vm.put("path", p); @@ -118,10 +121,31 @@ private DataSource buildDataSource(final ResourceResolver rr, final ConversionJo vm.put("status", "Unknown"); vm.put("statusClass", "unknown"); vm.put("icon", "helpCircle"); - + } + List warns = warningsByPath.getOrDefault(p, Collections.emptyList()); + if (!warns.isEmpty()) { + vm.put("warnings", true); + vm.put("warningList", warns.toArray(new String[0])); } return new ValueMapResource(rr, p, ITEM_RESOURCE_TYPE, new ValueMapDecorator(vm)); }).collect(Collectors.toList()); return new SimpleDataSource(entries.iterator()); } + + private Map> parseWarnings(ConversionJobBucket bucket) { + String[] raw = bucket.getResource().getValueMap().get("warnings", new String[0]); + if (raw.length == 0) { + return Collections.emptyMap(); + } + Map> result = new HashMap<>(); + for (String entry : raw) { + int sep = entry.indexOf("||"); + if (sep > 0) { + String path = entry.substring(0, sep); + String msg = entry.substring(sep + 2); + result.computeIfAbsent(path, k -> new ArrayList<>()).add(msg); + } + } + return result; + } } diff --git a/ui.apps/src/main/content/jcr_root/apps/aem-modernize/components/job/bucket/item/item.html b/ui.apps/src/main/content/jcr_root/apps/aem-modernize/components/job/bucket/item/item.html index 15346dbe..e8a0c2fb 100644 --- a/ui.apps/src/main/content/jcr_root/apps/aem-modernize/components/job/bucket/item/item.html +++ b/ui.apps/src/main/content/jcr_root/apps/aem-modernize/components/job/bucket/item/item.html @@ -18,7 +18,14 @@ #L% --> - ${properties.path} + +
${properties.path}
+ + +
⚠ ${warning}
+
+
+ ${properties.status}