[xsl] Number of Recursive XSL Templates exceeded --> XML - Part 5

Subject: [xsl] Number of Recursive XSL Templates exceeded --> XML - Part 5
From: Sundararaman S A <sundararaman.sa@xxxxxxxxx>
Date: Thu, 9 Dec 2004 13:55:34 +0530
*********************************************************************
XSL FILE - PART 4
********************************************************************

	<xsl:template name="filterDisplayTemplate">
		<xsl:param name="sessionId"/>
		<xsl:param name="searchid"/>
		<xsl:param name="searchconfigid"/>
		<xsl:param name="configName"/>
		<xsl:param name="readMode"/>
		<xsl:param name="currentpage"/>
		<xsl:param name="horizontaldisplay"/>
		<xsl:param name="stylesheet"/>
		<xsl:param name="objectType"/>
		<xsl:param name="searchandclear"/>
		<xsl:param name="casesensitive"/>
		<xsl:param name="parent"/>
		<xsl:param name="xslFile"/>
		<xsl:param name="menu"/>
		<xsl:param name="extrainfo"/>
		<xsl:param name="csvprocessflow"/>

		<form action="{$action}" method="post" name="filterDisplayTemplateForm">
			<input type="hidden" name="header" value="true"/>		
			<input type="hidden" name="action" value="getsearchresult"/>
			<input type="hidden" name="process" value="dmtupdatesearch"/>
			<input type="hidden" name="sessionId" value="{$sessionId}"/>
			<input type="hidden" name="id" value="{$searchid}"/>
			<input type="hidden" name="searchconfigid" value="{$searchconfigid}"/>
			<input type="hidden" name="configName" value="{$configName}"/>
			<input type="hidden" name="readMode" value="{$readMode}"/>
			<input type="hidden" name="stylesheet" value="{$stylesheet}"/>
			<input type="hidden" name="horizontaldisplay" value="{$horizontaldisplay}"/>
			<input type="hidden" name="filter" value="true"/>
			<input type="hidden" name="update" value="true"/>
			<input type="hidden" name="type" value="{$objectType}"/>
			<input type="hidden" name="searchandclear" value="{$searchandclear}"/>
			<input type="hidden" name="casesensitive" value="{$casesensitive}"/>
			<input type="hidden" name="parent" value="{$parent}"/>
			<input type="hidden" name="xslFile" value="{$xslFile}"/>
			<input type="hidden" name="style" value="{$xslFile}"/>
			<input type="hidden" name="menu" value="{$menu}"/>
			<input type="hidden" name="extrainfo" value="{$extrainfo}"/>
			<input type="hidden" name="csvprocessflow" value="{$csvprocessflow}"/>
			<xsl:apply-templates select="//sdmsearchobject/sdmsearchfilterobject">
				<xsl:sort select="displayposition"/>
				<xsl:with-param name="searchandclear" select="$searchandclear"/>
			</xsl:apply-templates>
	

	
		<xsl:if test="string($casesensitive)!='0'">
		<tr>
								<xsl:for-each select="/Response//sdmsearch/casesensitivity">
									<xsl:variable name="cobjectname" select="name(..)"/>
									<xsl:variable name="cobjectid" select="../@id"/>
									<xsl:variable name="cfieldname" select="name()"/>
									<xsl:variable name="copenbrace" select="'['"/>
									<xsl:variable name="cclosebrace" select="']'"/>
									<xsl:variable name="cdot" select="'.'"/>
									<xsl:variable name="finalstrings">
										<xsl:value-of
select="concat($cobjectname,$copenbrace,$cobjectid,$cclosebrace,$cdot,$cfieldname)"/>
									</xsl:variable>
									<script language="javascript" defer="defer">
							function caseSensitivity(checkboxer)
							{
  							 var docForms = window.document.forms;
	        							    								elems =
window.document.filterDisplayTemplateForm.elements;
							        for(i=0;i&lt;docForms.length;i++)
							        {

										var thisForm = docForms[i];
										for (idxElement=0;idxElement&lt;thisForm.elements.length;idxElement++)
										{
											var thisElement = thisForm.elements[idxElement];
									     	if(thisElement.name=='<xsl:value-of select="$finalstrings"/>')
											{
											var gotElement = thisElement;
											}
										}
									}
								
									  if(checkboxer.checked)
										 gotElement .value =1;
									  else
		 							  	gotElement .value = 0;		
 							  }			       
							</script>
							<td>Case Sensitivity
							</td>
														<td>
									<input type="checkbox" name="makecaseinsensitive_cb">
										<xsl:attribute
