Subversion Repositories DevTools

Rev

Rev 6376 | Rev 6378 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

<%
'=====================================================
'|                                                   |
'|                 Files and Folders                 |
'|                 Core implementation               |
'|                                                   |
'=====================================================
%>
<%
'------------ Variable Definition -------------
Dim rsTemp
Dim rsQry
Dim sLink
Dim sSize
Dim sCompSize
Dim sIcon
Dim parComparePvId
Dim parCompare
Dim sDiffStateIcon
Dim sStyle
Dim sCompVerText
Dim sVerText
'------------ 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")
'----------------------------------------------
If Request("btn") = "Compare" Then
    parCompare = "true"
End If
'----------------------------------------------
%>
<script type="text/javascript" charset="utf-8">
function toggleTag(tname)
{
    $( '.tag-' + tname ).toggleClass('display-none');
}

function toggleTable(dir)
{
    $('#fileList tr td:nth-child(2)').each(function(idx, item){
        var txt =  item.innerText;
        if ( txt.indexOf(dir) == 0 ) {
            $(item.closest('tr')).toggleClass('display-none');    
        }
    });
}

</script>
<%
'--------------------------------------------------------------------------------------------------------------------------------------
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" )
            Case enum_RELEASE_NOTES_PLACEHOLDER_PACKAGE
                Call DisplayInfo ( "RELEASE_NOTES_PLACEHOLDER_PACKAGE", "400" )
            End Select
            
        ElseIf IsNull(pkgInfoHash.Item ("release_notes_info")) Then
            Call DisplayInfo ( "GENERATING_RELEASE_NOTES", "400" )
            
        End If
        
    End If
