Rev 6185 | Rev 6591 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<%'=====================================================' Package Action Buttons'=====================================================%><%Sub ActivateButtonAccordingToReleaseModeAndPermissions(NNbutton, NNpermission)If canActionInProject() ThenIf (ReleaseMode = enumDB_RELEASE_IN_RESTRICTIVE_MODE) OR(ReleaseMode = enumDB_RELEASE_IN_CCB_MODE) ThenIf canActionControlInProject(NNpermission) ThenCall objBtnControl.Active(NNbutton, "Y")ElseCall objBtnControl.Active(NNbutton, "N")End IfElseIf (ReleaseMode = enumDB_RELEASE_IN_OPEN_MODE) ThenCall objBtnControl.Active(NNbutton, "Y")ElseCall objBtnControl.Active(NNbutton, "N")End IfElseCall objBtnControl.Active(NNbutton, "N")End IfEnd SubSub RenderActionButtons'--Determine whether the release has an associated MASS_REFDim rsAssoc, AssocMASSREF, AssocMASSREFValue, StatesUsedIf parRtag_id > 0 ThenSet 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")) ThenAssocMASSREF = TrueElseAssocMASSREF = FalseEnd IfrsAssoc.Close()Set rsAssoc = nothingEnd If'-- Define Action buttons on this tabIf IsNull(pkgInfoHash.Item("is_patch")) ThenIf parRtag_id > 0 ThenIf (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")) ) ThenIf pkgInfoHash.Item("is_deployable") = "Y" AND pkgInfoHash.Item("dlocked") = "Y" AND StatesUsed = "Y" ThenIf pkgInfoHash.Item("product_state") = 1 Then' For Products that have been approved for Pending IntegrationaTabBtnsDef = 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 TestaTabBtnsDef = 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 DeploymentaTabBtnsDef = 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 DeploymentaTabBtnsDef = Array("btnNewVersion", "btnVersionHistory", "btnPendingDeployment", "width=20", _"width=20", "btnMoveToView", "btnStickyNotes")ElseIf IsNull(pkgInfoHash.Item("product_state")) ThenIf canShowControlInProject("ApprovePendingIntegrateAndDeploy") Then'For Products that have have not yet been approved for Pending IntegrationaTabBtnsDef = 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 IntegrationaTabBtnsDef = Array("btnNewVersion", "btnVersionHistory", "btnPendingIntegration","btnRemovePackage", "width=20", "btnRejectProduct", "width=20", _"width=20", "btnMoveToView", "btnStickyNotes")End IfElse' 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 IfElseIf canActionControlInProject("EditCriticalInfoForLockedPackage") Then' For Packages in ReleaseaTabBtnsDef = 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 ReleaseaTabBtnsDef = 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 IfElse' Non-Editable Packages in ReleaseIf AssocMASSREF ThenaTabBtnsDef = Array("btnNewVersion-MASSREF", "btnVersionHistory", "btnStickyNotes", "btnDeprecation", "btnUnDeprecation")ElseaTabBtnsDef = Array("btnVersionHistory", "btnStickyNotes", "btnDeprecation", "btnUnDeprecation")End IfEnd IfElse' For standalone Packages(Not viewed in project release)aTabBtnsDef = Array("btnVersionHistory", "btnRecycleBin", "btnReversionPackage", "width=20", "btnStickyNotes")End IfElse' For PatchesaTabBtnsDef = Array("btnMakeRelease", "btnMakeUnrelease", "width=20", _"btnReversionPackage", "width=20", "btnObsoletePatch", "btnUnobsoletePatch", "width=20","btnStickyNotes")End If' Load action buttons from databaseCall objBtnControl.LoadActionButtons(aTabBtnsDef, OraDatabase)' Set spacing to minimum between buttonsobjBtnControl.ButtonSpacer = 0objBtnControl.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 buildCall objBtnControl.Visible("btnApprovePackage", "Y")Call objBtnControl.Active ("btnApprovePackage", "N")Else' For Manual BuildCall 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 LockedCall objBtnControl.Visible("btnNewVersion", "Y")If Not canActionControlInProject("CreateNewVersion") ThenCall objBtnControl.Active("btnNewVersion", "N")End IfIf AssocMASSREF ThenCall objBtnControl.Visible("btnNewVersion-MASSREF", "Y")End IfIf (parRtag_id > 0) AND canShowControlInProject("DeprecatePackage") ThenIf (pkgInfoHash.Item("is_deprecated")) ThenCall objBtnControl.Visible("btnUnDeprecation", "Y")ElseCall objBtnControl.Visible("btnDeprecation", "Y")End IfElseCall objBtnControl.Active("btnDeprecation", "N")Call objBtnControl.Visible("btnDeprecation", "Y")End IfCall objBtnControl.Active("btnApprovePackage", "N")Call objBtnControl.Active("btnMakeRelease", "N")If pkgInfoHash.Item("can_unofficial") = "true" OR canActionControlInProject("EditCriticalInfoForLockedPackage") ThenCall 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") <> " " ThenCall objBtnControl.Visible("btnRejectPackage", "Y")Call objBtnControl.Active("btnRejectPackage", "Y")ElseCall objBtnControl.Visible("btnRejectPackage", "N")End IfCall 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") <> "" ThenCall objBtnControl.Visible("btnDelDaemonInstRipplePackage", "Y")Call ActivateButtonAccordingToReleaseModeAndPermissions("btnDelDaemonInstRipplePackage", "ApproveForAutoBuild")End IfIf pkgInfoHash.Item("hasTestInstr") <> "" ThenCall objBtnControl.Visible("btnDelDaemonInstTestPackage", "Y")Call ActivateButtonAccordingToReleaseModeAndPermissions("btnDelDaemonInstTestPackage", "ApproveForAutoBuild")End IfIf pkgInfoHash.Item("hasRippleInstr") <> "" AND pkgInfoHash.Item("hasTestInstr") <> "" ThenCall 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 PendingCall 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 AutobuildCall 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 packahe has failed to buildIf pkgInfoHash.Item("build_type") = "A" ThenIf activeDaemonCount(parRtag_id) = 0 OR isInDoNotRippleTable(parRtag_id, pkgInfoHash.Item("pv_id")) = TRUE ThenCall ActivateButtonAccordingToReleaseModeAndPermissions("btnRejectAutobuildPackage", "RejectPackageFromPending")End IfElse' Manual Package should not be in this stateIf canActionControlInProject("EditCriticalInfoForLockedPackage") ThenCall objBtnControl.Active ("btnRejectAutobuildPackage", "Y")End IfEnd IfEnd IfElse' 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 releasedIf NOT IsNull(pkgInfoHash.Item("is_patch")) ThenCall objBtnControl.Visible("btnApprovePackage", "N")Call objBtnControl.Visible("btnMakeRelease", "Y")Call objBtnControl.Visible("btnMakeUnrelease", "Y")If NOT canShowControlInProject("ReleasePatch") ThenCall objBtnControl.Active("btnMakeRelease", "N")End IfElseCall objBtnControl.Visible("btnApprovePackage", "N")Call objBtnControl.Visible("btnMakeRelease", "N")End IfCall objBtnControl.Visible("btnMoveWIPToRelease", "Y")Call objBtnControl.Active ("btnMoveWIPToRelease", "Y")Call objBtnControl.Visible("btnAddDaemonInstTestBuildPackage", "Y")Call objBtnControl.Active ("btnAddDaemonInstTestBuildPackage", "Y")If pkgInfoHash.Item("hasTestInstr") <> "" ThenCall objBtnControl.Active("btnAddDaemonInstTestBuildPackage", "N")Call objBtnControl.Visible("btnDelDaemonInstTestPackage", "Y")Call objBtnControl.Active("btnDelDaemonInstTestPackage", "Y")End IfCall objBtnControl.Visible("btnDestroyWip", "Y")If ((objAccessControl.UserName = pkgInfoHash.Item("creator")) OR (canActionControlInProject("DestroyPackageFromRelease"))) ThenCall objBtnControl.Active ("btnDestroyWip", "Y")End IfIf pkgInfoHash.Item("is_wip") ThenCall 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")) ThenCall objBtnControl.Visible("btnObsoletePatch", "Y")ElseCall objBtnControl.Visible("btnUnobsoletePatch", "Y")End IfIf NOT(parRtag_id > 0) Then' Not shown in the context of a Release' Determine if the package can be destroyedIf canShowControlInProject("DestroyPackage") ThenCall 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 ThenIf pkgInfoHash.Item("dlocked") <> "Y" Then'If pkgInfoHash.Item("dlocked") <> "A" ThenCall objBtnControl.Active("btnRecycleBin", "Y")'End IfEnd If'End If'End IfEnd IfEnd 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 operationsCall objBtnControl.Visible("btnRejectPackage", "Y")' disable the other two types of MakeRelease buttonCall objBtnControl.Visible("btnApprovePackage", "N")Call objBtnControl.Visible("btnMakeRelease", "N")' make the approve merge button variant visibleCall 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 buttonIf releaseIsMergable(ReleaseMode) ThenCall objBtnControl.Active("btnApproveMerge", "Y")Call objBtnControl.Active("btnRejectPackage", "Y")ElseCall objBtnControl.Active("btnApproveMerge", "N")Call objBtnControl.Active("btnRejectPackage", "N")End IfEnd 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) ThenDim canAddRemove, canRelease, canAltercanAddRemove = 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) ThencanAddRemove = FalsecanRelease = FalseEnd If' Disable Package Release Actions - unless allowed' ApprovePackage ( for autobuild )' MakeRelease ( for Manual Build )' ApproveMerge'If NOT (canRelease) ThenCall 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' Remove a package'If NOT (canAddRemove ) ThenCall objBtnControl.Active("btnNewVersion", "N")Call objBtnControl.Active("btnRemovePackage", "N")End IfEnd If'---------------------------------------------------------------------------' Unlock Package' Note: Unlocking of a Package or Patch is intended for the administrators'If NOT (pkgInfoHash("is_released") AND canActionControlInProject("EditCriticalInfoForLockedPackage")) ThenCall objBtnControl.Active ("btnUnLockPackage", "N")Call objBtnControl.Active( "btnLockPackage", "N")End If' Unbuildable packages' Spontaneously generated package - by Deployment ManagerIf (pkgInfoHash.Item("build_type") = "U") ThenCall 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 PackagesIf (pkgInfoHash.Item("build_type") = "M") Then' Cannot be rippled or test builtCall objBtnControl.Active("btnAddDaemonInstTestBuildPackage", "N")Call objBtnControl.Active("btnAddDaemonInstRipplePackage", "N")' Cannot be Released, unless in the archiveIf Not pkgInfoHash.Item("isInArchive") AND NOT canActionControlInProject("EditCriticalInfoForLockedPackage") ThenCall objBtnControl.Active("btnMakeRelease", "N")End IfEnd 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 projectIf (pkgInfoHash.Item("can_edit_in_project") <> "1") OR (NOT objAccessControl.UserLogedIn) OR (NOT canActionInProject() ) ThenCall 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 IfIf (NOT objAccessControl.UserLogedIn) OR (NOT canActionInProject() ) ThenCall objBtnControl.Active("btnReversionPackage", "N")End IfIf (pkgInfoHash.Item("base_view_id") = "") ThenCall 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 ButtonsCall objBtnControl.Render (aTabBtnsDef, objAccessControl)End Sub%>