name="onclick"><xsl:text>javascript:caseSensitivity(this);</xsl:text></xsl:attribute>
										<xsl:if test="/Response//sdmsearch/casesensitivity='1'">
											<xsl:attribute name="checked">checked</xsl:attribute>
										</xsl:if>
									</input>
									<input>
										<xsl:attribute name="type"><xsl:value-of
select="'hidden'"/></xsl:attribute>
										<xsl:attribute name="name"><xsl:value-of
select="$finalstrings"/></xsl:attribute>
										<xsl:choose>
											<xsl:when test="/Response//sdmsearch/casesensitivity='1'">
												<xsl:attribute name="value">1</xsl:attribute>
											</xsl:when>
											<xsl:otherwise>
												<xsl:attribute name="value">0</xsl:attribute>
											</xsl:otherwise>
										</xsl:choose>
									</input>
																</td>
								</xsl:for-each>
</tr>								
	</xsl:if>
			
		</form>
	</xsl:template>
	
	<xsl:template name="findValue">
		<xsl:param name="separator"/>
		<xsl:param name="separator2"/>
		<xsl:param name="separator3"/>
		<xsl:param name="lovs"/>
		<xsl:if test="contains($lovs, $separator)">
			<xsl:value-of select="substring-before($lovs, $separator)"/>
			<xsl:variable name="tempLovs">
				<xsl:value-of select="substring-after($lovs,$separator2)"/>
			</xsl:variable>
			<xsl:if test="contains($tempLovs, $separator)">
				<xsl:value-of select="$separator3"/>
			</xsl:if>
		</xsl:if>
		<xsl:if test="contains($lovs, $separator2)">
			<xsl:call-template name="findValue">
				<xsl:with-param name="lovs" select="substring-after($lovs,$separator2)"/>
				<xsl:with-param name="separator" select="$separator"/>
				<xsl:with-param name="separator2" select="$separator2"/>
				<xsl:with-param name="separator3" select="$separator3"/>
			</xsl:call-template>
		</xsl:if>
	</xsl:template>
	<xsl:template name="findDomain">
		<xsl:param name="separator"/>
		<xsl:param name="separator2"/>
		<xsl:param name="separator3"/>
		<xsl:param name="lovs"/>
		<xsl:if test="contains($lovs, $separator)">
			<xsl:variable name="tempLovs0">
				<xsl:value-of select="substring-after($lovs,$separator)"/>
			</xsl:variable>
			<xsl:value-of select="substring-before($tempLovs0, $separator2)"/>
			<xsl:variable name="tempLovs">
				<xsl:value-of select="substring-after($lovs,$separator2)"/>
			</xsl:variable>
			<xsl:if test="contains($tempLovs, $separator)">
				<xsl:value-of select="$separator3"/>
			</xsl:if>
		</xsl:if>
		<xsl:if test="contains($lovs, $separator2)">
			<xsl:call-template name="findDomain">
				<xsl:with-param name="lovs" select="substring-after($lovs,$separator2)"/>
				<xsl:with-param name="separator" select="$separator"/>
				<xsl:with-param name="separator2" select="$separator2"/>
				<xsl:with-param name="separator3" select="$separator3"/>
			</xsl:call-template>
		</xsl:if>
	</xsl:template>


	<xsl:template name="resultDisplayTemplateVertical">
		<xsl:param name="readMode"/>
		<xsl:param name="url1"/>
		<xsl:param name="stylesheet"/>
		<xsl:param name="casesensitive"/>
		<xsl:param name="searchandclear"/>
		<xsl:param name="horizontaldisplay"/>
		<xsl:param name="xslFile"/>
		<xsl:param name="menu"/>
		<xsl:param name="extrainfo"/>
		<xsl:param name="csvprocessflow"/>
		<xsl:param name="RecordsNotFound"/>
		<xsl:param name="objpermission"/>
		<xsl:param name="currentpage"/>
		<xsl:param name="parent"/>
		<xsl:param name="configName"/>
		<xsl:param name="searchid"/>
		<xsl:param name="searchconfigid"/>
		
		
		<xsl:variable name="currentdate" select="//sdmsearch/@currentdate"/>
		<xsl:variable name="orderbylist" select="//orderbylist"/>
		
		<xsl:variable name="modifiedby"
