Blame | Last modification | View Log | RSS feed
<%'=====================================================' Package Action Buttons'=====================================================%><%'--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", "btnArchivedVersionHistory", "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", "btnArchivedVersionHistory", "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", "btnArchivedVersionHistory", "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", "btnArchivedVersionHistory", "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", "btnArchivedVersionHistory", "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", "btnArchivedVersionHistory", "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", "btnArchivedVersionHistory", "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", "btnArchivedVersionHistory", "btnRemovePackage", "width=20", "btnMakePending", "btnApprovePackage", "btnApproveMerge", "btnMakeRelease", "btnRejectPackage", "btnMakeUnrelease", "width=20", _"btnMoveToView", "btnReversionPackage", "width=20", "btnStickyNotes", "btnDeprecation", "btnUnDeprecation")Else' For Packages in ReleaseaTabBtnsDef = Array("btnNewVersion", "btnVersionHistory", "btnArchivedVersionHistory", "btnRemovePackage", "width=20", "btnMakePending", "btnApprovePackage", "btnApproveMerge", "btnMakeRelease", "btnRejectPackage", "width=20", _"btnMoveToView", "btnReversionPackage", "width=20", "btnStickyNotes", "btnDeprecation", "btnUnDeprecation")End IfElse' Non-Editable Packages in ReleaseIf AssocMASSREF ThenaTabBtnsDef = Array( "btnNewVersion-MASSREF", "btnVersionHistory", "btnArchivedVersionHistory", "btnStickyNotes", "btnDeprecation", "btnUnDeprecation")ElseaTabBtnsDef = Array( "btnVersionHistory", "btnArchivedVersionHistory", "btnStickyNotes", "btnDeprecation", "btnUnDeprecation")End IfEnd IfElse' For standalone Packages (Not view in project release)aTabBtnsDef = Array("btnVersionHistory", "btnArchivedVersionHistory", "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 )'--- 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 ( "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" )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" )ElseIf ( 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_CCB_MODE ) Or (ReleaseMode = enumDB_RELEASE_IN_RESTRICTIVE_MODE) ThenCall objBtnControl.Visible ( "btnMakePending", "Y" )If ( ( pkgInfoHash.Item ("dlocked") = "N" ) OR ( pkgInfoHash.Item ("dlocked") = "R" ) ) _AND ( IsNull(pkgInfoHash.Item("is_patch")) ) _Then Call objBtnControl.Active ( "btnMakeRelease", "N" )Call objBtnControl.Visible ( "btnMakeUnrelease", "N" )Call objBtnControl.Visible ( "btnRejectPackage", "Y" )Call objBtnControl.Visible ( "btnRemovePackage", "N" )Else'Call objBtnControl.Active ( "btnMakeRelease", "Y" )End IfEnd IfEnd If'-- Change button setting on conditions ---If pkgInfoHash.Item ("dlocked") = "Y" ThenCall 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" )End IfElseIf pkgInfoHash.Item ("dlocked") = "P" ThenCall objBtnControl.Active ( "btnMakePending", "N" )Call objBtnControl.Active ( "btnApprovePackage", "Y" )Call objBtnControl.Active ( "btnRejectPackage", "Y" )ElseIf pkgInfoHash.Item ("dlocked") = "A" ThenCall objBtnControl.Active ( "btnMakePending", "N" )Call objBtnControl.Active ( "btnApprovePackage", "N" )Call objBtnControl.Visible ( "btnRejectPackage", "N" )Call objBtnControl.Visible ( "btnMakeUnrelease", "Y" )Call objBtnControl.Active ( "btnMakeUnrelease", "N" )If pkgInfoHash.Item("can_unofficial") = "true" OR objAccessControl.IsActive("EditCriticalInfoForLockedPackage") ThenCall objBtnControl.Active ( "btnMakeUnrelease", "Y" )End IfElse' Unlocked or rejected packagesCall objBtnControl.Active ( "btnReversionPackage", "Y" )Call objBtnControl.Active ( "btnMakePending", "Y" )End 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 ---If ( ReleaseMode = enumDB_RELEASE_IN_OPEN_MODE ) AND pkgInfoHash.Item("build_type") = "A" ThenCall objBtnControl.Visible ( "btnApprovePackage", "Y" )ElseCall objBtnControl.SetRelationship ( "btnApprovePackage", "ApproveForAutoBuild" )End If' 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.Active ( "btnRejectPackage", "Y" )Call objBtnControl.Visible ( "btnRejectPackage", "Y" )' disable the other two types of MakeRelease buttonCall objBtnControl.Visible ( "btnApprovePackage", "N" )Call objBtnControl.Active ( "btnApprovePackage", "N" )Call objBtnControl.Visible ( "btnMakeRelease", "N" )Call objBtnControl.Active ( "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" )ElseCall objBtnControl.Active ( "btnApproveMerge", "N" )End IfEnd If'--- Other Access Control Action Relationships ---'Call objBtnControl.SetRelationship ( "btnRejectPackage", "ApproveForAutoBuild" )If ( ReleaseMode = enumDB_RELEASE_IN_CCB_MODE ) Then Call objBtnControl.SetRelationship ( "btnMakeRelease", "ApprovePackageReleaseForRestrictiveMode" )Call objBtnControl.SetRelationship ( "btnRejectPackage", "RejectPackageFromPending" )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 )%>