%
'=====================================================
' Build Environment
'=====================================================
%>
<%
'------------ Variable Definition -------------
Dim parOLshow ' show/hide outer-latest
Dim parBshow ' expand/collapse base views
Dim parPshow ' expand/collapse personal views
Dim parPview ' enable/disable all personal views
Dim parDview ' enable/disable deployment view.
Dim IMG_locked
Dim rsEnvQry
Dim pvIdInList
Dim checked
Dim disabled
Dim pkgType
Dim SCRIPT_NAME 'Use this here only as the previous one ScriptName is Already Defined
'------------ Constants Declaration -----------
Const imgMaximise = ""
Const imgMinimise = ""
Const imgForced = ""
Const imgLocked = ""
Const hlColor = "#DDDDDD"
Const imgAdded = ""
Const imgRemoved = ""
'------------ Variable Init -------------------
parOLshow = QStrPar("OLshow")
parBshow = QStrPar("Bshow")
parPshow = QStrPar("Pshow")
parPview = QStrPar("Pview")
parDview = QStrPar("Dview")
'----------------------------------------------
%>
<%
'------------------------------------------------------------------------------------------------------------------------------------------------
Function GetEnvTab ( sEnvTab )
If sEnvTab <> "" Then
GetEnvTab = sEnvTab
Response.Cookies(COOKIE_RELEASE_MANAGER_MEMORY)("envtab") = sEnvTab
Else
If Request.Cookies(COOKIE_RELEASE_MANAGER_MEMORY)("envtab") <> "" Then
GetEnvTab = Request.Cookies(COOKIE_RELEASE_MANAGER_MEMORY)("envtab")
Else
GetEnvTab = enumENVTAB_WORK_IN_PROGRESS
Response.Cookies(COOKIE_RELEASE_MANAGER_MEMORY)("envtab") = enumENVTAB_WORK_IN_PROGRESS
End If
End If
End Function
'------------------------------------------------------------------------------------------------------------------------------------------------
Sub Display_Env_BaseView ( NNbase_view_id, SSbase_view, BBviewCollapsed, SScontents )
%>
style="display:none;"<%Else%>style="display:block;"<%End If%>>
<%If NOT BBviewCollapsed Then %>
<%=SScontents%>
<%Else%>
<%=enumLOADING%>
<%End If%>
<%
End Sub
'------------------------------------------------------------------------------------------------------------------------------------------------
Sub Print_View( NNEnvTab, SSviewtype, NNrtag_id, SSshowviews, NNuser_id )
Dim rsView, Query_String
'Dim btn1
Dim tmpURL
Dim SSscript
Dim qstrPar
Dim nViewType
Dim nTrueRecordCount
Dim nOperation
Dim relContentsSTR, viewCollapsed, curr_view_id, view_name
If scriptName = "find.asp" Then
SSscript = "dependencies.asp"
Else
SSscript = scriptName
End If
If SSviewtype = "guest" Then
nViewType = 1
qstrPar = "Bshow"
ElseIf SSviewtype = "personal" Then
nViewType = 2
qstrPar = "Pshow"
End If
OraDatabase.Parameters.Add "VIEW_TYPE", nViewType, ORAPARM_INPUT, ORATYPE_NUMBER
'OraDatabase.Parameters.Add "VIEW_ID_SHOW_LIST", ShowView( Pipes2Commas( SSshowviews ), SSviewtype ), ORAPARM_INPUT, ORATYPE_VARCHAR2
OraDatabase.Parameters.Add "VIEW_ID_SHOW_LIST", GetShowViewList(), ORAPARM_INPUT, ORATYPE_VARCHAR2
OraDatabase.Parameters.Add "RTAG_ID", NNrtag_id, ORAPARM_INPUT, ORATYPE_NUMBER
OraDatabase.Parameters.Add "USER_ID", NNuser_id, ORAPARM_INPUT, ORATYPE_NUMBER
OraDatabase.Parameters.Add "TRUE_RECORD_COUNT", NULL, ORAPARM_OUTPUT, ORATYPE_NUMBER
OraDatabase.Parameters.Add "RECORD_SET", NULL, ORAPARM_OUTPUT, ORATYPE_CURSOR
'If it's a Deployment View
If parDview = "enable" Then
' Decide which environment list is to be displayed to the Integrators/Testers
Select Case CInt( NNEnvTab )
Case enumENVTAB_PRODRELEASE
OraDatabase.ExecuteSQL "BEGIN PK_ENVIRONMENT.GET_PRODRELEASE_ITEMS ( :RTAG_ID, :TRUE_RECORD_COUNT, :RECORD_SET ); END;"
Case enumENVTAB_INTEGRATE
OraDatabase.ExecuteSQL "BEGIN PK_ENVIRONMENT.GET_INTEGRATION_ITEMS ( :RTAG_ID, :TRUE_RECORD_COUNT, :RECORD_SET ); END;"
Case enumENVTAB_TEST
OraDatabase.ExecuteSQL "BEGIN PK_ENVIRONMENT.GET_TEST_ITEMS ( :RTAG_ID, :TRUE_RECORD_COUNT, :RECORD_SET ); END;"
Case enumENVTAB_DEPLOY
OraDatabase.ExecuteSQL "BEGIN PK_ENVIRONMENT.GET_DEPLOY_ITEMS ( :RTAG_ID, :TRUE_RECORD_COUNT, :RECORD_SET ); END;"
Case enumENVTAB_REJECT
OraDatabase.ExecuteSQL "BEGIN PK_ENVIRONMENT.GET_REJECT_ITEMS ( :RTAG_ID, :TRUE_RECORD_COUNT, :RECORD_SET ); END;"
End Select
Else
' Decide which environment list is to be displayed
Select Case CInt( NNEnvTab )
Case enumENVTAB_WORK_IN_PROGRESS
OraDatabase.ExecuteSQL "BEGIN PK_ENVIRONMENT.GET_WORK_IN_PROGRESS_ITEMS ( :VIEW_TYPE, :USER_ID, :RTAG_ID, :VIEW_ID_SHOW_LIST, :TRUE_RECORD_COUNT, :RECORD_SET ); END;"
Case enumENVTAB_PLANNED
OraDatabase.ExecuteSQL "BEGIN PK_ENVIRONMENT.GET_PENDING_ITEMS ( :VIEW_TYPE, :USER_ID, :RTAG_ID, :VIEW_ID_SHOW_LIST, :TRUE_RECORD_COUNT, :RECORD_SET ); END;"
Case enumENVTAB_RELEASED
OraDatabase.ExecuteSQL "BEGIN PK_ENVIRONMENT.GET_RELEASED_ITEMS ( :VIEW_TYPE, :USER_ID, :RTAG_ID, :VIEW_ID_SHOW_LIST, :TRUE_RECORD_COUNT, :RECORD_SET ); END;"
Case Else
OraDatabase.ExecuteSQL "BEGIN PK_ENVIRONMENT.GET_ENVIRONMENT_ITEMS ( :VIEW_TYPE, :USER_ID, :RTAG_ID, :VIEW_ID_SHOW_LIST, :TRUE_RECORD_COUNT, :RECORD_SET ); END;"
End Select
End If
' Get Record set from database
Set rsView = OraDatabase.Parameters("RECORD_SET").Value
nTrueRecordCount = OraDatabase.Parameters("TRUE_RECORD_COUNT").Value
OraDatabase.Parameters.Remove "RTAG_ID"
OraDatabase.Parameters.Remove "USER_ID"
OraDatabase.Parameters.Remove "VIEW_TYPE"
OraDatabase.Parameters.Remove "VIEW_ID_SHOW_LIST"
OraDatabase.Parameters.Remove "RECORD_SET"
OraDatabase.Parameters.Remove "TRUE_RECORD_COUNT"
' Initialise variables
If ((NOT rsView.BOF) AND (NOT rsView.EOF)) Then
relContentsSTR = ""
viewCollapsed = FALSE
curr_view_id = rsView("view_id") ' Set current view
view_name = rsView("view_name")
End If
While ((NOT rsView.BOF) AND (NOT rsView.EOF))
'==== Get View Contents ====
If NOT IsNull(rsView.Fields("pv_id")) Then
tmpURL = SSscript &"?pv_id="& rsView.Fields("pv_id") &"&rtag_id="& parRtag_id
IMG_locked = ""
If rsView.Fields("dlocked") = "Y" Then IMG_locked = imgLocked
' DEVI-45275 - Normally, dlocked=Y items are denoted with a padlock icon on the web page. Since we can now merge
' into the pending tab, the dlocked=Y items that end up there would not give any visual indication to the user
' as to why they are present. So, instead of the padlock icon, display the added or removed icon to indicate
' what the intended action is to be, once the pending item is approved.
' Obviously, this functionality does not apply if we are in the deployment view, and only applies if viewing
' the PENDING or ALL environment tabs.
' With regard to the operation value, A = Added, S = Subtracted
nOperation = " "
If parDview <> "enable" AND (CInt( NNEnvTab ) = enumENVTAB_PLANNED OR CInt( NNEnvTab ) = enumENVTAB_ALL) Then
nOperation = rsView.Fields("operation") ' NB. this field is only availble if earlier query was GET_PENDING_ITEMS or GET_ENVIRONMENT_ITEMS
If nOperation = "A" Then
IMG_locked = imgAdded
ElseIf nOperation = "S" Then
IMG_locked = imgRemoved
End If
End If
relContentsSTR = relContentsSTR & "
" & VBNewLine
If rsView("pkg_state") = 0 And rsView.Fields("deprecated_state") <> "" Then
relContentsSTR = relContentsSTR & "
"& VBNewLine
Else
If (parDview <> "enable") AND ( ( CInt(NNEnvTab) = enumENVTAB_PLANNED ) OR ( Request("envtab") = enumENVTAB_PLANNED ) ) Then
' if package version is unlocked, rejected, or pending approval, or is to be added/subtracted to/from the release (DEVI-45275), then
If (rsView("dlocked") = "N") OR (rsView("dlocked") = "R") OR (rsView("dlocked") = "P") OR (nOperation = "A") OR (nOperation = "S") Then
checked = NULL
disabled = NULL
' disable check box if not logged in, or if not in open mode and user has no permission to approve pending
If objAccessControl.UserLogedIn Then
If ( ReleaseMode <> enumDB_RELEASE_IN_OPEN_MODE ) Then
If NOT objAccessControl.IsActive("ApproveForAutoBuild") Then
disabled = "disabled"
End If
End If
Else
disabled = "disabled"
End If
Else ' always check and disable the checkbox
checked = "checked"
disabled = "disabled"
End If
relContentsSTR = relContentsSTR & "
" ' Collapsed view displays dots
viewCollapsed = TRUE
End If
rsView.MoveNext
If ((NOT rsView.BOF) AND (NOT rsView.EOF)) Then
' NOT end of the record set
If curr_view_id <> rsView("view_id") Then
'====== Draw buttons =================================
'If InStrPipes( SSshowviews, curr_view_id ) Then
' btn1 = ""& imgMinimise &""
'Else
' btn1 = ""& imgMaximise &""
'End If
'====== Print contents ===============================
relContentsSTR = "
" & relContentsSTR & "
"
Call Display_Env_BaseView ( curr_view_id, view_name, viewCollapsed, relContentsSTR )
curr_view_id = rsView("view_id")
view_name = rsView("view_name")
relContentsSTR = "" ' Empty the contents string
viewCollapsed = FALSE
End If
Else
' End of the record set
'====== Draw buttons =================================
'If InStrPipes( SSshowviews, curr_view_id ) Then
' btn1 = ""& imgMinimise &""
'Else
' btn1 = ""& imgMaximise &""
'End If
'====== Print contents ===============================
relContentsSTR = "
" & relContentsSTR & "
"
Call Display_Env_BaseView ( curr_view_id, view_name, viewCollapsed, relContentsSTR )
End If
WEnd
If relContentsSTR <> "" Then
Response.write "Icon Legend... "
End If
If nTrueRecordCount > 0 Then
If rsView.RecordCount < 1 Then
'If qstrPar = "Bshow" Then
' 'Release is empty. Draw default box for Base view
' Call DisplayInfo ( "EMPTY_RELEASE_CONTENTS", "100%" )
'
'End If
If qstrPar = "Pshow" Then
'Release is empty. Draw default box for Personal view
Call DisplayInfo ( "PERSONAL_VIEW_NOT_SETUP", "100%" )
End If
End If
End If
' Destroy
rsView.Close
Set rsView = nothing
End Sub
'------------------------------------------------------------------------------------------------------------------------------------------------
Sub PopulateGetShowViews ( ByRef outShowView )
If Session(SESSION_SHOW_BASE_VIEW) <> "" Then
Set outShowView = Session(SESSION_SHOW_BASE_VIEW)
End If
End Sub
'------------------------------------------------------------------------------------------------------------------------------------------------
Function GetShowViewList ()
'If SSparshow <> "" Then
' ' get list from query string
' ShowView = SSparshow
'ElseIf Request.Cookies("RELEASEMANAGER_VIEW_SHOW")( SSviewtype ) <> "" Then
' ' get list from cookie
' ShowView = Request.Cookies("RELEASEMANAGER_VIEW_SHOW")( SSviewtype )
'Else
' ' no list i.e. collapse all views
' ShowView = -1
'End If
'If oShowView.Count = 0 Then
' GetShowViewList = -1
'Else
' GetShowViewList = Join( oShowView.Keys, "," )
'End If
If Request.Cookies(COOKIE_RELMGR_SHOW_VIEW) = "" Then
GetShowViewList = -1
Else
GetShowViewList = Request.Cookies(COOKIE_RELMGR_SHOW_VIEW)
End If
End Function
'------------------------------------------------------------------------------------------------------------------------------------------------
' This function forms a URL to use for refreshing the current dependencies.asp based page using the settings that are in effect at the time.
' Most importantly, it filters out the pv_id parameter if it is null (which otherwise would cause the page to be rendered incorreclty for an
' as yet, unknown reason).
'
Function RefreshedURL(NNdview, NNpview, NNpv_id, NNrtag_id)
Dim url
url = scriptName & "?Dview=" & NNdview & "&Pview=" & NNpview
If NNpv_id Then
url = url & "&pv_id=" & NNpv_id
End If
url = url & "&rtag_id=" & NNrtag_id
RefreshedURL = url
End Function
'------------------------------------------------------------------------------------------------------------------------------------------------
%>
<%
'------------------------- MAIN LINE ---------------------------
%>
<%If parRtag_Id <> "" Then%>
<%
Dim rsTest
Set rsTest = OraDataBase.DbCreateDynaset( "SELECT PROJ_ID FROM RELEASE_TAGS WHERE RTAG_ID ="&parRtag_id , ORADYN_DEFAULT )
If (((ReleaseMode = enumDB_RELEASE_IN_CCB_MODE) OR (ReleaseMode = enumDB_RELEASE_IN_RESTRICTIVE_MODE)) AND objAccessControl.IsActive("AddDeletePackageInRestrictiveMode") And objAccessControl.IsDataActive("PROJECTS", DB_PROJ_ID, "EditProjects")) OR (ReleaseMode = enumDB_RELEASE_IN_OPEN_MODE ) Then
Response.write "
"
'Response.write "
"
Else
Response.write "
"
'Response.write "
"
End If
If (pkgInfoHash.Item("dlocked") <> "Y") AND (objAccessControl.UserLogedIn) AND (Request("pv_id") <> "") Then
If ( (objAccessControl.UserName = pkgInfoHash.Item("creator")) OR (objAccessControl.IsActive("DestroyPackageFromRelease")) ) Then
Response.write "
"
End If
End If
If objAccessControl.IsActive("CreateNewRelease") Then
Response.write "
"
End If
Response.write "
"
If objAccessControl.UserLogedIn Then
If QStrPar("Pview") = "disable" Then
Response.write "
"
Else
Response.write "
"
End If
Else
Response.write "
"
End If
If QStrPar("Dview") = "enable" Then
Response.write "
"
Else
Response.write "
"
End If
Response.write "
"
Response.write "
"
Response.write "
"
Response.write "
"
If ( (QStrPar("Dview") <> "enable") AND ( (CInt(nEnvTab) = enumENVTAB_PLANNED) OR (Request("envtab") = enumENVTAB_PLANNED) ) ) Then
If objAccessControl.UserLogedIn Then
If ( ReleaseMode <> enumDB_RELEASE_IN_OPEN_MODE ) Then
If objAccessControl.IsActive("ApproveForAutoBuild") OR objAccessControl.IsActive("ApproveForManualBuild") Then
Response.write "
"
End If
Else
Response.write "
"
End If
End If
End If
rsTest.Close()
Set rsTest = nothing
%>