Subversion Repositories DevTools

Rev

Rev 7288 | 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' title='Updated'>"
Const LIMG_ADDED = "<img src='images/i_added.gif' width='11' height='11' border='0' hspace='2' title='Added'>"
Const LIMG_REMOVED = "<img src='images/i_removed.gif' width='11' height='11' border='0' hspace='2' title='Removed'>"
Const LIMG_UNCHANGED = "<img src='images/i_unchanged.gif' width='11' height='11' border='0' hspace='5' title='Unchanged'>"
'------------ 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 openTableAll()
{
    $('#fileList tr').each(function(idx, item){
        $(item).removeClass('display-none');
        $(item).removeClass('tag-isHidden');
    });
    updateTableIcons();
}

function closeTableAll()
{
    $('#fileList tr').each(function(idx, item){
        var tr = $(item);
        if (tr.hasClass('tag-isDir')) {
            tr.addClass('tag-isHidden');
        }
        var txt =  tr.data('path') || '';
        if ( txt.indexOf("/") >= 0) {
            tr.addClass('display-none');
        };
    });
    updateTableIcons();
}

function updateTableIcons()
{
    $("#fileList tr.tag-isDir").each(function(i, item) {
        var isHidden = $(item).hasClass('tag-isHidden');
        updateImages(item, isHidden);
    });
}

function updateImages(el, isHidden) {
    var images = $(el).find('img');
    if ( isHidden ) {
        $(images.get(0)).addClass('display-none');
        $(images.get(1)).removeClass('display-none');
    } else {
        $(images.get(1)).addClass('display-none');
        $(images.get(0)).removeClass('display-none');
    }
}

function tableToggleAll(el) {
    var mode =  $('#fileList').hasClass('tag-ALL'); 
    if (mode) {
        closeTableAll();
    } else {
        openTableAll();
    };
    updateImages(el, !mode);
    $('#fileList').toggleClass('tag-ALL');
}

$( document ).ready(function() {

    // Open / Close directory elements
    $('#fileList tr:not(:first-child) td:first-child').click(function() {

       // Calculate the text name of the parent directory
       var tr = $(this.closest('tr'));
       var dir =  tr.data('path') || '';
       if ( ! tr.hasClass('tag-isDir') ) {
           dir=dir.replace(/\/[^\/]*$/,'');
       }

       // Scan table:
       //   Looking for directory element
       //   Then show/hide elements
       var isHidden = false;
       var found = false;
       $('#fileList tr').each(function(idx, item){
           var tr = $(item);
           var txt =  tr.data('path') || '';
           if ( !found ) {
               if ( txt.indexOf(dir) == 0 )
               {
                   isHidden = tr.hasClass('tag-isHidden');
                   tr.toggleClass('tag-isHidden');
                   found = true;
                   dir += '/';
               }
           } else {
               if ( txt.indexOf(dir)  < 0 ) return false;
               if ( isHidden ) {
                   tr.removeClass('display-none');
               } else {
                   tr.addClass('display-none');
               };
               if ( tr.hasClass('tag-isDir') ) {
                   if ( isHidden ) {
                       tr.removeClass('tag-isHidden');
                   } else {
                       tr.addClass('tag-isHidden');
                   };
               }
           }
        });

       updateTableIcons();
    });

    //
    //  File Diff display
    //  Wire up the Show/Hide options
    //
        $('#btnHideUpdate').change(function(){
                toggleRows( $(this).is(':checked'), '.ftUpdated' );
    });

    $('#btnHideAdded').change(function(){
                toggleRows( $(this).is(':checked'), '.ftAdded' );
    });

        $('#btnHideRemoved').change(function(){
                toggleRows( $(this).is(':checked'), '.ftRemoved' );
    });

        $('#btnHideSame').change(function(){
                toggleRows( $(this).is(':checked'), '.ftSame' );
    });

    function toggleRows( mode, sClass) {
        if ( mode ) {
            $('#fileList tr').filter(sClass).hide();
        } else {
            $('#fileList tr').filter(sClass).show();
        }
    }

});
</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, outRowStyle )
    Select Case CInt( nDiffState )
        Case enumDB_NUM_DIFF_UPDATED
            outIcon  = LIMG_UPDATED
            outStyle = "body_rowbold"
                        outRowStyle = "ftUpdated"
            
        Case enumDB_NUM_DIFF_REMOVED
            outIcon = LIMG_REMOVED
            outStyle = "body_rowthru"
                        outRowStyle = "ftRemoved"
            
        Case enumDB_NUM_DIFF_NEW
            outIcon = LIMG_ADDED
            outStyle = "body_rowbold"
                        outRowStyle = "ftAdded"
            
        Case Else
            outIcon = ""
            outStyle = "body_rowg"
                        outRowStyle = "ftSame"

    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
    dDiffSummary.Item ("SAME") = 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

            Case Else
                dDiffSummary.Item ("SAME") = CInt( dDiffSummary.Item ("SAME") ) + 1

        End Select
        
        orsQry.MoveNext
    WEnd
    
    
    ' Reset cursor
    orsQry.MoveFirst()
    
    
    ' Display Summary
    Response.write dDiffSummary.Item ("UPDATED") &" - "& LIMG_UPDATED   & "Updated, "
    Response.write dDiffSummary.Item ("ADDED")   &" - "& LIMG_ADDED     & "Added, "
    Response.write dDiffSummary.Item ("REMOVED") &" - "& LIMG_REMOVED   & "Removed, "
    Response.write dDiffSummary.Item ("SAME")    &" - "& LIMG_UNCHANGED & "Unchanged"
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="showGlobalProgress();">
            <br>                      
            <%If rsQry.Recordcount > 0 Then%>
            <table width="100%"  border="0" cellspacing="1" cellpadding="3">
              <tr>
                                <td nowrap width=1% class="body_colb">Files and Folders</td>
                <td nowrap width=1% class="body_txt">
                                        <fieldset class="fset body_row">
                                                <legend>Show differences since version</legend>
                    <select name="compare_pv_id" class="form_item">
                    <%Call DisplayComparePvIdCombo()%>
                    </select>
                    <input name="btn" type="submit" class="form_btn" value="Compare"> 
                    <%If parCompare <> "" Then%>
                                        <input type="checkbox" style='visibility:hidden'>
                    <a class="form_btn" onClick="showGlobalProgress();" href="<%=scriptName%>?pv_id=<%=parPv_id%>&rtag_id=<%=parRtag_id%>">Show <%=sVerText%></a>
                    <a class="form_btn" onClick="showGlobalProgress();" href="<%=scriptName%>?pv_id=<%=parComparePvId%>&rtag_id=<%=parRtag_id%>">Show <%=sCompVerText%></a>
                                        </fieldset>
                                        </td>
                                        <td width=1% nowrap class="body_txt">

                                        <fieldset class="fset body_row">
                                                <legend>Hide / Show</legend>
                                                <input type="checkbox" id='btnHideUpdate' ><%=LIMG_UPDATED%>Updated
                                                <input type="checkbox" id='btnHideAdded'  ><%=LIMG_ADDED%>Added
                                                <input type="checkbox" id='btnHideRemoved'><%=LIMG_REMOVED%>Removed
                                                <input type="checkbox" id='btnHideSame'   ><%=LIMG_UNCHANGED%>Unchanged
                                        </fieldset>
                                        
                    <%End If%>
                </td>
                                <td></td>
                <td nowrap width=1% class="body_txt" align="right">
                    <%If parCompare <> "" Then%>
                                        <fieldset class="fset body_row">
                                                <legend>Summary</legend>
                        <%Call DisplayDiffSummary( rsQry ) %>
                                        </fieldset>
                    <%End If%>
                </td>
              </tr>
            </table>
            <hr size="1" noshade color="#999999"> 
                    <%Else%>
                                <span class="body_colb">Files and Folders</span><br>
                                <hr size="1" noshade color="#999999"> 
                                <span class="body_txt">No files recorded</span>
            <%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, filePath
                Dim sRowClass
                sSum = rsQry("crc_cksum")
                sCompSum = rsQry("comp_crc_cksum") 
                sSize = rsQry("byte_size")
                sCompSize = rsQry("comp_byte_size")
                Call GetDiffStateIcon( diffState, sDiffStateIcon, sStyle, sRowClass )
                filePath = rsQry("file_path")
                If IsNull(filePath) Then filePath = ""
                            
                ' Find if this is file or folder
                If Len(filePath) > 0 AND Right(filePath,1) <> "/" Then
                    sSize = ""
                    sCompSize = ""
                    sIcon = "<img src='images/rex_images/_folderopen.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 <%=sRowClass%>">
              <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" class='StdGrey'>
                <thead>
                <tr>
                  <th width="1%" onclick="tableToggleAll(this)">
                        <img class='' src='images/rex_images/_folder.gif' border='0' hspace='3' align='absmiddle' title='Expand All'>
                        <img class='display-none' src='images/rex_images/_folderopen.gif' border='0' hspace='3' align='absmiddle' title='Close all'>
                  </th>
                  <th width="25%" >Name</th>
                  <th width="25%" align="right">Byte Size</th>
                  <th width="25%" align="right">CKSUM</th>
                  <th width="25%" align="right">MODCRC</th>
                </tr>
                </thead>
            <%
            Dim dClass, nextClass, altClass
            Dim isHidden , bFirst
            Dim fileName
            Dim curDir, hiddenBase
            Dim knownDirs : knownDirs = Array ("lcov", "doc", "utfResults" )
            Dim item
            Dim trAttr

            dClass = ""
            isHidden = FALSE
            curDir = ""

            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 = ""
                    fileName = rsQry("file_name")
                    trAttr = "data-path=""" & filePath & fileName & """"

                    ' Determine if item is 'still' in hidden area
                    If isHidden Then
                        If InStr(filePath, hiddenBase) <> 1 Then
                            isHidden = FALSE
                        End If
                    End If
                                
                    ' Find if this is file or folder
                    ' Note: Symlinks will have zero size and no sum
                    '
                    If Len(filePath) > 0 AND Right(filePath,1) <> "/" Then
                        ' Is a folder
                        curDir = filePath
                        sSize = ""
                        dClass = "tag-isDir"
                         If NOT isHidden Then
                             For Each item in knownDirs
                                If filePath = item Then
                                    isHidden = TRUE
                                    hiddenBase = filePath & "/"
                                    bFirst = TRUE
                                    Exit For
                                End If
                            Next
                         End If

                        If isHidden Then
                            nextClass = "display-none"
                            altClass = ""
                        Else
                            altClass = "display-none"
                            nextClass = ""
                        End If

                        sIcon         = "<img class='"&nextClass&"' src='images/rex_images/_folderopen.gif' border='0' hspace='3' align='absmiddle'>"
                        sIcon = sIcon + "<img class='"&altClass&"' src='images/rex_images/_folder.gif' border='0' hspace='3' align='absmiddle'>"
                    Else
                        ' Is a File
                        dClass = ""
                        sSize = rsQry("byte_size")
                        sIcon = "<img src='images/rex_images/ext_blank.gif' border='0' hspace='3' align='absmiddle'>"

                    End If

                    If bFirst Then
                        bFirst = FALSE
                        dClass = dClass & " tag-isHidden"
                    Else
                        If isHidden Then
                            dClass = dClass & " display-none tag-isHidden"
                        End If
                    End If
                    %>
                    <tr class="<%=dClass%>" <%=trAttr%>>
                      <td nowrap ><%=sIcon%></td>
                      <td nowrap><a target="_blank" href="<%=sLink%>" class="body_txt_gray_link"><%=filePath & fileName%></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>
                    <%
                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%>