Subversion Repositories DevTools

Rev

Rev 1268 | Blame | Compare with Previous | Last modification | View Log | RSS feed

<%
'===============================================================
'                                        Version Browser
'===============================================================
%>
<!--#include file="class/classSortHelper.asp"-->
<%
'------------ Variable Definition -------------
Dim parFLpkg_version, parFLuser_name
Dim imgLock, fieldRelease_Date, fieldReleased_By, fieldDownloadFullReleaseNotes
Dim rsVB
Dim rowColor, imgPointer
Dim URLstring
Dim anchorName
Dim filterInUse
Dim DestroyPackage
Dim CanDestroyPackage
'------------ Constants Declaration -----------
Const IMGBG_ROW_HI = "background='images/bg_row_hi.gif'"
Const IMGBG_ROW = "bgcolor='#FFFFFF'"
Const IMG_PONTER = "<img src='images/i_pointer.gif' width='6' height='11' hspace='3'>"
Const IMG_OFFICIAL = "<img src='images/i_locked.gif' width='7' height='10' hspace='5' vspace='2' alt='Package is official'>"
Const IMG_NOT_OFFICIAL = "<img src='images/spacer.gif' width='7' height='10' hspace='5' vspace='2'>"
Const IMG_DOWNLOAD = "<img src='images/i_download_small.gif' alt='Download full release notes.' width='16' height='16' hspace='2' border='0'>"
'------------ Variable Init -------------------
If Request("filter_reset") <> "" Then 
        parFLpkg_version = "*"
        parFLuser_name   = "*"
        filterInUse = FALSE
Else
        parFLpkg_version = Request( "FLpkg_version" )
        parFLuser_name   = Request( "FLuser_name" )
        filterInUse = Is_Filter_In_Use ( "FLpkg_version, FLuser_name" )
End If
'----------------------------------------------
%>
<%
'-----------------------------------------------------------------------------------------------------------------------------------
Function Get_All_Versions ( nPkg_id )
        Get_All_Versions = _
        " SELECT PV.PV_ID, PV.PKG_VERSION, PV.DLOCKED, PV.MODIFIED_STAMP, USR.FULL_NAME, usr.user_name, USR.USER_EMAIL, PV.COMMENTS, PV.PKG_LABEL, PV.IS_PATCH, PV.RELEASE_NOTES_INFO "&_
        "   FROM PACKAGE_VERSIONS PV, USERS USR "&_
        "  WHERE PV.MODIFIER_ID = USR.USER_ID "&_
        "    AND PV.PKG_ID = :PKG_ID"&_
        "    /*-- Manual Filer --*/"&_
        "    "& Construct_Filter ( parFLpkg_version, "pv.pkg_version" ) &_
        "    "& Construct_Filter ( parFLuser_name, "usr.user_name" ) &_
        "    /*------------------*/"
        
        Get_All_Versions = Replace( Get_All_Versions, ":PKG_ID", nPkg_id)
End Function
'-----------------------------------------------------------------------------------------------------------------------------------
Function Construct_Filter ( sPar_val, sCol_name )
        Select Case sPar_val
        Case Empty
                Construct_Filter = "AND "& sCol_name &" IS NULL"
                
        Case "*"
                Construct_Filter = ""
                
        Case Else
                If InStr( sPar_val, "*") > 0 Then
                        ' Asterisk found in string. Use LIKE
                        Construct_Filter = "AND "& sCol_name &" LIKE '"& Replace( sPar_val, "*", "%" ) &"'"
                Else
                        ' No asterisk. Use =
                        Construct_Filter = "AND "& sCol_name &" = '"& sPar_val &"'"
                End If
                
        End Select
        
End Function
'-----------------------------------------------------------------------------------------------------------------------------------
Function Is_Filter_In_Use ( sFilters )
        Dim filters, filterName
        Is_Filter_In_Use = FALSE
        
        filters = Split( Replace( sFilters, " ", "" ), "," )
        
        For Each filterName In filters
                If Request( filterName ) <> "*" Then 
                        Is_Filter_In_Use = TRUE
                        Exit For
                End If
        Next
        
