Rev 5955 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<%@LANGUAGE="VBSCRIPT"%><%'====================================================='| |'| REPORT |'| SBOM Issues |'=====================================================%><%Option explicit' Good idea to set when using redirectResponse.Expires = 0 ' always load the page, dont store'To enable the script timeout to 5 minsServer.ScriptTimeout=300%><!--#include file="common/config.asp"--><!--#include file="common/common_subs.asp"--><!--#include file="common/globals.asp"--><!--#include file="common/formating.asp"--><!--#include file="common/qstr.asp"--><!--#include file="common/common_dbedit.asp"--><%'------------ ACCESS CONTROL ------------------%><!--#include file="_access_control_general.asp"--><SCRIPT LANGUAGE="VBScript" RUNAT=SERVER SRC="class/classaspJSON.vbs"></SCRIPT><SCRIPT LANGUAGE="VBScript" RUNAT=SERVER SRC="common/base64encode.vbs"></SCRIPT><SCRIPT LANGUAGE="VBScript" RUNAT=SERVER SRC="common/jiraIssues.vbs"></SCRIPT><%'------------ Variable Definition -------------Dim rsQryDim parPv_idDim objSbomDetailsA, objSbomDetailsBDim objRelCollectorA, objRelCollectorBDim parSbomA, parSbomBDim retValCQIssuesDim retValJIRAIssuesDim topLevelIdDim DEVIissDim pvIdListDim objIssueDetailsDim cqIssuesDim jiraIssuesDim rsBomPackagesDim rsPkgDepsDim multiPackagesEnabled'------------ Constants Declaration -----------'------------ Variable Init -------------------parSbomA = Request("sbomA")parSbomB = Request("sbomB")Set objRelCollectorA = CreateObject("Scripting.Dictionary")Set objRelCollectorB = CreateObject("Scripting.Dictionary")Set objSbomDetailsA = CreateObject("Scripting.Dictionary")Set objSbomDetailsB = CreateObject("Scripting.Dictionary")Set objIssueDetails = CreateObject("Scripting.Dictionary")Set jiraIssues = CreateObject( "Scripting.Dictionary" )Set rsBomPackages = Server.CreateObject("ADODB.Recordset")Set rsPkgDeps = Server.CreateObject("ADODB.Recordset")'----------------------------------------------%><%'----------------------------------------------------------------------------------------------------------------------------------------Sub GetFormDetails ( nSourceSBOM, ByRef tempObjRelCollector )Dim rsQry, query' Exit if nSourceRtagId is emptyIf nSourceSBOM = "" Then Exit SubOraDatabase.Parameters.Add "SBOM", nSourceSBOM, ORAPARM_INPUT, ORATYPE_NUMBERquery = _" SELECT pr.PROJ_NAME ||' > '|| br.BRANCH_NAME ||' > '|| b.BOM_VERSION ||'.'||b.BOM_LIFECYCLE AS LOCATION, "&_" pr.PROJ_ID, b.BOM_ID, br.BRANCH_ID, b.IS_READONLY, b.RTAG_ID_FK"&_" FROM BRANCHES br,"&_" BOMS b,"&_" DM_PROJECTS pr"&_" WHERE br.PROJ_ID = pr.PROJ_ID"&_" AND b.BRANCH_ID = br.BRANCH_ID"&_" AND b.BOM_ID = :SBOM"Set rsQry = OraDatabase.DbCreateDynaset( query, ORADYN_DEFAULT )OraDatabase.Parameters.Remove "SBOM"If rsQry.RecordCount > 0 ThentempObjRelCollector ("location") = rsQry("location")tempObjRelCollector ("official") = rsQry("IS_READONLY")tempObjRelCollector ("proj_id") = rsQry("proj_id")tempObjRelCollector ("branch_id") = rsQry("branch_id")tempObjRelCollector ("bom_id") = rsQry("bom_id")tempObjRelCollector ("rtag_id_fk") = rsQry("rtag_id_fk")ElseErr.Raise 8, "Sub GetFormDetails in "& SCRIPT_NAME, "Empty record set returned. nSourceSBOM="& nSourceSBOMEnd IfIf tempObjRelCollector ("location") = "" ThentempObjRelCollector.Item ("location") = "N"End IfrsQry.CloseSet rsQry = NothingEnd Sub'----------------------------------------------------------------------------------------------------------------------------------------Sub GetPackageDetailsForIssue ( nIss_id, sPvIdList, tempIssDetails )Dim queryquery = " SELECT DISTINCT pkg.pkg_name, pv.pkg_version, pv.v_ext, pkg.pkg_id, pv.pv_id "&_" FROM package_versions pv, packages pkg, cq_issues iss "&_" WHERE pv.pkg_id = pkg.pkg_id AND pv.pv_id = iss.pv_id AND iss.iss_id = :ISS_ID AND pv.pv_id IN ("& sPvIdList &")"OraDatabase.Parameters.Add "ISS_ID", nIss_id, ORAPARM_INPUT, ORATYPE_NUMBERSet tempIssDetails = OraDatabase.DbCreateDynaset( query, ORADYN_DEFAULT )OraDatabase.Parameters.Remove "ISS_ID"If tempIssDetails.RecordCount = 0 ThenErr.Raise 8, "Sub GetPackageDetailsForIssue in "& SCRIPT_NAME, "Empty record set returned. nIss_id="& nIss_idEnd IfEnd Sub'----------------------------------------------------------------------------------------------------------------------------------------Sub GetPackageDetailsForJIRAIssue ( nIss_Key, sPvIdList, tempIssDetails )Dim queryquery = " SELECT DISTINCT pkg.pkg_name, pv.pkg_version, pv.v_ext, pkg.pkg_id, pv.pv_id "&_" FROM package_versions pv, packages pkg, jira_issues iss "&_" WHERE pv.pkg_id = pkg.pkg_id AND pv.pv_id = iss.pv_id AND iss.iss_key = :ISS_ID AND pv.pv_id IN ("& sPvIdList &")"OraDatabase.Parameters.Add "ISS_ID", nIss_Key, ORAPARM_INPUT, ORATYPE_NUMBERSet tempIssDetails = OraDatabase.DbCreateDynaset( query, ORADYN_DEFAULT )OraDatabase.Parameters.Remove "ISS_ID"If tempIssDetails.RecordCount = 0 ThenErr.Raise 8, "Sub GetPackageDetailsForJIRAIssue in "& SCRIPT_NAME, "Empty record set returned. nIss_Key="& nIss_KeyEnd IfEnd Sub'----------------------------------------------------------------------------------------------------------------------------------------Function GetIssues( sPvIdList, oRsCqIssTemp )Dim sqlStrTemp, oRsTempSet oRsTemp = OraDatabase.DbCreateDynaset("SELECT iss_db, iss_id FROM CQ_ISSUES WHERE pv_id IN ("& sPvIdList &")", cint(0))If oRsTemp.RecordCount <> 0 ThenDEVIiss = "-1"While ((NOT oRsTemp.BOF) AND (NOT oRsTemp.EOF))If CInt(oRsTemp("iss_db")) = CInt(enumCLEARQUEST_DEVI_ID) ThenDEVIiss = DEVIiss &","& oRsTemp("iss_id")End IfoRsTemp.MoveNextWEndsqlStrTemp = GetQuery ("cq_issues.sql")sqlStrTemp = Replace( sqlStrTemp, "/*enumCLEARQUEST_DEVI_ID*/", enumCLEARQUEST_DEVI_ID)sqlStrTemp = Replace( sqlStrTemp, "/*DEVIiss*/", DEVIiss)On Error Resume NextSet oRsCqIssTemp = OraDatabase.DbCreateDynaset( sqlStrTemp, cint(0))GetIssues = Err.NumberElseGetIssues = -1End IfEnd Function'----------------------------------------------------------------------------------------------------------------------------------------Function Get_JIRA_Issues ( sPvIdList, oRsJiraIssTemp )On Error Resume NextCall getJiraIssueDetails(sPvIdList, oRsJiraIssTemp, 1)If Err.Number <> 0 ThenGet_JIRA_Issues = Err.NumberElseIf oRsJiraIssTemp.Count = 0 ThenGet_JIRA_Issues = -1ElseGet_JIRA_Issues = 0End IfEnd Function'----------------------------------------------------------------------------------------------------------------------------------------Sub GetPackageDependencies ( nPv_id_a, nPv_id_b, oRsTemp )OraDatabase.Parameters.Add "PV_ID_A", nPv_id_a, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "PV_ID_B", nPv_id_b, ORAPARM_INPUT, ORATYPE_NUMBERSet oRsTemp = OraDatabase.DbCreateDynaset( GetQuery ("UniquePackageDependencies.sql"), ORADYN_DEFAULT )OraDatabase.Parameters.Remove "PV_ID_A"OraDatabase.Parameters.Remove "PV_ID_B"End Sub'----------------------------------------------------------------------------------------------------------------------------------------Sub GetAllBomContents ( nSbom_id, oRsTemp )OraDatabase.Parameters.Add "SBOM_ID", nSbom_id, ORAPARM_INPUT, ORATYPE_NUMBERSet oRsTemp = OraDatabase.DbCreateDynaset( GetQuery ("BomPackagesAndDeps.sql"), ORADYN_DEFAULT )OraDatabase.Parameters.Remove "SBOM_ID"End Sub'----------------------------------------------------------------------------------------------------------------------------------------Sub GetBomPackages ( nSbomA, nSbomB, oRsTemp )OraDatabase.Parameters.Add "SBOM_A", nSbomA, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "SBOM_B", nSbomB, ORAPARM_INPUT, ORATYPE_NUMBERSet oRsTemp = OraDatabase.DbCreateDynaset( GetQuery ("BomPackageDiff.sql"), ORADYN_DEFAULT )OraDatabase.Parameters.Remove "SBOM_A"OraDatabase.Parameters.Remove "SBOM_B"End Sub'----------------------------------------------------------------------------------------------------------------------------------------%><%'---------------------- Run Before Page ---------------------------' Get release detailsCall GetFormDetails ( parSbomA, objRelCollectorA )Call GetFormDetails ( parSbomB, objRelCollectorB )multiPackagesEnabled = FALSEIf parSbomA <> "" AND parSbomB <> "" ThenIf Request("form_btn_comp") = "Get Issues" ThenCall OpenInWindow ( SCRIPT_NAME &"?sbomA="& parSbomA &"&sbomB="& parSbomB )End IfCall GetBomDetails (parSbomA, objSbomDetailsA)Call GetBomDetails (parSbomB, objSbomDetailsB)objSbomDetailsA("bom_full_version") = objSbomDetailsA("bom_name")&" "& objSbomDetailsA("bom_version") &"."& objSbomDetailsA("bom_lifecycle")objSbomDetailsB("bom_full_version") = objSbomDetailsB("bom_name")&" "& objSbomDetailsB("bom_version") &"."& objSbomDetailsB("bom_lifecycle")' Check for the submission of the "multiplepackageS" checkbox that enables multiple packages to be identified and rendered on the page' for each issue, if applicable.If Request("multipackages") = "TRUE" ThenmultiPackagesEnabled = TRUEElsemultiPackagesEnabled = FALSEEnd IfElseobjSbomDetailsA("bom_full_version") = "Software Bill of Materials (SBOM)"End If'------------------------------------------------------------------%><html><head><title>Deployment Manager - SBOM Issues Report</title><link rel="shortcut icon" href="<%=FavIcon%>"/><meta http-equiv="Pragma" content="no-cache"><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><link rel="stylesheet" href="images/release_manager_style.css?ver=<%=VixVerNum%>" type="text/css"><link href="scripts/deployment_manager.css?ver=<%=VixVerNum%>" rel="stylesheet" type="text/css"><script language="JavaScript" src="scripts/common.js?ver=<%=VixVerNum%>"></script><script language="JavaScript" src="scripts/remote_scripting.js?ver=<%=VixVerNum%>"></script><script language="JavaScript" type="text/javascript"><!--function RequestSBOMCombo( paramString, rowId ){var requestURL = 'RequestSBOMCombo.asp';// Set ajax divnameajaxdivname = rowId;//Append the name to search for to the requestURLvar url = requestURL + paramString;rowId.options[0] = new Option('Loading...','');rowId.selectedIndex = 0;//Create the xmlHttp object to use in the request//stateChangeHandler will fire when the state has changed, i.e. data is received backxmlHttp = GetXmlHttpObject(stateComboChangeHandler);//Send the xmlHttp get to the specified url//This is non-blocking (asynchronous)xmlHttp_Get(xmlHttp, url);}function RequestReleaseCombos( paramString, rowIdA, rowIdB ){var requestURL = 'RequestReleaseCombo.asp';// First release combo box.// Set ajax divnameajaxdivname = rowIdA;//Append the name to search for to the requestURLvar url = requestURL + paramString;rowIdA.options[0] = new Option('Loading...','');rowIdA.selectedIndex = 0;//Create the xmlHttp object to use in the request//stateChangeHandler will fire when the state has changed, i.e. data is received backxmlHttp = GetXmlHttpObject(stateComboChangeHandler);//Send the xmlHttp get to the specified url//This is blocking (synchronous)xmlHttp_Get_Synch(xmlHttp, url);// Second release combo box.ajaxdivname = rowIdB;rowIdB.options[0] = new Option('Loading...','');rowIdB.selectedIndex = 0;//Create the xmlHttp object to use in the request//stateChangeHandler will fire when the state has changed, i.e. data is received backxmlHttp = GetXmlHttpObject(stateComboChangeHandler);//Send the xmlHttp get to the specified url//This is blocking (synchronous)xmlHttp_Get_Synch(xmlHttp, url);}function openSbom( elementId ){var url = 'Bom_Home.asp?bom_id=';var bom_id = document.getElementById(elementId).value;window.open( url + bom_id );}function setLeftOffset( elementId ){if ( document.getElementById(elementId) ){var offset = (getWindowWidth() / 2) - (document.getElementById(elementId).clientWidth / 2);document.getElementById(elementId).style.left = offset;}}function removePrompt ( elementId ){var selectElement = document.getElementById(elementId);if ( /^\d+$/.test(selectElement.options[0].value) == false){selectElement.options[0] = null;}}function clearSelectBox ( elementId ){var selectElement = document.getElementById(elementId);selectElement.options.length = 0;}//--></script></head><body onresize="setLeftOffset('loader');"><body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0"><!-- HEADER ++++++++++++++++ --><!--#include file="_header.asp"--><!-- +++++++++++++++++++++++ --><!-- BODY ----><div align="center" class="report_header"><%=objSbomDetailsA("bom_full_version")%> Issues Report</div><form name="FormName" method="post" action="<%=SCRIPT_NAME%>"><table width="100%" border="0" cellspacing="10" cellpadding="0"><tr><td align="left" class="body_col" colspan="2">Select SBOM To View</td></tr><tr><td align="left"><select name="proj" id="proj" class="form_item"onchange="RequestReleaseCombos('?proj_id='+ this.value, FormName.rtagA, FormName.rtagB);removePrompt(this.id);clearSelectBox('sbomA');clearSelectBox('sbomB');"><option value="">-- Select Project --</option><%OraDatabase.Parameters.Add "PROJ_ID", objRelCollectorA("proj_id"), ORAPARM_INPUT, ORATYPE_NUMBERSet rsQry = OraDatabase.DbCreateDynaset( GetQuery("ProjectsCombo.sql"), cint(0))OraDatabase.Parameters.Remove "PROJ_ID"While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%><option value="<%=rsQry("proj_id")%>" <%=rsQry("selected")%>><%=rsQry("proj_name")%></option><%rsQry.MoveNextWEndrsQry.CloseSet rsQry = Nothing%></select></td><td align="left" class="body_col">Select SBOM To Compare To</td></tr><tr><td align="left" width="25%"><select name="rtagA" id="rtagA" class="form_item" onchange="RequestSBOMCombo('?branch_id='+ this.value, FormName.sbomA);removePrompt(this.id);"><!-- <option value="">-- Select Branch --</option> --><%OraDatabase.Parameters.Add "PROJ_ID", objRelCollectorA("proj_id"), ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "BRANCH_ID", objRelCollectorA("branch_id"), ORAPARM_INPUT, ORATYPE_NUMBERSet rsQry = OraDatabase.DbCreateDynaset( GetQuery("ReleasesCombo.sql"), cint(0))OraDatabase.Parameters.Remove "PROJ_ID"OraDatabase.Parameters.Remove "BRANCH_ID"While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%><option value="<%=rsQry("branch_id")%>" <%=rsQry("selected")%>><%=rsQry("branch_name")%></option><%rsQry.MoveNextWEndrsQry.CloseSet rsQry = Nothing%></select></td><td align="left"><select name="rtagB" id="rtagB" class="form_item" onchange="RequestSBOMCombo('?branch_id='+ this.value, FormName.sbomB);removePrompt(this.id);"><!-- <option value="">-- Select Branch --</option> --><%OraDatabase.Parameters.Add "PROJ_ID", objRelCollectorB("proj_id"), ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "BRANCH_ID", objRelCollectorB("branch_id"), ORAPARM_INPUT, ORATYPE_NUMBERSet rsQry = OraDatabase.DbCreateDynaset( GetQuery("ReleasesCombo.sql"), cint(0))OraDatabase.Parameters.Remove "PROJ_ID"OraDatabase.Parameters.Remove "BRANCH_ID"While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%><option value="<%=rsQry("branch_id")%>" <%=rsQry("selected")%>><%=rsQry("branch_name")%></option><%rsQry.MoveNextWEndrsQry.CloseSet rsQry = Nothing%></select></td></tr><tr><td align="left" width="25%"><select name="sbomA" id="sbomA" class="form_item"><%OraDatabase.Parameters.Add "BOM_ID", objRelCollectorA("bom_id"), ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "BRANCH_ID", objRelCollectorA("branch_id"), ORAPARM_INPUT, ORATYPE_NUMBERSet rsQry = OraDatabase.DbCreateDynaset( GetQuery("SBOMCombo.sql"), cint(0))OraDatabase.Parameters.Remove "BOM_ID"OraDatabase.Parameters.Remove "BRANCH_ID"While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%><option value="<%=rsQry("bom_id")%>" <%=rsQry("selected")%>><%=rsQry("version")%></option><%rsQry.MoveNextWEndrsQry.CloseSet rsQry = Nothing%></select></td><td align="left"><select name="sbomB" id="sbomB" class="form_item"><%OraDatabase.Parameters.Add "BOM_ID", objRelCollectorB("bom_id"), ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "BRANCH_ID", objRelCollectorB("branch_id"), ORAPARM_INPUT, ORATYPE_NUMBERSet rsQry = OraDatabase.DbCreateDynaset( GetQuery("SBOMCombo.sql"), cint(0))OraDatabase.Parameters.Remove "BOM_ID"OraDatabase.Parameters.Remove "BRANCH_ID"While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%><option value="<%=rsQry("bom_id")%>" <%=rsQry("selected")%>><%=rsQry("version")%></option><%rsQry.MoveNextWEndrsQry.CloseSet rsQry = Nothing%></select></td></tr><%If parSbomA <> "" OR parSbomB <> "" Then%><tr><td align="left" width="25%"><%If parSbomA <> "" Then%><a href="javascript:;" onclick="openSbom('sbomA')" class="body_txt_drk">Go To SBOM A »</a><%End If%></td><td align="left"><%If parSbomB <> "" Then%><a href="javascript:;" onclick="openSbom('sbomB')" class="body_txt_drk">Go To SBOM B »</a><%End If%></td></tr><%End If%><tr><td colspan="2"><input class="form_btn_comp" name="form_btn_comp" type="submit" style="margin-right: 5px;" value="Get Issues" name="btn"/></td></tr></table></form><!-- FORM holding a checkbox that allows user to modify the package vs issue renderering from one-per-issue to many-per-issue --><form name="FormNameMultiplePackages" method="post" action='<%=SCRIPT_NAME & "?sbomA=" & parSbomA & "&sbomB=" & parSbomB%>'><%If parSbomA <> "" OR parSbomB <> "" Then%><table width="50%" border="0" cellspacing="10" cellpadding="0"><tr><%If multiPackagesEnabled Then%><td width="1%" ><input name="multipackages" value="TRUE" type="checkbox" onclick="submit(); return false;" checked></td><%Else%><td width="1%" ><input name="multipackages" value="TRUE" type="checkbox" onclick="submit(); return false;"></td><%End If%><td align="left" class="body_col">Show multiple package/issue associations.</td></tr></table><%End If%></form><%If parSbomA = "" OR parSbomB = "" Then%><div align="center" class="report_msg">Select both SBOMs to compare.</div><%ElseIf parSbomA = parSbomB Then%><div align="center" class="report_msg">Select two different SBOMs to compare.</div><%Else%><img src="images/ajax-loader.gif" width="100px" height="100px" id="loader" name="loader" style="position: absolute; z-index: 100; display: block; top: 110px;" onload="setLeftOffset(this.id);"><div align="center" class="report_msg" id="report_heading">Issues found in BOM <%=objSbomDetailsA("bom_version") &"."& objSbomDetailsA("bom_lifecycle")%> but not in SBOM <%=objSbomDetailsB("bom_version") &"."& objSbomDetailsB("bom_lifecycle")%></div><br><%Dim issueCounterissueCounter = 0Call GetBomPackages( parSbomA, parSbomB, rsBomPackages )If rsBomPackages.RecordCount > 0 ThenWhile (NOT rsBomPackages.BOF) AND (NOT rsBomPackages.EOF)pvIdList = rsBomPackages("pv_id")Call GetPackageDependencies( rsBomPackages("pv_id"), rsBomPackages("prev_pv_id"), rsPkgDeps )While (NOT rsPkgDeps.BOF) AND (NOT rsPkgDeps.EOF)pvIdList = pvIdList & "," & rsPkgDeps("dpv_id")rsPkgDeps.MoveNextWEnd' Acquire all of the issues for the package now so we can make a decision on whether to display the field set + legend + issue content' for this BOM package. The "get issues" functions will return -1 if no records are found, and 0 if no error and records present.retValCQIssues = GetIssues( pvIdList, cqIssues )retValJIRAIssues = Get_JIRA_Issues( pvIdList, jiraIssues )If retValCQIssues = 0 OR retValJIRAIssues = 0 Then%><fieldset><legend style="padding: 0px 4px 3px 4px;" ><a href="javascript:;" onclick="MM_openBrWindow('../release_manager/_wform_versions_history_release_notes.asp?OLDpv_id=<%=rsBomPackages("pv_id")%>&pkg_id=<%=rsBomPackages("pkg_id")%>&FLpkg_version=*<%=rsBomPackages("v_ext")%>&FLuser_name=*&rfile=<%=SCRIPT_NAME%>&pv_id=<%=rsBomPackages("pv_id")%>&#ANC_<%=rsBomPackages("pv_id")%>','History','resizable=yes,width=850,height='+ ( screen.height - 100 ) );" class="report_sub_header"><%=rsBomPackages("pkg_name")%> <%=rsBomPackages("pkg_version")%></a></legend><%If retValCQIssues = 0 ThenDim firstPackageRowissueCounter = issueCounter + 1%><table width="100%" border="0" cellspacing="2" cellpadding="3"><tr><td background="images/bg_form_lightbluedark.gif" nowrap width="70px" class="form_field">Issue Id</td><td background="images/bg_form_lightbluedark.gif" nowrap width="65%" class="form_field">CLEARQUEST Issue Title</td><td background="images/bg_form_lightbluedark.gif" nowrap width="80px" class="form_field">Status</td><td background="images/bg_form_lightbluedark.gif" nowrap class="form_field">Package(s)</td></tr><%While (NOT cqIssues.BOF) AND (NOT cqIssues.EOF)Call GetPackageDetailsForIssue( cqIssues("iss_id"), pvIdList, objIssueDetails )firstPackageRow = TRUEDo While (NOT objIssueDetails.BOF) AND (NOT objIssueDetails.EOF)%><tr><%If firstPackageRow Then%><%firstPackageRow = FALSE%><td background="images/bg_form_lightgray.gif" valign="top" class="form_item"><%=cqIssues("iss_num")%></td><td background="images/bg_form_lightgray.gif" valign="top" class="form_item"><%=cqIssues("summary")%></td><td nowrap background="images/bg_form_lightgray.gif" valign="top" class="form_item"><%=cqIssues("status")%></td><%Else%><td background="images/bg_form_lightgray.gif" valign="top" class="form_item"></td><td background="images/bg_form_lightgray.gif" valign="top" class="form_item"></td><td background="images/bg_form_lightgray.gif" valign="top" class="form_item"></td><%End If%><td nowrap background="images/bg_form_lightgray.gif" valign="top" class="form_item"><a href="javascript:;" onclick="MM_openBrWindow('../release_manager/_wform_versions_history_release_notes.asp?OLDpv_id=<%=objIssueDetails("pv_id")%>&pkg_id=<%=objIssueDetails("pkg_id")%>&FLpkg_version=*<%=objIssueDetails("v_ext")%>&FLuser_name=*&rfile=<%=SCRIPT_NAME%>&pv_id=<%=objIssueDetails("pv_id")%>&#ANC_<%=objIssueDetails("pv_id")%>','History','resizable=yes,width=850,height='+ ( screen.height - 100 ) );" class="report_link"><%Response.Write(objIssueDetails("pkg_name") &" "& objIssueDetails("pkg_version"))%></a></td></tr><%objIssueDetails.MoveNextIf multiPackagesEnabled = FALSE Then Exit DoLoopcqIssues.MoveNextWEnd%></table><%End IfIf retValJIRAIssues = 0 ThenissueCounter = issueCounter + 1%><table width="100%" border="0" cellspacing="2" cellpadding="3"><tr><td background="images/bg_form_lightbluedark.gif" nowrap width="70px" class="form_field">Issue Id</td><td background="images/bg_form_lightbluedark.gif" nowrap width="55%" class="form_field">JIRA Issue Summary</td><td background="images/bg_form_lightbluedark.gif" nowrap width="10%" class="form_field">Issue Type </td><td background="images/bg_form_lightbluedark.gif" nowrap width="80px" class="form_field">Status</td><td background="images/bg_form_lightbluedark.gif" nowrap class="form_field">Package(s)</td></tr><%Dim key, elFor Each key In jiraIssuesSet el = jiraIssues.item(key)Call GetPackageDetailsForJIRAIssue( key, pvIdList, objIssueDetails )firstPackageRow = TRUEDo While (NOT objIssueDetails.BOF) AND (NOT objIssueDetails.EOF)%><tr><%If firstPackageRow Then%><%firstPackageRow = FALSE%><td background="images/bg_form_lightgray.gif" valign="top" class="form_item"><%=key%></td><td background="images/bg_form_lightgray.gif" valign="top" class="form_item"><%=el.item("summary")%></td><td nowrap background="images/bg_form_lightgray.gif" valign="top" class="form_item"><%=el.item("issuetype")%></td><td nowrap background="images/bg_form_lightgray.gif" valign="top" class="form_item"><%=el.item("status")%></td><%Else%><td background="images/bg_form_lightgray.gif" valign="top" class="form_item"></td><td background="images/bg_form_lightgray.gif" valign="top" class="form_item"></td><td background="images/bg_form_lightgray.gif" valign="top" class="form_item"></td><td background="images/bg_form_lightgray.gif" valign="top" class="form_item"></td><%End If%><td nowrap background="images/bg_form_lightgray.gif" valign="top" class="form_item"><a href="javascript:;" onclick="MM_openBrWindow('../release_manager/_wform_versions_history_release_notes.asp?OLDpv_id=<%=objIssueDetails("pv_id")%>&pkg_id=<%=objIssueDetails("pkg_id")%>&FLpkg_version=*<%=objIssueDetails("v_ext")%>&FLuser_name=*&rfile=<%=SCRIPT_NAME%>&pv_id=<%=objIssueDetails("pv_id")%>&#ANC_<%=objIssueDetails("pv_id")%>','History','resizable=yes,width=850,height='+ ( screen.height - 100 ) );" class="report_link"><%Response.Write(objIssueDetails("pkg_name") &" "& objIssueDetails("pkg_version"))%></a></td></tr><%objIssueDetails.MoveNextIf multiPackagesEnabled = FALSE Then Exit DoLoopNext%></table><%End If%></fieldset><br><%End IfrsBomPackages.MoveNextWEndEnd IfIf issueCounter = 0 Then%><div align="center" class="report_sub_header">No issues found</div><%End If%><script><!--document.getElementById("loader").style.display = "none";//--></script><%' Clean up objects before quittingOn Error Resume NextrsBomPackages.ClosersPkgDeps.ClosecqIssues.ClosejiraIssues.CloseSet objRelCollectorA = NothingSet objRelCollectorB = NothingSet objSbomDetailsA = NothingSet objSbomDetailsB = NothingSet rsBomPackages = NothingSet rsPkgDeps = NothingSet cqIssues = NothingSet jiraIssues = NothingEnd If%><!-- FOOTER --><!--#include file="_footer.asp"--></body></html>