%@LANGUAGE="VBSCRIPT"%>
<%
'=====================================================
'| |
'| DIFF |
'| |
'=====================================================
%>
<%
Option explicit
' Good idea to set when using redirect
Response.Expires = 0 ' always load the page, dont store
%>
<%
'To enable the script timeout to 5 mins
Server.ScriptTimeout=600
%>
<%
' Set rfile parameter. This is a return page after Login
'Call objPMod.StoreParameter ( "rfile", "rtree.asp" )
'objPMod.PersistInQryString("proj_id")
'------------ ACCESS CONTROL ------------------
%>
<%
'------------ Variable Definition -------------
Dim rsQry
Dim objRelCollectorA
Dim objRelCollectorB
Dim parRtagA
Dim parRtagB
Dim parSBOMA
Dim parSBOMB
Dim dDiffFilter
Dim colorA, colorB, ChangeTypeIcon
Dim btnMerge, btnRemove
Dim rowId
Dim email
Dim FSO
Dim NewTextFile
Dim pkgA, pkgB, pkgname, delimiter, rsQryA, rsQryB, rsQryCommentsA, rsQryCommentsB, sqlstrA, counterA, sqlstrB, sqlstrC, counterB
Dim SSsql, retVal, rsCQ, DEVIiss, TDSEiss, VT5DMiss, VTSUPiss
Dim a, b, c, d, pkgversion, errormsg, source_change
'------------ Constants Declaration -----------
Const LIMG_UPDATED = "
"
Const LIMG_ADDED = "
"
Const LIMG_REMOVED = "
"
Const LIMG_FILTER_ON = "
"
Const LIMG_FILTER_OFF = "
"
Const LIMG_DROP_DOWN_ARROW = "
"
Const LCOLOR_NOT_CHANGED = "#F5F5F5"
Const LCOLOR_CHANGED = "#d2f7c9"
Const LCOLOR_BLANK = "#FFFFFF"
Const LIMG_MERGE = "
"
Const LIMG_MERGE_WARN = "
"
Const LIMG_REMOVE = "
"
Const LIMG_UNDO = "
"
'------------ 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" Then
email = true
End If
%>
<%
'--------------------------------------------------------------------------------------------------------------------------
Sub GetDiffFilterValues ( outDepFilter )
Dim FilterVal, aFilterValues
If Request.Cookies(enum_RELMGR_COOKIE_DOMAIN)(COOKIE_HIDE_DIFF_FILTER) <> "" Then
aFilterValues = Split( Replace( Request.Cookies(enum_RELMGR_COOKIE_DOMAIN)(COOKIE_HIDE_DIFF_FILTER), " ", ""), ",")
For Each FilterVal In aFilterValues
outDepFilter.Item (CStr( FilterVal )) = ""
Next
End If
End Sub
'--------------------------------------------------------------------------------------------------------------------------
Sub Javascript()
NewTextFile.WriteLine("")
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 Then
NewTextFile.WriteLine()
NewTextFile.WriteLine("
") NewTextFile.WriteLine("Fixed Issues:
") sqlstrA.Close() End If End 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 Then NewTextFile.WriteLine() 'NewTextFile.WriteLine("") NewTextFile.WriteLine("
") NewTextFile.WriteLine(" ") For counterA=1 to sqlstrA.RecordCount DEVIiss = "-1" TDSEiss = "-1" VT5DMiss = "-1" VTSUPiss = "-1" If CInt(sqlstrA("iss_db")) = CInt(enumCLEARQUEST_DEVI_ID) Then DEVIiss = DEVIiss &","& sqlstrA("iss_id") ElseIf CInt(sqlstrA("iss_db")) = CInt(enumCLEARQUEST_TDSE_ID) Then TDSEiss = TDSEiss &","& sqlstrA("iss_id") ElseIf CInt(sqlstrA("iss_db")) = CInt(enumCLEARQUEST_VT5DM_ID) Then VT5DMiss = VT5DMiss &","& sqlstrA("iss_id") ElseIf CInt(sqlstrA("iss_db")) = CInt(enumCLEARQUEST_VTSUP_ID) Then VTSUPiss = VTSUPiss &","& sqlstrA("iss_id") End If SSsql = 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("Issue Id ") NewTextFile.WriteLine("Summary ") NewTextFile.WriteLine("Issue Type ") NewTextFile.WriteLine("Priority ") NewTextFile.WriteLine("Status ") NewTextFile.WriteLine("") NewTextFile.WriteLine(" ") 'If rsCQ("iss_num") <> "" Then ' NewTextFile.Write(""&rsCQ("iss_num")&" ") NewTextFile.WriteLine(""&NewLine_To_BR ( To_HTML ( rsCQ("summary") ) )&" ") NewTextFile.WriteLine(""&rsCQ("issue_type")&" ") NewTextFile.WriteLine(""&rsCQ("priority")&" ") NewTextFile.WriteLine(""&rsCQ("Status")&" ") NewTextFile.WriteLine("") 'End If sqlstrA.MoveNext Next NewTextFile.WriteLine( ""&rsCQ("iss_num")&": ") 'End If 'If rsCQ("summary") <> "" Then ' NewTextFile.Write(rsCQ("summary")&" ") 'End If 'If rsCQ("summary") <> "" Then ' NewTextFile.WriteLine("(Priority: "& rsCQ("priority") &")
") For counterA=1 to sqlstrC.RecordCount DEVIiss = "-1" TDSEiss = "-1" VT5DMiss = "-1" VTSUPiss = "-1" If CInt(sqlstrC("iss_db")) = CInt(enumCLEARQUEST_DEVI_ID) Then DEVIiss = DEVIiss &","& sqlstrC("iss_id") ElseIf CInt(sqlstrC("iss_db")) = CInt(enumCLEARQUEST_TDSE_ID) Then TDSEiss = TDSEiss &","& sqlstrC("iss_id") ElseIf CInt(sqlstrC("iss_db")) = CInt(enumCLEARQUEST_VT5DM_ID) Then VT5DMiss = VT5DMiss &","& sqlstrC("iss_id") ElseIf CInt(sqlstrA("iss_db")) = CInt(enumCLEARQUEST_VTSUP_ID) Then VTSUPiss = VTSUPiss &","& sqlstrA("iss_id") End If SSsql = 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") <> "" Then NewTextFile.Write("Fixed Issues:
") End If sqlstrC.MoveNext Next sqlstrC.Close() End If End Sub '-------------------------------------------------------------------------------------------------------------------------- Sub LastPvIdA(a) Dim qryA Set qryA = OraDatabase.DbCreateDynaset("SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="&a , cint(0)) If a <> qryA("last_pv_id") Then a = qryA("last_pv_id") Else errormsg = true End If qryA.Close() End Sub '-------------------------------------------------------------------------------------------------------------------------- Sub LastPvIdB(b) Dim qryB Set qryB = OraDatabase.DbCreateDynaset("SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="&b , cint(0)) If b <> qryB("last_pv_id") Then b = qryB("last_pv_id") Else errormsg = true End If qryB.Close() End Sub '-------------------------------------------------------------------------------------------------------------------------- Sub PreviousVersions(a, b, versionA, versionB) NewTextFile.WriteLine() NewTextFile.WriteLine("Versions Between: "&versionA&" and "&versionB&"") If a < b Then While a < b Call LastPvIdB(b) If a < b Then Call Comments(b) Call GetFixedIssues(b) End If Wend End If If b < a Then While b < a Call LastPvIdA(a) If b < a Then Call Comments(a) Call GetFixedIssues(a) End If Wend End If End Sub '-------------------------------------------------------------------------------------------------------------------------- Sub GetDependencies(pv_id_a, pv_id_b, versionA, versionB, pkgName) On Error Resume Next Set 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 Then NewTextFile.WriteLine() 'NewTextFile.WriteLine("Dependencies Changed Between "&pkgName&" "&versionA&" and "&versionB&":") For counterA=1 to sqlstrA.RecordCount Call dependencyComments(sqlstrA("dpv_id")) Call GetDependencyFixedIssues(sqlstrA("dpv_id")) Call IsRipple(sqlstrA("dpv_id")) sqlstrA.MoveNext Next sqlstrA.Close() End If End 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." Then Dim sqlstrC Set 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 = nothing End If sqlstrB.Close() Set sqlstrB = nothing End 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(""&rsCQ("iss_num")&": ") End If If rsCQ("summary") <> "" Then NewTextFile.Write(rsCQ("summary")&" ") End If If rsCQ("summary") <> "" Then NewTextFile.WriteLine("(Priority: "& rsCQ("priority") &")
") NewTextFile.Write("Comments and Fixed Issues:
"& sqlstrB("pkg_name") &" "& sqlstrC("pkg_version") &" => "& sqlstrB("pkg_version") &" = "& TextToHTML(sqlstrB("comments")) &"") sqlstrC.Close() Set sqlstrC = nothing sqlstrB.Close() Set sqlstrB = nothing End Sub '-------------------------------------------------------------------------------------------------------------------------- Sub LastPvIdA(a) Dim qryA Set qryA = OraDatabase.DbCreateDynaset("SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="&a , cint(0)) If a <> qryA("last_pv_id") Then a = qryA("last_pv_id") Else errormsg = true End If qryA.Close() End Sub '-------------------------------------------------------------------------------------------------------------------------- Sub LastPvIdB(b) Dim qryB Set qryB = OraDatabase.DbCreateDynaset("SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="&b , cint(0)) If b <> qryB("last_pv_id") Then b = qryB("last_pv_id") Else errormsg = true End If qryB.Close() End Sub '-------------------------------------------------------------------------------------------------------------------------- Sub pkg_Version(pv) Dim qry Set 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 qryA Set 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 qryB Set 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 comments Set 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." Then NewTextFile.WriteLine(""& comments("pkg_name") &" "& comments("pkg_version")&"") If comments("comments") <> "" Then 'NewTextFile.WriteLine("
") NewTextFile.WriteLine(""& TextToHTML(comments("comments")) &"") source_change = true End If End If End Sub '-------------------------------------------------------------------------------------------------------------------------- Sub Release(pvId) Dim release Set release = OraDatabase.DbCreateDynaset("SELECT INSERT_STAMP FROM RELEASE_CONTENT WHERE PV_ID="&pvId , cint(0)) If release("insert_stamp") <> "" Then NewTextFile.Write(release("insert_stamp")) Else NewTextFile.Write("Version Not Used.") End If End Sub '-------------------------------------------------------------------------------------------------------------------------- Sub Header() NewTextFile.WriteLine("") End Sub '-------------------------------------------------------------------------------------------------------------------------- Sub Footer() NewTextFile.WriteLine("") End Sub '-------------------------------------------------------------------------------------------------------------------------- Function GetIsDiffFilterInUseIcon() GetIsDiffFilterInUseIcon = LIMG_FILTER_OFF & LIMG_DROP_DOWN_ARROW If dDiffFilter.Count > 0 Then GetIsDiffFilterInUseIcon = LIMG_FILTER_ON & LIMG_DROP_DOWN_ARROW End If End Function '-------------------------------------------------------------------------------------------------------------------------- Function GetIsDiffFilterChecked( nFilterId ) If dDiffFilter.Exists ( CStr(nFilterId) ) Then GetIsDiffFilterChecked = "checked" End If End Function '--------------------------------------------------------------------------------------------------------------------------- Function Get_CQ_Issues ( SSsql, OOrsCQ ) If OOrsCQ.State = 1 Then OOrsCQ.Close End If On Error Resume Next OOrsCQ.ActiveConnection = CQ_conn OOrsCQ.Source = SSsql OOrsCQ.CursorType = 0 OOrsCQ.CursorLocation = 2 OOrsCQ.LockType = 3 OOrsCQ.Open() Get_CQ_Issues = Err.Number End Function '-------------------------------------------------------------------------------------------------------------------------- Public Function TextToHTML ( sString ) Dim mString If (sString = "") OR IsNull(sString) Then Exit Function mString = Server.HTMLEncode( sString ) mString = Replace(mString, VBNewLine, "Comments: