<% '===================================================== '| | '| Files and Folders | '| Core implementation | '| | '===================================================== %> <% '------------ Variable Definition ------------- Dim rsTemp Dim rsQry Dim isProduct Dim sLink Dim sSize Dim sIcon Dim parComparePvId Dim parCompare Dim parOsType Dim sDiffStateIcon Dim sStyle Dim dAvailableOsTypes '------------ Constants Declaration ----------- Const LIMG_UPDATED = "" Const LIMG_ADDED = "" Const LIMG_REMOVED = "" '------------ Variable Init ------------------- parComparePvId = Request("compare_pv_id") parCompare = Request("compare") parOsType = Request("os_type") '---------------------------------------------- If Request("btn") = "Compare" Then parCompare = "true" End If Set dAvailableOsTypes = CreateObject("Scripting.Dictionary") '---------------------------------------------- %> <% '-------------------------------------------------------------------------------------------------------------------------------------- '-------------------------------------------------------------------------------------------------------------------------------------- Sub DisplayMessage () If (pkgInfoHash.Item ("dlocked") = "Y") Then If (InStr(pkgInfoHash.Item ("release_notes_info"),"MSG:") > 0) Then Select Case CStr( pkgInfoHash.Item ("release_notes_info") ) Case enum_RELEASE_NOTES_GENERATING Call DisplayInfo ( "GENERATING_RELEASE_NOTES", "400" ) Case enum_RELEASE_NOTES_NOT_FOUND_IN_ARCHIVE Call DisplayInfo ( "NOT_FOUND_IN_PKG_ARCHIVE_FILE_GENERATE", "400" ) Case enum_RELEASE_NOTES_FAILED Call DisplayInfo ( "FAILED_GENERATING_RELEASE_NOTES", "400" ) Case enum_RELEASE_NOTES_NO_PREVIOUS_VERSION Call DisplayInfo ( "NO_PREVIOUS_VERSION_RELEASE_NOTES", "400" ) End Select ElseIf IsNull(pkgInfoHash.Item ("release_notes_info")) Then Call DisplayInfo ( "GENERATE_FILES_AND_FOLDERS", "400" ) End If End If End Sub '-------------------------------------------------------------------------------------------------------------------------------------- Sub GetProductOsTypes ( outAvailableOsTypes, outOsType ) Dim rsQry ' --- Get all available product os types from captured components --- OraDatabase.Parameters.Add "PV_ID", parPv_id, ORAPARM_INPUT, ORATYPE_NUMBER Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ProductBuildOsTypes.sql"), cint(0)) OraDatabase.Parameters.Remove "PV_ID" While ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) outAvailableOsTypes.Item (CStr(rsQry("os_id"))) = CStr(rsQry("os_id")) If outOsType = "" Then outOsType = CStr(rsQry("os_id")) End If rsQry.MoveNext WEnd rsQry.Close() Set rsQry = nothing End Sub '-------------------------------------------------------------------------------------------------------------------------------------- Sub DisplayOsTypeCombo ( ) Dim sOsType, aOsTypeParts, selected ' -- Render combo box --- If dAvailableOsTypes.Count > 0 Then For Each sOsType In aPRODUCT_OS_BUILD_TYPES aOsTypeParts = Split( sOsType, "|") If dAvailableOsTypes.Exists ( CStr(aOsTypeParts(1)) ) Then ' Define selected item selected = "" If parOsType = "" Then parOsType = aOsTypeParts(1) selected = "selected" Else If CStr(parOsType) = CStr(aOsTypeParts(1)) Then selected = "selected" End If End If Response.write "" End If Next End If End Sub '-------------------------------------------------------------------------------------------------------------------------------------- Sub DisplayComparePvIdCombo() Dim rsQry, isOfficial ' Define version to compare If parComparePvId = "" Then If NOT IsNull( pkgInfoHash.Item("last_pv_id") ) Then parComparePvId = pkgInfoHash.Item("last_pv_id") Else parComparePvId = 0 End If End If OraDatabase.Parameters.Add "COMPARE_PV_ID", parComparePvId, ORAPARM_INPUT, ORATYPE_NUMBER OraDatabase.Parameters.Add "PKG_ID", pkgInfoHash.Item("pkg_id"), ORAPARM_INPUT, ORATYPE_NUMBER If IsNull(pkgInfoHash.Item("v_ext")) OR (pkgInfoHash.Item("v_ext") = "") Then OraDatabase.Parameters.Add "V_EXT", NULL, ORAPARM_INPUT, ORATYPE_VARCHAR2 Else OraDatabase.Parameters.Add "V_EXT", pkgInfoHash.Item("v_ext"), ORAPARM_INPUT, ORATYPE_VARCHAR2 End If Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("AllPackageVersions.sql"), cint(0)) Response.write "" While ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) If rsQry("dlocked") = "Y" Then isOfficial = "R " Else isOfficial = "    " End If Response.write "" rsQry.MoveNext WEnd ' Clean up rsQry.Close() Set rsQry = nothing OraDatabase.Parameters.Remove "COMPARE_PV_ID" OraDatabase.Parameters.Remove "PKG_ID" OraDatabase.Parameters.Remove "V_EXT" End Sub '-------------------------------------------------------------------------------------------------------------------------------------- Sub GetDiffStateIcon( nDiffState, outIcon, outStyle ) Select Case CInt( nDiffState ) Case enumDB_NUM_DIFF_UPDATED outIcon = LIMG_UPDATED outStyle = "body_rowbold" Case enumDB_NUM_DIFF_REMOVED outIcon = LIMG_REMOVED outStyle = "body_rowthru" Case enumDB_NUM_DIFF_NEW outIcon = LIMG_ADDED outStyle = "body_rowbold" Case Else outIcon = "" outStyle = "body_rowg" End Select End Sub '-------------------------------------------------------------------------------------------------------------------------------------- Sub DisplayDiffSummary( orsQry ) Dim dDiffSummary Set dDiffSummary = CreateObject("Scripting.Dictionary") dDiffSummary.Item ("UPDATED") = 0 dDiffSummary.Item ("REMOVED") = 0 dDiffSummary.Item ("ADDED") = 0 While ((NOT orsQry.BOF) AND (NOT orsQry.EOF)) Select Case CInt( orsQry("diff_state") ) Case enumDB_NUM_DIFF_UPDATED dDiffSummary.Item ("UPDATED") = CInt( dDiffSummary.Item ("UPDATED") ) + 1 Case enumDB_NUM_DIFF_REMOVED dDiffSummary.Item ("REMOVED") = CInt( dDiffSummary.Item ("REMOVED") ) + 1 Case enumDB_NUM_DIFF_NEW dDiffSummary.Item ("ADDED") = CInt( dDiffSummary.Item ("ADDED") ) + 1 End Select orsQry.MoveNext WEnd ' Reset cursor orsQry.MoveFirst() ' Display Summary Response.write dDiffSummary.Item ("UPDATED") &" -Updated, " Response.write dDiffSummary.Item ("ADDED") &" -Added, " Response.write dDiffSummary.Item ("REMOVED") &" -Removed" End Sub '-------------------------------------------------------------------------------------------------------------------------------------- %> <% ' --- Decide if pv_id is ERG Product --- isProduct = FALSE if NOT IsEmpty(parOsType) Then If NOT IsNull( pkgInfoHash.Item("base_view_id") ) OR ( pkgInfoHash.Item("base_view_id") <> "") Then If CInt(pkgInfoHash.Item("base_view_id")) = enumBASE_VIEW_PRODUCTS Then isProduct = TRUE End If Else ' Try to be smart and decide if it is ERG product by name If InStr( pkgInfoHash.Item("pkg_name"), "ERG", 0) = 1 Then isProduct = TRUE End If End If End If %> <% ' -- Open Database connection If isProduct Then Call GetProductOsTypes ( dAvailableOsTypes, parOsType ) If parCompare <> "" Then OraDatabase.Parameters.Add "PV_ID", parPv_id, ORAPARM_INPUT, ORATYPE_NUMBER OraDatabase.Parameters.Add "COMPARE_PV_ID", parComparePvId, ORAPARM_INPUT, ORATYPE_NUMBER OraDatabase.Parameters.Add "OS_ID", parOsType, ORAPARM_INPUT, ORATYPE_NUMBER Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ProductComponentDiff.sql"), cint(0)) OraDatabase.Parameters.Remove "PV_ID" OraDatabase.Parameters.Remove "COMPARE_PV_ID" OraDatabase.Parameters.Remove "OS_ID" Else OraDatabase.Parameters.Add "PV_ID", parPv_id, ORAPARM_INPUT, ORATYPE_NUMBER OraDatabase.Parameters.Add "OS_ID", parOsType, ORAPARM_INPUT, ORATYPE_NUMBER Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ProductComponents.sql"), cint(0)) OraDatabase.Parameters.Remove "PV_ID" OraDatabase.Parameters.Remove "OS_ID" End If Else If parCompare <> "" Then OraDatabase.Parameters.Add "PV_ID", parPv_id, ORAPARM_INPUT, ORATYPE_NUMBER OraDatabase.Parameters.Add "COMPARE_PV_ID", parComparePvId, ORAPARM_INPUT, ORATYPE_NUMBER Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ModuleComponentDiff.sql"), cint(0)) OraDatabase.Parameters.Remove "PV_ID" OraDatabase.Parameters.Remove "COMPARE_PV_ID" Else OraDatabase.Parameters.Add "PV_ID", parPv_id, ORAPARM_INPUT, ORATYPE_NUMBER Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ModuleComponents.sql"), cint(0)) OraDatabase.Parameters.Remove "PV_ID" End If End If %> <%If isProduct Then%> <%If rsQry.Recordcount > 0 Then%>
Build Platform
<%End If%> <%If rsQry.Recordcount < 1 Then%> <% ' No files found ... Call DisplayInfo ( "NO_PRODUCT_FILES_CAPTURED", "400" ) %> <%End If%> <%End If%> <%' ' If not called from a history tab then we display a dialog to allow comparison ' with another version %> <%If pkgCompare Then %>

