<% '===================================================== ' Package Action Buttons '===================================================== %> <% Sub ActivateButtonAccordingToReleaseModeAndPermissions(NNbutton, NNpermission) If canActionInProject() Then If (ReleaseMode = enumDB_RELEASE_IN_RESTRICTIVE_MODE) OR(ReleaseMode = enumDB_RELEASE_IN_CCB_MODE) Then If canActionControlInProject(NNpermission) Then Call objBtnControl.Active(NNbutton, "Y") Else Call objBtnControl.Active(NNbutton, "N") End If ElseIf (ReleaseMode = enumDB_RELEASE_IN_OPEN_MODE) Then Call objBtnControl.Active(NNbutton, "Y") Else Call objBtnControl.Active(NNbutton, "N") End If Else Call objBtnControl.Active(NNbutton, "N") End If End Sub Sub RenderActionButtons '--Determine whether the release has an associated MASS_REF Dim rsAssoc, AssocMASSREF, AssocMASSREFValue, StatesUsed If parRtag_id > 0 Then Set rsAssoc = OraDatabase.DbCreateDynaset("SELECT ASSOC_MASS_REF, PRODUCT_STATE_USED FROM RELEASE_TAGS WHERE RTAG_ID="&parRtag_id, cint(0)) AssocMASSREFValue = rsAssoc("ASSOC_MASS_REF") StatesUsed = rsAssoc("PRODUCT_STATE_USED") If NOT IsNull(rsAssoc("ASSOC_MASS_REF")) Then AssocMASSREF = True Else AssocMASSREF = False End If rsAssoc.Close() Set rsAssoc = nothing End If '-- Define Action buttons on this tab If IsNull(pkgInfoHash.Item("is_patch")) Then If parRtag_id > 0 Then If (pkgInfoHash.Item("can_edit_in_project") = "1" OR _ canShowControlInProject("AlterReleaseContentsInRestrictiveMode")) OR _ (pkgInfoHash.Item("v_ext") = ".mas" AND pkgInfoHash.Item("v_ext") = ".cr" OR _ NOT AssocMASSREF OR NOT IsNull(pkgInfoHash.Item("v_ext")) ) Then If pkgInfoHash.Item("is_deployable") = "Y" AND pkgInfoHash.Item("dlocked") = "Y" AND StatesUsed = "Y" Then If pkgInfoHash.Item("product_state") = 1 Then ' For Products that have been approved for Pending Integration aTabBtnsDef = Array("btnNewVersion", "btnVersionHistory", "btnPendingTest", "btnRejectProduct", "width=20", _ "width=20", "btnMoveToView", "btnStickyNotes") ElseIf pkgInfoHash.Item("product_state") = 2 Then ' For Products that have been approved for Pending Test aTabBtnsDef = Array("btnNewVersion", "btnVersionHistory", "btnPendingIntegration", "btnPendingDeployment","btnRejectProduct", "width=20", _ "width=20", "btnMoveToView", "btnStickyNotes") ElseIf pkgInfoHash.Item("product_state") = 3 or pkgInfoHash.Item("product_state") = 4 Then 'For Products that have been approved for Pending Deployment aTabBtnsDef = Array("btnNewVersion", "btnVersionHistory", "btnRemovePackage", "width=20", "btnRejectPackage", "width=20", _ "btnMoveToView", "btnReversionPackage", "width=20", "btnStickyNotes") ElseIf pkgInfoHash.Item("product_state") = 5 Then 'For Products that have been approved for Pending Integration and Deployment aTabBtnsDef = Array("btnNewVersion", "btnVersionHistory", "btnPendingDeployment", "width=20", _ "width=20", "btnMoveToView", "btnStickyNotes") ElseIf IsNull(pkgInfoHash.Item("product_state")) Then If canShowControlInProject("ApprovePendingIntegrateAndDeploy") Then 'For Products that have have not yet been approved for Pending Integration aTabBtnsDef = Array("btnNewVersion", "btnVersionHistory", "btnPendingIntegration", "btnPendingIntegrateAndDeploy", "btnRejectProduct", "width=20", "btnRemovePackage", _ "btnMoveToView", "btnStickyNotes", "btnDeprecation", "btnUnDeprecation") Else 'For Products that have have not yet been approved for Pending Integration aTabBtnsDef = Array("btnNewVersion", "btnVersionHistory", "btnPendingIntegration","btnRemovePackage", "width=20", "btnRejectProduct", "width=20", _ "width=20", "btnMoveToView", "btnStickyNotes") End If Else ' For Packages Not In Release(Bug Fix From Deployment Manager) aTabBtnsDef = Array("btnNewVersion", "btnVersionHistory", "btnRemovePackage", "width=20", "btnMakePending", "btnApprovePackage", "btnMakeRelease", "btnRejectPackage", "width=20", _ "btnMoveToView", "btnReversionPackage", "width=20", "btnStickyNotes", "btnDeprecation", "btnUnDeprecation") End If ElseIf canActionControlInProject("EditCriticalInfoForLockedPackage") Then ' For Packages in Release aTabBtnsDef = Array("btnNewVersion", "btnVersionHistory", "width=20", "btnDestroyWip" ,"btnRemovePackage", "btnMoveWIPToRelease", "width=20", _ "btnAddDaemonInstTestBuildPackage", "btnMakePending", "btnApprovePackage", "btnApproveMerge", "btnMakeRelease", "btnRejectPackage", "btnRejectAutobuildPackage", "btnMakeUnrelease", "width=20", _ "btnMoveToView", "btnReversionPackage","btnLockPackage","btnUnLockPackage", "width=20", "btnStickyNotes", "btnDeprecation", "btnUnDeprecation", "btnAddDaemonInstRipplePackage", "btnDelDaemonInstRipplePackage", "btnDelDaemonInstTestPackage") Else ' For Packages in Release aTabBtnsDef = Array("btnNewVersion", "btnVersionHistory", "width=20", "btnDestroyWip","btnRemovePackage", "btnMoveWIPToRelease", "width=20", _ "btnAddDaemonInstTestBuildPackage", "btnMakePending", "btnApprovePackage", "btnApproveMerge", "btnMakeRelease", "btnRejectPackage", "btnRejectAutobuildPackage", "width=20", _ "btnMoveToView", "btnReversionPackage", "width=20", "btnStickyNotes", "btnDeprecation", "btnUnDeprecation", "btnAddDaemonInstRipplePackage", "btnDelDaemonInstRipplePackage", "btnDelDaemonInstTestPackage") End If Else ' Non-Editable Packages in Release If AssocMASSREF Then aTabBtnsDef = Array("btnNewVersion-MASSREF", "btnVersionHistory", "btnStickyNotes", "btnDeprecation", "btnUnDeprecation") Else aTabBtnsDef = Array("btnVersionHistory", "btnStickyNotes", "btnDeprecation", "btnUnDeprecation") End If End If Else ' For standalone Packages(Not viewed in project release) aTabBtnsDef = Array("btnVersionHistory", "btnRecycleBin", "btnReversionPackage", "width=20", "btnStickyNotes") End If Else ' For Patches aTabBtnsDef = Array("btnMakeRelease", "btnMakeUnrelease", "width=20", _ "btnReversionPackage", "width=20", "btnObsoletePatch", "btnUnobsoletePatch", "width=20","btnStickyNotes") End If ' Load action buttons from database Call objBtnControl.LoadActionButtons(aTabBtnsDef, OraDatabase) ' Set spacing to minimum between buttons objBtnControl.ButtonSpacer = 0 objBtnControl.ImageHspace = 2 '--- Set button conditions --- objBtnControl.IsReadonlyAction = releaseIsClosed(ReleaseMode) objBtnControl.setClosed = releaseIsClosed(ReleaseMode) ' NOTE: At this point, all buttons are Active and Visible and must now be configured ' as appropriate by statements that follow. '--- Set default button settings --- Call objBtnControl.Visible("btnNewVersion", "N") Call objBtnControl.Visible("btnNewVersion-MASSREF", "N") Call objBtnControl.Visible("btnMakePending", "N") Call objBtnControl.Active ("btnMakePending", "N") Call objBtnControl.Visible("btnApprovePackage", "N") Call objBtnControl.Visible("btnMakeRelease", "N") Call objBtnControl.Active ("btnMakeRelease", "N") Call objBtnControl.Active ("btnRejectPackage", "N") Call objBtnControl.Visible("btnRejectPackage", "Y") Call objBtnControl.Active ("btnRejectAutobuildPackage", "N") Call objBtnControl.Visible("btnRejectAutobuildPackage", "N") Call objBtnControl.Visible("btnMakeUnrelease", "N") Call objBtnControl.Active ("btnMakeUnrelease", "N") Call objBtnControl.Active ("btnReversionPackage", "N") Call objBtnControl.Visible("btnObsoletePatch", "N") Call objBtnControl.Visible("btnUnobsoletePatch", "N") Call objBtnControl.Visible("btnDeprecation", "N") Call objBtnControl.Visible("btnUnDeprecation", "N") Call objBtnControl.Active ("btnApproveMerge", "N") Call objBtnControl.Visible("btnApproveMerge", "N") Call objBtnControl.Active ("btnAddDaemonInstRipplePackage", "N") Call objBtnControl.Visible("btnAddDaemonInstRipplePackage", "N") Call objBtnControl.Active ("btnDelDaemonInstRipplePackage", "N") Call objBtnControl.Visible("btnDelDaemonInstRipplePackage", "N") Call objBtnControl.Active ("btnDelDaemonInstTestPackage", "N") Call objBtnControl.Visible("btnDelDaemonInstTestPackage", "N") Call objBtnControl.Active ("btnAddDaemonInstTestBuildPackage", "N") Call objBtnControl.Visible("btnAddDaemonInstTestBuildPackage", "N") Call objBtnControl.Active ("btnMoveWIPToRelease", "N") Call objBtnControl.Visible("btnMoveWIPToRelease", "N") Call objBtnControl.Active ("btnDestroyWip", "N") Call objBtnControl.Visible("btnDestroyWip", "N") Call objBtnControl.Visible("btnUnLockPackage", "N") Call objBtnControl.Active ("btnUnLockPackage", "N") Call objBtnControl.Visible("btnLockPackage", "N") Call objBtnControl.Active ("btnLockPackage", "N") ' -- Change visible buttons for Auto: Manual built packages ' Manually build packages are very rare. Possibly just DataBase patches ' If (pkgInfoHash.Item("build_type") <> "M") Then ' For automatic build Call objBtnControl.Visible("btnApprovePackage", "Y") Call objBtnControl.Active ("btnApprovePackage", "N") Else ' For Manual Build Call objBtnControl.Visible("btnMakeRelease", "Y") Call objBtnControl.Active ("btnMakeRelease", "Y") End If '-- Change button setting the current state of the package ' Release and Locked ' Pending Approval ' Approved Waiting auto build ' Rejected or Unlcoked ' If pkgInfoHash.Item("dlocked") = "Y" Then ' Package is Released and Locked Call objBtnControl.Visible("btnNewVersion", "Y") If Not canActionControlInProject("CreateNewVersion") Then Call objBtnControl.Active("btnNewVersion", "N") End If If AssocMASSREF Then Call objBtnControl.Visible("btnNewVersion-MASSREF", "Y") End If If (parRtag_id > 0) AND canShowControlInProject("DeprecatePackage") Then If (pkgInfoHash.Item("is_deprecated")) Then Call objBtnControl.Visible("btnUnDeprecation", "Y") Else Call objBtnControl.Visible("btnDeprecation", "Y") End If Else Call objBtnControl.Active("btnDeprecation", "N") Call objBtnControl.Visible("btnDeprecation", "Y") End If Call objBtnControl.Active("btnApprovePackage", "N") Call objBtnControl.Active("btnMakeRelease", "N") If pkgInfoHash.Item("can_unofficial") = "true" OR canActionControlInProject("EditCriticalInfoForLockedPackage") Then Call objBtnControl.Visible("btnMakeUnrelease", "Y") Call objBtnControl.Active("btnMakeUnrelease", "Y") End If ' DEVI-45275 - We can now merge existing(locked) versions to planned(pending) whilst assigning an operation to them ' to either(A)dd or(S)ubtract the version from the release. Such items must be "rejectable" so we need to enable the ' reject package button. If pkgInfoHash.Item("planned_operation") <> " " Then Call objBtnControl.Visible("btnRejectPackage", "Y") Call objBtnControl.Active("btnRejectPackage", "Y") Else Call objBtnControl.Visible("btnRejectPackage", "N") End If Call objBtnControl.Visible("btnMakePending", "N") Call objBtnControl.Visible("btnMakeRelease", "N") Call objBtnControl.Visible("btnApprovePackage", "N") Call objBtnControl.Visible("btnAddDaemonInstRipplePackage", "Y") Call ActivateButtonAccordingToReleaseModeAndPermissions("btnAddDaemonInstRipplePackage", "ApproveForAutoBuild") If pkgInfoHash.Item("hasRippleInstr") <> "" Then Call objBtnControl.Visible("btnDelDaemonInstRipplePackage", "Y") Call ActivateButtonAccordingToReleaseModeAndPermissions("btnDelDaemonInstRipplePackage", "ApproveForAutoBuild") End If If pkgInfoHash.Item("hasTestInstr") <> "" Then Call objBtnControl.Visible("btnDelDaemonInstTestPackage", "Y") Call ActivateButtonAccordingToReleaseModeAndPermissions("btnDelDaemonInstTestPackage", "ApproveForAutoBuild") End If If pkgInfoHash.Item("hasRippleInstr") <> "" AND pkgInfoHash.Item("hasTestInstr") <> "" Then Call objBtnControl.Active("btnAddDaemonInstRipplePackage", "N") End If ' Unlock patch or package. Call objBtnControl.Visible("btnUnLockPackage", "Y") Call objBtnControl.Active ("btnUnLockPackage", "Y") ElseIf pkgInfoHash.Item("dlocked") = "P" Then ' In Pending Call objBtnControl.Visible("btnMakePending", "N") Call ActivateButtonAccordingToReleaseModeAndPermissions("btnApprovePackage", "ApproveForAutoBuild") Call ActivateButtonAccordingToReleaseModeAndPermissions("btnMakeRelease", "ApproveForManualBuild") Call ActivateButtonAccordingToReleaseModeAndPermissions("btnRejectPackage", "RejectPackageFromPending") Call objBtnControl.Active ("btnRemovePackage", "N") Call objBtnControl.Visible("btnRemovePackage", "N") ElseIf pkgInfoHash.Item("dlocked") = "A" Then ' In Pending, Approved For Autobuild Call objBtnControl.Visible("btnMakePending", "N") Call objBtnControl.Active("btnMakePending", "N") Call objBtnControl.Visible("btnApprovePackage", "N") Call objBtnControl.Active("btnApprovePackage", "N") Call objBtnControl.Visible("btnRejectPackage", "N") Call objBtnControl.Active("btnRejectPackage", "N") Call objBtnControl.Active ("btnRemovePackage", "N") Call objBtnControl.Visible("btnRemovePackage", "N") Call objBtnControl.Visible("btnRejectAutobuildPackage", "Y") Call objBtnControl.Active ("btnRejectAutobuildPackage", "N") If parRtag_id > 0 Then '--- Allow failed auto-builds to be rejected back to WIP, conditions allowing. ' Can reject if: ' Manual Package and a suitable user ' Auto Package and ' The release has no active daemons OR the package has failed to build ' ' Note: Must match code in _make_reject.asp ' If pkgInfoHash.Item("build_type") = "A" Then If activeDaemonCount(parRtag_id) = 0 _ OR isInDoNotRippleTable(parRtag_id, pkgInfoHash.Item("pv_id")) = TRUE _ OR pkgInfoHash.Item("hasFutureBuild") <> "" Then Call ActivateButtonAccordingToReleaseModeAndPermissions("btnRejectAutobuildPackage", "RejectPackageFromPending") End If Else ' Manual Package should not be in this state If canActionControlInProject("EditCriticalInfoForLockedPackage") Then Call objBtnControl.Active ("btnRejectAutobuildPackage", "Y") End If End If End If Else ' Unlocked or rejected packages(dlocked = N or R) Call objBtnControl.Active ("btnReversionPackage", "Y") Call objBtnControl.Visible("btnReversionPackage", "Y") Call objBtnControl.Visible("btnMakePending", "Y") Call objBtnControl.Active ("btnMakePending", "Y") Call objBtnControl.Visible("btnRejectPackage", "N") ' Patches (which are Manual) can be directly released If NOT IsNull(pkgInfoHash.Item("is_patch")) Then Call objBtnControl.Visible("btnApprovePackage", "N") Call objBtnControl.Visible("btnMakeRelease", "Y") Call objBtnControl.Visible("btnMakeUnrelease", "Y") If NOT canShowControlInProject("ReleasePatch") Then Call objBtnControl.Active("btnMakeRelease", "N") End If Else Call objBtnControl.Visible("btnApprovePackage", "N") Call objBtnControl.Visible("btnMakeRelease", "N") End If Call objBtnControl.Visible("btnMoveWIPToRelease", "Y") Call objBtnControl.Active ("btnMoveWIPToRelease", "Y") Call objBtnControl.Visible("btnAddDaemonInstTestBuildPackage", "Y") Call objBtnControl.Active ("btnAddDaemonInstTestBuildPackage", "Y") If pkgInfoHash.Item("hasTestInstr") <> "" Then Call objBtnControl.Active("btnAddDaemonInstTestBuildPackage", "N") Call objBtnControl.Visible("btnDelDaemonInstTestPackage", "Y") Call objBtnControl.Active("btnDelDaemonInstTestPackage", "Y") End If Call objBtnControl.Visible("btnDestroyWip", "Y") If ((objAccessControl.UserId = pkgInfoHash.Item("creator_id")) OR (canActionControlInProject("DestroyPackageFromRelease"))) Then Call objBtnControl.Active ("btnDestroyWip", "Y") End If If pkgInfoHash.Item("is_wip") Then Call objBtnControl.Active ("btnRemovePackage", "N") Call objBtnControl.Visible("btnRemovePackage", "N") End If ' lock patch or package. Call objBtnControl.Visible("btnLockPackage", "Y") Call objBtnControl.Active( "btnLockPackage", "Y") End If '------------------------------------------------ ' Various other tweaks ' If IsNull(pkgInfoHash.Item("is_obsolete")) Then Call objBtnControl.Visible("btnObsoletePatch", "Y") Else Call objBtnControl.Visible("btnUnobsoletePatch", "Y") End If If NOT(parRtag_id > 0) Then ' Not shown in the context of a Release ' Determine if the package can be destroyed If canShowControlInProject("DestroyPackage") Then Call objBtnControl.Visible("btnRecycleBin", "Y") ElseIf (objAccessControl.UserId = pkgInfoHash.Item("creator_id")) OR(objAccessControl.UserId = pkgInfoHash.Item("owner_id")) Then 'If aVersions(rsVB.FieldIndex("inuse"), i) = 0 Then 'If aVersions(rsVB.FieldIndex("age") , i) < 1000 Then If pkgInfoHash.Item("dlocked") <> "Y" Then 'If pkgInfoHash.Item("dlocked") <> "A" Then Call objBtnControl.Active("btnRecycleBin", "Y") 'End If End If 'End If 'End If End If End If '--- Access Control Action Relationships --- ' DEVI-45275 - Merges now occur via the Pending tab. Merge candidates are marked with a(planned) operation ' of "A" for add, or "S" for subtract. If the package version is one of these(within the context of the ' release of coarse), manipulate the MakeRelease button(of which there are now 3 types) accordingly. If (pkgInfoHash.Item("planned_operation") = "A" OR pkgInfoHash.Item("planned_operation") = "S") Then ' always enable the reject button for pending merge operations Call objBtnControl.Visible("btnRejectPackage", "Y") ' disable the other two types of MakeRelease button Call objBtnControl.Visible("btnApprovePackage", "N") Call objBtnControl.Visible("btnMakeRelease", "N") ' make the approve merge button variant visible Call objBtnControl.Visible("btnApproveMerge", "Y") ' These conditions match those used in Diff.asp that control whether the Merge button is visible or not. ' Use them to enable or disable the approve merge button If releaseIsMergable(ReleaseMode) Then Call objBtnControl.Active("btnApproveMerge", "Y") Call objBtnControl.Active("btnRejectPackage", "Y") Else Call objBtnControl.Active("btnApproveMerge", "N") Call objBtnControl.Active("btnRejectPackage", "N") End If End If ' Have now set visible button based on the current state of the package ' No deactivate buttons based on the Release Mode and users permissions ' Users should be able to see what 'could' be done, even if they don't have permission ' If (ReleaseMode = enumDB_RELEASE_IN_RESTRICTIVE_MODE) OR (ReleaseMode = enumDB_RELEASE_IN_CCB_MODE) Then Dim canAddRemove, canRelease, canAlter canAddRemove = canActionControlInProject("AddDeletePackageInRestrictiveMode") canRelease = canActionControlInProject("ApprovePackageReleaseForRestrictiveMode") canAlter = canActionControlInProject("AlterReleaseContentsInRestrictiveMode") ' If in CCB mode then we must also be able to 'Alter Release Contents) ' If (ReleaseMode = enumDB_RELEASE_IN_CCB_MODE) AND (NOT canAlter) Then canAddRemove = False canRelease = False End If ' Disable Package Release Actions - unless allowed ' ApprovePackage ( for autobuild ) ' MakeRelease ( for Manual Build ) ' ApproveMerge ' If NOT (canRelease) Then Call objBtnControl.Active("btnApprovePackage", "N") Call objBtnControl.Active("btnMakeRelease", "N") Call objBtnControl.Active("btnApproveMerge", "N") Call objBtnControl.Active("btnRejectPackage", "N") End If ' Disable Release Modification Actions - Unless allowed ' Create New version of a package (WIP) [Always allow a WIP to be created] ' Remove a package ' If NOT (canAddRemove ) Then 'Call objBtnControl.Active("btnNewVersion", "N") Call objBtnControl.Active("btnRemovePackage", "N") End If End If '--------------------------------------------------------------------------- ' Unlock Package ' Note: Unlocking of a Package or Patch is intended for the administrators ' If NOT (pkgInfoHash("is_released") AND canActionControlInProject("EditCriticalInfoForLockedPackage")) Then Call objBtnControl.Active ("btnUnLockPackage", "N") Call objBtnControl.Active( "btnLockPackage", "N") End If ' Unbuildable packages ' Spontaneously generated package - by Deployment Manager If (pkgInfoHash.Item("build_type") = "U") Then Call objBtnControl.Active("btnMakeRelease", "N") Call objBtnControl.Active("btnApprovePackage", "N") Call objBtnControl.Active("btnMakeRelease", "N") Call objBtnControl.Active("btnMakeUnrelease", "N") Call objBtnControl.Active("btnAddDaemonInstTestBuildPackage", "N") Call objBtnControl.Active("btnMakePending", "N") Call objBtnControl.Active("btnApproveMerge", "N") Call objBtnControl.Active("btnUnLockPackage", "N") Call objBtnControl.Active("btnLockPackage", "N") End If ' Manual Packages If (pkgInfoHash.Item("build_type") = "M") Then ' Cannot be rippled or test built Call objBtnControl.Active("btnAddDaemonInstTestBuildPackage", "N") Call objBtnControl.Active("btnAddDaemonInstRipplePackage", "N") ' Cannot be Released, unless in the archive If Not pkgInfoHash.Item("isInArchive") AND NOT canActionControlInProject("EditCriticalInfoForLockedPackage") Then Call objBtnControl.Active("btnMakeRelease", "N") End If End If '-- Disable if the Package is imported as a part of an SDK ' Or as part of a linked Release ' Or the user is not logged in ' Or user cannot edit in this project If (pkgInfoHash.Item("can_edit_in_project") <> "1") OR (NOT objAccessControl.UserLogedIn) OR (NOT canActionInProject() ) Then Call objBtnControl.Active("btnNewVersion", "N") Call objBtnControl.Active("btnDestroyWip" , "N") Call objBtnControl.Active("btnRemovePackage", "N") Call objBtnControl.Active("btnAddDaemonInstTestBuildPackage", "N") Call objBtnControl.Active("btnMakePending", "N") Call objBtnControl.Active("btnMakeRelease", "N") Call objBtnControl.Active("btnApprovePackage", "N") Call objBtnControl.Active("btnApproveMerge", "N") Call objBtnControl.Active("btnRejectPackage", "N") Call objBtnControl.Active("btnRejectAutobuildPackage", "N") Call objBtnControl.Active("btnMakeUnrelease", "N") Call objBtnControl.Active("btnMoveToView", "N") Call objBtnControl.Active("btnMoveWIPToRelease", "N") Call objBtnControl.Active("btnDeprecation", "N") Call objBtnControl.Active("btnUnDeprecation", "N") Call objBtnControl.Active("btnAddDaemonInstRipplePackage", "N") Call objBtnControl.Active("btnDelDaemonInstRipplePackage", "N") Call objBtnControl.Active("btnDelDaemonInstTestPackage", "N") Call objBtnControl.Active ("btnUnLockPackage", "N") Call objBtnControl.Active ("btnLockPackage", "N") End If If (NOT objAccessControl.UserLogedIn) OR (NOT canActionInProject() ) Then Call objBtnControl.Active("btnReversionPackage", "N") End If If (pkgInfoHash.Item("base_view_id") = "") Then Call objBtnControl.Active("btnMoveToView", "N") End IF '--- Other Access Control Action Relationships --- If (ReleaseMode = enumDB_RELEASE_IN_CCB_MODE) Then Call objBtnControl.SetRelationship("btnMakeRelease", "ApprovePackageReleaseForRestrictiveMode") Call objBtnControl.SetRelationship("btnPendingIntegration", "ApproveForPendingIntegration") Call objBtnControl.SetRelationship("btnPendingTest", "ApproveForPendingTest") Call objBtnControl.SetRelationship("btnPendingDeployment", "ApproveForPendingDeployment") Call objBtnControl.SetRelationship("btnRejectProduct", "RejectProduct") Call objBtnControl.SetRelationship("btnPendingIntegrateAndDeploy", "ApprovePendingIntegrateAndDeploy") '--------------------------------------------------------------------------- ' -- Render Buttons Call objBtnControl.Render (aTabBtnsDef, objAccessControl) End Sub %>