End Sub
'--------------------------------------------------------------------------------------------------------------------------------------
Sub DisplayComparePvIdCombo()
    Dim rsQry, isOfficial
    
    sVerText = pkgInfoHash.Item("pkg_version")
    sCompVerText = "" 

    ' 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 
    OraDatabase.Parameters.Add "V_EXT",         EmptyToNull(pkgInfoHash.Item("v_ext")), ORAPARM_INPUT, ORATYPE_VARCHAR2 
    
    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

        If rsQry("selected") <> "" Then
            sCompVerText = rsQry("pkg_version")
        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 ------------------------------------------------->
            
    <%
    ' -- Open Database connection
                
    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
      '
      ' 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"> 
                    <%If parCompare <> "" Then%>
                    &nbsp;&nbsp;&nbsp;
                    <a class="form_btn" href="<%=scriptName%>?pv_id=<%=parPv_id%>&rtag_id=<%=parRtag_id%>">Show <%=sVerText%></a>
                    <a class="form_btn" href="<%=scriptName%>?pv_id=<%=parComparePvId%>&rtag_id=<%=parRtag_id%>">Show <%=sCompVerText%></a>
                    <%End If%>
                </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 id="fileList" width="100%"  border="0" cellspacing="1" cellpadding="3">
            <tr class="form_field_hdr">
              <td width="1"   rowspan="2"></td>
              <td width="60%" rowspan="2">Name</td>
              <td width="20%" colspan="2" align="center"><%=sVerText%></td>
              <td width="20%" colspan="2" align="center"><%=sCompVerText%></td>
            </tr>
            <tr class="form_field_hdr">
              <td align="right">Byte Size</td>
              <td align="right">CKSUM</td>
              <td align="right">Byte Size</td>
              <td align="right">CKSUM</td>
            </tr>
            <%
            While ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) 
                Dim sizeStyle : sizeStyle = ""
                Dim sumStyle  : sumStyle = ""
                Dim diffState : diffState = rsQry("diff_state")
                Dim sSum, sCompSum
                sSum = rsQry("crc_cksum")
                sCompSum = rsQry("comp_crc_cksum") 
                sSize = rsQry("byte_size")
                sCompSize = rsQry("comp_byte_size")
                Call GetDiffStateIcon( diffState, sDiffStateIcon, sStyle )
                            
                ' Find if this is file or folder
                If (IsNull(sSum) AND  (sSize = 0)) OR (IsNull(sCompSum) AND (sCompSize = 0)) Then 
                    sSize = ""
                    sCompSize = ""
                    sIcon = "<img src='images/rex_images/_folder.gif' border='0' hspace='3' align='absmiddle'>"
                Else
                    sSize = rsQry("byte_size")
                    sCompSize = rsQry("comp_byte_size")
                    sIcon = "<img src='images/rex_images/ext_blank.gif' border='0' hspace='3' align='absmiddle'>"

                    If diffState > 1 OR (sSum <>  sCompSum) Then
                        sumStyle = "err_dtl"
                    End If

                    If diffState > 1 OR (sSize <> sCompSize) Then
                        sizeStyle = "err_dtl"
                    End If

                End If
                            
            %>
            <tr class="form_item_grey">
              <td nowrap ><%=sDiffStateIcon%></td>
              <td nowrap class="<%=sStyle%>"><%=sIcon & rsQry("name")%></td>
              <td nowrap class="<%=sizeStyle%>" align="right"><%=sSize%></td>
              <td nowrap class="<%=sumStyle%>"  align="right"><%=sSum%></td>
              <td nowrap class="<%=sizeStyle%>" align="right"><%=sCompSize%></td>
              <td nowrap class="<%=sumStyle%>"  align="right"><%=sCompSum%></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 id="fileList" width="100%"  border="0" cellspacing="1" cellpadding="3">
            <tr class="form_field_hdr">
              <td width="1%" >&nbsp;</td>
              <td width="25%" >Name</td>
              <td width="25%" align="right">Byte Size</td>
              <td width="25%" align="right">CKSUM</td>
              <td width="25%" align="right">MODCRC</td>
            </tr>
            <%
            Dim dClass, nextClass
            Dim isHidden
            Dim filePath
            Dim tag
            Dim curDir
            Dim sClick
            dClass = ""
            nextClass = ""
            isHidden = FALSE
            curDir = ""
            sClick =  ""

            Dim knownDirs : knownDirs = Array ("lcov", "doc", "utfResults", "etc" )
            Dim item

            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"), "\", "/" )
                    filePath = rsQry("file_path")
                    If IsNull(filePath) Then filePath = ""
                                
                    ' Find if this is file or folder
                    If IsNull( rsQry("crc_cksum") )  AND  (rsQry("byte_size") = 0) Then
                        ' Is a folder
                        ' Should it be a hidden folder
                        isHidden = FALSE
                        tag = ""
                        For Each item in knownDirs
                            If filePath = item Then
                                isHidden = TRUE
                                tag = item
                                curDir = item
                                sClick =  "onclick=toggleTag('"& tag & "');"
                                Exit For
                            End If
                        Next

                        sSize = ""
                        sIcon = "<img src='images/rex_images/_folderopen.gif' border='0' hspace='3' align='absmiddle'>"
                        If isHidden Then
                            nextClass = "display-none tag-" & tag
                            dClass = ""
                            sIcon = "<img class='tag-"&tag&" display-none' src='images/rex_images/_folderopen.gif' border='0' hspace='3' align='absmiddle'>"
                            sIcon = sIcon + "<img class='tag-"&tag&"' src='images/rex_images/_folder.gif' border='0' hspace='3' align='absmiddle'>"
                        End If
                    Else
                        ' Is a File
                        '
                        ' We still in directory start with known tag
                        '
                        If isHidden Then
                            If (InStr( filePath, curDir & "/" ) <> 1) Then
                                isHidden = FALSE
                                tag = ""
                                nextClass = ""
                                dClass = ""
                                curDir = ""
                                sClick = ""
                            End If
                        End If

                        sSize = rsQry("byte_size")
                        sIcon = "<img src='images/rex_images/ext_blank.gif' border='0' hspace='3' align='absmiddle'>"
                    End If
                                
                %>
                <tr class="<%=dClass%> form_field_grey_bg body_txt_gray">
                  <td nowrap <%=sClick%>><%=sIcon%></td>
                  <td nowrap><a target="_blank" href="<%=sLink%>" class="body_txt_gray_link"><%=filePath & rsQry("file_name")%></a></td>
                  <td nowrap align="right"><%=sSize%></td>
                  <td nowrap align="right"><%=rsQry("crc_cksum")%></td>
                  <td nowrap align="right"><%=rsQry("crc_modcrc")%></td>
                </tr>
                <%
                dClass = nextClass
                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%>