select="//Response/Header/workflowresponse/userid"/>

		<xsl:variable name="copyImageEnable">
			<xsl:call-template name="menutemplate">
				<xsl:with-param name="menuvalue" select="$menu"/>
				<xsl:with-param name="menuname" select="$COPYINSERT"/>
			</xsl:call-template>
		</xsl:variable>
		
		
		<xsl:variable name="deleteImageEnable">
			<xsl:call-template name="menutemplate">
				<xsl:with-param name="menuvalue" select="$menu"/>
				<xsl:with-param name="menuname" select="$DELETE"/>
			</xsl:call-template>
		</xsl:variable>
		
		<xsl:variable name="tempflag">
			<xsl:choose>
				<xsl:when test="string($copyImageEnable)='true' or
string($deleteImageEnable)='true' or (string($objpermission)='4' and
(string($copyImageEnable)='true' or
string($deleteImageEnable)='true'))">
					<xsl:value-of select="'true'"/>
				</xsl:when>
				<xsl:otherwise>
						<xsl:value-of select="'false'"/>				
				</xsl:otherwise>
			</xsl:choose>
		</xsl:variable>
		<xsl:variable name="pKey"
select="name(//search/SearchResult/sdmsearchresult[1]//*[@id])"/>
		<xsl:variable name="objectName">
			<xsl:for-each select="//search/SearchResult/sdmsearchresult[1]//*[@id]">
				<xsl:value-of select="name(..)"/>
			</xsl:for-each>
		</xsl:variable>
		<input type="hidden" name="pKey" value="{$pKey}"/>
		<input type="hidden" name="objectName" value="{$objectName}"/>
		<input type="hidden" name="type" value="{$objectName}"/>			
		

		<xsl:variable name="container"
select="//search/SearchResult/sdmsearchresult"/>
<xsl:if test="string($container)">		
		<xsl:if test="string($readMode)!='1'">
			<tr>
		<xsl:if test="string($tempflag)='true'">
				<td class="contentHeaderRow" align="left">
					<input type="checkbox" name="topcheckbox" value=""
onclick="javascript:selectAllCheckBoxes()" size="10"
style="width:13px;height:13px;"/>
				</td>
		</xsl:if>
				<xsl:for-each select="$container">
					<xsl:variable name="pos" select="count(preceding-sibling::*) + 1"/>
					<xsl:variable name="primarykey_value" select="*//*[string(@id)!='']/@id"/>
					<xsl:choose>
						<xsl:when test="position() mod 2 = 1">
							<xsl:if test="string($tempflag)='true'">
							<td class="alternateRow1" align="left">
								<input type="checkbox" name="id" value="{$primarykey_value}" 
style="width:13px;height:13px;"/>
							</td>
							</xsl:if>
						</xsl:when>
						<xsl:otherwise>
									<xsl:if test="string($tempflag)='true'">						
							<td class="alternateRow2" align="left">
								<input type="checkbox" name="id" value="{$primarykey_value}" 
style="width:13px;height:13px;"/>
							</td>
							</xsl:if>
						</xsl:otherwise>
					</xsl:choose>
				</xsl:for-each>
			</tr>
		</xsl:if>
</xsl:if>

		<xsl:for-each select="$container[1]">
			<xsl:for-each select=".//*[@hide]">
			<xsl:sort select="@displayposition"  data-type="number"/>
		<xsl:value-of select="$orderbylist"/>
		<xsl:variable name="sortOrd">
			<xsl:call-template name="findTheOrdering">
				<xsl:with-param name="sortCol" select="@searchinfoconfigid"/>
				<xsl:with-param name="orderbylist" select="$orderbylist"/>
			</xsl:call-template>
		</xsl:variable>
		<xsl:variable name="sortUrl">				
		<xsl:call-template name="AnchorSubmitTemplate">
		<xsl:with-param name="URL"
