%@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 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
Dim VersionList
'------------ 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 -------------------
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")
'----------------------------------------------
%>
<%
'--------------------------------------------------------------------------------------------------------------------------
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 GetFixedIssues(pv_id)
Set sqlstrC = OraDatabase.DbCreateDynaset("SELECT iss_db, iss_id, iss_state, notes FROM CQ_ISSUES WHERE pv_id="& pv_id &" AND iss_db="& CInt(enumCLEARQUEST_VTSUP_ID) &" AND iss_state = "& enumISSUES_STATE_FIXED, cint(0))
If sqlstrC.RecordCount <> 0 Then
While ((NOT sqlstrC.BOF) AND (NOT sqlstrC.EOF))
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(sqlstrC("iss_db")) = CInt(enumCLEARQUEST_VTSUP_ID) Then
VTSUPiss = VTSUPiss &","& sqlstrC("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 )
sqlstrC.MoveNext
Wend
End If
sqlstrC.Close()
Set sqlstrC = Nothing
End Sub
'--------------------------------------------------------------------------------------------------------------------------
Function LastPvId(pvId)
Dim qryA
Set qryA = OraDatabase.DbCreateDynaset("SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="&pvId , cint(0))
LastPvId = pvId
If pvId <> qryA("last_pv_id") Then
LastPvId = qryA("last_pv_id")
Else
errormsg = true
End If
qryA.Close()
Set qryA = Nothing
End Function
'--------------------------------------------------------------------------------------------------------------------------
Sub PreviousVersions(a, b, versionA, versionB)
If CLng(a) < CLng(b) Then
While CLng(a) < CLng(b)
b = LastPvId(b)
If CLng(a) < CLng(b) Then
VersionList = VersionList + ","& b &""
Call Comments(b)
Call GetFixedIssues(b)
End If
Wend
End If
If CLng(b) < CLng(a) Then
While CLng(b) < CLng(a)
a = LastPvId(a)
If CLng(b) < CLng(a) Then
VersionList = VersionList + ","& a &""
Call Comments(a)
Call GetFixedIssues(a)
End If
Wend
End If
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()
Set qry = Nothing
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 )
On Error Resume Next
Set OOrsCQ = OraDatabase.DbCreateDynaset( SSsql, cint(0))
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, "
")
TextToHTML = mString
End Function
'--------------------------------------------------------------------------------------------------------------------------
Sub GetFormDetails ( nSourceSBOM, ByRef outobjDetails )
Dim rsQry, query
' Exit if nSourceRtagId is empty
If nSourceSBOM = "" Then Exit Sub
OraDatabase.Parameters.Add "SBOM", nSourceSBOM, ORAPARM_INPUT, ORATYPE_NUMBER
query = _
" 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 Then
outobjDetails.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")
Else
Err.Raise 8, "Sub GetFormDetails in "& SCRIPT_NAME, "Empty record set returned. nSourceSBOM="& nSourceSBOM
End If
If outobjDetails.Item ("location") = "" Then
outobjDetails.Item ("location") = "N"
End If
rsQry.Close
Set rsQry = Nothing
End Sub
'--------------------------------------------------------------------------------------------------------------------------
Sub GetDiffStateIcon( nDiffState, outIcon )
Select Case nDiffState
Case "U"
outIcon = LIMG_UPDATED
Case "UW"
outIcon = LIMG_UPDATED
Case "A"
outIcon = LIMG_ADDED
Case "R"
outIcon = LIMG_REMOVED
Case Else
outIcon = ""
End Select
End Sub
'--------------------------------------------------------------------------------------------------------------------------
%>
<%
'------------ RUN BEFORE PAGE RENDER ----------
If Request("btn") = "Exit" Then
Call OpenInWindow ( "reports.asp" )
End If
' Get release details
Call GetFormDetails ( parSBOMA, objRelCollectorA )
Call GetFormDetails ( parSBOMB, objRelCollectorB )
If Request("btn") = "Swap Compare" Then
Call OpenInWindow ( SCRIPT_NAME &"?sbomA="& parSBOMB &"&sbomB="& parSBOMA )
End If
If Request("btn") = "Hide" Then
' Store filter in cookie
Response.Cookies(enum_RELMGR_COOKIE_DOMAIN)(COOKIE_HIDE_DIFF_FILTER) = Request("difilter")
End If
Call GetDiffFilterValues ( dDiffFilter )
'----------------------------------------------
%>