End Function
'-----------------------------------------------------------------------------------------------------------------------------------
%>
          <!--------------- ACTION BUTTONS -------------------------->
          <form name="filter" method="get" action="<%=scriptName%>">
          <table width="100%" border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td width="1" valign="middle" background="images/bg_action_norm.gif"><img src="images/spacer.gif" width="5" height="35"></td>
          <td width="100%" valign="middle" background="images/bg_action_norm.gif"><%
                  If Request("rtag_id") = ""  OR  _
                         Request("pv_id") = "" OR _
                         bIsPatch OR _
                         (NOT objAccessControl.UserLogedIn) OR _
                         ( NOT objAccessControl.IsDataVisible ("PROJECTS", DB_PROJ_ID, "EditProjects") ) OR _
                         (ReleaseMode = enumDB_RELEASE_IN_CLOSED_MODE) OR _ 
                         (ReleaseMode = enumDB_RELEASE_IN_CCB_MODE) _
                  Then
                                'Response.write "HERE"& Request("rtag_id")
                                Response.write "<img src='images/abtn_use_this_version_off.gif' width='108' height='26' hspace='1' border='0'>"
                                
                  Else
                        
                        
                        If pkgInfoHash.Item("can_edit_in_project") = "1" OR  _
                           objAccessControl.IsVisible("EditPackageInExternalProjects")  _
                           
                        Then
                                Response.write "<a href='"& scriptName &"?"& Persists_Query_String( "action=true" ) &"' onClick='return confirmAction(""You are about to insert   "& sPkg_Name &" "& sPkg_Version &"   into a project release. \nDo you want to proceed?"");'><img src='images/abtn_use_this_version.gif' alt='Use this version in project release.' width='107' height='25' hspace='1' border='0'></a>"
                        End If
                        
                        
                  End If
                  
                  Response.write "<img src='images/spacer.gif' width='25' height='25'>"
                  If filterInUse Then
                        Response.write "<input type='image' name='btn' src='images/abtn_filter_on.gif' width='25' height='25' border='0' alt='Apply filter. (Filter is in use!)'>"
                  Else
                    Response.write "<input type='image' name='btn' src='images/abtn_filter.gif' width='25' height='25' border='0' alt='Apply filter'>"
                  End If
                  Response.write "<a href='"& scriptName &"?"& Persists_Query_String( "filter_reset=true" ) &"'><img src='images/abtn_remove_filter.gif' alt='Remove filter' width='25' height='25' hspace='2' border='0'></a>"
                  %></td>
                  <td width="1" valign="middle" background="images/bg_action_norm.gif"><a href="javascript:;" onClick="window.opener.document.location='dependencies.asp?pv_id=<%=parPv_id%>';self.close();"><img src="images/abtn_open.gif" width="46" height="25" hspace="5" border="0" alt="Open In Parent Window."></a></td>
                  <td width="1" valign="middle" background="images/bg_action_norm.gif"><a href="javascript:;" onClick="self.close();"><img src="images/abtn_close.gif" width="46" height="25" hspace="5" border="0" alt="Close this window."></a></td>
        </tr>
      </table>
          <!--------------------- CAPTION ---------------------------->
          <table width="100%" border="0" cellspacing="0" cellpadding="0">
            <tr>
              <td class="lbox_ttl_b" background="images/bg_action_dark.gif" align="center"><%=sPkg_Name%></td>
                </tr>
      </table>
          <!------------------ VERSION LIST -------------------------->
      <table width="100%" border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td background="images/bg_action_norm.gif"> 
            <div id="LayerVersions" style="height: 350px; overflow: auto;" name="LayerVersions"> 
              <table width="100%" border="0" cellspacing="1" cellpadding="2">
                <tr>
                  <td width="1" nowrap background="images/bg_action_dark.gif"><img src="images/spacer.gif" width="15" height="10"></td>
                  <td width="1" nowrap background="images/bg_action_dark.gif">&nbsp;</td>
                  <td width="1" valign="top" nowrap background="images/bg_action_dark.gif" class="form_field">Version&nbsp;&nbsp;<br><input name="FLpkg_version" type="text" class="form_ifilter" value="<%=parFLpkg_version%>" size="15"></td>
                  <td width="1" valign="top" nowrap background="images/bg_action_dark.gif" class="form_field">Last Mod. Date&nbsp;&nbsp;</td>
                  <td width="100%" valign="top" nowrap background="images/bg_action_dark.gif" class="form_field">Reason for this version</td>
                                  <td width="1" valign="top" nowrap background="images/bg_action_dark.gif" class="form_field">Last Modified&nbsp;&nbsp;<br><input name="FLuser_name" type="text" class="form_ifilter" value="<%=parFLuser_name%>" size="15"></td>
                  <td width="1" nowrap background="images/bg_action_dark.gif"></td>
                                  <td width="1" nowrap background="images/bg_action_dark.gif"></td>
                </tr>
                                <%
                                Dim aVersions, lastRow, i, objSortHelper
                                
                                
                                Set rsVB = OraDatabase.DbCreateDynaset( Get_All_Versions ( parPkg_id ), cint(0))
                                
                                
                                
                                
                                ' Descending order
                                If rsVB.RecordCount > 0 Then
                                aVersions = rsVB.GetRows()
                                lastRow = UBound( aVersions, 2 )
                                
                                Set objSortHelper = New SortHelper
                                
                                
                                ' Sort versions
                                Call objSortHelper.VersionSort( aVersions, 0, lastRow, rsVB.FieldIndex("pkg_version") )
                                
                                
                                DestroyPackage = ""
                                CanDestroyPackage = objAccessControl.IsVisible ( "DestroyPackage" )
                                
                                ' Descending order
                                For i = lastRow To 0 Step -1
                                
                                %>
                                <%      ' Highlight row case
                                        rowColor = IMGBG_ROW
                                        imgPointer = ""
                                        If CStr( aVersions( rsVB.FieldIndex("pv_id"), i ) ) = parPv_id Then 
                                                rowColor = IMGBG_ROW_HI
                                                imgPointer = IMG_PONTER
                                        End If
                                        
                                        ' Official/Unofficial case
                                        imgLock = IMG_NOT_OFFICIAL
                                        'fieldRelease_Date = ""
                                        'fieldReleased_By = ""
                                        If (aVersions( rsVB.FieldIndex("dlocked"), i ) = "Y")  OR (aVersions( rsVB.FieldIndex("dlocked"), i ) = "A") Then
                                                imgLock = IMG_OFFICIAL
                                        End If
                                        
                                        fieldRelease_Date = EuroDateTime ( aVersions( rsVB.FieldIndex("modified_stamp"), i ) )
                                        fieldReleased_By = "<a href='mailto:"& aVersions( rsVB.FieldIndex("user_email"), i ) &"' class='txt_linked'><img src='images/i_user.gif' width='10' height='13' hspace='2' border='0' align='absmiddle' alt='"& aVersions( rsVB.FieldIndex("full_name"), i ) &" &lt;"& aVersions( rsVB.FieldIndex("user_email"), i ) &"&gt;'>"& aVersions( rsVB.FieldIndex("user_name"), i ) &"</a>"
                                        
                                        ' Full Release Notes availability
                                        fieldDownloadFullReleaseNotes = ""
                                        If NOT IsNull( aVersions( rsVB.FieldIndex("release_notes_info"), i ) ) OR ( InStr( aVersions( rsVB.FieldIndex("release_notes_info"), i ), "MGS:") < 1)  Then
                                                fieldDownloadFullReleaseNotes = "<a href='"& HTTP_PKG_ARCHIVE & aVersions( rsVB.FieldIndex("release_notes_info"), i ) &"' target='_blank'><img src='images/i_download_small.gif' alt='Download full release notes.' width='16' height='16' hspace='2' border='0'></a>"
                                        End If
                                        
                                        anchorName = "ANC_"& aVersions( rsVB.FieldIndex("pv_id"), i )
                                        If aVersions( rsVB.FieldIndex("is_patch"), i ) = "Y" Then
                                                URLstring = "_wform_versions_history_release_notes.asp?"& Persists_Query_String( "pv_id="& aVersions( rsVB.FieldIndex("pv_id"), i ) ) &"#"& anchorName
                                        Else
                                                URLstring = scriptName &"?"& Persists_Query_String( "pv_id="& aVersions( rsVB.FieldIndex("pv_id"), i ) ) &"#"& anchorName
                                        End If
                                        
                                        
                                        ' Set destroy package action
                                        If CanDestroyPackage Then
                                                DestroyPackage = "<a href='_destroy_package.asp?pv_id="& aVersions( rsVB.FieldIndex("pv_id"), i )  &"&bfile="& ScriptName &"&rtag_id="& parRtag_id &"&FLuser_name="& parFLuser_name &"&FLpkg_version="& parFLpkg_version &"&rfile="& parRfile &"&pkg_id="& parPkg_id &"&OLDpv_id="& parOLDpv_id &"' "&_
                                                                                 " title='Destroy this package from the database.' "&_
                                                                                 " onClick='return confirmAction(""You are about to destroy ["& sPkg_Name &" "& aVersions( rsVB.FieldIndex("pkg_version"), i ) &"]. You cannot undo this operation.\nDo you want to proceed?"");' ><img src='icons/i_destroy_package_sml.gif' width='15' height='15' border='0' ><a>"
                                        End If
                                %>
                <tr <%=Set_Row_Style ( URLstring )%>> 
                  <td align="right" background="images/bg_action_dark.gif"><%=imgPointer%></td>
                  <td align="center" valign="top" <%=rowColor%>><%=imgLock%></td>
                  <td valign="top" nowrap <%=rowColor%>><a name="<%=anchorName%>"></a><a href="<%=URLstring%>" class="txt_linked"><%=aVersions( rsVB.FieldIndex("pkg_version"), i )%></a></td>
                  <td valign="top" nowrap <%=rowColor%> class="form_item"><%=fieldRelease_Date%></td>
                  <td valign="top" <%=rowColor%> class="form_item"><%=NewLine_To_BR ( To_HTML( aVersions( rsVB.FieldIndex("comments"), i ) ) )%></td>
                  <td valign="top" nowrap <%=rowColor%> class="form_item"><%=fieldReleased_By%></td>
                  <td align="center" valign="top" <%=rowColor%>><%=fieldDownloadFullReleaseNotes%></td>
                                  <td align="center" valign="top" <%=rowColor%>><%=DestroyPackage%></td>
                </tr>
                                <%
                                Next
                                End If
                                %>
              </table>
            </div></td>
        </tr>
      </table> 
          <input type="hidden" name="rtag_id" value="<%=parRtag_id%>">
          <input type="hidden" name="pkg_id" value="<%=parPkg_id%>">
          <input type="hidden" name="rfile" value="<%=parRfile%>">
          <input type="hidden" name="OLDpv_id" value="<%=parOLDpv_id%>">
          <input type="hidden" name="pv_id" value="<%=parPv_id%>">
          <input type="hidden" name="filter_reset" value="">
          </form>