select="concat($action,'?action=startprocess&amp;process=dmtsort&amp;sortCol=',@searchinfoconfigid,'&amp;sortOrd=',$sortOrd,'&amp;searchid=',$searchid,'&amp;sessionId=',$session,'&amp;readMode=',$readMode,'&amp;page1=',$currentpage,'&amp;parent=',$parent,'&amp;xslFile=',$xslFile,'&amp;menu=',$menu,'&amp;extrainfo=',$extrainfo,'&amp;csvprocessflow=',$csvprocessflow,'&amp;configName=',$configName,'&amp;horizontaldisplay=',$horizontaldisplay,'&amp;casesensitive=',$casesensitive,'&amp;searchandclear=',$searchandclear,'&amp;stylesheet=',$stylesheet,'&amp;style=',$xslFile,'&amp;filter=true&amp;header=true')"/>
			<xsl:with-param name="frames" select="$FRAMES"/>
		</xsl:call-template>
	</xsl:variable>	

		<xsl:if test="@domain">			
			<xsl:variable name="pos" select="count(preceding-sibling::*) + 1"/>
					<xsl:if test="string(@hide)!='1'">			
		<xsl:text disable-output-escaping="yes"><![CDATA[<tr>]]></xsl:text>
	</xsl:if>
				<xsl:choose>
					<xsl:when test="string(@hide)='1'">
					</xsl:when>
					<xsl:when test="string(@returnchildname) != '' and
not(string($readMode)='1')">
						<td class="contentHeaderRow" width="18%">
							<table id="GenericDataFull" width="20%">
								<tr>
				<xsl:variable name="newURL">
					<xsl:call-template name="AnchorSubmitTemplate">
						<xsl:with-param name="URL"
select="concat($action,'?action=startprocess&amp;process=dmtgetsearchfilterandresultwithconfigname&amp;sessionId=',$session,'&amp;stylesheet=',$stylesheet,'&amp;configName=',@returnchildname,'&amp;style=',$xslFile,'&amp;readMode=0&amp;parent=',$url1,'&amp;casesensitive=',$casesensitive,'&amp;menu=',$menu,'&amp;extrainfo=',$extrainfo,'&amp;csvprocessflow=',$csvprocessflow,'&amp;searchandclear=',$searchandclear,'&amp;horizontaldisplay=',$horizontaldisplay)"/>
						<xsl:with-param name="frames" select="$FRAMES"/>
					</xsl:call-template>
				</xsl:variable>
								
									<td class="contentHeaderRow" width="18%">
										<a href="{$newURL}">
											<img src="{$DMT_IMAGES}/addParent.gif" alt="Add Parent" border="0"/>
										</a>
									</td>
									<td class="contentHeaderRow" width="18%">
									<a href="{$sortUrl}"
onclick="javascript:DisableLinks('{@displayname}');">
										<b>
											<xsl:value-of select="normalize-space(@displayname)"/>
										</b>
									</a>
									</td>
								</tr>
							</table>
						</td>
					</xsl:when>
					<xsl:otherwise>
						<td class="contentHeaderRow" width="18%">
						<a href="{$sortUrl}" onclick="javascript:DisableLinks('{@displayname}');">
							<xsl:value-of select="normalize-space(@displayname)"/>
						</a>
						</td>
					</xsl:otherwise>
				</xsl:choose>
				<xsl:variable name="objectname" select="name(..)"/>
				<xsl:for-each select="$container//*[position()=$pos and @hide]">
					
					<xsl:variable name="primarykey_value" select="../*[string(@id)!='']/@id"/>

					<xsl:variable name="object"
select="concat($objectname,'[',$primarykey_value,'].')"/>
					<xsl:variable name="fieldname"
