Rev 66 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<%@LANGUAGE="VBSCRIPT"%><%'====================================================='| |'| DIFF |'| |'=====================================================%><%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=600%><!--#include file="common/config.asp"--><!--#include file="common/globals.asp"--><!--#include file="common/formating.asp"--><!--#include file="common/common_subs.asp"--><!--#include file="common/common_dbedit.asp"--><!--#include file="common/_form_window_common.asp"--><!--#include file="common/_rtree_common.asp"--><%' Set rfile parameter. This is a return page after Login'Call objPMod.StoreParameter ( "rfile", "rtree.asp" )'objPMod.PersistInQryString("proj_id")'------------ ACCESS CONTROL ------------------%><!--#include file="_access_control_general.asp"--><%'------------ Variable Definition -------------Dim rsQryDim objRelCollectorADim objRelCollectorBDim parRtagADim parRtagBDim parSBOMADim parSBOMBDim dDiffFilterDim colorA, colorB, ChangeTypeIconDim btnMerge, btnRemoveDim rowIdDim emailDim FSODim NewTextFileDim pkgA, pkgB, pkgname, delimiter, rsQryA, rsQryB, rsQryCommentsA, rsQryCommentsB, sqlstrA, counterA, sqlstrB, sqlstrC, counterBDim SSsql, retVal, rsCQ, DEVIiss, TDSEiss, VT5DMiss, VTSUPissDim a, b, c, d, pkgversion, errormsg, source_change'------------ Constants Declaration -----------Const LIMG_UPDATED = "<img src='images/i_updated.gif' width='11' height='11' border='0' hspace='5' align='absmiddle' title='Updated'>"Const LIMG_ADDED = "<img src='images/i_added.gif' width='11' height='11' border='0' hspace='5' align='absmiddle' title='Added'>"Const LIMG_REMOVED = "<img src='images/i_removed.gif' width='11' height='11' border='0' hspace='5' align='absmiddle' title='Removed'>"Const LIMG_FILTER_ON = "<img src='images/i_data_table.gif' border='0' align='absmiddle' hspace='0' title='Filter in use.'>"Const LIMG_FILTER_OFF = "<img src='images/i_data_table_off.gif' border='0' align='absmiddle' hspace='0' title='Filter not in use.'>"Const LIMG_DROP_DOWN_ARROW = "<img src='images/i_drop_down_arrow.gif' width='5' height='15' hspace='1' border='0' align='absmiddle'>"Const LCOLOR_NOT_CHANGED = "#F5F5F5"Const LCOLOR_CHANGED = "#d2f7c9"Const LCOLOR_BLANK = "#FFFFFF"Const LIMG_MERGE = "<img src='images/bt_move_all_right.gif' title='Click to merge.' border='0'>"Const LIMG_MERGE_WARN = "<img src='images/bt_move_warn_right.gif' title='Right hand side version is newer.' border='0'>"Const LIMG_REMOVE = "<img src='images/bt_remove.gif' title='Remove this version from release.' border='0'>"Const LIMG_UNDO = "<img src='images/bt_undo.gif' title='Undo merge/remove.' border='0'>"'------------ Variable Init -------------------Set rsCQ = Server.CreateObject("ADODB.Recordset")parRtagA = Request("rtagA")parRtagB = Request("rtagB")parSBOMA = Request("sbomA")parSBOMB = Request("sbomB")Set objRelCollectorA = CreateObject("Scripting.Dictionary")Set objRelCollectorB = CreateObject("Scripting.Dictionary")Set dDiffFilter = CreateObject("Scripting.Dictionary")'----------------------------------------------If Request("btn") = "Mail Me Report" Thenemail = trueEnd If%><%'--------------------------------------------------------------------------------------------------------------------------Sub GetDiffFilterValues ( outDepFilter )Dim FilterVal, aFilterValuesIf Request.Cookies(enum_RELMGR_COOKIE_DOMAIN)(COOKIE_HIDE_DIFF_FILTER) <> "" ThenaFilterValues = Split( Replace( Request.Cookies(enum_RELMGR_COOKIE_DOMAIN)(COOKIE_HIDE_DIFF_FILTER), " ", ""), ",")For Each FilterVal In aFilterValuesoutDepFilter.Item (CStr( FilterVal )) = ""NextEnd IfEnd Sub'--------------------------------------------------------------------------------------------------------------------------Sub Javascript()NewTextFile.WriteLine("<script language=""JavaScript"" type=""text/javascript"">")NewTextFile.WriteLine("function MM_findObj(n, d) { //v4.0")NewTextFile.WriteLine(" var p,i,x;")NewTextFile.WriteLine(" if(!d) d=document; ")NewTextFile.WriteLine(" if((p=n.indexOf(""?""))>0&&parent.frames.length) {")NewTextFile.WriteLine(" d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);")NewTextFile.WriteLine(" }")NewTextFile.WriteLine(" if(!(x=d[n])&&d.all) x=d.all[n]; ")NewTextFile.WriteLine(" for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];")NewTextFile.WriteLine(" for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);")NewTextFile.WriteLine(" if(!x && document.getElementById) x=document.getElementById(n); ")NewTextFile.WriteLine(" return x;")NewTextFile.WriteLine("}")NewTextFile.WriteLine("function DisplaySPAN(show, x) {")NewTextFile.WriteLine(" if (show) {")NewTextFile.WriteLine(" MM_findObj(""spanHideDetails"" + x).style.display = ""block"";")NewTextFile.WriteLine(" MM_findObj(""spanPkgInfo"" + x).style.display = ""block"";")NewTextFile.WriteLine(" MM_findObj(""spanShowDetails"" + x).style.display = ""none"";")NewTextFile.WriteLine(" } else {")NewTextFile.WriteLine(" MM_findObj(""spanHideDetails"" + x).style.display = ""none"";")NewTextFile.WriteLine(" MM_findObj(""spanPkgInfo"" + x).style.display = ""none"";")NewTextFile.WriteLine(" MM_findObj(""spanShowDetails"" + x).style.display = ""block"";")NewTextFile.WriteLine(" }")NewTextFile.WriteLine("}")NewTextFile.WriteLine("</script>")End Sub'--------------------------------------------------------------------------------------------------------------------------Sub GetFixedIssues(pv_id)Set sqlstrA = OraDatabase.DbCreateDynaset("SELECT iss_db, iss_id, iss_state, notes FROM CQ_ISSUES WHERE pv_id="& pv_id &" AND iss_state = "& enumISSUES_STATE_FIXED, cint(0))If sqlstrA.RecordCount <> 0 ThenNewTextFile.WriteLine()NewTextFile.WriteLine("<blockquote><blockquote>Fixed Issues:</blockquote></blockquote>")NewTextFile.WriteLine("<blockquote><blockquote><blockquote><table width='100%' border='1' cellspacing='0' cellpadding='1'>")NewTextFile.WriteLine("<tr>")NewTextFile.WriteLine("<td background='#CAC5B8' nowrap class='form_field'><font size='1' face='tahoma,sans-serif'>Issue Id </font></td>")NewTextFile.WriteLine("<td background='#CAC5B8' nowrap class='form_field'><font size='1' face='tahoma,sans-serif'>Summary</font></td>")NewTextFile.WriteLine("<td background='#CAC5B8' nowrap class='form_field'><font size='1' face='tahoma,sans-serif'>Issue Type </font></td>")NewTextFile.WriteLine("<td background='#CAC5B8' nowrap class='form_field'><font size='1' face='tahoma,sans-serif'>Priority</font></td>")NewTextFile.WriteLine("<td background='#CAC5B8' nowrap class='form_field'><font size='1' face='tahoma,sans-serif'>Status</font></td>")NewTextFile.WriteLine("</tr>")For counterA=1 to sqlstrA.RecordCountDEVIiss = "-1"TDSEiss = "-1"VT5DMiss = "-1"VTSUPiss = "-1"If CInt(sqlstrA("iss_db")) = CInt(enumCLEARQUEST_DEVI_ID) ThenDEVIiss = DEVIiss &","& sqlstrA("iss_id")ElseIf CInt(sqlstrA("iss_db")) = CInt(enumCLEARQUEST_TDSE_ID) ThenTDSEiss = TDSEiss &","& sqlstrA("iss_id")ElseIf CInt(sqlstrA("iss_db")) = CInt(enumCLEARQUEST_VT5DM_ID) ThenVT5DMiss = VT5DMiss &","& sqlstrA("iss_id")ElseIf CInt(sqlstrA("iss_db")) = CInt(enumCLEARQUEST_VTSUP_ID) ThenVTSUPiss = VTSUPiss &","& sqlstrA("iss_id")End IfSSsql = ReadFile( QUERIES_PATH & "\cq_issues.sql" )SSsql = Replace( SSsql, "/*enumCLEARQUEST_DEVI_ID*/", enumCLEARQUEST_DEVI_ID)SSsql = Replace( SSsql, "/*enumCLEARQUEST_TDSE_ID*/", enumCLEARQUEST_TDSE_ID)SSsql = Replace( SSsql, "/*enumCLEARQUEST_VT5DM_ID*/", enumCLEARQUEST_VT5DM_ID)SSsql = Replace( SSsql, "/*enumCLEARQUEST_VTSUP_ID*/", enumCLEARQUEST_VTSUP_ID)SSsql = Replace( SSsql, "/*DEVIiss*/", DEVIiss)SSsql = Replace( SSsql, "/*TDSEiss*/", TDSEiss)SSsql = Replace( SSsql, "/*VT5DMiss*/", VT5DMiss)SSsql = Replace( SSsql, "/*VTSUPiss*/", VTSUPiss)retVal = Get_CQ_Issues ( SSsql, rsCQ )NewTextFile.WriteLine("<tr>")NewTextFile.WriteLine("<td nowrap background='#CAC5B8' nowrap class='form_item'><font size='1' face='tahoma,sans-serif'>"&rsCQ("iss_num")&"</font></td>")NewTextFile.WriteLine(" <td nowrap background='#CAC5B8' class='form_item'><font size='1' face='tahoma,sans-serif'>"&NewLine_To_BR ( To_HTML ( rsCQ("summary") ) )&"</font></td>")NewTextFile.WriteLine(" <td nowrap background='#CAC5B8' class='form_item'><font size='1' face='tahoma,sans-serif'>"&rsCQ("issue_type")&"</font></td>")NewTextFile.WriteLine("<td nowrap background='#CAC5B8' class='form_item'><font size='1' face='tahoma,sans-serif'>"&rsCQ("priority")&"</font></td>")NewTextFile.WriteLine("<td nowrap background='#CAC5B8' class='form_item'><font size='1' face='tahoma,sans-serif'>"&rsCQ("Status")&"</font></td>")NewTextFile.WriteLine(" </tr>")'If rsCQ("iss_num") <> "" Then' NewTextFile.Write("<blockquote><blockquote><blockquote>"&rsCQ("iss_num")&": ")'End If'If rsCQ("summary") <> "" Then' NewTextFile.Write(rsCQ("summary")&" ")'End If'If rsCQ("summary") <> "" Then' NewTextFile.WriteLine("(Priority: "& rsCQ("priority") &")</blockquote></blockquote></blockquote>")'End IfsqlstrA.MoveNextNextNewTextFile.WriteLine( " </table></blockquote></blockquote></blockquote> ")sqlstrA.Close()End IfEnd Sub'--------------------------------------------------------------------------------------------------------------------------Sub GetDependencyFixedIssues(pv_id)Set sqlstrC = OraDatabase.DbCreateDynaset("SELECT iss_db, iss_id, iss_state, notes FROM CQ_ISSUES WHERE pv_id="& pv_id &" AND iss_state = "& enumISSUES_STATE_FIXED, cint(0))If sqlstrC.RecordCount <> 0 ThenNewTextFile.WriteLine()'NewTextFile.WriteLine("<blockquote><blockquote>Fixed Issues:</blockquote></blockquote>")For counterA=1 to sqlstrC.RecordCountDEVIiss = "-1"TDSEiss = "-1"VT5DMiss = "-1"VTSUPiss = "-1"If CInt(sqlstrC("iss_db")) = CInt(enumCLEARQUEST_DEVI_ID) ThenDEVIiss = DEVIiss &","& sqlstrC("iss_id")ElseIf CInt(sqlstrC("iss_db")) = CInt(enumCLEARQUEST_TDSE_ID) ThenTDSEiss = TDSEiss &","& sqlstrC("iss_id")ElseIf CInt(sqlstrC("iss_db")) = CInt(enumCLEARQUEST_VT5DM_ID) ThenVT5DMiss = VT5DMiss &","& sqlstrC("iss_id")ElseIf CInt(sqlstrA("iss_db")) = CInt(enumCLEARQUEST_VTSUP_ID) ThenVTSUPiss = VTSUPiss &","& sqlstrA("iss_id")End IfSSsql = ReadFile( QUERIES_PATH & "\cq_issues.sql" )SSsql = Replace( SSsql, "/*enumCLEARQUEST_DEVI_ID*/", enumCLEARQUEST_DEVI_ID)SSsql = Replace( SSsql, "/*enumCLEARQUEST_TDSE_ID*/", enumCLEARQUEST_TDSE_ID)SSsql = Replace( SSsql, "/*enumCLEARQUEST_VT5DM_ID*/", enumCLEARQUEST_VT5DM_ID)SSsql = Replace( SSsql, "/*enumCLEARQUEST_VTSUP_ID*/", enumCLEARQUEST_VTSUP_ID)SSsql = Replace( SSsql, "/*DEVIiss*/", DEVIiss)SSsql = Replace( SSsql, "/*TDSEiss*/", TDSEiss)SSsql = Replace( SSsql, "/*VT5DMiss*/", VT5DMiss)SSsql = Replace( SSsql, "/*VTSUPiss*/", VTSUPiss)retVal = Get_CQ_Issues ( SSsql, rsCQ )If rsCQ("iss_num") <> "" ThenNewTextFile.Write("<blockquote><blockquote><blockquote>"&rsCQ("iss_num")&": ")End IfIf rsCQ("summary") <> "" ThenNewTextFile.Write(rsCQ("summary")&" ")End IfIf rsCQ("summary") <> "" ThenNewTextFile.WriteLine("(Priority: "& rsCQ("priority") &")</blockquote></blockquote></blockquote>")End IfsqlstrC.MoveNextNextsqlstrC.Close()End IfEnd Sub'--------------------------------------------------------------------------------------------------------------------------Sub LastPvIdA(a)Dim qryASet qryA = OraDatabase.DbCreateDynaset("SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="&a , cint(0))If a <> qryA("last_pv_id") Thena = qryA("last_pv_id")Elseerrormsg = trueEnd IfqryA.Close()End Sub'--------------------------------------------------------------------------------------------------------------------------Sub LastPvIdB(b)Dim qryBSet qryB = OraDatabase.DbCreateDynaset("SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="&b , cint(0))If b <> qryB("last_pv_id") Thenb = qryB("last_pv_id")Elseerrormsg = trueEnd IfqryB.Close()End Sub'--------------------------------------------------------------------------------------------------------------------------Sub PreviousVersions(a, b, versionA, versionB)NewTextFile.WriteLine()NewTextFile.WriteLine("<b>Versions Between: "&versionA&" and "&versionB&"</b>")If a < b ThenWhile a < bCall LastPvIdB(b)If a < b ThenCall Comments(b)Call GetFixedIssues(b)End IfWendEnd IfIf b < a ThenWhile b < aCall LastPvIdA(a)If b < a ThenCall Comments(a)Call GetFixedIssues(a)End IfWendEnd IfEnd Sub'--------------------------------------------------------------------------------------------------------------------------Sub GetDependencies(pv_id_a, pv_id_b, versionA, versionB, pkgName)On Error Resume NextSet sqlstrA = OraDatabase.DbCreateDynaset("select * from package_dependencies where pv_id = "& pv_id_b &" and dpv_id NOT IN (SELECT dpv_id from package_dependencies where pv_id ="& pv_id_a &" )", cint(0))If sqlstrA.RecordCount <> 0 ThenNewTextFile.WriteLine()'NewTextFile.WriteLine("<b>Dependencies Changed Between "&pkgName&" "&versionA&" and "&versionB&":</b>")For counterA=1 to sqlstrA.RecordCountCall dependencyComments(sqlstrA("dpv_id"))Call GetDependencyFixedIssues(sqlstrA("dpv_id"))Call IsRipple(sqlstrA("dpv_id"))sqlstrA.MoveNextNextsqlstrA.Close()End IfEnd Sub'--------------------------------------------------------------------------------------------------------------------------Sub IsRipple(depPv_id)Set sqlstrB = OraDatabase.DbCreateDynaset("SELECT * FROM PACKAGE_VERSIONS pv, PACKAGES pkg WHERE pkg.pkg_id = pv.pkg_id AND PV_ID ="&depPv_id, cint(0))If sqlstrB("comments") = "Rippled Build." ThenDim sqlstrCSet sqlstrC = OraDatabase.DbCreateDynaset("SELECT * FROM PACKAGE_VERSIONS pv, PACKAGES pkg WHERE pkg.pkg_id = pv.pkg_id AND PV_ID ="&sqlstrB("last_pv_id"), cint(0))Call GetDependencies(sqlstrB("last_pv_id"),depPv_id,sqlstrC("pkg_version"),sqlstrB("pkg_version"),sqlstrC("pkg_name") )sqlstrC.Close()Set sqlstrC = nothingEnd IfsqlstrB.Close()Set sqlstrB = nothingEnd Sub'--------------------------------------------------------------------------------------------------------------------------Sub dependencyComments(pv_id)Set sqlstrB = OraDatabase.DbCreateDynaset("SELECT * FROM PACKAGE_VERSIONS pv, PACKAGES pkg WHERE pkg.pkg_id = pv.pkg_id AND PV_ID ="&pv_id, cint(0))Set sqlstrC = OraDatabase.DbCreateDynaset("SELECT * FROM PACKAGE_VERSIONS pv, PACKAGES pkg WHERE pkg.pkg_id = pv.pkg_id AND PV_ID ="&sqlstrB("pv_id"), cint(0))'NewTextFile.WriteLine("<blockquote><blockquote>Comments and Fixed Issues:</blockquote></blockquote>")NewTextFile.Write("<blockquote>"& sqlstrB("pkg_name") &" "& sqlstrC("pkg_version") &" => "& sqlstrB("pkg_version") &" = "& TextToHTML(sqlstrB("comments")) &"</blockquote>")sqlstrC.Close()Set sqlstrC = nothingsqlstrB.Close()Set sqlstrB = nothingEnd Sub'--------------------------------------------------------------------------------------------------------------------------Sub LastPvIdA(a)Dim qryASet qryA = OraDatabase.DbCreateDynaset("SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="&a , cint(0))If a <> qryA("last_pv_id") Thena = qryA("last_pv_id")Elseerrormsg = trueEnd IfqryA.Close()End Sub'--------------------------------------------------------------------------------------------------------------------------Sub LastPvIdB(b)Dim qryBSet qryB = OraDatabase.DbCreateDynaset("SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="&b , cint(0))If b <> qryB("last_pv_id") Thenb = qryB("last_pv_id")Elseerrormsg = trueEnd IfqryB.Close()End Sub'--------------------------------------------------------------------------------------------------------------------------Sub pkg_Version(pv)Dim qrySet qry = OraDatabase.DbCreateDynaset("SELECT PKG_VERSION FROM PACKAGE_VERSIONS WHERE PV_ID="&pv , cint(0))pkgversion = qry("pkg_version")qry.Close()End Sub'--------------------------------------------------------------------------------------------------------------------------Sub LastPvIdAa(a)Dim qryASet qryA = OraDatabase.DbCreateDynaset("SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="&a , cint(0))c = qryA("last_pv_id")qryA.Close()End Sub'--------------------------------------------------------------------------------------------------------------------------Sub LastPvIdBb(b)Dim qryBSet qryB = OraDatabase.DbCreateDynaset("SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="&b , cint(0))d = qryB("last_pv_id")qryB.Close()End Sub'--------------------------------------------------------------------------------------------------------------------------Sub Comments(Pv_Id)Dim commentsSet comments = OraDatabase.DbCreateDynaset("SELECT PV.COMMENTS, PV.PKG_VERSION, PKG.PKG_NAME FROM PACKAGE_VERSIONS PV, PACKAGES PKG WHERE PKG.PKG_ID = PV.PKG_ID AND PV.PV_ID="&Pv_id , cint(0))If comments("comments") <> "Rippled Build." ThenNewTextFile.WriteLine("<font color="&chr(34)&"blue"&chr(34)&">"& comments("pkg_name") &" "& comments("pkg_version")&"</font>")If comments("comments") <> "" Then'NewTextFile.WriteLine("<blockquote><blockquote>Comments: </blockquote></blockquote>")NewTextFile.WriteLine(""& TextToHTML(comments("comments")) &"")source_change = trueEnd IfEnd IfEnd Sub'--------------------------------------------------------------------------------------------------------------------------Sub Release(pvId)Dim releaseSet release = OraDatabase.DbCreateDynaset("SELECT INSERT_STAMP FROM RELEASE_CONTENT WHERE PV_ID="&pvId , cint(0))If release("insert_stamp") <> "" ThenNewTextFile.Write(release("insert_stamp"))ElseNewTextFile.Write("Version Not Used.")End IfEnd Sub'--------------------------------------------------------------------------------------------------------------------------Sub Header()NewTextFile.WriteLine("<html>")End Sub'--------------------------------------------------------------------------------------------------------------------------Sub Footer()NewTextFile.WriteLine("</html>")End Sub'--------------------------------------------------------------------------------------------------------------------------Function GetIsDiffFilterInUseIcon()GetIsDiffFilterInUseIcon = LIMG_FILTER_OFF & LIMG_DROP_DOWN_ARROWIf dDiffFilter.Count > 0 ThenGetIsDiffFilterInUseIcon = LIMG_FILTER_ON & LIMG_DROP_DOWN_ARROWEnd IfEnd Function'--------------------------------------------------------------------------------------------------------------------------Function GetIsDiffFilterChecked( nFilterId )If dDiffFilter.Exists ( CStr(nFilterId) ) ThenGetIsDiffFilterChecked = "checked"End IfEnd Function'---------------------------------------------------------------------------------------------------------------------------Function Get_CQ_Issues ( SSsql, OOrsCQ )If OOrsCQ.State = 1 ThenOOrsCQ.CloseEnd IfOn Error Resume NextOOrsCQ.ActiveConnection = CQ_connOOrsCQ.Source = SSsqlOOrsCQ.CursorType = 0OOrsCQ.CursorLocation = 2OOrsCQ.LockType = 3OOrsCQ.Open()Get_CQ_Issues = Err.NumberEnd Function'--------------------------------------------------------------------------------------------------------------------------Public Function TextToHTML ( sString )Dim mStringIf (sString = "") OR IsNull(sString) Then Exit FunctionmString = Server.HTMLEncode( sString )mString = Replace(mString, VBNewLine, "<br>")TextToHTML = mStringEnd Function'--------------------------------------------------------------------------------------------------------------------------Sub GetFormDetails ( nSourceSBOM, ByRef outobjDetails )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"&_" 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 ThenoutobjDetails.Item ("location") = rsQry("location")outobjDetails.Item ("official") = rsQry("IS_READONLY")outobjDetails.Item ("proj_id") = rsQry("proj_id")outobjDetails.Item ("branch_id") = rsQry("branch_id")outobjDetails.Item ("bom_id") = rsQry("bom_id")ElseErr.Raise 8, "Sub GetFormDetails in "& SCRIPT_NAME, "Empty record set returned. nSourceSBOM="& nSourceSBOMEnd IfIf outobjDetails.Item ("location") = "" ThenoutobjDetails.Item ("location") = "N"End IfrsQry.CloseSet rsQry = NothingEnd Sub'--------------------------------------------------------------------------------------------------------------------------Sub GetDiffStateIcon( nDiffState, outIcon )Select Case nDiffStateCase "U"outIcon = LIMG_UPDATEDCase "UW"outIcon = LIMG_UPDATEDCase "A"outIcon = LIMG_ADDEDCase "R"outIcon = LIMG_REMOVEDCase ElseoutIcon = ""End SelectEnd Sub'--------------------------------------------------------------------------------------------------------------------------Sub MergePackages ()Dim aFullList, aAddPkgList, aRemovePkgList, dAddPkgList, dRemovePkgList, PvIdDim OraParameterSet dAddPkgList = CreateObject("Scripting.Dictionary")Set dRemovePkgList = CreateObject("Scripting.Dictionary")'--- Get Add Packages ---' Get full list of "addpkg" parameteraFullList = Split ( Replace( Request("addpkg"), " ", "" ), "," )' Clean empty parametersFor Each PvId In aFullListIf PvId <> "" ThendAddPkgList.Add CStr( PvId ), EmptyEnd IfNextaFullList = NULLaAddPkgList = dAddPkgList.Keys'--- Get Remove Packages ---' Get full list of "removepkg" parameteraFullList = Split ( Replace( Request("removepkg"), " ", "" ), "," )' Clean empty parametersFor Each PvId In aFullListIf PvId <> "" ThendRemovePkgList.Add CStr( PvId ), EmptyEnd IfNextaFullList = NULLaRemovePkgList = dRemovePkgList.Keys'-- Add package List to release --OraDatabase.Parameters.Add "PV_ID", NULL, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "VIEW_ID", NULL, ORAPARM_BOTH, ORATYPE_NUMBEROraDatabase.Parameters.Add "RTAG_A", Request("rtagA"), ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "RTAG_B", Request("rtagB"), ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "PROJB", objRelCollectorB.Item("proj_id"), ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "COMMENTS", "Merging from "& objRelCollectorA.Item("location") &" to "& objRelCollectorB.Item("location"), ORAPARM_INPUT, ORATYPE_VARCHAR2OraDatabase.Parameters.Add "USER_ID", objAccessControl.UserId, ORAPARM_INPUT, ORATYPE_NUMBERSet OraParameter = OraDatabase.ParametersOn Error Resume Next' Begin Database entryobjEH.TryORA ( OraSession )OraSession.BeginTrans'-- Add Packages --For Each PvId In aAddPkgListOraParameter("PV_ID").Value = PvIdOraDatabase.ExecuteSQL _"BEGIN "&_" :VIEW_ID := PK_RELEASE.GET_PACKAGE_VIEW ( :PV_ID, :RTAG_A ); "&_" PK_RELEASE.ADD_PACKAGE ( :PV_ID, :VIEW_ID, :RTAG_B, :USER_ID ); "&_"END;"Next'-- Remove Packages --For Each PvId In aRemovePkgListOraParameter("PV_ID").Value = PvIdOraDatabase.ExecuteSQL _"BEGIN "&_" PK_RELEASE.REMOVE_PACKAGE ( :PV_ID, :RTAG_B, :USER_ID ); "&_"END;"Next'-- Log Project Merge ActionOraDatabase.ExecuteSQL _"BEGIN LOG_PROJECT_ACTION ( :PROJB, 'merge_release', :USER_ID, :COMMENTS ); END;"'-- Force package state recalculateOraDatabase.ExecuteSQL _"BEGIN "&_" TOUCH_RELEASE ( :RTAG_B ); "&_"END;"OraSession.CommitTransobjEH.CatchORA ( OraSession )Set OraParameter = NothingOraDatabase.Parameters.Remove "PV_ID"OraDatabase.Parameters.Remove "VIEW_ID"OraDatabase.Parameters.Remove "RTAG_A"OraDatabase.Parameters.Remove "RTAG_B"OraDatabase.Parameters.Remove "USER_ID"OraDatabase.Parameters.Remove "PROJB"OraDatabase.Parameters.Remove "COMMENTS"'Response.write "<br>"& sAddPkgList &"-"& dAddPkgList.Count &"-"& UBound( aFullList )End Sub'--------------------------------------------------------------------------------------------------------------------------%><%'------------ RUN BEFORE PAGE RENDER ----------If Request("btn") = "Exit" ThenCall OpenInWindow ( "reports.asp" )End If' Get release detailsCall GetFormDetails ( parSBOMA, objRelCollectorA )Call GetFormDetails ( parSBOMB, objRelCollectorB )If (Request("btn") = "Merge") AND (objAccessControl.IsActive("MergeRelease")) ThenIf objRelCollectorB.Item("official") <> "Y" ThenCall MergePackages ()End IfEnd IfIf Request("btn") = "Swap Compare" ThenCall OpenInWindow ( SCRIPT_NAME &"?sbomA="& parSBOMB &"&sbomB="& parSBOMA )End IfIf Request("btn") = "Hide" Then' Store filter in cookieResponse.Cookies(enum_RELMGR_COOKIE_DOMAIN)(COOKIE_HIDE_DIFF_FILTER) = Request("difilter")End IfCall GetDiffFilterValues ( dDiffFilter )'----------------------------------------------%><html><head><title>Deployment Manager SBOM Differences</title><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" type="text/css"><link rel="stylesheet" href="images/navigation.css" type="text/css"><script language="JavaScript" src="images/common.js"></script><script language="JavaScript" src="scripts/remote_scripting.js"></script><script language="JavaScript" type="text/javascript"><!--function RequestReleaseCombo( paramString, rowId ){var requestURL = 'RequestReleaseCombo.asp';// Set ajax divnameajaxdivname = rowId;//Append the name to search for to the requestURLvar url = requestURL + paramString;//Progress//alert(MM_findObj( rowId ));//MM_findObj( rowId ).options[0] = new Option('Loading...','');//MM_findObj( rowId ).selectedIndex = 0;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 back// This is non-blocking (asynchronous)xmlHttp = GetXmlHttpObject(stateComboChangeHandler);//Send the xmlHttp get to the specified urlxmlHttp_Get(xmlHttp, url);}function RequestSBOMCombo( paramString, rowId ){var requestURL = 'RequestSBOMCombo.asp';// Set ajax divnameajaxdivname = rowId;//Append the name to search for to the requestURLvar url = requestURL + paramString;//Progress//alert(MM_findObj( rowId ));//MM_findObj( rowId ).options[0] = new Option('Loading...','');//MM_findObj( rowId ).selectedIndex = 0;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 back// This is non-blocking (asynchronous)xmlHttp = GetXmlHttpObject(stateComboChangeHandler);//Send the xmlHttp get to the specified urlxmlHttp_Get(xmlHttp, url);}function MergePackage ( pkga, pkgb, rowId ){// Set merge hidden field with new valueMM_findObj( 'ADDPKG_' + rowId ).value = pkga;var divA = MM_findObj( 'PVA' + rowId );var divB = MM_findObj( 'PVB' + rowId );// Set text equaldivB.innerHTML = divA.innerHTML;// Set highlight to blankdivA.style.backgroundColor = '<%=LCOLOR_NOT_CHANGED%>';divB.style.backgroundColor = '<%=LCOLOR_NOT_CHANGED%>';// Set Change state icon to blankMM_findObj( 'IMGSTATE' + rowId ).style.display = 'none';// Remove Merge ButtonMM_findObj( 'IMGMERGE' + rowId ).style.display = 'none';MM_findObj( 'IMGREMOVE' + rowId ).style.display = 'none';// Show undo buttonMM_findObj( 'IMGUNDO' + rowId ).style.display = 'block';}function RemovePackage ( pkga, pkgb, rowId ){// Set remove hidden field with new valueMM_findObj( 'REMOVEPKG_' + rowId ).value = pkgb;var divA = MM_findObj( 'PVA' + rowId );var divB = MM_findObj( 'PVB' + rowId );// Set text equaldivB.style.textDecoration = 'line-through';// Set highlight to blankif (MM_findObj( 'CHANGETYPE_' + rowId ).value != "A"){divA.style.backgroundColor = '<%=LCOLOR_NOT_CHANGED%>';}divB.style.backgroundColor = '<%=LCOLOR_NOT_CHANGED%>';// Set Change state icon to blankMM_findObj( 'IMGSTATE' + rowId ).style.display = 'none';// Remove Merge ButtonMM_findObj( 'IMGMERGE' + rowId ).style.display = 'none';MM_findObj( 'IMGREMOVE' + rowId ).style.display = 'none';// Show undo buttonMM_findObj( 'IMGUNDO' + rowId ).style.display = 'block';}function UndoPackage ( rowId ){// Set merge/remove hidden field with new valueMM_findObj( 'ADDPKG_' + rowId ).value = '';MM_findObj( 'REMOVEPKG_' + rowId ).value = '';var divA = MM_findObj( 'PVA' + rowId );var divB = MM_findObj( 'PVB' + rowId );// Set text equaldivB.innerHTML = MM_findObj( 'UNDOPKG_' + rowId ).value;divB.style.textDecoration = 'none';// Set highlight to blankdivA.style.backgroundColor = MM_findObj( 'UNDOCOLORA_' + rowId ).value;divB.style.backgroundColor = MM_findObj( 'UNDOCOLORB_' + rowId ).value;// Set Change state icon to blankMM_findObj( 'IMGSTATE' + rowId ).style.display = 'block';// Remove Merge Buttonvar cht = MM_findObj( 'CHANGETYPE_' + rowId );if (cht.value == "R"){MM_findObj( 'IMGMERGE' + rowId ).style.display = 'block';}else if ( (cht.value == "A") || (cht.value == "") ){MM_findObj( 'IMGREMOVE' + rowId ).style.display = 'block';}else{MM_findObj( 'IMGMERGE' + rowId ).style.display = 'block';MM_findObj( 'IMGREMOVE' + rowId ).style.display = 'block';}// Show undo buttonMM_findObj( 'IMGUNDO' + rowId ).style.display = 'none';}function MergeAll(){var elemif (document.all){// Run this for IEelem = document.all;} else {// Run this for other browserselem = document.getElementsByTagName('div');}for (i in elem){if (elem[i].id){if (elem[i].id.indexOf('SHORT_') == 0) elem[i].style.display = 'none';if (elem[i].id.indexOf('LONG_') == 0) elem[i].style.display = 'block';}}}//--></script></head><body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0"><form name="FormName" method="post" action="<%=SCRIPT_NAME%>"><!-- HEADER --><!--#include file="_header.asp"--><!-- BODY ----><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td width="1%" background="images/bg_lite_blue.gif" valign="top"><!-- SELECT SBOM A ----------------------------------------------><br><table width="100%" border="0" cellspacing="10" cellpadding="0"><tr><td align="left" class="body_col"><img src="images/i_rtag_open_mode.gif" border="0" align="absmiddle" width="15" height="13"> Select SBOM A<hr size="1px" color="Olive" noshade></td></tr><tr><td align="left"><select name="projA" class="form_item" onChange="RequestReleaseCombo( '?proj_id='+ this.value, FormName.rtagA );"><option value="">-- Select Project --</option><%OraDatabase.Parameters.Add "PROJ_ID", objRelCollectorA.Item("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></tr><tr><td align="left"><select name="rtagA" id="rtagA" class="form_item" onChange="RequestSBOMCombo( '?branch_id='+ this.value, FormName.sbomA );"><option value="">-- Select SBOM --</option><%OraDatabase.Parameters.Add "PROJ_ID", objRelCollectorA.Item("proj_id"), ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "BRANCH_ID", objRelCollectorA.Item("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"><select name="sbomA" id="sbomA" class="form_item"><%OraDatabase.Parameters.Add "BOM_ID", objRelCollectorA.Item("bom_id"), ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "BRANCH_ID", objRelCollectorA.Item("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 (parRtagA <> "") Then%><tr><td align="left"><a href="Bom_Home.asp?bom_id=<%=parSBOMA%>" class="body_txt_drk">Go To SBOM A »</a></td></tr><%End If%></table><!-- SELECT SBOM A END ----------------------------------------------> </td><td width="1%" valign="top" background="images/bg_lght_gray.gif"> </td><td rowspan="2" valign="top" width="100%" background="images/bg_lght_gray.gif" align="center"><!-- DIFF --------------------------------------------------------><br><table width="100%" border="0" cellspacing="10" cellpadding="0"><tr><td><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td width="1%"></td><td width="100%" align="left" class="form_ttl">DIFF SBOM</td><td width="1%"></td></tr><tr><td align="left" valign="top" background="images/lbox_bg_blue.gif"><img src="images/lbox_tl_cnr_b.gif" width="13" height="13"></td><td background="images/lbox_bg_blue.gif" align="left" class="wform_ttl"> </td><td align="right" valign="top" background="images/lbox_bg_blue.gif"><img src="images/lbox_tr_cnr_b.gif" width="13" height="13"></td></tr><tr><td width="1%" bgcolor="#FFFFFF"><img src="images/h_trsp_dot.gif" width="10" height="100"></td><td bgcolor="#FFFFFF" valign="top" class="form_item"><table width="100%" border="0" cellspacing="0" cellpadding="5"><tr><td width="100%" bgcolor="#DAD7C8"><input type="submit" name="btn" value="Compare" class="form_btn_comp" style="margin-right:5px;"><input type="submit" name="btn" value="Swap Compare" class="form_btn_comp"><span class="body_txt"><input name="btn" type="submit" class="form_btn" value="Mail Me Report"></span> </td><td width="1" align="right" bgcolor="#DAD7C8" nowrap><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td><input type="submit" name="btn" value="Exit" class="form_btn_comp"></td></tr></table></td></tr><tr><td><%If (parRtagA <> "") AND (parRtagB <> "")Then%><!-- DIFF FILTER +++++++++++++++++++++++++++++++++++++++++++ --><fieldset style="width:150px;"><legend><a href="javascript:;" class="body_scol" onClick="ToggleDisplay('divDiffFilter');" ><%=GetIsDiffFilterInUseIcon() %> Filter Results...</a></legend><div name="divDiffFilter" id="divDiffFilter" class="body_txt" style="display:none;"><br><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td width="1" background="images/bg_action_norm.gif"><input name="difilter" type="checkbox" value="<%=enumDB_DIFF_UPDATED%>" <%=GetIsDiffFilterChecked(enumDB_DIFF_UPDATED)%>></td><td width="50" nowrap background="images/bg_action_norm.gif" class="form_field"><%=LIMG_UPDATED%>Updated</td></tr><tr><td background="images/bg_action_norm.gif"><input type="checkbox" name="difilter" value="<%=enumDB_DIFF_NEW%>" <%=GetIsDiffFilterChecked(enumDB_DIFF_NEW)%>></td><td nowrap background="images/bg_action_norm.gif" class="form_field"><%=LIMG_ADDED%>Added</td></tr><tr><td background="images/bg_action_norm.gif"><input type="checkbox" name="difilter" value="<%=enumDB_DIFF_REMOVED%>" <%=GetIsDiffFilterChecked(enumDB_DIFF_REMOVED)%>></td><td nowrap background="images/bg_action_norm.gif" class="form_field"><%=LIMG_REMOVED%>Removed</td></tr><tr><tr><td background="images/bg_action_norm.gif"> </td><td background="images/bg_action_norm.gif"><input name="btn" type="submit" class="form_btn" value="Hide"></td></tr></table></div></fieldset><!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ --><%End If%></td><td></td></tr></table><%' Successfull MergeIf (Request("btn") = "Merge") ThenCall Messenger ( "Merge has completed successfully.", 3, "100%" )End IfSet FSO=Server.CreateObject("Scripting.FileSystemObject")Set NewTextFile=FSO.CreateTextFile(Server.MapPath("docs\compareBoms_"&objAccessControl.UserName&".html"), true)Call Header()If (parRtagA <> "") AND (parRtagB <> "")Then%><table width="100%" border="0" cellspacing="1" cellpadding="0"><tr><td width="50%" bgcolor="#E4E9EC" class="body_row" nowrap><%= ReleaseIcon(objRelCollectorA.Item("official")) & objRelCollectorA.Item("location")%> </td><td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="1"></td><td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="20"></td><td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="1"></td><td width="50%" bgcolor="#E4E9EC" class="body_row" nowrap><%= ReleaseIcon(objRelCollectorB.Item("official")) & objRelCollectorB.Item("location")%></td><td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="1"></td></tr><%OraDatabase.Parameters.Add "SBOM_A", parSBOMA, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "SBOM_B", parSBOMB, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "NO_CHANGE", GetIsDiffFilterChecked(enumDB_DIFF_NO_CHANGE), ORAPARM_INPUT, ORATYPE_VARCHAR2OraDatabase.Parameters.Add "ADDED", GetIsDiffFilterChecked(enumDB_DIFF_NEW), ORAPARM_INPUT, ORATYPE_VARCHAR2OraDatabase.Parameters.Add "UPDATED", GetIsDiffFilterChecked(enumDB_DIFF_UPDATED), ORAPARM_INPUT, ORATYPE_VARCHAR2OraDatabase.Parameters.Add "REMOVED", GetIsDiffFilterChecked(enumDB_DIFF_REMOVED), ORAPARM_INPUT, ORATYPE_VARCHAR2Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("BOMDiff.sql"), cint(0))OraDatabase.Parameters.Remove "SBOM_A"OraDatabase.Parameters.Remove "SBOM_B"OraDatabase.Parameters.Remove "NO_CHANGE"OraDatabase.Parameters.Remove "ADDED"OraDatabase.Parameters.Remove "UPDATED"OraDatabase.Parameters.Remove "REMOVED"Set rsQryA = OraDatabase.DbCreateDynaset( "SELECT pr.PROJ_NAME, br.BRANCH_NAME, b.BOM_VERSION ||'.'||b.BOM_LIFECYCLE AS LOCATION, "&_" pr.PROJ_ID, b.BOM_ID, br.BRANCH_ID"&_" 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 ="&parSBOMA, cint(0))Set rsQryB = OraDatabase.DbCreateDynaset( "SELECT pr.PROJ_NAME, br.BRANCH_NAME, b.BOM_VERSION ||'.'||b.BOM_LIFECYCLE AS LOCATION, "&_" pr.PROJ_ID, b.BOM_ID, br.BRANCH_ID"&_" 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 ="&parSBOMB, cint(0))Call Javascript()NewTextFile.WriteLine("<title>Difference Report Between "&rsQryA("branch_name")&" "&rsQryA("location")&" and "&rsQryB("branch_name")&" "&rsQryB("location")&"</title>")NewTextFile.WriteLine("<div align="&chr(34)&"center"&chr(34)&"><font color="&chr(34)&"red"&chr(34)&" size="&chr(34)&"4"&chr(34)&" face="&chr(34)&"Verdana, Arial, Helvetica, sans-serif"&chr(34)&">Difference Report Between "&rsQryA("branch_name")&" "&rsQryA("location")&" and "&rsQryB("branch_name")&" "&rsQryB("location")&"</font></div><br>")While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))errormsg = falserowId = rsQry("pv_id_a") &"_"& rsQry("pv_id_b")btnMerge = LIMG_MERGEbtnRemove = LIMG_REMOVEcolorA = LCOLOR_NOT_CHANGEDcolorB = LCOLOR_NOT_CHANGEDSelect Case rsQry("change_type")Case "U"colorA = LCOLOR_CHANGEDcolorB = LCOLOR_CHANGEDCase "UW"colorA = LCOLOR_CHANGEDcolorB = LCOLOR_CHANGEDbtnMerge = LIMG_MERGE_WARNCase "A"colorA = LCOLOR_BLANKCase "R"colorB = LCOLOR_BLANKEnd SelectCall GetDiffStateIcon ( rsQry("change_type"), ChangeTypeIcon )%><tr><td class="body_row" nowrap><DIV id="PVA<%=rowId%>" style="background:<%=colorA%>; padding:5px;"><%=rsQry("pkg_name_a") &" "& rsQry("pkg_version_a")%></DIV><input type="hidden" id="UNDOCOLORA_<%=rowId%>" value="<%=colorA%>"></td><td bgcolor="#F5F5F5"></td><td bgcolor="#E4E9EC"><DIV id="IMGSTATE<%=rowId%>" ><%=ChangeTypeIcon%></DIV><input type="hidden" id="CHANGETYPE_<%=rowId%>" value="<%=rsQry("change_type")%>"></td><td bgcolor="#F5F5F5"></td><td class="body_row" nowrap><DIV id="PVB<%=rowId%>" style="background:<%=colorB%>; padding:5px;"><%=rsQry("pkg_name_b") &" "& rsQry("pkg_version_b")%></DIV><input type="hidden" id="UNDOCOLORB_<%=rowId%>" value="<%=colorB%>"><input type="hidden" name="addpkg" id="ADDPKG_<%=rowId%>" value=""><input type="hidden" name="removepkg" id="REMOVEPKG_<%=rowId%>" value=""><input type="hidden" id="UNDOPKG_<%=rowId%>" value="<%=rsQry("pkg_name_b") &" "& rsQry("pkg_version_b")%>"></td><td bgcolor="#F5F5F5"><DIV id="IMGUNDO<%=rowId%>" style="display:none;" ><a href="javascript:;" onClick="UndoPackage( '<%=rowId%>' );"><%=LIMG_UNDO%></a></DIV></td></tr><%If email thenIf rsQry("pv_id_a") ThenSet rsQryCommentsA = OraDatabase.DbCreateDynaset( "SELECT COMMENTS FROM PACKAGE_VERSIONS WHERE PV_ID="& rsQry("pv_id_a"), cint(0))End IfIf rsQry("pv_id_b") ThenSet rsQryCommentsB = OraDatabase.DbCreateDynaset( "SELECT COMMENTS FROM PACKAGE_VERSIONS WHERE PV_ID="& rsQry("pv_id_b"), cint(0))End IfpkgA = rsQry("pkg_name_a")pkgB = rsQry("pkg_name_b")If pkgA <> "" thenpkgname = pkgAElsepkgname = pkgBEnd IfIf rsQry("change_type") = "U" OR rsQry("change_type") = "UW" ThenNewTextFile.Write("<p><SPAN id=""spanShowDetails"& rowId &""" name=""spanShowDetails""><a href=""javascript:;"" class=""body_scol"" onClick=""DisplaySPAN(true,'"& rowId &"');"">"& pkgname &"</a></SPAN>")NewTextFile.Write("<SPAN id=""spanHideDetails"& rowId &""" name=""spanHideDetails"" style=""display:none;""><a href=""javascript:;"" class=""body_scol"" onClick=""DisplaySPAN(false,'"& rowId &"');"">"& pkgname &"</a></SPAN>")NewTextFile.WriteLine("<SPAN id=""spanPkgInfo"& rowId &""" name=""spanPkgInfo"" style=""display:none;"">")'NewTextFile.WriteLine("<b><font face="&chr(34)&"arial"&chr(34)&">Package Name: "&pkgname&"</font></b><br>")NewTextFile.Write(rsQryA("location")&" uses: "&rsQry("pkg_version_a")&" ")NewTextFile.WriteLine("<br>")NewTextFile.Write(rsQryB("location")&" uses: "&rsQry("pkg_version_b")&" ")a = rsQry("pv_id_a")b = rsQry("pv_id_b")c = rsQry("pv_id_a")d = rsQry("pv_id_b")'On Error Resume Next'NewTextFile.WriteLine("<br><br>")'NewTextFile.WriteLine()'NewTextFile.WriteLine("<b>"&rsQryA("location")&"</b>")'Call Comments(rsQry("pv_id_a"))'Call GetFixedIssues(rsQry("pv_id_a"))'Call GetDependencies(rsQry("pv_id_a"), rsQry("pv_id_b"))NewTextFile.WriteLine("<br><br>")NewTextFile.WriteLine()'NewTextFile.WriteLine("<b>"&rsQryB("location")&"</b>")Call Comments(rsQry("pv_id_b"))Call GetFixedIssues(rsQry("pv_id_b"))Dim rsQryLastSet rsQryLast = OraDatabase.DbCreateDynaset( "SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="& rsQry("pv_id_b"), cint(0))If rsQryLast("last_pv_id") <> a ThenCall PreviousVersions(a, b, rsQry("pkg_version_a"), rsQry("pkg_version_b"))End Ifa = rsQry("pv_id_a")b = rsQry("pv_id_b")Call GetDependencies(a, b, rsQry("pkg_version_a"), rsQry("pkg_version_b"), rsQry("pkg_name_a"))NewTextFile.WriteLine("</SPAN>")rsQryLast.CloseSet rsQryLast = nothingEnd IfIf rsQry("change_type") = "A" AND rsQry("patch_b") = "Y" ThenDim rsQryPatchOraDatabase.Parameters.Add "PV_ID", rsQry("pv_id_b"), ORAPARM_INPUT, ORATYPE_NUMBERSet rsQryPatch = OraDatabase.DbCreateDynaset( GetQuery("pd_patch.sql"), cint(0))OraDatabase.Parameters.Remove "PV_ID"If NOT IsNull(rsQryPatch("pv_id")) ThenNewTextFile.Write("<p><SPAN id=""spanShowDetails"& rowId &""" name=""spanShowDetails""><a href=""javascript:;"" class=""body_scol"" onClick=""DisplaySPAN(true,'"& rowId &"');"">"& rsQryPatch("pkg_name") &" "& rsQryPatch("pkg_version") &"</a></SPAN>")NewTextFile.Write("<SPAN id=""spanHideDetails"& rowId &""" name=""spanHideDetails"" style=""display:none;""><a href=""javascript:;"" class=""body_scol"" onClick=""DisplaySPAN(false,'"& rowId &"');"">"& rsQryPatch("pkg_name") &" "& rsQryPatch("pkg_version") &"</a></SPAN>")NewTextFile.WriteLine("<SPAN id=""spanPkgInfo"& rowId &""" name=""spanPkgInfo"" style=""display:none;"">")Call Comments(rsQryPatch("pv_id"))Call GetFixedIssues(rsQryPatch("pv_id"))ElseNewTextFile.Write("<p><SPAN id=""spanShowDetails"& rowId &""" name=""spanShowDetails""><a href=""javascript:;"" class=""body_scol"" onClick=""DisplaySPAN(true,'"& rowId &"');"">"& rsQry("pkg_name_b") &" "& rsQry("pkg_version_b") &"</a></SPAN>")NewTextFile.Write("<SPAN id=""spanHideDetails"& rowId &""" name=""spanHideDetails"" style=""display:none;""><a href=""javascript:;"" class=""body_scol"" onClick=""DisplaySPAN(false,'"& rowId &"');"">"& rsQry("pkg_name_b") &" "& rsQry("pkg_version_b") &"</a></SPAN>")NewTextFile.WriteLine("<SPAN id=""spanPkgInfo"& rowId &""" name=""spanPkgInfo"" style=""display:none;"">")Call Comments(rsQry("pv_id_b"))Call GetFixedIssues(rsQry("pv_id_b"))End IfNewTextFile.WriteLine("</SPAN>")rsQryPatch.CloseSet rsQryPatch = nothingEnd IfEnd IfrsQry.MoveNextWEndrsQry.CloseSet rsQry = Nothing%><%Call Footer()NewTextFile.CloseSet NewTextFile=Nothing%></table><br><%Else%><br><%If (parRtagB <> "") ThenCall Messenger ( "Select <b>SBOM A</b> to compare.", 3, "100%" )ElseIf (parRtagA <> "") ThenCall Messenger ( "Select <b>SBOM B</b> to compare.", 3, "100%" )ElseCall Messenger ( "Select <b>SBOM A</b> and <b>SBOM B</b> to compare.", 3, "100%" )End If%><%End If%></td><td width="1%" background="images/lbox_bgside_white.gif"> </td></tr><tr><td width="1%" background="images/lbox_bg_blue.gif" valign="bottom"><img src="images/lbox_bl_cnr_b.gif" width="13" height="13"></td><td background="images/lbox_bg_blue.gif"></td><td width="1%" background="images/lbox_bg_blue.gif" valign="bottom" align="right"><img src="images/lbox_br_cnr_b.gif" width="13" height="13"></td></tr></table></td></tr></table><!-- DIFF END ----------------------------------------------------></td><td valign="top" width="1%" background="images/bg_lite_blue.gif"><!-- SELECT SBOM B ----------------------------------------------><br><table width="100%" border="0" cellspacing="10" cellpadding="0"><tr><td align="left" class="body_col"><img src="images/i_rtag_open_mode.gif" border="0" align="absmiddle" width="15" height="13"> Select SBOM B<hr size="1px" color="Olive" noshade></td></tr><tr><td align="left"><select name="projB" class="form_item" onChange="RequestReleaseCombo( '?proj_id='+ this.value, FormName.rtagB );"><option value="">-- Select Project --</option><%OraDatabase.Parameters.Add "PROJ_ID", objRelCollectorB.Item("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></tr><tr><td align="left"><select name="rtagB" id="rtagB" class="form_item" onChange="RequestSBOMCombo( '?branch_id='+ this.value, FormName.sbomB );"><option value="">-- Select SBOM --</option><%OraDatabase.Parameters.Add "PROJ_ID", objRelCollectorB.Item("proj_id"), ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "BRANCH_ID", objRelCollectorB.Item("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"><select name="sbomB" id="sbomB" class="form_item"><%OraDatabase.Parameters.Add "BOM_ID", objRelCollectorB.Item("bom_id"), ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "BRANCH_ID", objRelCollectorB.Item("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 (parRtagB <> "") Then%><tr><td align="left"><a href="Bom_home.asp?bom_id=<%=parSBOMB%>" class="body_txt_drk">Go To SBOM B »</a></td></tr><%End If%></table><!-- SELECT RELEASE B END ----------------------------------------------> </td></tr><tr><td valign="bottom" align="center" background="images/bg_lite_blue.gif"><img src="images/img_vtree.gif" width="86" height="99" vspace="20" hspace="30"></td><td background="images/bg_lght_gray.gif" valign="top"><img src="images/h_trsp_dot.gif" width="1" height="500"></td><td valign="bottom" background="images/bg_lite_blue.gif" align="center"><img src="images/img_vtree.gif" width="86" height="99" vspace="20" hspace="30"></td></tr></table></form><!-- FOOTER --><!--#include file="_footer.asp"--><%If email ThenDim myMail, LocalPathSet myMail=Server.CreateObject("Persits.MailSender")LocalPath = Server.MapPath("docs\compareBoms_"&objAccessControl.UserName&".html")myMail.Host = SMTP_HOSTmyMail.Subject="BOM Comparisons from Deployment Manager"myMail.From="releasem@erggroup.com"myMail.AddAddress objAccessControl.UserEmail' Attach the filemyMail.AddAttachment LocalPathmyMail.Body = "Your requested report..."myMail.Sendset myMail=nothingEnd If%></body></html><%Call Destroy_All_Objects%><!--#include file="common/globals_destructor.asp"-->