Files and Folders
<%If rsQry.Recordcount > 0 Then%>
Show differences since version <%If parCompare <> "" Then%> <%Call DisplayDiffSummary( rsQry ) %> <%End If%>

<%End If%> <%End If%> <%If parCompare <> "" Then%> <%If rsQry.Recordcount > 0 Then%> <% While ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Call GetDiffStateIcon( rsQry("diff_state"), sDiffStateIcon, sStyle ) ' Find if this is file or folder If IsNull( rsQry("crc_cksum") ) AND (rsQry("byte_size") = 0) Then sSize = "" sIcon = "" Else sSize = rsQry("byte_size") sIcon = "" End If %> <% rsQry.MoveNext WEnd rsQry.Close() Set rsQry = nothing %>
Name Byte Size
<%=sDiffStateIcon%> <%=sIcon & rsQry("name")%> <%=sSize%>

<%End If%> <%Else%> <%If rsQry.Recordcount < 1 Then%> <% ' No files found ... Call DisplayMessage () %> <%Else%> <% Dim uRL While ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) sLink = dpkg_archiveURL & pkgInfoHash.Item ("pkg_name") &"/"& pkgInfoHash.Item ("pkg_version") &"/"& Replace( rsQry("file_path") & rsQry("file_name"), "\", "/" ) ' Find if this is file or folder If IsNull( rsQry("crc_cksum") ) AND (rsQry("byte_size") = 0) Then sSize = "" sIcon = "" Else sSize = rsQry("byte_size") sIcon = "" End If %> <% rsQry.MoveNext WEnd rsQry.Close() Set rsQry = nothing %>
Name Byte Size CKSUM MODCRC
<%=sIcon & rsQry("file_path") & rsQry("file_name")%> <%=sSize%> <%=rsQry("crc_cksum")%> <%=rsQry("crc_modcrc")%>

<%End If%> <%End If%> <%If pkgCompare Then %>
<%End If%>