Rev 1281 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<%'=====================================================' Package Action Buttons'=====================================================%><%Sub ActivateButtonAccordingToReleaseModeAndPermissions( NNbutton, NNpermission)If objAccessControl.IsDataActive ("PROJECTS", DB_PROJ_ID, "EditProjects") ThenIf ( ReleaseMode = enumDB_RELEASE_IN_RESTRICTIVE_MODE) OR ( ReleaseMode = enumDB_RELEASE_IN_CCB_MODE ) ThenIf objAccessControl.IsActive(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 Request("rtag_id") <> "" ThenSet rsAssoc = OraDatabase.DbCreateDynaset( "SELECT ASSOC_MASS_REF, PRODUCT_STATE_USED FROM RELEASE_TAGS WHERE RTAG_ID="&Request("rtag_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 Request("rtag_id") <> "" ThenIf (pkgInfoHash.Item("can_edit_in_project") = "1" OR _objAccessControl.IsVisible("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'Response.Write("Pressed")' 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", "btnMoveToView", "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 objAccessControl.IsVisible("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", "btnMoveToView", "btnStickyNotes", "btnDeprecation", "btnUnDeprecation")End IfElseIf objAccessControl.IsActive("EditCriticalInfoForLockedPackage") Then' For Packages in ReleaseaTabBtnsDef = Array("btnNewVersion", "btnVersionHistory", "btnRemovePackage", "width=20", _"btnAddDaemonInstTestBuildPackage", "btnMakePending", "btnApprovePackage", "btnApproveMerge", "btnMakeRelease", "btnRejectPackage", "btnRejectAutobuildPackage", "btnMakeUnrelease", "width=20", _"btnMoveToView", "btnMoveWIPToRelease", "btnReversionPackage","btnLockPackage","btnUnLockPackage", "width=20", "btnStickyNotes", "btnDeprecation", "btnUnDeprecation", "btnAddDaemonInstRipplePackage" )Else' For Packages in ReleaseaTabBtnsDef = Array("btnNewVersion", "btnVersionHistory", "btnRemovePackage", "width=20", _"btnAddDaemonInstTestBuildPackage", "btnMakePending", "btnApprovePackage", "btnApproveMerge", "btnMakeRelease", "btnRejectPackage", "btnRejectAutobuildPackage", "width=20", _"btnMoveToView", "btnMoveWIPToRelease", "btnReversionPackage", "width=20", "btnStickyNotes", "btnDeprecation", "btnUnDeprecation", "btnAddDaemonInstRipplePackage")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 view in project release)aTabBtnsDef = Array("btnVersionHistory", "btnReversionPackage", "width=20", "btnStickyNotes")End IfElse' For Patches'aTabBtnsDef = Array("btnMakePending", "btnApprovePackage", "btnMakeRelease", "btnMakeUnrelease", "btnRejectPackage", "width=20", _' "btnReversionPackage", "width=20", "btnObsoletePatch", "btnUnobsoletePatch", "width=20","btnStickyNotes")aTabBtnsDef = 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 = Eval( ReleaseMode = enumDB_RELEASE_IN_CLOSED_MODE )' 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", "N" )Call objBtnControl.Active ( "btnRejectAutobuildPackage", "N" )Call objBtnControl.Visible ( "btnRejectAutobuildPackage", "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 ( "btnAddDaemonInstTestBuildPackage", "N" )Call objBtnControl.Visible ( "btnAddDaemonInstTestBuildPackage", "N" )Call objBtnControl.Active ( "btnMoveWIPToRelease", "N" )Call objBtnControl.Visible ( "btnMoveWIPToRelease", "N" )If objAccessControl.IsDataActive ("PROJECTS", DB_PROJ_ID, "EditProjects") Then'-- Change button setting on conditions ---If ( pkgInfoHash.Item ("build_type") = "A" ) Then' For automatic buildCall objBtnControl.Visible ( "btnMakePending", "Y" )Call objBtnControl.Visible ( "btnApprovePackage", "Y" )Call objBtnControl.Active ( "btnApprovePackage", "N" )Call objBtnControl.Visible ( "btnMakeUnrelease", "N" )Call objBtnControl.Visible ( "btnRejectPackage", "Y" )Else' For Manual BuildIf ( ReleaseMode = enumDB_RELEASE_IN_CCB_MODE ) And Not objAccessControl.IsVisible("ApproveForManualBuild") ThenCall objBtnControl.Visible ( "btnMakeRelease", "N" )ElseCall objBtnControl.Visible ( "btnMakeRelease", "Y" )End IfIf (pkgInfoHash.Item("is_patch")) <> "" ThenIf objAccessControl.IsVisible ("ReleasePatch") ThenCall objBtnControl.Visible ( "btnMakeRelease", "Y" )ElseCall objBtnControl.Visible ( "btnMakeRelease", "N" )End IfEnd IfIf ( ReleaseMode = enumDB_RELEASE_IN_RESTRICTIVE_MODE) OR ( ReleaseMode = enumDB_RELEASE_IN_CCB_MODE ) ThenCall objBtnControl.Visible ( "btnMakePending", "Y" )If ( ( pkgInfoHash.Item ("dlocked") = "N" ) OR ( pkgInfoHash.Item ("dlocked") = "R" ) ) _AND ( IsNull(pkgInfoHash.Item("is_patch")) ) ThenCall objBtnControl.Active ( "btnMakeRelease", "N" )Call objBtnControl.Visible ( "btnMakeRelease", "N" )End IfCall objBtnControl.Visible ( "btnRejectPackage", "Y" )If (ReleaseMode = enumDB_RELEASE_IN_CCB_MODE) OR (NOT objAccessControl.IsVisible("AlterReleaseContentsInRestrictiveMode")) ThenCall objBtnControl.Visible ( "btnMakeUnrelease", "N" )Call objBtnControl.Visible ( "btnRemovePackage", "N" )End IfElse'Call objBtnControl.Active ( "btnMakeRelease", "Y" )End IfEnd IfEnd If'-- Change button setting on conditions ---If pkgInfoHash.Item ("dlocked") = "Y" Then' Package is Released and LockedCall objBtnControl.Visible ( "btnNewVersion", "Y" )If AssocMASSREF ThenCall objBtnControl.Visible ( "btnNewVersion-MASSREF", "Y" )End IfIf Request("rtag_id") <> "" AND objAccessControl.IsVisible("DeprecatePackage") ThenDim rsDeprecateIf NOT IsNull(pkgInfoHash.Item ("v_ext")) ThenSet rsDeprecate = OraDatabase.DbCreateDynaset("SELECT * FROM DEPRECATED_PACKAGES WHERE RTAG_ID ="& Request("rtag_id") &" AND V_EXT ='"& pkgInfoHash.Item ("v_ext") &"' AND PKG_ID = "& pkgInfoHash.Item ("pkg_id") &"", cint(0))ElseSet rsDeprecate = OraDatabase.DbCreateDynaset("SELECT * FROM DEPRECATED_PACKAGES WHERE RTAG_ID ="& Request("rtag_id") &" AND V_EXT IS NULL AND PKG_ID = "& pkgInfoHash.Item ("pkg_id") &"", cint(0))End IfIf (rsDeprecate.RecordCount) = 0 ThenCall objBtnControl.Visible ( "btnDeprecation", "Y" )ElseCall objBtnControl.Visible ( "btnUnDeprecation", "Y" )End IfrsDeprecate.Close()Set rsDeprecate = nothingEnd IfCall objBtnControl.Active ( "btnApprovePackage", "N" )Call objBtnControl.Active ( "btnMakeRelease", "N" )If pkgInfoHash.Item("can_unofficial") = "true" OR objAccessControl.IsActive("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")ElseIf pkgInfoHash.Item ("dlocked") = "P" Then' In PendingCall objBtnControl.Visible ( "btnMakePending", "N" )Call ActivateButtonAccordingToReleaseModeAndPermissions("btnApprovePackage", "ApproveForAutoBuild")Call ActivateButtonAccordingToReleaseModeAndPermissions("btnRejectPackage", "RejectPackageFromPending")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.Visible ( "btnMakeUnrelease", "Y" )If pkgInfoHash.Item("can_unofficial") = "true" OR objAccessControl.IsActive("EditCriticalInfoForLockedPackage") ThenCall objBtnControl.Active ( "btnMakeUnrelease", "Y" )ElseCall objBtnControl.Active ( "btnMakeUnrelease", "N" )End If'--- Allow failed auto-builds to be rejected back to WIP, conditions allowing.If pkgInfoHash.Item("build_type") = "A" AND Request("rtag_id") <> "" ThenIf isInDoNotRippleTable( Request("rtag_id"), pkgInfoHash.Item("pv_id") ) = TRUE ThenCall objBtnControl.Visible ( "btnRejectAutobuildPackage", "Y" )Call ActivateButtonAccordingToReleaseModeAndPermissions("btnRejectAutobuildPackage", "RejectPackageFromPending")End IfEnd IfElse' Unlocked or rejected packages (dlocked = N or R)Call objBtnControl.Active ( "btnReversionPackage", "Y" )Call objBtnControl.Active ( "btnMakePending", "Y" )Call objBtnControl.Visible ( "btnApprovePackage", "N" )Call objBtnControl.Visible ( "btnRejectPackage", "N" )If objAccessControl.IsDataActive ("PROJECTS", DB_PROJ_ID, "EditProjects") ThenCall objBtnControl.Active ( "btnAddDaemonInstTestBuildPackage", "Y" )Call objBtnControl.Visible ( "btnAddDaemonInstTestBuildPackage", "Y" )Call objBtnControl.Active ( "btnMoveWIPToRelease", "Y" )Call objBtnControl.Visible ( "btnMoveWIPToRelease", "Y" )End IfEnd IfIf IsNull(pkgInfoHash.Item ("is_obsolete")) ThenCall objBtnControl.Visible ( "btnObsoletePatch", "Y" )ElseCall objBtnControl.Visible ( "btnUnobsoletePatch", "Y" )End IfIf objAccessControl.IsVisible("DestroyPackage") ThenCall objBtnControl.Visible ( "btnRecycleBin", "Y" )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 ofcoarse), 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 ( ReleaseMode <> enumDB_RELEASE_IN_CLOSED_MODE AND ReleaseMode <> enumDB_RELEASE_IN_CCB_MODE AND objAccessControl.IsActive("MergeRelease") ) _OR ( ReleaseMode = enumDB_RELEASE_IN_CCB_MODE AND objAccessControl.IsActive("MergeReleaseForCCB") ) ThenCall objBtnControl.Active ( "btnApproveMerge", "Y" )Call objBtnControl.Active ( "btnRejectPackage", "Y" )ElseCall objBtnControl.Active ( "btnApproveMerge", "N" )Call objBtnControl.Active ( "btnRejectPackage", "N" )End IfEnd 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" )'---------------------------------------------------------------------------' Unlock Package' Note: Unlocking of a Package or Patch is intended for the administratorsDim bucan_unlockbucan_unlock = pkgInfoHash("is_released") AND objAccessControl.IsActive("EditCriticalInfoForLockedPackage")Call objBtnControl.Visible ( "btnUnLockPackage", "N" )Call objBtnControl.Visible ( "btnLockPackage", "N" )Call objBtnControl.Active ( "btnLockPackage", "N" )Call objBtnControl.Active ( "btnUnLockPackage", "N" )If bucan_unlock ThenIf (pkgInfoHash.Item ("dlocked") = "Y") Then' Unlock patch or package.Call objBtnControl.Visible ( "btnUnLockPackage", "Y" )Call objBtnControl.Active ( "btnUnLockPackage", "Y" )ElseIf (pkgInfoHash.Item ("dlocked") = "N") Then' lock patch or package.Call objBtnControl.Visible ( "btnLockPackage", "Y" )Call objBtnControl.Active ( "btnLockPackage", "Y" )End IfEnd if'---------------------------------------------------------------------------' -- Render ButtonsCall objBtnControl.Render ( aTabBtnsDef, objAccessControl )End Sub%>