select="normalize-space(concat($object,name(.)))"/>
					<xsl:variable name="fieldvalue" select="normalize-space(text())"/>
							<xsl:variable name="columnName" select="name(.)"/>


					<!-- Lov calculation starts here -->
					<xsl:variable name="lovs">
			<xsl:for-each select="//search/SearchHeader//*">
				<xsl:if test="$columnName = name(.)">
				<xsl:value-of select="@domain"/>
				</xsl:if>
</xsl:for-each>
					</xsl:variable>
					<xsl:variable name="separator">
						<xsl:value-of select="','"/>
					</xsl:variable>
					<xsl:variable name="separator2">
						<xsl:value-of select="'|'"/>
					</xsl:variable>
					<xsl:variable name="separator3">
						<xsl:value-of select="'|'"/>
					</xsl:variable>
					<xsl:variable name="lovsDomain">
						<xsl:call-template name="findDomain">
							<xsl:with-param name="lovs" select="$lovs"/>
							<xsl:with-param name="separator" select="$separator"/>
							<xsl:with-param name="separator2" select="$separator2"/>
							<xsl:with-param name="separator3" select="$separator3"/>
						</xsl:call-template>
					</xsl:variable>
					<xsl:variable name="lovsValue">
						<xsl:call-template name="findValue">
							<xsl:with-param name="lovs" select="$lovs"/>
							<xsl:with-param name="separator" select="$separator"/>
							<xsl:with-param name="separator2" select="$separator2"/>
							<xsl:with-param name="separator3" select="$separator3"/>
						</xsl:call-template>
					</xsl:variable>
					<!-- Lov calculation ends here -->
					
					<xsl:if test="string(@hide)!='1'">
					<xsl:choose>
						<xsl:when test="position() mod 2 = 1">
							<xsl:text disable-output-escaping="yes"><![CDATA[<td
class="alternateRow1">]]></xsl:text>
						</xsl:when>
						<xsl:otherwise>
							<xsl:text disable-output-escaping="yes"><![CDATA[<td
class="alternateRow2">]]></xsl:text>
						</xsl:otherwise>
					</xsl:choose>
					</xsl:if>
					<xsl:choose>
					<xsl:when test="@hide='1'">
							<input type="hidden" name="{$fieldname}"
value="{$fieldvalue}"/>								</xsl:when>
						<xsl:when test="@pageview='1' or string($readMode) = '1'">
							<xsl:choose>
								<xsl:when test="@domain!=''">
								<xsl:variable name="valuetemp">								
<!--									<xsl:call-template name="selectedValue">
										<xsl:with-param name="domain" select="$lovsValue"/>
										<xsl:with-param name="desc" select="$lovsDomain"/>
										<xsl:with-param name="disabled" select="'disabled'"/>
										<xsl:with-param name="funcname" select="'return true'"/>
										<xsl:with-param name="value" select="$fieldvalue"/>
										<xsl:with-param name="name" select="$fieldname"/>
										<xsl:with-param name="displayselectedvalue" select="$fieldvalue"/>
									</xsl:call-template>-->
								</xsl:variable>
									<xsl:call-template name="selectedValue">
										<xsl:with-param name="domain" select="$lovsValue"/>
										<xsl:with-param name="desc" select="$lovsDomain"/>
										<xsl:with-param name="disabled" select="'disabled'"/>
										<xsl:with-param name="funcname" select="'return true'"/>
										<xsl:with-param name="value" select="$fieldvalue"/>
										<xsl:with-param name="name" select="$fieldname"/>
										<xsl:with-param name="displayselectedvalue" select="$fieldvalue"/>
									</xsl:call-template>
								
								<xsl:value-of select="$valuetemp"/>
						<xsl:text disable-output-escaping="yes">&amp;nbsp;&amp;nbsp;</xsl:text>
								<input type="hidden" name="{$fieldname}" value="{$valuetemp}"/>
								</xsl:when>
								<xsl:otherwise>
											<input type="hidden" name="{$fieldname}" value="{$fieldvalue}"/>
										<xsl:value-of select="$fieldvalue"/>
						<xsl:text
