<%@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 rsQry Dim parProjId Dim nProjTreeVersion Dim objBtnControl Dim currLevel, lastLevel, lastRow, aVersions, i '------------ 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 '------------ Variable Init ------------------- parProjId = Request("proj_id") nProjTreeVersion = GetProjTreeVersion( parProjId ) Set objBtnControl = New ActionButtonControl objPMod.PersistInQryString("proj_id") '---------------------------------------------- %> <% '---------------------------------------------------------------------------------------------------------------------------------------------- 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 '-- 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 ' 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("CreateNewRelease") Then Call objBtnControl.Active ( "btnEditRelease", "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 '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 %> <%Else%> <%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 End If rsQry.Close Set rsQry = Nothing %>
Release Name Associated MASS_REF CommentsUsed By Comments
<%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")%> <% 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 End If%> <%If parProjId <> 2 Then%> <%If assocMASSREFName <> "None." Then%> ><%=assocMASSREFName%><%=assocMASSREFName%><%=comment%>None.<%=NewLine_To_BR(rsQry("description"))%>
<%Else%> <%If parProjId <> 2 Then %> <%Else%> <%End If%> <% OraDatabase.Parameters.Add "PROJ_ID", parProjId, ORAPARM_INPUT, ORATYPE_NUMBER Set rsQry = OraDatabase.DbCreateDynaset( GetQuery ("ReleaseVersionList.sql") , ORADYN_DEFAULT ) lastLevel = 0 OraDatabase.Parameters.Remove "PROJ_ID" If rsQry.RecordCount > 0 Then 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 '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 End If%> <%If parProjId <> 2 Then%> <%If assocMASSREFName <> "None." Then%> <%Else%> <%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 End If rsQry.Close Set rsQry = Nothing %>
  Release Name   Associated MASS_REF Comments  Used By Comments
"> " class="body_link" title="Open Release..."><%=ReleaseIcon( aVersions( rsQry.FieldIndex("official"), i ) )%> <%=aVersions( rsQry.FieldIndex("rtag_name"), i )%> ><%=assocMASSREFName%>  <%=assocMASSREFName%> <%=comment%>  None.<%=NewLine_To_BR( aVersions( rsQry.FieldIndex("description"), i ) )%>

<% Call Messenger ( "Note that Closed releases are not shown in this view.
Switch to Tree View to see all release for this project.", 3, "400" ) %> <%End If%>
Icon Release State
Open Mode
Restrictive Mode
CCB Mode
Closed Mode
Archive Mode

 

<% Call Destroy_All_Objects %>