Subversion Repositories DevTools

Rev

Blame | Last modification | View Log | RSS feed

<%
'=====================================================
'|                                                   |
'|                         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 = "<img src='images/i_updated.gif' width='11' height='11' border='0' hspace='2' align='absmiddle' title='Updated'>"
Const LIMG_ADDED = "<img src='images/i_added.gif' width='11' height='11' border='0' hspace='2' align='absmiddle' title='Added'>"
Const LIMG_REMOVED = "<img src='images/i_removed.gif' width='11' height='11' border='0' hspace='2' align='absmiddle' title='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 "<option value='"& aOsTypeParts(1) &"' "& selected &">"& aOsTypeParts(0) &"</option>"
                                
                        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 "<option value=''></option>"
        
    While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))
                
                If rsQry("dlocked") = "Y" Then
                        isOfficial = "R&nbsp;"
                Else
                        isOfficial = "&nbsp;&nbsp;&nbsp;&nbsp;"
                End If
                
                Response.write "<option value='"& rsQry("pv_id") &"' "& rsQry("selected") &" >"& isOfficial & rsQry("pkg_version") &"</option>"
                
                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") &" -<img src='images/i_updated.gif' width='11' height='11' hspace='3'>Updated, "
        Response.write dDiffSummary.Item ("ADDED") &" -<img src='images/i_added.gif' width='11' height='11' hspace='3'>Added, "
        Response.write dDiffSummary.Item ("REMOVED") &" -<img src='images/i_removed.gif' width='11' height='11' hspace='3'>Removed"
        
End Sub
'--------------------------------------------------------------------------------------------------------------------------------------
%>
        <!-- DETAILS ------------------------------------------------->
        <%
        ' --- 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%>
            <table width="100%"  border="0" cellspacing="1" cellpadding="3">
        <tr>
          <td nowrap class="body_txt">Build Platform
            <select name="os_type" class="form_item">
                    <%Call DisplayOsTypeCombo()%>
            </select>
            <input name="btn" type="submit" class="form_btn" value="View"></td>
        </tr>
      </table> 
            <%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 %>
                        <form name="formname" method="get" action="<%=ScriptName%>" onSubmit="ProgressBar.style.visibility='visible';">
                        <br>                                      
                        <span class="body_colb">Files and Folders</span><br>
                                                
                                                <%If rsQry.Recordcount > 0 Then%>
                                                <table width="100%"  border="0" cellspacing="1" cellpadding="3">
                              <tr>
                                <td nowrap class="body_txt">
                                        Show differences since version
                                        <select name="compare_pv_id" class="form_item">
                                                                <%Call DisplayComparePvIdCombo()%>
                                                </select>
                                                                <input name="btn" type="submit" class="form_btn" value="Compare"> 
                                                        </td>
                                <td nowrap class="body_txt" align="right">
                                                                <%If parCompare <> "" Then%>
                                                                        <%Call DisplayDiffSummary( rsQry ) %>
                                                                <%End If%>
                                                        </td>
                              </tr>
                            </table>
                                                <hr size="1" noshade color="#999999"> 
                                                <%End If%>                                               
    <%End If%>

    <!-- MODULE COMPONENTS ++++++++++++++++++++++++++++++++++++++ -->
                          
                          
            <!-- ==================================================== -->
            <!-- ===================  COMPARE ======================= -->
            <!-- ==================================================== -->
            <%If parCompare <> "" Then%>
                                  

                    <%If rsQry.Recordcount > 0 Then%>
                                                
                                                
                    <table width="100%"  border="0" cellspacing="1" cellpadding="3">
                    <tr>
                            <td width="1" background="images/bg_form_lightbluedark.gif" class="form_item"></td>
                      <td width="50%" background="images/bg_form_lightbluedark.gif" class="form_item">Name</td>
                      <td width="50%" background="images/bg_form_lightbluedark.gif" class="form_item" align="right">Byte Size</td>
                    </tr>
                    <%
                    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 = "<img src='images/rex_images/_folder.gif' border='0' hspace='3' align='absmiddle'>"
                            Else
                                    sSize = rsQry("byte_size")
                                    sIcon = "<img src='images/rex_images/ext_blank.gif' border='0' hspace='3' align='absmiddle'>"
                            End If
                                                        
                    %>
                    <tr>
                            <td background="images/bg_form_lightgray.gif" nowrap class="body_txt_gray"><%=sDiffStateIcon%></td>
                      <td background="images/bg_form_lightgray.gif" nowrap class="<%=sStyle%>"><%=sIcon & rsQry("name")%></td>
                      <td background="images/bg_form_lightgray.gif" class="body_txt_gray" nowrap align="right"><%=sSize%></td>
                    </tr>
                    <%
                            rsQry.MoveNext
                    WEnd
                                                
                    rsQry.Close()
                    Set rsQry = nothing
                    %>
                </table><br>
                                  
                    <%End If%>
                                          
                                  
            <%Else%>
            <!-- ==================================================== -->
            <!-- =================== NORMAL FILES =================== -->
            <!-- ==================================================== -->

                    <%If rsQry.Recordcount < 1 Then%>
                                                
                    <%
                    ' No files found ...
                    Call DisplayMessage ()
                    %>
                                          
                    <%Else%>
                                          
                    <table width="100%"  border="0" cellspacing="1" cellpadding="3">
                    <tr>
                      <td width="25%" background="images/bg_form_lightbluedark.gif" class="form_item">Name</td>
                      <td width="25%" background="images/bg_form_lightbluedark.gif" class="form_item" align="right">Byte Size</td>
                      <td width="25%" background="images/bg_form_lightbluedark.gif" class="form_item" align="right">CKSUM</td>
                      <td width="25%" background="images/bg_form_lightbluedark.gif" class="form_item" align="right">MODCRC</td>
                    </tr>
                    <%
                    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 = "<img src='images/rex_images/_folder.gif' border='0' hspace='3' align='absmiddle'>"
                            Else
                                    sSize = rsQry("byte_size")
                                    sIcon = "<img src='images/rex_images/ext_blank.gif' border='0' hspace='3' align='absmiddle'>"
                            End If
                                                        
                    %>
                    <tr>
                      <td background="images/bg_form_lightgray.gif" nowrap><a target="_blank" href="<%=sLink%>" class="body_txt_gray_link"><%=sIcon & rsQry("file_path") & rsQry("file_name")%></a></td>
                      <td background="images/bg_form_lightgray.gif" class="body_txt_gray" nowrap align="right"><%=sSize%></td>
                      <td background="images/bg_form_lightgray.gif" class="body_txt_gray" nowrap align="right"><%=rsQry("crc_cksum")%></td>
                      <td background="images/bg_form_lightgray.gif" class="body_txt_gray" nowrap align="right"><%=rsQry("crc_modcrc")%></td>
                    </tr>
                    <%
                            rsQry.MoveNext
                    WEnd
                                                
                    rsQry.Close()
                    Set rsQry = nothing
                    %>
                </table><br>
                                  
                    <%End If%>
                                          
                                          
            <!-- ==================================================== -->
            <!-- ==================================================== -->
            <!-- ==================================================== -->         
            <%End If%>          
                                        
    <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->   
    <%If pkgCompare Then %>
            <input type="hidden" name="compare" value="<%=parCompare%>">
                <input type="hidden" name="pv_id" value="<%=parPv_Id%>">
                <input type="hidden" name="rtag_id" value="<%=parRtag_Id%>">
                </form>
    <%End If%>