disable-output-escaping="yes">&amp;nbsp;&amp;nbsp;</xsl:text>								</xsl:otherwise>
							</xsl:choose>
						</xsl:when>
						<xsl:when test="@domain!=''">
								<xsl:call-template name="selectbox2">
									<xsl:with-param name="domain" select="$lovsValue"/>
									<xsl:with-param name="desc" select="$lovsDomain"/>
									<xsl:with-param name="funcname" select="'return true'"/>
									<xsl:with-param name="value" select="$fieldvalue"/>
									<xsl:with-param name="name" select="$fieldname"/>
									<xsl:with-param name="displayselectedvalue" select="$fieldvalue"/>
									<xsl:with-param name="primarykey_value" select="$primarykey_value"/>
									<xsl:with-param name="currentdate" select="$currentdate"/>
									<xsl:with-param name="modifiedby" select="$modifiedby"/>
									<xsl:with-param name="objectname" select="$objectname"/>
								</xsl:call-template>
						</xsl:when>
						<xsl:otherwise>
									<table id="Data" cellpadding="0"
cellspacing="0"><tr><td>											<xsl:choose>
									<xsl:when test="string(@format)!=''">
										<input type="text" size="10" name="{$fieldname}"
value="{$fieldvalue}"
onchange="javascript:validate('{$primarykey_value}','{$currentdate}','{$modifiedby}','{$objectname}')"/>
										<xsl:text disable-output-escaping="yes"><![CDATA[<a
href="]]></xsl:text>
										<xsl:text
disable-output-escaping="yes"><![CDATA[javascript:openDateWindow(document.resultDisplayTemplateForm[]]></xsl:text>
										<xsl:text disable-output-escaping="yes"><![CDATA[']]></xsl:text>
										<xsl:value-of select="$fieldname"/>
										<xsl:text disable-output-escaping="yes"><![CDATA['],'',']]></xsl:text>
										<xsl:value-of select="@format"/>
										<xsl:text
disable-output-escaping="yes"><![CDATA[','','true','',']]></xsl:text>
										<xsl:value-of select="$primarykey_value"/>				
										<xsl:text disable-output-escaping="yes"><![CDATA[',']]></xsl:text>		
										<xsl:value-of select="$currentdate"/>				
										<xsl:text disable-output-escaping="yes"><![CDATA[',']]></xsl:text>		
										<xsl:value-of select="$modifiedby"/>				
										<xsl:text disable-output-escaping="yes"><![CDATA[',']]></xsl:text>		
										<xsl:value-of select="$objectname"/>				
										<xsl:text disable-output-escaping="yes"><![CDATA[','1']]></xsl:text>		
										<xsl:text disable-output-escaping="yes"><![CDATA[);">]]></xsl:text>
										<img src="{$DMT_IMAGES}/calendar.gif" alt="Calendar" border="0"/>
										<xsl:text disable-output-escaping="yes"><![CDATA[</a>]]></xsl:text>
									</xsl:when>
									<xsl:otherwise>
									<xsl:choose>
										<xsl:when test="string(@id)!=''">
											<xsl:value-of select="$fieldvalue"/>
											<input type="hidden" name="{$fieldname}" value="{$fieldvalue}"/>
										</xsl:when>
										<xsl:otherwise>
										<input type="text" name="{$fieldname}" value="{$fieldvalue}"
onchange="javascript:validate('{$primarykey_value}','{$currentdate}','{$modifiedby}','{$objectname}')"/>
										</xsl:otherwise>
									</xsl:choose>
									</xsl:otherwise>
									</xsl:choose>
									</td></tr></table>									
						</xsl:otherwise>
					</xsl:choose>
					<xsl:if test="string(@hide)!='1'">
					<xsl:text disable-output-escaping="yes"><![CDATA[</td>]]></xsl:text>
					</xsl:if>
				</xsl:for-each>
	<xsl:if test="string(@hide)!='1'">				
		<xsl:text disable-output-escaping="yes"><![CDATA[</tr>]]></xsl:text>
	</xsl:if>
	</xsl:if>
	</xsl:for-each>
		</xsl:for-each>
			<xsl:if test="$RecordsNotFound">
				<font color="red" size="2"><xsl:value-of select="$RECORDSNOTFOUND"/></font>
			</xsl:if>
		
	</xsl:template>

Current Thread