| 119 |
ghuddy |
1 |
<%
|
|
|
2 |
'=====================================================
|
| 133 |
ghuddy |
3 |
' Package Action Buttons
|
| 119 |
ghuddy |
4 |
'=====================================================
|
|
|
5 |
%>
|
|
|
6 |
<%
|
| 5983 |
dpurdie |
7 |
Sub ActivateButtonAccordingToReleaseModeAndPermissions(NNbutton, NNpermission)
|
|
|
8 |
If canActionInProject() Then
|
|
|
9 |
If (ReleaseMode = enumDB_RELEASE_IN_RESTRICTIVE_MODE) OR(ReleaseMode = enumDB_RELEASE_IN_CCB_MODE) Then
|
|
|
10 |
If canActionControlInProject(NNpermission) Then
|
|
|
11 |
Call objBtnControl.Active(NNbutton, "Y")
|
|
|
12 |
Else
|
|
|
13 |
Call objBtnControl.Active(NNbutton, "N")
|
|
|
14 |
End If
|
|
|
15 |
ElseIf (ReleaseMode = enumDB_RELEASE_IN_OPEN_MODE) Then
|
|
|
16 |
Call objBtnControl.Active(NNbutton, "Y")
|
|
|
17 |
Else
|
|
|
18 |
Call objBtnControl.Active(NNbutton, "N")
|
|
|
19 |
End If
|
|
|
20 |
Else
|
|
|
21 |
Call objBtnControl.Active(NNbutton, "N")
|
|
|
22 |
End If
|
| 143 |
ghuddy |
23 |
End Sub
|
|
|
24 |
|
| 185 |
brianf |
25 |
Sub RenderActionButtons
|
| 5983 |
dpurdie |
26 |
'--Determine whether the release has an associated MASS_REF
|
|
|
27 |
Dim rsAssoc, AssocMASSREF, AssocMASSREFValue, StatesUsed
|
|
|
28 |
If parRtag_id > 0 Then
|
|
|
29 |
Set rsAssoc = OraDatabase.DbCreateDynaset("SELECT ASSOC_MASS_REF, PRODUCT_STATE_USED FROM RELEASE_TAGS WHERE RTAG_ID="&parRtag_id, cint(0))
|
|
|
30 |
AssocMASSREFValue = rsAssoc("ASSOC_MASS_REF")
|
|
|
31 |
StatesUsed = rsAssoc("PRODUCT_STATE_USED")
|
|
|
32 |
If NOT IsNull(rsAssoc("ASSOC_MASS_REF")) Then
|
|
|
33 |
AssocMASSREF = True
|
|
|
34 |
Else
|
|
|
35 |
AssocMASSREF = False
|
|
|
36 |
End If
|
|
|
37 |
rsAssoc.Close()
|
|
|
38 |
Set rsAssoc = nothing
|
|
|
39 |
End If
|
| 119 |
ghuddy |
40 |
|
| 5983 |
dpurdie |
41 |
'-- Define Action buttons on this tab
|
|
|
42 |
If IsNull(pkgInfoHash.Item("is_patch")) Then
|
|
|
43 |
If parRtag_id > 0 Then
|
| 6031 |
dpurdie |
44 |
If (pkgInfoHash.Item("can_edit_in_project") = "1" OR _
|
|
|
45 |
canShowControlInProject("AlterReleaseContentsInRestrictiveMode")) OR _
|
|
|
46 |
(pkgInfoHash.Item("v_ext") = ".mas" AND pkgInfoHash.Item("v_ext") = ".cr" OR _
|
|
|
47 |
NOT AssocMASSREF OR NOT IsNull(pkgInfoHash.Item("v_ext")) ) Then
|
| 119 |
ghuddy |
48 |
|
| 6031 |
dpurdie |
49 |
If pkgInfoHash.Item("is_deployable") = "Y" AND pkgInfoHash.Item("dlocked") = "Y" AND StatesUsed = "Y" Then
|
|
|
50 |
If pkgInfoHash.Item("product_state") = 1 Then
|
| 119 |
ghuddy |
51 |
|
| 6031 |
dpurdie |
52 |
' For Products that have been approved for Pending Integration
|
|
|
53 |
aTabBtnsDef = Array("btnNewVersion", "btnVersionHistory", "btnPendingTest", "btnRejectProduct", "width=20", _
|
|
|
54 |
"width=20", "btnMoveToView", "btnStickyNotes")
|
| 119 |
ghuddy |
55 |
|
| 6031 |
dpurdie |
56 |
ElseIf pkgInfoHash.Item("product_state") = 2 Then
|
|
|
57 |
' For Products that have been approved for Pending Test
|
|
|
58 |
aTabBtnsDef = Array("btnNewVersion", "btnVersionHistory", "btnPendingIntegration", "btnPendingDeployment","btnRejectProduct", "width=20", _
|
|
|
59 |
"width=20", "btnMoveToView", "btnStickyNotes")
|
| 119 |
ghuddy |
60 |
|
| 6031 |
dpurdie |
61 |
ElseIf pkgInfoHash.Item("product_state") = 3 or pkgInfoHash.Item("product_state") = 4 Then
|
|
|
62 |
'For Products that have been approved for Pending Deployment
|
|
|
63 |
aTabBtnsDef = Array("btnNewVersion", "btnVersionHistory", "btnRemovePackage", "width=20", "btnRejectPackage", "width=20", _
|
| 6176 |
dpurdie |
64 |
"btnMoveToView", "btnReversionPackage", "width=20", "btnStickyNotes")
|
| 119 |
ghuddy |
65 |
|
| 6031 |
dpurdie |
66 |
ElseIf pkgInfoHash.Item("product_state") = 5 Then
|
|
|
67 |
'For Products that have been approved for Pending Integration and Deployment
|
|
|
68 |
aTabBtnsDef = Array("btnNewVersion", "btnVersionHistory", "btnPendingDeployment", "width=20", _
|
|
|
69 |
"width=20", "btnMoveToView", "btnStickyNotes")
|
| 119 |
ghuddy |
70 |
|
| 6031 |
dpurdie |
71 |
ElseIf IsNull(pkgInfoHash.Item("product_state")) Then
|
| 6176 |
dpurdie |
72 |
If canShowControlInProject("ApprovePendingIntegrateAndDeploy") Then
|
| 6031 |
dpurdie |
73 |
'For Products that have have not yet been approved for Pending Integration
|
|
|
74 |
aTabBtnsDef = Array("btnNewVersion", "btnVersionHistory", "btnPendingIntegration", "btnPendingIntegrateAndDeploy", "btnRejectProduct", "width=20", "btnRemovePackage", _
|
|
|
75 |
"btnMoveToView", "btnStickyNotes", "btnDeprecation", "btnUnDeprecation")
|
|
|
76 |
Else
|
|
|
77 |
'For Products that have have not yet been approved for Pending Integration
|
|
|
78 |
aTabBtnsDef = Array("btnNewVersion", "btnVersionHistory", "btnPendingIntegration","btnRemovePackage", "width=20", "btnRejectProduct", "width=20", _
|
|
|
79 |
"width=20", "btnMoveToView", "btnStickyNotes")
|
|
|
80 |
End If
|
|
|
81 |
Else
|
|
|
82 |
' For Packages Not In Release(Bug Fix From Deployment Manager)
|
|
|
83 |
aTabBtnsDef = Array("btnNewVersion", "btnVersionHistory", "btnRemovePackage", "width=20", "btnMakePending", "btnApprovePackage", "btnMakeRelease", "btnRejectPackage", "width=20", _
|
| 6176 |
dpurdie |
84 |
"btnMoveToView", "btnReversionPackage", "width=20", "btnStickyNotes", "btnDeprecation", "btnUnDeprecation")
|
| 6031 |
dpurdie |
85 |
End If
|
|
|
86 |
|
|
|
87 |
ElseIf canActionControlInProject("EditCriticalInfoForLockedPackage") Then
|
|
|
88 |
' For Packages in Release
|
|
|
89 |
aTabBtnsDef = Array("btnNewVersion", "btnVersionHistory", "width=20", "btnDestroyWip" ,"btnRemovePackage", "btnMoveWIPToRelease", "width=20", _
|
|
|
90 |
"btnAddDaemonInstTestBuildPackage", "btnMakePending", "btnApprovePackage", "btnApproveMerge", "btnMakeRelease", "btnRejectPackage", "btnRejectAutobuildPackage", "btnMakeUnrelease", "width=20", _
|
| 6185 |
dpurdie |
91 |
"btnMoveToView", "btnReversionPackage","btnLockPackage","btnUnLockPackage", "width=20", "btnStickyNotes", "btnDeprecation", "btnUnDeprecation", "btnAddDaemonInstRipplePackage", "btnDelDaemonInstRipplePackage", "btnDelDaemonInstTestPackage")
|
| 5983 |
dpurdie |
92 |
Else
|
| 6031 |
dpurdie |
93 |
' For Packages in Release
|
|
|
94 |
aTabBtnsDef = Array("btnNewVersion", "btnVersionHistory", "width=20", "btnDestroyWip","btnRemovePackage", "btnMoveWIPToRelease", "width=20", _
|
|
|
95 |
"btnAddDaemonInstTestBuildPackage", "btnMakePending", "btnApprovePackage", "btnApproveMerge", "btnMakeRelease", "btnRejectPackage", "btnRejectAutobuildPackage", "width=20", _
|
| 6185 |
dpurdie |
96 |
"btnMoveToView", "btnReversionPackage", "width=20", "btnStickyNotes", "btnDeprecation", "btnUnDeprecation", "btnAddDaemonInstRipplePackage", "btnDelDaemonInstRipplePackage", "btnDelDaemonInstTestPackage")
|
| 5983 |
dpurdie |
97 |
End If
|
|
|
98 |
Else
|
|
|
99 |
' Non-Editable Packages in Release
|
|
|
100 |
If AssocMASSREF Then
|
|
|
101 |
aTabBtnsDef = Array("btnNewVersion-MASSREF", "btnVersionHistory", "btnStickyNotes", "btnDeprecation", "btnUnDeprecation")
|
|
|
102 |
Else
|
|
|
103 |
aTabBtnsDef = Array("btnVersionHistory", "btnStickyNotes", "btnDeprecation", "btnUnDeprecation")
|
|
|
104 |
End If
|
|
|
105 |
End If
|
| 119 |
ghuddy |
106 |
|
| 5983 |
dpurdie |
107 |
Else
|
|
|
108 |
' For standalone Packages(Not viewed in project release)
|
|
|
109 |
aTabBtnsDef = Array("btnVersionHistory", "btnRecycleBin", "btnReversionPackage", "width=20", "btnStickyNotes")
|
|
|
110 |
End If
|
| 119 |
ghuddy |
111 |
|
| 5983 |
dpurdie |
112 |
Else
|
|
|
113 |
' For Patches
|
|
|
114 |
aTabBtnsDef = Array("btnMakeRelease", "btnMakeUnrelease", "width=20", _
|
|
|
115 |
"btnReversionPackage", "width=20", "btnObsoletePatch", "btnUnobsoletePatch", "width=20","btnStickyNotes")
|
| 119 |
ghuddy |
116 |
|
| 5983 |
dpurdie |
117 |
End If
|
| 119 |
ghuddy |
118 |
|
| 5983 |
dpurdie |
119 |
' Load action buttons from database
|
|
|
120 |
Call objBtnControl.LoadActionButtons(aTabBtnsDef, OraDatabase)
|
| 119 |
ghuddy |
121 |
|
| 5983 |
dpurdie |
122 |
' Set spacing to minimum between buttons
|
|
|
123 |
objBtnControl.ButtonSpacer = 0
|
|
|
124 |
objBtnControl.ImageHspace = 2
|
| 119 |
ghuddy |
125 |
|
| 5983 |
dpurdie |
126 |
'--- Set button conditions ---
|
|
|
127 |
objBtnControl.IsReadonlyAction = releaseIsClosed(ReleaseMode)
|
|
|
128 |
objBtnControl.setClosed = releaseIsClosed(ReleaseMode)
|
| 119 |
ghuddy |
129 |
|
| 5983 |
dpurdie |
130 |
' NOTE: At this point, all buttons are Active and Visible and must now be configured
|
|
|
131 |
' as appropriate by statements that follow.
|
| 119 |
ghuddy |
132 |
|
| 5983 |
dpurdie |
133 |
'--- Set default button settings ---
|
|
|
134 |
Call objBtnControl.Visible("btnNewVersion", "N")
|
|
|
135 |
Call objBtnControl.Visible("btnNewVersion-MASSREF", "N")
|
|
|
136 |
Call objBtnControl.Visible("btnMakePending", "N")
|
|
|
137 |
Call objBtnControl.Active ("btnMakePending", "N")
|
|
|
138 |
Call objBtnControl.Visible("btnApprovePackage", "N")
|
|
|
139 |
Call objBtnControl.Visible("btnMakeRelease", "N")
|
| 6176 |
dpurdie |
140 |
Call objBtnControl.Active ("btnMakeRelease", "N")
|
| 5983 |
dpurdie |
141 |
Call objBtnControl.Active ("btnRejectPackage", "N")
|
| 6176 |
dpurdie |
142 |
Call objBtnControl.Visible("btnRejectPackage", "Y")
|
| 5983 |
dpurdie |
143 |
Call objBtnControl.Active ("btnRejectAutobuildPackage", "N")
|
|
|
144 |
Call objBtnControl.Visible("btnRejectAutobuildPackage", "N")
|
| 6176 |
dpurdie |
145 |
Call objBtnControl.Visible("btnMakeUnrelease", "N")
|
| 5983 |
dpurdie |
146 |
Call objBtnControl.Active ("btnMakeUnrelease", "N")
|
|
|
147 |
Call objBtnControl.Active ("btnReversionPackage", "N")
|
|
|
148 |
Call objBtnControl.Visible("btnObsoletePatch", "N")
|
|
|
149 |
Call objBtnControl.Visible("btnUnobsoletePatch", "N")
|
|
|
150 |
Call objBtnControl.Visible("btnDeprecation", "N")
|
|
|
151 |
Call objBtnControl.Visible("btnUnDeprecation", "N")
|
|
|
152 |
Call objBtnControl.Active ("btnApproveMerge", "N")
|
|
|
153 |
Call objBtnControl.Visible("btnApproveMerge", "N")
|
|
|
154 |
Call objBtnControl.Active ("btnAddDaemonInstRipplePackage", "N")
|
|
|
155 |
Call objBtnControl.Visible("btnAddDaemonInstRipplePackage", "N")
|
| 6185 |
dpurdie |
156 |
Call objBtnControl.Active ("btnDelDaemonInstRipplePackage", "N")
|
|
|
157 |
Call objBtnControl.Visible("btnDelDaemonInstRipplePackage", "N")
|
|
|
158 |
Call objBtnControl.Active ("btnDelDaemonInstTestPackage", "N")
|
|
|
159 |
Call objBtnControl.Visible("btnDelDaemonInstTestPackage", "N")
|
| 5983 |
dpurdie |
160 |
Call objBtnControl.Active ("btnAddDaemonInstTestBuildPackage", "N")
|
|
|
161 |
Call objBtnControl.Visible("btnAddDaemonInstTestBuildPackage", "N")
|
|
|
162 |
Call objBtnControl.Active ("btnMoveWIPToRelease", "N")
|
|
|
163 |
Call objBtnControl.Visible("btnMoveWIPToRelease", "N")
|
|
|
164 |
Call objBtnControl.Active ("btnDestroyWip", "N")
|
|
|
165 |
Call objBtnControl.Visible("btnDestroyWip", "N")
|
| 6176 |
dpurdie |
166 |
Call objBtnControl.Visible("btnUnLockPackage", "N")
|
|
|
167 |
Call objBtnControl.Active ("btnUnLockPackage", "N")
|
|
|
168 |
Call objBtnControl.Visible("btnLockPackage", "N")
|
|
|
169 |
Call objBtnControl.Active ("btnLockPackage", "N")
|
| 119 |
ghuddy |
170 |
|
| 6176 |
dpurdie |
171 |
' -- Change visible buttons for Auto: Manual built packages
|
|
|
172 |
' Manually build packages are very rare. Possibly just DataBase patches
|
|
|
173 |
'
|
|
|
174 |
If (pkgInfoHash.Item("build_type") <> "M") Then
|
|
|
175 |
' For automatic build
|
|
|
176 |
Call objBtnControl.Visible("btnApprovePackage", "Y")
|
|
|
177 |
Call objBtnControl.Active ("btnApprovePackage", "N")
|
| 6031 |
dpurdie |
178 |
|
| 6176 |
dpurdie |
179 |
Else
|
|
|
180 |
' For Manual Build
|
|
|
181 |
Call objBtnControl.Visible("btnMakeRelease", "Y")
|
|
|
182 |
Call objBtnControl.Active ("btnMakeRelease", "Y")
|
| 119 |
ghuddy |
183 |
|
| 6176 |
dpurdie |
184 |
End If
|
| 119 |
ghuddy |
185 |
|
| 6176 |
dpurdie |
186 |
'-- Change button setting the current state of the package
|
|
|
187 |
' Release and Locked
|
|
|
188 |
' Pending Approval
|
|
|
189 |
' Approved Waiting auto build
|
|
|
190 |
' Rejected or Unlcoked
|
|
|
191 |
'
|
| 5983 |
dpurdie |
192 |
If pkgInfoHash.Item("dlocked") = "Y" Then
|
|
|
193 |
' Package is Released and Locked
|
|
|
194 |
Call objBtnControl.Visible("btnNewVersion", "Y")
|
|
|
195 |
If Not canActionControlInProject("CreateNewVersion") Then
|
|
|
196 |
Call objBtnControl.Active("btnNewVersion", "N")
|
|
|
197 |
End If
|
| 119 |
ghuddy |
198 |
|
| 5983 |
dpurdie |
199 |
If AssocMASSREF Then
|
| 6031 |
dpurdie |
200 |
Call objBtnControl.Visible("btnNewVersion-MASSREF", "Y")
|
| 5983 |
dpurdie |
201 |
End If
|
| 119 |
ghuddy |
202 |
|
| 5983 |
dpurdie |
203 |
If (parRtag_id > 0) AND canShowControlInProject("DeprecatePackage") Then
|
| 6031 |
dpurdie |
204 |
If (pkgInfoHash.Item("is_deprecated")) Then
|
| 6080 |
dpurdie |
205 |
Call objBtnControl.Visible("btnUnDeprecation", "Y")
|
|
|
206 |
Else
|
| 6031 |
dpurdie |
207 |
Call objBtnControl.Visible("btnDeprecation", "Y")
|
|
|
208 |
End If
|
| 5983 |
dpurdie |
209 |
Else
|
| 6031 |
dpurdie |
210 |
Call objBtnControl.Active("btnDeprecation", "N")
|
|
|
211 |
Call objBtnControl.Visible("btnDeprecation", "Y")
|
| 5983 |
dpurdie |
212 |
End If
|
| 119 |
ghuddy |
213 |
|
| 5983 |
dpurdie |
214 |
Call objBtnControl.Active("btnApprovePackage", "N")
|
|
|
215 |
Call objBtnControl.Active("btnMakeRelease", "N")
|
| 119 |
ghuddy |
216 |
|
| 5983 |
dpurdie |
217 |
If pkgInfoHash.Item("can_unofficial") = "true" OR canActionControlInProject("EditCriticalInfoForLockedPackage") Then
|
| 6031 |
dpurdie |
218 |
Call objBtnControl.Visible("btnMakeUnrelease", "Y")
|
|
|
219 |
Call objBtnControl.Active("btnMakeUnrelease", "Y")
|
| 5983 |
dpurdie |
220 |
End If
|
| 5929 |
dpurdie |
221 |
|
| 5983 |
dpurdie |
222 |
' DEVI-45275 - We can now merge existing(locked) versions to planned(pending) whilst assigning an operation to them
|
|
|
223 |
' to either(A)dd or(S)ubtract the version from the release. Such items must be "rejectable" so we need to enable the
|
|
|
224 |
' reject package button.
|
|
|
225 |
If pkgInfoHash.Item("planned_operation") <> " " Then
|
| 6031 |
dpurdie |
226 |
Call objBtnControl.Visible("btnRejectPackage", "Y")
|
|
|
227 |
Call objBtnControl.Active("btnRejectPackage", "Y")
|
| 5983 |
dpurdie |
228 |
Else
|
| 6031 |
dpurdie |
229 |
Call objBtnControl.Visible("btnRejectPackage", "N")
|
| 5983 |
dpurdie |
230 |
End If
|
| 119 |
ghuddy |
231 |
|
| 5983 |
dpurdie |
232 |
Call objBtnControl.Visible("btnMakePending", "N")
|
|
|
233 |
Call objBtnControl.Visible("btnMakeRelease", "N")
|
|
|
234 |
Call objBtnControl.Visible("btnApprovePackage", "N")
|
| 6185 |
dpurdie |
235 |
|
| 5983 |
dpurdie |
236 |
Call objBtnControl.Visible("btnAddDaemonInstRipplePackage", "Y")
|
|
|
237 |
Call ActivateButtonAccordingToReleaseModeAndPermissions("btnAddDaemonInstRipplePackage", "ApproveForAutoBuild")
|
| 119 |
ghuddy |
238 |
|
| 6185 |
dpurdie |
239 |
If pkgInfoHash.Item("hasRippleInstr") <> "" Then
|
|
|
240 |
Call objBtnControl.Visible("btnDelDaemonInstRipplePackage", "Y")
|
|
|
241 |
Call ActivateButtonAccordingToReleaseModeAndPermissions("btnDelDaemonInstRipplePackage", "ApproveForAutoBuild")
|
|
|
242 |
End If
|
|
|
243 |
|
|
|
244 |
If pkgInfoHash.Item("hasTestInstr") <> "" Then
|
|
|
245 |
Call objBtnControl.Visible("btnDelDaemonInstTestPackage", "Y")
|
|
|
246 |
Call ActivateButtonAccordingToReleaseModeAndPermissions("btnDelDaemonInstTestPackage", "ApproveForAutoBuild")
|
|
|
247 |
End If
|
|
|
248 |
|
|
|
249 |
If pkgInfoHash.Item("hasRippleInstr") <> "" AND pkgInfoHash.Item("hasTestInstr") <> "" Then
|
|
|
250 |
Call objBtnControl.Active("btnAddDaemonInstRipplePackage", "N")
|
|
|
251 |
End If
|
|
|
252 |
|
| 6176 |
dpurdie |
253 |
' Unlock patch or package.
|
|
|
254 |
Call objBtnControl.Visible("btnUnLockPackage", "Y")
|
|
|
255 |
Call objBtnControl.Active ("btnUnLockPackage", "Y")
|
| 119 |
ghuddy |
256 |
|
| 5983 |
dpurdie |
257 |
ElseIf pkgInfoHash.Item("dlocked") = "P" Then
|
|
|
258 |
' In Pending
|
|
|
259 |
Call objBtnControl.Visible("btnMakePending", "N")
|
|
|
260 |
Call ActivateButtonAccordingToReleaseModeAndPermissions("btnApprovePackage", "ApproveForAutoBuild")
|
| 6176 |
dpurdie |
261 |
Call ActivateButtonAccordingToReleaseModeAndPermissions("btnMakeRelease", "ApproveForManualBuild")
|
|
|
262 |
Call ActivateButtonAccordingToReleaseModeAndPermissions("btnRejectPackage", "RejectPackageFromPending")
|
| 143 |
ghuddy |
263 |
|
| 5983 |
dpurdie |
264 |
Call objBtnControl.Active ("btnRemovePackage", "N")
|
|
|
265 |
Call objBtnControl.Visible("btnRemovePackage", "N")
|
| 143 |
ghuddy |
266 |
|
| 6176 |
dpurdie |
267 |
|
| 5983 |
dpurdie |
268 |
ElseIf pkgInfoHash.Item("dlocked") = "A" Then
|
|
|
269 |
' In Pending, Approved For Autobuild
|
|
|
270 |
Call objBtnControl.Visible("btnMakePending", "N")
|
|
|
271 |
Call objBtnControl.Active("btnMakePending", "N")
|
| 143 |
ghuddy |
272 |
|
| 5983 |
dpurdie |
273 |
Call objBtnControl.Visible("btnApprovePackage", "N")
|
|
|
274 |
Call objBtnControl.Active("btnApprovePackage", "N")
|
| 143 |
ghuddy |
275 |
|
| 5983 |
dpurdie |
276 |
Call objBtnControl.Visible("btnRejectPackage", "N")
|
|
|
277 |
Call objBtnControl.Active("btnRejectPackage", "N")
|
| 143 |
ghuddy |
278 |
|
| 6176 |
dpurdie |
279 |
Call objBtnControl.Active ("btnRemovePackage", "N")
|
|
|
280 |
Call objBtnControl.Visible("btnRemovePackage", "N")
|
| 119 |
ghuddy |
281 |
|
| 6176 |
dpurdie |
282 |
Call objBtnControl.Visible("btnRejectAutobuildPackage", "Y")
|
|
|
283 |
Call objBtnControl.Active ("btnRejectAutobuildPackage", "N")
|
|
|
284 |
|
|
|
285 |
If parRtag_id > 0 Then
|
|
|
286 |
'--- Allow failed auto-builds to be rejected back to WIP, conditions allowing.
|
|
|
287 |
' Can reject if:
|
|
|
288 |
' Manual Package and a suitable user
|
|
|
289 |
' Auto Package and
|
|
|
290 |
' The release has no active daemons OR the packahe has failed to build
|
|
|
291 |
If pkgInfoHash.Item("build_type") = "A" Then
|
|
|
292 |
If activeDaemonCount(parRtag_id) = 0 OR isInDoNotRippleTable(parRtag_id, pkgInfoHash.Item("pv_id")) = TRUE Then
|
|
|
293 |
Call ActivateButtonAccordingToReleaseModeAndPermissions("btnRejectAutobuildPackage", "RejectPackageFromPending")
|
|
|
294 |
End If
|
|
|
295 |
Else
|
|
|
296 |
' Manual Package should not be in this state
|
|
|
297 |
If canActionControlInProject("EditCriticalInfoForLockedPackage") Then
|
|
|
298 |
Call objBtnControl.Active ("btnRejectAutobuildPackage", "Y")
|
|
|
299 |
End If
|
| 6031 |
dpurdie |
300 |
End If
|
| 5983 |
dpurdie |
301 |
End If
|
| 119 |
ghuddy |
302 |
|
| 143 |
ghuddy |
303 |
|
| 5983 |
dpurdie |
304 |
Else
|
|
|
305 |
' Unlocked or rejected packages(dlocked = N or R)
|
| 6176 |
dpurdie |
306 |
Call objBtnControl.Active ("btnReversionPackage", "Y")
|
|
|
307 |
Call objBtnControl.Visible("btnReversionPackage", "Y")
|
|
|
308 |
Call objBtnControl.Visible("btnMakePending", "Y")
|
|
|
309 |
Call objBtnControl.Active ("btnMakePending", "Y")
|
| 5983 |
dpurdie |
310 |
Call objBtnControl.Visible("btnRejectPackage", "N")
|
| 143 |
ghuddy |
311 |
|
| 6176 |
dpurdie |
312 |
' Patches (which are Manual) can be directly released
|
|
|
313 |
If NOT IsNull(pkgInfoHash.Item("is_patch")) Then
|
|
|
314 |
Call objBtnControl.Visible("btnApprovePackage", "N")
|
|
|
315 |
Call objBtnControl.Visible("btnMakeRelease", "Y")
|
|
|
316 |
Call objBtnControl.Visible("btnMakeUnrelease", "Y")
|
|
|
317 |
If NOT canShowControlInProject("ReleasePatch") Then
|
|
|
318 |
Call objBtnControl.Active("btnMakeRelease", "N")
|
|
|
319 |
End If
|
|
|
320 |
|
|
|
321 |
Else
|
|
|
322 |
Call objBtnControl.Visible("btnApprovePackage", "N")
|
|
|
323 |
Call objBtnControl.Visible("btnMakeRelease", "N")
|
|
|
324 |
End If
|
|
|
325 |
|
| 5983 |
dpurdie |
326 |
Call objBtnControl.Visible("btnMoveWIPToRelease", "Y")
|
| 6176 |
dpurdie |
327 |
Call objBtnControl.Active ("btnMoveWIPToRelease", "Y")
|
| 5983 |
dpurdie |
328 |
Call objBtnControl.Visible("btnAddDaemonInstTestBuildPackage", "Y")
|
| 6176 |
dpurdie |
329 |
Call objBtnControl.Active ("btnAddDaemonInstTestBuildPackage", "Y")
|
| 4670 |
dpurdie |
330 |
|
| 5983 |
dpurdie |
331 |
Call objBtnControl.Visible("btnDestroyWip", "Y")
|
| 6176 |
dpurdie |
332 |
If ((objAccessControl.UserName = pkgInfoHash.Item("creator")) OR (canActionControlInProject("DestroyPackageFromRelease"))) Then
|
|
|
333 |
Call objBtnControl.Active ("btnDestroyWip", "Y")
|
| 4670 |
dpurdie |
334 |
End If
|
|
|
335 |
|
| 5983 |
dpurdie |
336 |
If pkgInfoHash.Item("is_wip") Then
|
|
|
337 |
Call objBtnControl.Active ("btnRemovePackage", "N")
|
|
|
338 |
Call objBtnControl.Visible("btnRemovePackage", "N")
|
|
|
339 |
End If
|
| 5964 |
dpurdie |
340 |
|
| 6176 |
dpurdie |
341 |
' lock patch or package.
|
|
|
342 |
Call objBtnControl.Visible("btnLockPackage", "Y")
|
|
|
343 |
Call objBtnControl.Active( "btnLockPackage", "Y")
|
|
|
344 |
|
| 5983 |
dpurdie |
345 |
End If
|
| 119 |
ghuddy |
346 |
|
| 6176 |
dpurdie |
347 |
'------------------------------------------------
|
|
|
348 |
' Various other tweaks
|
|
|
349 |
'
|
| 5983 |
dpurdie |
350 |
If IsNull(pkgInfoHash.Item("is_obsolete")) Then
|
|
|
351 |
Call objBtnControl.Visible("btnObsoletePatch", "Y")
|
|
|
352 |
Else
|
|
|
353 |
Call objBtnControl.Visible("btnUnobsoletePatch", "Y")
|
|
|
354 |
End If
|
| 119 |
ghuddy |
355 |
|
| 5983 |
dpurdie |
356 |
If NOT(parRtag_id > 0) Then
|
|
|
357 |
' Not shown in the context of a Release
|
| 6176 |
dpurdie |
358 |
' Determine if the package can be destroyed
|
| 5929 |
dpurdie |
359 |
|
| 5983 |
dpurdie |
360 |
If canShowControlInProject("DestroyPackage") Then
|
|
|
361 |
Call objBtnControl.Visible("btnRecycleBin", "Y")
|
|
|
362 |
ElseIf (objAccessControl.UserId = pkgInfoHash.Item("creator_id")) OR(objAccessControl.UserId = pkgInfoHash.Item("owner_id")) Then
|
|
|
363 |
'If aVersions(rsVB.FieldIndex("inuse"), i) = 0 Then
|
|
|
364 |
'If aVersions(rsVB.FieldIndex("age") , i) < 1000 Then
|
|
|
365 |
If pkgInfoHash.Item("dlocked") <> "Y" Then
|
|
|
366 |
'If pkgInfoHash.Item("dlocked") <> "A" Then
|
|
|
367 |
Call objBtnControl.Active("btnRecycleBin", "Y")
|
|
|
368 |
'End If
|
|
|
369 |
End If
|
|
|
370 |
'End If
|
| 5929 |
dpurdie |
371 |
'End If
|
| 5983 |
dpurdie |
372 |
End If
|
| 5929 |
dpurdie |
373 |
|
|
|
374 |
End If
|
| 119 |
ghuddy |
375 |
|
| 5983 |
dpurdie |
376 |
'--- Access Control Action Relationships ---
|
| 119 |
ghuddy |
377 |
|
| 5983 |
dpurdie |
378 |
' DEVI-45275 - Merges now occur via the Pending tab. Merge candidates are marked with a(planned) operation
|
|
|
379 |
' of "A" for add, or "S" for subtract. If the package version is one of these(within the context of the
|
|
|
380 |
' release of coarse), manipulate the MakeRelease button(of which there are now 3 types) accordingly.
|
|
|
381 |
If (pkgInfoHash.Item("planned_operation") = "A" OR pkgInfoHash.Item("planned_operation") = "S") Then
|
| 119 |
ghuddy |
382 |
|
| 6031 |
dpurdie |
383 |
' always enable the reject button for pending merge operations
|
| 5983 |
dpurdie |
384 |
Call objBtnControl.Visible("btnRejectPackage", "Y")
|
| 119 |
ghuddy |
385 |
|
| 6031 |
dpurdie |
386 |
' disable the other two types of MakeRelease button
|
| 5983 |
dpurdie |
387 |
Call objBtnControl.Visible("btnApprovePackage", "N")
|
|
|
388 |
Call objBtnControl.Visible("btnMakeRelease", "N")
|
| 119 |
ghuddy |
389 |
|
| 6031 |
dpurdie |
390 |
' make the approve merge button variant visible
|
| 5983 |
dpurdie |
391 |
Call objBtnControl.Visible("btnApproveMerge", "Y")
|
| 119 |
ghuddy |
392 |
|
| 6031 |
dpurdie |
393 |
' These conditions match those used in Diff.asp that control whether the Merge button is visible or not.
|
|
|
394 |
' Use them to enable or disable the approve merge button
|
| 5983 |
dpurdie |
395 |
If releaseIsMergable(ReleaseMode) Then
|
| 6031 |
dpurdie |
396 |
Call objBtnControl.Active("btnApproveMerge", "Y")
|
|
|
397 |
Call objBtnControl.Active("btnRejectPackage", "Y")
|
| 5983 |
dpurdie |
398 |
Else
|
| 6031 |
dpurdie |
399 |
Call objBtnControl.Active("btnApproveMerge", "N")
|
|
|
400 |
Call objBtnControl.Active("btnRejectPackage", "N")
|
| 5983 |
dpurdie |
401 |
End If
|
|
|
402 |
End If
|
| 119 |
ghuddy |
403 |
|
| 6176 |
dpurdie |
404 |
' Have now set visible button based on the current state of the package
|
|
|
405 |
' No deactivate buttons based on the Release Mode and users permissions
|
|
|
406 |
' Users should be able to see what 'could' be done, even if they don't have permission
|
|
|
407 |
'
|
|
|
408 |
If (ReleaseMode = enumDB_RELEASE_IN_RESTRICTIVE_MODE) OR (ReleaseMode = enumDB_RELEASE_IN_CCB_MODE) Then
|
|
|
409 |
|
|
|
410 |
Dim canAddRemove, canRelease, canAlter
|
|
|
411 |
canAddRemove = canActionControlInProject("AddDeletePackageInRestrictiveMode")
|
|
|
412 |
canRelease = canActionControlInProject("ApprovePackageReleaseForRestrictiveMode")
|
|
|
413 |
canAlter = canActionControlInProject("AlterReleaseContentsInRestrictiveMode")
|
|
|
414 |
|
|
|
415 |
' If in CCB mode then we must also be able to 'Alter Release Contents)
|
|
|
416 |
'
|
|
|
417 |
If (ReleaseMode = enumDB_RELEASE_IN_CCB_MODE) AND (NOT canAlter) Then
|
|
|
418 |
canAddRemove = False
|
|
|
419 |
canRelease = False
|
|
|
420 |
End If
|
|
|
421 |
|
|
|
422 |
' Disable Package Release Actions - unless allowed
|
|
|
423 |
' ApprovePackage ( for autobuild )
|
|
|
424 |
' MakeRelease ( for Manual Build )
|
|
|
425 |
' ApproveMerge
|
|
|
426 |
'
|
|
|
427 |
If NOT (canRelease) Then
|
|
|
428 |
Call objBtnControl.Active("btnApprovePackage", "N")
|
|
|
429 |
Call objBtnControl.Active("btnMakeRelease", "N")
|
|
|
430 |
Call objBtnControl.Active("btnApproveMerge", "N")
|
|
|
431 |
Call objBtnControl.Active("btnRejectPackage", "N")
|
|
|
432 |
|
|
|
433 |
End If
|
|
|
434 |
|
|
|
435 |
' Disable Release Modification Actions - Unless allowed
|
|
|
436 |
' Create New version of a package
|
|
|
437 |
' Remove a package
|
|
|
438 |
'
|
|
|
439 |
If NOT (canAddRemove ) Then
|
|
|
440 |
Call objBtnControl.Active("btnNewVersion", "N")
|
|
|
441 |
Call objBtnControl.Active("btnRemovePackage", "N")
|
|
|
442 |
End If
|
|
|
443 |
|
|
|
444 |
End If
|
|
|
445 |
|
|
|
446 |
'---------------------------------------------------------------------------
|
|
|
447 |
' Unlock Package
|
|
|
448 |
' Note: Unlocking of a Package or Patch is intended for the administrators
|
|
|
449 |
'
|
|
|
450 |
If NOT (pkgInfoHash("is_released") AND canActionControlInProject("EditCriticalInfoForLockedPackage")) Then
|
|
|
451 |
Call objBtnControl.Active ("btnUnLockPackage", "N")
|
|
|
452 |
Call objBtnControl.Active( "btnLockPackage", "N")
|
|
|
453 |
End If
|
|
|
454 |
|
|
|
455 |
' Unbuildable packages
|
|
|
456 |
' Spontaneously generated package - by Deployment Manager
|
| 5983 |
dpurdie |
457 |
If (pkgInfoHash.Item("build_type") = "U") Then
|
| 6031 |
dpurdie |
458 |
Call objBtnControl.Active("btnMakeRelease", "N")
|
|
|
459 |
Call objBtnControl.Active("btnApprovePackage", "N")
|
| 6176 |
dpurdie |
460 |
Call objBtnControl.Active("btnMakeRelease", "N")
|
| 6031 |
dpurdie |
461 |
Call objBtnControl.Active("btnMakeUnrelease", "N")
|
|
|
462 |
Call objBtnControl.Active("btnAddDaemonInstTestBuildPackage", "N")
|
|
|
463 |
Call objBtnControl.Active("btnMakePending", "N")
|
|
|
464 |
Call objBtnControl.Active("btnApproveMerge", "N")
|
| 6176 |
dpurdie |
465 |
Call objBtnControl.Active("btnUnLockPackage", "N")
|
|
|
466 |
Call objBtnControl.Active("btnLockPackage", "N")
|
| 5983 |
dpurdie |
467 |
End If
|
| 5898 |
dpurdie |
468 |
|
| 6176 |
dpurdie |
469 |
' Manual Packages
|
| 6031 |
dpurdie |
470 |
If (pkgInfoHash.Item("build_type") = "M") Then
|
| 6176 |
dpurdie |
471 |
' Cannot be rippled or test built
|
| 6031 |
dpurdie |
472 |
Call objBtnControl.Active("btnAddDaemonInstTestBuildPackage", "N")
|
| 6176 |
dpurdie |
473 |
Call objBtnControl.Active("btnAddDaemonInstRipplePackage", "N")
|
| 6031 |
dpurdie |
474 |
|
| 6176 |
dpurdie |
475 |
' Cannot be Released, unless in the archive
|
|
|
476 |
If Not pkgInfoHash.Item("isInArchive") AND NOT canActionControlInProject("EditCriticalInfoForLockedPackage") Then
|
|
|
477 |
Call objBtnControl.Active("btnMakeRelease", "N")
|
|
|
478 |
End If
|
|
|
479 |
|
| 5983 |
dpurdie |
480 |
End If
|
| 4670 |
dpurdie |
481 |
|
| 5983 |
dpurdie |
482 |
'-- Disable if the Package is imported as a part of an SDK
|
|
|
483 |
' Or as part of a linked Release
|
| 6176 |
dpurdie |
484 |
' Or the user is not logged in
|
|
|
485 |
' Or user cannot edit in this project
|
|
|
486 |
If (pkgInfoHash.Item("can_edit_in_project") <> "1") OR (NOT objAccessControl.UserLogedIn) OR (NOT canActionInProject() ) Then
|
| 5983 |
dpurdie |
487 |
Call objBtnControl.Active("btnNewVersion", "N")
|
|
|
488 |
Call objBtnControl.Active("btnDestroyWip" , "N")
|
|
|
489 |
Call objBtnControl.Active("btnRemovePackage", "N")
|
|
|
490 |
Call objBtnControl.Active("btnAddDaemonInstTestBuildPackage", "N")
|
|
|
491 |
Call objBtnControl.Active("btnMakePending", "N")
|
| 6176 |
dpurdie |
492 |
Call objBtnControl.Active("btnMakeRelease", "N")
|
| 5983 |
dpurdie |
493 |
Call objBtnControl.Active("btnApprovePackage", "N")
|
|
|
494 |
Call objBtnControl.Active("btnApproveMerge", "N")
|
|
|
495 |
Call objBtnControl.Active("btnRejectPackage", "N")
|
|
|
496 |
Call objBtnControl.Active("btnRejectAutobuildPackage", "N")
|
|
|
497 |
Call objBtnControl.Active("btnMakeUnrelease", "N")
|
|
|
498 |
Call objBtnControl.Active("btnMoveToView", "N")
|
|
|
499 |
Call objBtnControl.Active("btnMoveWIPToRelease", "N")
|
|
|
500 |
Call objBtnControl.Active("btnDeprecation", "N")
|
|
|
501 |
Call objBtnControl.Active("btnUnDeprecation", "N")
|
|
|
502 |
Call objBtnControl.Active("btnAddDaemonInstRipplePackage", "N")
|
| 6185 |
dpurdie |
503 |
Call objBtnControl.Active("btnDelDaemonInstRipplePackage", "N")
|
|
|
504 |
Call objBtnControl.Active("btnDelDaemonInstTestPackage", "N")
|
| 6176 |
dpurdie |
505 |
Call objBtnControl.Active ("btnUnLockPackage", "N")
|
|
|
506 |
Call objBtnControl.Active ("btnLockPackage", "N")
|
| 5983 |
dpurdie |
507 |
End If
|
| 4670 |
dpurdie |
508 |
|
| 6176 |
dpurdie |
509 |
If (NOT objAccessControl.UserLogedIn) OR (NOT canActionInProject() ) Then
|
|
|
510 |
Call objBtnControl.Active("btnReversionPackage", "N")
|
|
|
511 |
End If
|
|
|
512 |
|
| 5983 |
dpurdie |
513 |
If (pkgInfoHash.Item("base_view_id") = "") Then
|
|
|
514 |
Call objBtnControl.Active("btnMoveToView", "N")
|
|
|
515 |
End IF
|
| 5590 |
dpurdie |
516 |
|
| 5983 |
dpurdie |
517 |
'--- Other Access Control Action Relationships ---
|
|
|
518 |
If (ReleaseMode = enumDB_RELEASE_IN_CCB_MODE) Then Call objBtnControl.SetRelationship("btnMakeRelease", "ApprovePackageReleaseForRestrictiveMode")
|
| 119 |
ghuddy |
519 |
|
| 5983 |
dpurdie |
520 |
Call objBtnControl.SetRelationship("btnPendingIntegration", "ApproveForPendingIntegration")
|
|
|
521 |
Call objBtnControl.SetRelationship("btnPendingTest", "ApproveForPendingTest")
|
|
|
522 |
Call objBtnControl.SetRelationship("btnPendingDeployment", "ApproveForPendingDeployment")
|
|
|
523 |
Call objBtnControl.SetRelationship("btnRejectProduct", "RejectProduct")
|
|
|
524 |
Call objBtnControl.SetRelationship("btnPendingIntegrateAndDeploy", "ApprovePendingIntegrateAndDeploy")
|
| 119 |
ghuddy |
525 |
|
| 5983 |
dpurdie |
526 |
'---------------------------------------------------------------------------
|
|
|
527 |
' -- Render Buttons
|
|
|
528 |
Call objBtnControl.Render (aTabBtnsDef, objAccessControl)
|
| 185 |
brianf |
529 |
End Sub
|
| 119 |
ghuddy |
530 |
%>
|