<%@LANGUAGE="VBSCRIPT"%> <% '===================================================== '| | '| RTREE | '| | '===================================================== %> <% Option explicit ' Good idea to set when using redirect Response.Expires = 0 ' always load the page, dont store %> <% ' Make sure rtag_id is always present If Request("proj_id") = "" Then Response.Redirect("index.asp") End If '------------ ACCESS CONTROL ------------------ %> <% '------------ Variable Definition ------------- Dim objSortHelper Dim ViewType Dim rsQryStr Dim rsQry Dim parProjId Dim parShowFilter Dim nProjTreeVersion Dim objBtnControl Dim currLevel, lastLevel, lastRow, aVersions, i Dim dListFilter Dim objDmSts '------------ Constants Declaration ----------- 'Const LIMG_TREE_I_HALF = "" 'Const LIMG_TREE_I_FULL = "" 'Const LIMG_TREE_T = "" Const LIMG_TREE_I_HALF = "" Const LIMG_TREE_I_FULL = "" Const LIMG_TREE_T = "" Const LIMG_LIST_VIEW = "" Const LIMG_TREE_VIEW = "" Const LCONST_LIST_VIEW = 1 Const LCONST_TREE_VIEW = 2 Const DEFAULT_SHOW_FILTER = "'N','R','C'" Const LIMG_FILTER_ON = "" Const LIMG_FILTER_OFF = "" Const LIMG_DROP_DOWN_ARROW = "" '------------ Variable Init ------------------- parProjId = Request("proj_id") ' Get show_filter from query string or failing that, from the cookie. ' Make sure that if neither supplies it, use the default parShowFilter = Request("show_filter") If NOT IsNull(parShowFilter) AND parShowFilter <> "" Then Response.Cookies (COOKIE_RELEASE_MANAGER_MEMORY)("show_filter") = parShowFilter Else parShowFilter = Request.Cookies (COOKIE_RELEASE_MANAGER_MEMORY)("show_filter") If IsNull(parShowFilter) OR parShowFilter = "" Then parShowFilter = DEFAULT_SHOW_FILTER Response.Cookies (COOKIE_RELEASE_MANAGER_MEMORY)("show_filter") = parShowFilter End If End If Set dListFilter = CreateObject("Scripting.Dictionary") nProjTreeVersion = GetProjTreeVersion( parProjId ) Set objBtnControl = New ActionButtonControl objPMod.PersistInQryString("proj_id") '---------------------------------------------- %> <% '-------------------------------------------------------------------------------------------------------------------------- ' Determines icon that precedes the drop down arrow in the filter box Function GetIsListFilterInUseIcon() GetIsListFilterInUseIcon = LIMG_FILTER_ON & LIMG_DROP_DOWN_ARROW If dListFilter.Count > 0 Then GetIsListFilterInUseIcon = LIMG_FILTER_OFF & LIMG_DROP_DOWN_ARROW End If End Function '-------------------------------------------------------------------------------------------------------------------------- ' Determines if the specified filter is on/off and returns a string to use to check the associated checkbox accordingly Function GetIsListFilterChecked( nFilterId ) GetIsListFilterChecked = "" If dListFilter.Exists ( "'" & CStr(nFilterId) & "'" ) Then GetIsListFilterChecked = "checked" End If End Function '-------------------------------------------------------------------------------------------------------------------------- ' Reads the cookie for the filter and creats a dictionary element for each item therein. the dictionary ' is used by the GetIsListFilterChecked function to determine checkbox state in the filter options Sub GetListFilterValues ( outDepFilter ) Dim FilterVal, aFilterValues If Request.Cookies(COOKIE_RELEASE_MANAGER_MEMORY)("show_filter") <> "" Then aFilterValues = Split( Replace( Request.Cookies(COOKIE_RELEASE_MANAGER_MEMORY)("show_filter"), " ", ""), ",") For Each FilterVal In aFilterValues outDepFilter.Item (CStr( FilterVal )) = "" Next End If End Sub '---------------------------------------------------------------------------------------------------------------------------------------------- Function GetProjTreeVersion ( nProjId ) Dim rsTemp, QueryString QueryString = _ " SELECT rt.RTAG_VERSION "&_ " FROM RELEASE_TAGS rt "&_ " WHERE rt.PROJ_ID = :PROJ_ID "&_ " AND rt.RTAG_ID = rt.PARENT_RTAG_ID" OraDatabase.Parameters.Add "PROJ_ID", nProjId, ORAPARM_INPUT, ORATYPE_NUMBER Set rsTemp = OraDatabase.DbCreateDynaset( QueryString, cint(0)) OraDatabase.Parameters.Remove "PROJ_ID" If ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) Then GetProjTreeVersion = rsTemp("rtag_version") Else GetProjTreeVersion = NULL End If rsTemp.Close Set rsTemp = nothing End Function '---------------------------------------------------------------------------------------------------------------------------------------------- Sub RenderRowConnectors ( nLastLevel, nCurrLevel ) Dim i, LastLine '-- Initial Draw -- If nLastLevel = 0 Then nLastLevel = nCurrLevel Exit Sub End If '-- Calculate number of half lines rendered If nLastLevel < nCurrLevel Then LastLine = nLastLevel Else LastLine = nCurrLevel End If '-- Render half lines For i = 1 To LastLine Response.write LIMG_TREE_I_HALF Next End Sub '---------------------------------------------------------------------------------------------------------------------------------------------- Sub RenderIndent ( nLastLevel, nCurrLevel ) Dim i If nCurrLevel <= 1 Then Exit Sub '-- Render half lines If nCurrLevel > 2 Then For i = 1 To nCurrLevel - 2 Response.write LIMG_TREE_I_FULL Next End If '-- Render branch or line If nLastLevel < nCurrLevel Then Response.write LIMG_TREE_T Else Response.write LIMG_TREE_I_FULL End If End Sub '---------------------------------------------------------------------------------------------------------------------------------------------- Function GetLevel ( sRtagVersion ) Dim tempArr If InStr( sRtagVersion, "." ) > 0 Then '-- Dot separator found -- '-- Split version -- tempArr = Split( sRtagVersion, "." ) GetLevel = UBound( tempArr ) + 1 Else GetLevel = 1 End If End Function '---------------------------------------------------------------------------------------------------------------------------------------------- Sub NewRelease () On Error Resume Next objEH.Try If NOT IsNumeric(Request("rtag_id_list")) Then Err.Raise 8, "Please select one release only.", "No further details available." Else Call OpenInWindow ( "new_release.asp?rtag_id_list="& Replace( Request("rtag_id_list"), " ","" ) &"&"& objPMod.ComposeURL() ) End If objEH.Catch End Sub '---------------------------------------------------------------------------------------------------------------------------------------------- Sub DestroyRelease () On Error Resume Next objEH.Try If NOT IsNumeric(Request("rtag_id_list")) Then Err.Raise 8, "Please select one release only.", "No further details available." Else If Request("rtag_id_list") = "" Then Err.Raise 8, "Please select one release.", "No further details available." Else Call OpenInWindow ( "_destroy_release.asp?rtag_id_list="& Replace( Request("rtag_id_list"), " ","" ) &"&"& objPMod.ComposeURL() ) End If End If objEH.Catch End Sub '---------------------------------------------------------------------------------------------------------------------------------------------- Sub EditRelease () On Error Resume Next objEH.Try If NOT IsNumeric(Request("rtag_id_list")) Then Err.Raise 8, "Please select one release only.", "No further details available." Else If Request("rtag_id_list") = "" Then Err.Raise 8, "Please select one release.", "No further details available." Else Call OpenInWindow ( "form_edit_release.asp?rtag_id_list="& Replace( Request("rtag_id_list"), " ","" ) &"&"& objPMod.ComposeURL() ) End If End If objEH.Catch End Sub '---------------------------------------------------------------------------------------------------------------------------------------------- Sub MoveRelease () On Error Resume Next objEH.Try If NOT IsNumeric(Request("rtag_id_list")) Then Err.Raise 8, "Please select one release only.", "No further details available." Else If Request("rtag_id_list") = "" Then Err.Raise 8, "Please select one release.", "No further details available." Else Call OpenInWindow ( "form_move_release.asp?rtag_id_list="& Replace( Request("rtag_id_list"), " ","" ) &"&"& objPMod.ComposeURL() ) End If End If objEH.Catch End Sub '---------------------------------------------------------------------------------------------------------------------------------------------- Sub MergeManager () Dim aReleases On Error Resume Next objEH.Try If Request("rtag_id_list") <> "" Then aReleases = Split ( Replace( Request("rtag_id_list"), " ", ""), "," ) If UBound(aReleases) = 0 Then ' Open Merge Manager Call OpenInWindow ( "diff.asp?rtagA="& aReleases(0) ) ElseIf UBound(aReleases) = 1 Then ' Open Merge Manager Call OpenInWindow ( "diff.asp?rtagA="& aReleases(0) &"&rtagB="& aReleases(1) ) Else Err.Raise 8, "Please select maximum two release.", "No further details available." End If Else ' Open Merge Manager without parameters Call OpenInWindow ( "diff.asp" ) End If objEH.Catch End Sub '---------------------------------------------------------------------------------------------------------------------------------------------- Function GetViewType () Dim CookieViewType CookieViewType = Request.Cookies (COOKIE_RELEASE_MANAGER_MEMORY)("RELEASE_VIEW") If CookieViewType <> "" Then ' Get current view type from cookie GetViewType = CInt(CookieViewType) Else ' Set current view to list view Response.Cookies (COOKIE_RELEASE_MANAGER_MEMORY)("RELEASE_VIEW") = LCONST_LIST_VIEW GetViewType = LCONST_LIST_VIEW End If End Function '---------------------------------------------------------------------------------------------------------------------------------------------- Sub SetViewType () If Request("viewtype") = "" Then Exit Sub ' Nothing to do Response.Cookies (COOKIE_RELEASE_MANAGER_MEMORY)("RELEASE_VIEW") = Request("viewtype") End Sub '---------------------------------------------------------------------------------------------------------------------------------------------- %> <% '------------ RUN BEFORE PAGE RENDER ---------- If (Request("action") <> "") Then If Request("btn") = "Show" Then ' Store filter in cookie Response.Cookies (COOKIE_RELEASE_MANAGER_MEMORY)("show_filter") = Request("listFilter") parShowFilter = Request("listFilter") Else '-- Select Action Select Case Request("action") Case "btnNewRelease" Call NewRelease() Case "btnDestroyRelease" Call DestroyRelease() Case "btnEditRelease" Call EditRelease() Case "btnMoveRelease" Call MoveRelease() Case "btnMergeManager" Call MergeManager() Case "btnAdminView" Dim Query_String Query_String = _ " SELECT DISTINCT vi.view_id, vi.view_name"&_ " FROM VIEWS vi"&_ " WHERE vi.view_name = 'PROJECT WIDE'" Set rsQry = OraDatabase.DbCreateDynaset( Query_String , cint(0) ) Dim viewRecordCount Dim id viewRecordCount=0 viewRecordCount = rsQry.RecordCount While (NOT rsQry.BOF) AND (NOT rsQry.EOF) id=rsQry.Fields("view_id") rsQry.MoveNext WEnd rsQry.Close() Set rsQry = nothing If viewRecordCount = 0 Then OraDatabase.Parameters.Add "PROJ_ID", parProjId, ORAPARM_INPUT, ORATYPE_NUMBER Query_String = _ " SELECT DISTINCT vi.view_id, vi.view_name"&_ " FROM VIEWS vi, RELEASE_CONTENT rc, RELEASE_TAGS rt"&_ " WHERE rc.BASE_VIEW_ID = vi.VIEW_ID AND rt.proj_id = "& parProjId &"AND rc.rtag_id = rt.rtag_id"&_ " ORDER BY ( vi.view_name )" Set rsQry = OraDatabase.DbCreateDynaset( Query_String , cint(0) ) OraDatabase.Parameters.Remove "PROJ_ID" viewRecordCount = rsQry.RecordCount While (NOT rsQry.BOF) AND (NOT rsQry.EOF) id=rsQry.Fields("view_id") rsQry.MoveNext WEnd rsQry.Close() Set rsQry = nothing End If If viewRecordCount = 0 Then Call OpenInWindow ( "form_edit_project_view.asp?proj_id="&Request("proj_id")) Else Call OpenInWindow ( "form_edit_project_view.asp?proj_id="&Request("proj_id")&"&FRview_id="&id) End If End Select End If End If ' Set view type if required Call SetViewType () ' Get current view type ViewType = GetViewType() '---------------------------------------------- %> <% Set rsQry = OraDatabase.DbCreateDynaset( "SELECT PROJ_NAME FROM PROJECTS WHERE PROJ_ID="& Request("proj_id"), ORADYN_DEFAULT ) %> <%=rsQry("proj_name")%> <% rsQry.Close Set rsQry = Nothing %>
<% If ViewType = LCONST_TREE_VIEW Then Response.write LIMG_TREE_VIEW Else Response.write LIMG_LIST_VIEW End If %> <% Dim aBtnsDef ' Define action buttons aBtnsDef = Array("btnNewRelease", "btnEditRelease", "btnMoveRelease", "width=20", "btnDestroyRelease", "width=20", "btnMergeManager", "width=20", "btnAdminView") ' Load action buttons from database Call objBtnControl.LoadActionButtons ( aBtnsDef, OraDatabase ) ' Set spacing to minimum between buttons objBtnControl.ButtonSpacer = 0 objBtnControl.ImageHspace = 2 ' Access Control If NOT objAccessControl.IsActive("CreateNewRelease") Then Call objBtnControl.Active ( "btnNewRelease", "N" ) If NOT objAccessControl.IsActive("DestroyRelease") Then Call objBtnControl.Active ( "btnDestroyRelease", "N" ) If NOT objAccessControl.IsActive("CreateNewRelease") Then Call objBtnControl.Active ( "btnMoveRelease", "N" ) ' -- Render Buttons Call objBtnControl.Render ( aBtnsDef, objAccessControl ) %>
<%=objPMod.ComposeHiddenTags()%>
<%If ViewType = LCONST_TREE_VIEW Then%> <%If parProjId <> 2 Then %> <%Else%> <%End If%> <% 'OraDatabase.Parameters.Add "TREE_VERSION", nProjTreeVersion, ORAPARM_INPUT, ORATYPE_NUMBER OraDatabase.Parameters.Add "PROJ_ID", parProjId, ORAPARM_INPUT, ORATYPE_NUMBER Set rsQry = OraDatabase.DbCreateDynaset( GetQuery ("ReleaseVersionTree.sql") , ORADYN_DEFAULT ) lastLevel = 0 'OraDatabase.Parameters.Remove "TREE_VERSION" OraDatabase.Parameters.Remove "PROJ_ID" Dim lastRtagId, parentRtag_id If rsQry.RecordCount > 0 Then Set objDmSts = New DaemonStatus Call objDmSts.GetDaemonStatus(parProjId) 'aVersions = rsQry.GetRows() 'lastRow = UBound( aVersions, 2 ) 'Set objSortHelper = New SortHelper ' Sort versions 'Call objSortHelper.VersionSort( aVersions, 0, lastRow, rsQry.FieldIndex("version") ) 'For i = 0 To lastRow ' Ascending order While (NOT rsQry.BOF) AND (NOT rsQry.EOF) 'currLevel = GetLevel ( aVersions( rsQry.FieldIndex("rtag_version"), i ) ) currLevel = CInt(rsQry("hierarchy")) 'lastLevel = currLevel - 1 %> <% If parProjId <> 2 Then Dim assocMASSREF, rsQryAssoc, assocMASSREFName, link assocMASSREF = rsQry("assoc_mass_ref") If assocMASSREF <> "" Then Set rsQryAssoc = OraDatabase.DbCreateDynaset("SELECT RTAG_NAME, RTAG_ID FROM RELEASE_TAGS WHERE RTAG_ID="&assocMASSREF , ORADYN_DEFAULT) assocMASSREFName = rsQryAssoc("RTAG_NAME") link = "dependencies.asp?rtag_id="&rsQryAssoc("rtag_id") rsQryAssoc.Close Set rsQryAssoc = Nothing Else assocMASSREFName = "None." End If Else Dim UsedBy, rsQryUse, comment, linkB UsedBy = rsQry("rtag_id") If UsedBy <> "" Then Set rsQryUse = OraDatabase.DbCreateDynaset("SELECT * FROM RELEASE_TAGS RT, PROJECTS P WHERE RT.ASSOC_MASS_REF="&rsQry("rtag_id")&" AND RT.PROJ_ID=P.PROJ_ID", ORADYN_DEFAULT) While ((NOT rsQryUse.BOF) AND (NOT rsQryUse.EOF)) If rsQryUse("assoc_mass_ref") = UsedBy Then linkB = "dependencies.asp?rtag_id="&rsQryUse("rtag_id") If comment = "" Then comment = rsQryUse("proj_name") & " -> "& rsQryUse("rtag_name") &"" Else comment = comment &"
" & rsQryUse("proj_name") & " -> "& rsQryUse("rtag_name") &"" End If rsQryUse.MoveNext End If WEnd End If %> <%If comment <> "" Then %> <%Else%> <%End If%> <%End If%> <% lastLevel = currLevel rsQry.MoveNext comment = "" WEnd 'Next Set objDmSts = Nothing End If rsQry.Close Set rsQry = Nothing %>
Release Name Created Comments Daemon StatusCreated Used By Comments Daemon Status
<%Call RenderIndent( lastLevel, currLevel )%> " style="vertical-align:middle;"> <%If rsQry("official") <> "A" Then%> " class="body_link" title="<%=HTMLEncode( rsQry("description") ) %>" > <%End If%> <%=ReleaseIcon( rsQry("official") )%> <%=rsQry("rtag_name")%> <%=rsQry("created_stamp") & " by " & rsQry("creator")%><%=comment%>None.<%=NewLine_To_BR(rsQry("description"))%> <% ' Get daemon summary bar chart for current release Call objDmSts.RenderDaemonStatus(rsQry("rtag_id"),16) %>
<%Else%> <% Call GetListFilterValues ( dListFilter ) %>
<%=GetIsListFilterInUseIcon() %> Show Release Types...
<%If parProjId <> 2 Then %> <%Else%> <%End If%> <% If NOT IsEmpty(parShowFilter) Then OraDatabase.Parameters.Add "PROJ_ID", parProjId, ORAPARM_INPUT, ORATYPE_NUMBER rsQryStr = GetQuery ("ReleaseVersionList.sql") rsQryStr = Replace(rsQryStr, "/*SHOW_FILTER*/", parShowFilter) Set rsQry = OraDatabase.DbCreateDynaset( rsQryStr, ORADYN_DEFAULT ) lastLevel = 0 OraDatabase.Parameters.Remove "PROJ_ID" If rsQry.RecordCount > 0 Then aVersions = rsQry.GetRows() lastRow = UBound( aVersions, 2 ) Set objDmSts = New DaemonStatus Call objDmSts.GetDaemonStatus(parProjId) 'Set objSortHelper = New SortHelper ' Sort versions 'Call objSortHelper.VersionSort( aVersions, 0, lastRow, rsQry.FieldIndex("version") ) For i = 0 To lastRow ' Ascending order 'currLevel = GetLevel ( aVersions( rsQry.FieldIndex("rtag_version"), i ) ) %> <% If parProjId <> 2 Then assocMASSREF = aVersions( rsQry.FieldIndex("assoc_mass_ref"), i ) If assocMASSREF <> "" Then Set rsQryAssoc = OraDatabase.DbCreateDynaset("SELECT RTAG_NAME, RTAG_ID FROM RELEASE_TAGS WHERE RTAG_ID="&assocMASSREF , ORADYN_DEFAULT) assocMASSREFName = rsQryAssoc("RTAG_NAME") link = rsQryAssoc("rtag_id") rsQryAssoc.Close Set rsQryAssoc = Nothing Else assocMASSREFName = "None." End If Else UsedBy = aVersions( rsQry.FieldIndex("rtag_id"), i ) If UsedBy <> "" Then Set rsQryUse = OraDatabase.DbCreateDynaset("SELECT * FROM RELEASE_TAGS RT, PROJECTS P WHERE RT.ASSOC_MASS_REF="&aVersions( rsQry.FieldIndex("rtag_id"), i )&" AND RT.PROJ_ID=P.PROJ_ID", ORADYN_DEFAULT) While ((NOT rsQryUse.BOF) AND (NOT rsQryUse.EOF)) If rsQryUse("assoc_mass_ref") = UsedBy Then linkB = rsQryUse("rtag_id") If comment = "" Then comment = rsQryUse("proj_name") & " -> "& rsQryUse("rtag_name") &"" Else comment = comment &"
" & rsQryUse("proj_name") & " -> "& rsQryUse("rtag_name") &"" End If rsQryUse.MoveNext End If WEnd End If %> <%If comment <> "" Then %> <%Else%> <%End If%> <%End If%> <% 'lastLevel = currLevel comment = "" Next Set objDmSts = Nothing End If rsQry.Close Set rsQry = Nothing End If %>
  Release Name Created Comments Daemon StatusCreated   Used By Comments Daemon Status
"> <%If aVersions( rsQry.FieldIndex("official"), i ) <> "A" Then%> " class="body_link" title="Open Release..."> <%End If%> <%=ReleaseIcon( aVersions( rsQry.FieldIndex("official"), i ) )%> <%=aVersions( rsQry.FieldIndex("rtag_name"), i )%> <%=aVersions( rsQry.FieldIndex("created_stamp"), i) & " by " & aVersions( rsQry.FieldIndex("creator"), i)%> <%=comment%>  None.<%=NewLine_To_BR( aVersions( rsQry.FieldIndex("description"), i ) )%> <% ' Get daemon summary bar chart for current release Call objDmSts.RenderDaemonStatus(aVersions( rsQry.FieldIndex("rtag_id"), i ),16) %>

<%End If%>
Icon Release State
Open Mode
Restrictive Mode
CCB Mode
Closed Mode
Archive Mode

 

<% Call Destroy_All_Objects %>