// start setting of heropanel public void heroPanelTranslate( Node heroPanelNode, Element ele, String locale, Map<String, String> urlMap, int imageSrcEmptyCount) { try { String title = ele.getElementsByTag("h2") != null ? ele.getElementsByTag("h2").text() : ""; String desc = ele.getElementsByTag("p") != null ? ele.getElementsByTag("p").first().text() : ""; Element anchor = ele.getElementsByTag("a").first(); String anchorText = anchor != null ? anchor.text() : ""; String anchorHref = anchor.absUrl("href"); if (StringUtil.isBlank(anchorHref)) { anchorHref = anchor.attr("href"); } // Start extracting valid href log.debug("Before heroPanelLinkUrl" + anchorHref + "\n"); anchorHref = FrameworkUtils.getLocaleReference(anchorHref, urlMap, locale, sb); log.debug("after heroPanelLinkUrl" + anchorHref + "\n"); // End extracting valid href // start image String heroImage = FrameworkUtils.extractImagePath(ele, sb); log.debug("heroImage before migration : " + heroImage + "\n"); if (heroPanelNode != null) { Node heroPanelPopUpNode = null; Element lightBoxElement = null; Elements lightBoxElements = ele.select("div.c50-image").select("a.c26v4-lightbox"); heroPanelPopUpNode = FrameworkUtils.getHeroPopUpNode(heroPanelNode); lightBoxElements = !lightBoxElements.isEmpty() ? lightBoxElements : ele.select("div.c50-text").select("a.c26v4-lightbox"); if (lightBoxElements != null && !lightBoxElements.isEmpty()) { lightBoxElement = lightBoxElements.first(); } if (heroPanelPopUpNode == null && lightBoxElement != null) { sb.append( "<li>video pop up is present in WEB page but it is not present in WEM page.</li>"); } if (heroPanelPopUpNode != null && lightBoxElement == null) { sb.append( "<li>video pop up is present in WEM page but it is not present in WEB page.</li>"); } if (heroPanelPopUpNode != null && lightBoxElement != null && StringUtils.isNotBlank(title)) { heroPanelPopUpNode.setProperty("popupHeader", title); } if (heroPanelNode.hasNode("image")) { Node imageNode = heroPanelNode.getNode("image"); String fileReference = imageNode.hasProperty("fileReference") ? imageNode.getProperty("fileReference").getString() : ""; heroImage = FrameworkUtils.migrateDAMContent(heroImage, fileReference, locale, sb); log.debug("heroImage after migration : " + heroImage + "\n"); if (StringUtils.isNotBlank(heroImage)) { imageNode.setProperty("fileReference", heroImage); } else { imageSrcEmptyCount++; } } else { sb.append("<li>hero image node doesn't exist</li>"); } heroPanelNode.setProperty("title", title); heroPanelNode.setProperty("description", desc); heroPanelNode.setProperty("linktext", anchorText); heroPanelNode.setProperty("linkurl", anchorHref); } // end image if (imageSrcEmptyCount > 0) { sb.append( "<li> " + imageSrcEmptyCount + " image(s) are not found on hero elements on locale page.</li>"); } } catch (Exception e) { e.printStackTrace(); } }
private void migrateHero( Elements heroLargeElements, Node midSizeUpperLeftNode, String locale, Map<String, String> urlMap) throws PathNotFoundException, ValueFormatException, VersionException, LockException, ConstraintViolationException, RepositoryException, JSONException { Node heroLargeNode = null; Value[] panelPropertiest = null; if (midSizeUpperLeftNode.hasNode("hero_large")) { heroLargeNode = midSizeUpperLeftNode.getNode("hero_large"); Property panelNodesProperty = heroLargeNode.hasProperty("panelNodes") ? heroLargeNode.getProperty("panelNodes") : null; if (panelNodesProperty.isMultiple()) { panelPropertiest = panelNodesProperty.getValues(); } } else { log.debug( "<li>Node with name 'hero_large' doesn't exist under " + midSizeUpperLeftNode.getPath() + "</li>"); log.debug( "Node with name 'hero_large' doesn't exist under " + midSizeUpperLeftNode.getPath()); } if (heroLargeElements != null) { Element heroLargeElement = heroLargeElements.first(); if (heroLargeElement != null) { int eleSize = heroLargeElement.select("div.frame").size(); Elements heroLargeFrameElements = heroLargeElement.select("div.frame"); Node heroPanelNode = null; if (heroLargeFrameElements != null) { if (eleSize != heroLargeNode.getNodes("heropanel*").getSize()) { sb.append(Constants.MISMATCH_IN_HERO_SLIDES); heroLargeElement.select("div.frame").first().remove(); heroLargeFrameElements = heroLargeElement.select("div.frame"); } int i = 0; for (Element ele : heroLargeFrameElements) { String heroPanelTitle = ""; String heroPanelDescription = ""; String heroPanelLinkText = ""; String heroPanellinkUrl = ""; Elements heroTitleElements = ele.getElementsByTag("h2"); if (heroTitleElements != null) { Element heroTitleElement = heroTitleElements.first(); if (heroTitleElement != null) { heroPanelTitle = heroTitleElement.text(); } else { sb.append(Constants.HERO_CONTENT_HEADING_ELEMENT_DOESNOT_EXISTS); log.debug("No h2 first element found with in the class 'frame' of div."); } } else { sb.append(Constants.HERO_CONTENT_HEADING_ELEMENT_DOESNOT_EXISTS); log.debug("No h2 found with in the class 'frame' of div."); } Elements heroDescriptionElements = ele.getElementsByTag("p"); if (heroDescriptionElements != null) { Element heroDescriptionElement = heroDescriptionElements.first(); if (heroDescriptionElement != null) { heroPanelDescription = heroDescriptionElement.text(); } else { sb.append(Constants.HERO_CONTENT_DESCRIPTION_ELEMENT_DOESNOT_EXISTS); log.debug("No p frist element found with in the class 'frame' of div."); } } else { sb.append(Constants.HERO_CONTENT_DESCRIPTION_ELEMENT_DOESNOT_EXISTS); log.debug("No p elemtn found with in the class 'frame' of div."); } Elements heroPanelLinkTextElements = ele.getElementsByTag("b"); if (heroPanelLinkTextElements != null) { Element heroPanelLinkTextElement = heroPanelLinkTextElements.first(); if (heroPanelLinkTextElement != null) { heroPanelLinkText = heroPanelLinkTextElement.text(); } else { sb.append(Constants.HERO_CONTENT_ANCHOR_TEXT_IS_BLANK); log.debug("No b tags first elemtn found with in the class 'frame' of div."); } } else { sb.append(Constants.HERO_CONTENT_ANCHOR_TEXT_IS_BLANK); log.debug("No b tag found with the class 'frame' of div."); } Elements heroPanelLinkUrlElements = ele.getElementsByTag("a"); if (heroPanelLinkUrlElements != null) { Element heroPanelLinkUrlElement = heroPanelLinkUrlElements.first(); if (heroPanelLinkUrlElement != null) { heroPanellinkUrl = heroPanelLinkUrlElement.absUrl("href"); if (heroPanellinkUrl.equals("")) { heroPanellinkUrl = heroPanelLinkUrlElement.attr("href"); } // Start extracting valid href log.debug("heroPanellinkUrl before migration : " + heroPanellinkUrl); heroPanellinkUrl = FrameworkUtils.getLocaleReference(heroPanellinkUrl, urlMap, locale, sb); log.debug("heroPanellinkUrl after migration : " + heroPanellinkUrl); // End extracting valid href } else { sb.append(Constants.HERO_CONTENT_ANCHOR_LINK_IS_BLANK); log.debug("No anchor first element found with in the class 'frame' of div."); } } else { sb.append(Constants.HERO_CONTENT_ANCHOR_LINK_IS_BLANK); log.debug("No anchor element found with in the class 'frame' of div."); } // start image String heroImage = FrameworkUtils.extractImagePath(ele, sb); log.debug("heroImage path : " + heroImage); // end image log.debug("heroPanelTitle : " + heroPanelTitle); log.debug("heroPanelDescription : " + heroPanelDescription); log.debug("heroPanelLinkText : " + heroPanelLinkText); log.debug("heroPanellinkUrl : " + heroPanellinkUrl); if (panelPropertiest != null && i <= panelPropertiest.length) { String propertyVal = panelPropertiest[i].getString(); if (StringUtils.isNotBlank(propertyVal)) { JSONObject jsonObj = new JSONObject(propertyVal); if (jsonObj.has("panelnode")) { String panelNodeProperty = jsonObj.get("panelnode").toString(); heroPanelNode = heroLargeNode.hasNode(panelNodeProperty) ? heroLargeNode.getNode(panelNodeProperty) : null; log.debug("hero_node_Name : " + heroPanelNode.getName()); } } i++; } else { sb.append(Constants.HERO_CONTENT_NODE_NOT_FOUND); log.debug("No list panelProperties found for the hero compoent order."); } if (heroPanelNode != null) { Node heroPanelPopUpNode = null; Elements lightBoxElements = ele.select("div.c50-image").select("a.c26v4-lightbox"); if (lightBoxElements != null && !lightBoxElements.isEmpty()) { heroPanelPopUpNode = FrameworkUtils.getHeroPopUpNode(heroPanelNode); } if (StringUtils.isNotBlank(heroPanelTitle)) { heroPanelNode.setProperty("title", heroPanelTitle); if (heroPanelPopUpNode != null) { heroPanelPopUpNode.setProperty("popupHeader", heroPanelTitle); } else { if (lightBoxElements != null && lightBoxElements.size() != 0) { sb.append("<li>Hero content video pop up node not found.</li>"); log.debug( "No pop-up node found for the hero panel node " + heroPanelNode.getPath()); } } } else { sb.append(Constants.HERO_SLIDE_TITLE_NOT_FOUND); log.debug("Title is blank with in the 'frame' class of div."); } if (StringUtils.isNotBlank(heroPanelDescription)) { heroPanelNode.setProperty("description", heroPanelDescription); } else { sb.append(Constants.HERO_SLIDE_DESCRIPTION_NOT_FOUND); log.debug("Description is blank with in the 'frame' class of the div."); } if (StringUtils.isNotBlank(heroPanelLinkText)) { heroPanelNode.setProperty("linktext", heroPanelLinkText); } else { sb.append(Constants.HERO_SLIDE_DESCRIPTION_NOT_FOUND); log.debug("Link Text doesn't exists with in the class 'frame' of the div."); } if (StringUtils.isNotBlank(heroPanellinkUrl)) { heroPanelNode.setProperty("linkurl", heroPanellinkUrl); } else { sb.append(Constants.HERO_SLIDE_LINKURL_NOT_FOUND); log.debug("Link url doesn't exists with in the class 'frame' of the div."); } if (heroPanelNode.hasNode("image")) { Node imageNode = heroPanelNode.getNode("image"); String fileReference = imageNode.hasProperty("fileReference") ? imageNode.getProperty("fileReference").getString() : ""; heroImage = FrameworkUtils.migrateDAMContent(heroImage, fileReference, locale, sb); log.debug("heroImage : " + heroImage); if (StringUtils.isNotBlank(heroImage)) { imageNode.setProperty("fileReference", heroImage); } } else { sb.append(Constants.HERO_SLIDE_IMAGE_NODE_NOT_FOUND); log.debug("'image' node doesn't exists in " + heroPanelNode.getPath()); } } } } else { log.debug("<li>Hero Large Frames/Panel Elements is not found</li>"); log.debug("No div found with class 'frame'"); } } else { sb.append(Constants.HERO_LARGE_COMPONENT_NOT_FOUND); log.debug("No first element found with class 'c50-pilot'"); } } else { sb.append("<li>Hero Large component is not found on web publisher page</li>"); log.debug("No element found with class 'c50-pilot'"); } }