function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Edgars Everts 5Edgars Everts 5 

Inline Account Hierarchy - AccountHierarchyTree component *** DEPLOYMENT FAILED ***

Hi,
Inline Account Hierarchy was implemented in DEV environment (one of sandboxes), and adjusted a little, but due deployment to another sandbox: Test environment we are facing the deployment fail:

BUILD FAILED
/...jenkins/build.xml:95:
*********** DEPLOYMENT FAILED *********** Request ID: <ID>
All Component Failures:
1.  components/AccountHierarchyTree.component -- Warning: The element type "div" should be terminated by the matching end-tag "</div>" in AccountHierarchyTree at line 80
 
*********** DEPLOYMENT FAILED ***********

We are deploying Apex Classes:
AccountStructure
AccountHierarchyTestData
testAccountHierarchy
InlineAccountHierarchy_TestUtilities
VF Page: AccountHierarchyPage
VF Component: AccountHierarchyTree

Have tried to separate classes and vf page from component, but as they have reference to another, I could not deploy them seperately.
AccountHierarchyTree component left with API = 15, so "invalid" </div> tag work just fine in DEV environment, Account hierarchy is shown on Account detail page. Note this "div" give warning till API = 18, but since API = 19 it trows an error.

Component code:
<!--
    Copyright (c)2008, Matthew Friend, Sales Engineering, Salesforce.com Inc.
    All rights reserved. 

-->

<apex:component Controller="AccountStructure">
    <apex:attribute name="currentIdVF" description="This is the Account Id for displaying Acccount Hierarchy" type="String" required="true" assignTo="{!currentId}"/>

    <div class="treeNode">
            <apex:repeat value="{!ObjectStructure}" var="pos" >
            <apex:repeat value="{!pos.levelFlag}" var="flag" first="0">
                <apex:image url="/img/tree/empty.gif" height="16" width="20" rendered="{!IF(flag,false,true)}"/>
                <apex:image url="/s.gif" alt="" width="3" height="16" rendered="{!IF(flag,true,false)}"/>
                <apex:image url="/img/tree/chain.gif" height="16" width="20" rendered="{!IF(flag,true,false)}"/>
            </apex:repeat>

            <span height="16" v="top">

            <apex:outputText rendered="{!IF(pos.nodeType=='start',true,false)}">
                <apex:image id="tree_start" url="/img/tree/minusStart.gif" height="16" width="20" title="Click to expand/collapse nested items." onClick="TreeNodeElement.prototype.toggle(this,'{!pos.nodeId}')"/>
                <apex:image id="Icon_start" url="/img/icon/custom51_100/globe16.png" width="16" height="16" rendered="{!IF(pos.currentNode,false,true)}"/>
                <apex:image id="Icon_start_current" url="/img/icon/star16.png" width="16" height="16" rendered="{!IF(pos.currentNode,true,false)}"/>
            </apex:outputText>

....

<!-- Change Below -->
            <apex:outputLink value="/{!pos.account.id}" style="{!IF(pos.currentNode,'font-weight: bold;','')}" styleClass="columnHeadActiveBlack" target="_top">{!pos.account.name}</apex:outputLink>

...

<!-- Stop -->
            </span>
                
            <div> </div>
               
            <apex:outputText rendered="{!IF(OR(pos.nodeType=='child_end',pos.nodeType=='child'),false,true)}">
                <div id='{!pos.nodeId}'>
            </apex:outputText>
            <apex:outputText rendered="{!IF(OR(pos.nodeType=='child_end',pos.nodeType=='child'),true,false)}">
                <div id='{!pos.nodeId}'><apex:image url="/s.gif" alt="" width="1" height="1"/></div>
            </apex:outputText>
            <apex:repeat value="{!pos.closeFlag}" var="close">
                </div>               
            </apex:repeat>    
                    

    </apex:repeat>
    <br/><br/><br/>
    </div>
</apex:component>

So this component is warned because of not closed "div", but if we rewrite this part, then Account hierarchy looses it expand/collapse functionality
<apex:outputText rendered="{!IF(OR(pos.nodeType=='child_end',pos.nodeType=='child'),false,true)}">
                <div id='{!pos.nodeId}'>
            </apex:outputText>

But not sure if this component can be deployed into test environment!? Any idea, advise would be great!!!
Thank you in advance.