Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
119 ghuddy 1
<%
2
'=====================================================
3
'				Package Action Buttons
4
'=====================================================
5
%>
6
 
7
<%
8
'--Determine whether the release has an associated MASS_REF
9
Dim rsAssoc, AssocMASSREF, AssocMASSREFValue, StatesUsed
10
If Request("rtag_id") <> "" Then
11
	Set rsAssoc = OraDatabase.DbCreateDynaset( "SELECT ASSOC_MASS_REF, PRODUCT_STATE_USED FROM RELEASE_TAGS WHERE RTAG_ID="&Request("rtag_id"), cint(0))
12
	AssocMASSREFValue = rsAssoc("ASSOC_MASS_REF")
13
	StatesUsed = rsAssoc("PRODUCT_STATE_USED")
14
		If NOT IsNull(rsAssoc("ASSOC_MASS_REF")) Then
15
			AssocMASSREF = True
16
		Else
17
			AssocMASSREF = False
18
		End If
19
	rsAssoc.Close()
20
	Set rsAssoc = nothing
21
End If
22
 
23
'-- Define Action buttons on this tab
24
If IsNull(pkgInfoHash.Item("is_patch")) Then
25
	If Request("rtag_id") <> "" Then
26
		If (pkgInfoHash.Item("can_edit_in_project") = "1" OR  _
27
		   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"))  ) _
28
 
29
		Then
30
			If pkgInfoHash.Item("is_deployable") = "Y" AND pkgInfoHash.Item("dlocked") = "Y" AND StatesUsed = "Y" Then
31
				If pkgInfoHash.Item("product_state") = 1 Then
32
 
33
				'Response.Write("Pressed")
34
					' For Products that have been approved for Pending Integration
35
					aTabBtnsDef = Array("btnNewVersion", "btnVersionHistory", "btnArchivedVersionHistory", "btnPendingTest", "btnRejectProduct", "width=20", _
36
							        "width=20", "btnMoveToView", "btnStickyNotes")
37
 
38
				ElseIf pkgInfoHash.Item("product_state") = 2 Then
39
					' For Products that have been approved for Pending Test
40
					aTabBtnsDef = Array("btnNewVersion", "btnVersionHistory", "btnArchivedVersionHistory", "btnPendingIntegration", "btnPendingDeployment","btnRejectProduct", "width=20", _
41
							        "width=20", "btnMoveToView", "btnStickyNotes")
42
 
43
				ElseIf pkgInfoHash.Item("product_state") = 3 or pkgInfoHash.Item("product_state") = 4 Then
44
			'		'For Products that have been approved for Pending Deployment
45
					aTabBtnsDef = Array("btnNewVersion", "btnVersionHistory", "btnArchivedVersionHistory", "btnRemovePackage", "width=20", "btnRejectPackage", "width=20", _
46
							        "btnMoveToView", "btnReversionPackage", "width=20", "btnMoveToView", "btnStickyNotes")
47
 
48
				ElseIf pkgInfoHash.Item("product_state") = 5 Then
49
			'		'For Products that have been approved for Pending Integration and Deployment
50
					aTabBtnsDef = Array("btnNewVersion", "btnVersionHistory", "btnArchivedVersionHistory", "btnPendingDeployment", "width=20", _
51
							        "width=20", "btnMoveToView", "btnStickyNotes")
52
 
53
				ElseIf IsNull(pkgInfoHash.Item("product_state")) Then
54
					If objAccessControl.IsVisible("ApprovePendingIntegrateAndDeploy") Then
55
						'For Products that have have not yet been approved for Pending Integration
56
						aTabBtnsDef = Array("btnNewVersion", "btnVersionHistory", "btnArchivedVersionHistory", "btnPendingIntegration", "btnPendingIntegrateAndDeploy", "btnRejectProduct", "width=20", "btnRemovePackage", _
57
								        "btnMoveToView", "btnStickyNotes", "btnDeprecation", "btnUnDeprecation")
58
					Else
59
						'For Products that have have not yet been approved for Pending Integration
60
						aTabBtnsDef = Array("btnNewVersion", "btnVersionHistory", "btnArchivedVersionHistory", "btnPendingIntegration","btnRemovePackage", "width=20", "btnRejectProduct", "width=20", _
61
								        "width=20", "btnMoveToView", "btnStickyNotes")
62
					End If
63
				Else
64
					' For Packages Not In Release(Bug Fix From Deployment Manager)
65
					aTabBtnsDef = Array("btnNewVersion", "btnVersionHistory", "btnArchivedVersionHistory", "btnRemovePackage", "width=20", "btnMakePending", "btnApprovePackage", "btnMakeRelease", "btnRejectPackage", "width=20", _
66
						        	"btnMoveToView", "btnReversionPackage", "width=20", "btnMoveToView", "btnStickyNotes", "btnDeprecation", "btnUnDeprecation")
67
 
68
				End If
69
 
70
			ElseIf objAccessControl.IsActive("EditCriticalInfoForLockedPackage") Then
71
				' For Packages in Release
72
				aTabBtnsDef = Array("btnNewVersion", "btnVersionHistory", "btnArchivedVersionHistory", "btnRemovePackage", "width=20", "btnMakePending", "btnApprovePackage", "btnApproveMerge", "btnMakeRelease", "btnRejectPackage", "btnMakeUnrelease", "width=20", _
73
					        	"btnMoveToView", "btnReversionPackage", "width=20", "btnStickyNotes", "btnDeprecation", "btnUnDeprecation")
74
			Else
75
				' For Packages in Release
76
				aTabBtnsDef = Array("btnNewVersion", "btnVersionHistory", "btnArchivedVersionHistory", "btnRemovePackage", "width=20", "btnMakePending", "btnApprovePackage", "btnApproveMerge", "btnMakeRelease", "btnRejectPackage", "width=20", _
77
					        	"btnMoveToView", "btnReversionPackage", "width=20", "btnStickyNotes", "btnDeprecation", "btnUnDeprecation")
78
			End If
79
		Else
80
			' Non-Editable Packages in Release
81
			If AssocMASSREF Then
82
				aTabBtnsDef = Array( "btnNewVersion-MASSREF", "btnVersionHistory", "btnArchivedVersionHistory", "btnStickyNotes", "btnDeprecation", "btnUnDeprecation")
83
			Else
84
				aTabBtnsDef = Array( "btnVersionHistory", "btnArchivedVersionHistory", "btnStickyNotes", "btnDeprecation", "btnUnDeprecation")
85
			End If
86
		End If
87
 
88
	Else
89
		' For standalone Packages (Not view in project release)
90
		aTabBtnsDef = Array("btnVersionHistory", "btnArchivedVersionHistory", "btnReversionPackage", "width=20", "btnStickyNotes")
91
	End If
92
 
93
Else
94
	' For Patches
95
	'aTabBtnsDef = Array("btnMakePending", "btnApprovePackage", "btnMakeRelease", "btnMakeUnrelease", "btnRejectPackage", "width=20", _
96
	'			        "btnReversionPackage", "width=20", "btnObsoletePatch", "btnUnobsoletePatch", "width=20","btnStickyNotes")
97
	aTabBtnsDef = Array("btnMakeRelease", "btnMakeUnrelease", "width=20", _
98
				        "btnReversionPackage", "width=20", "btnObsoletePatch", "btnUnobsoletePatch", "width=20","btnStickyNotes")
99
 
100
 
101
End If
102
 
103
' Load action buttons from database
104
Call objBtnControl.LoadActionButtons ( aTabBtnsDef, OraDatabase )
105
 
106
' Set spacing to minimum between buttons
107
objBtnControl.ButtonSpacer = 0
108
objBtnControl.ImageHspace = 2
109
 
110
 
111
'--- Set button conditions ---
112
objBtnControl.IsReadonlyAction = Eval( ReleaseMode = enumDB_RELEASE_IN_CLOSED_MODE )
113
 
114
 
115
 
116
'--- Set default button settings ---
117
Call objBtnControl.Visible ( "btnNewVersion", "N" )
118
Call objBtnControl.Visible ( "btnNewVersion-MASSREF", "N")
119
Call objBtnControl.Visible ( "btnMakePending", "N" )
120
Call objBtnControl.Active ( "btnMakePending", "N" )
121
Call objBtnControl.Visible ( "btnApprovePackage", "N" )
122
Call objBtnControl.Visible ( "btnMakeRelease", "N" )
123
'Call objBtnControl.Active ( "btnMakeRelease", "N" )
124
Call objBtnControl.Active ( "btnRejectPackage", "N" )
125
Call objBtnControl.Visible ( "btnRejectPackage", "N" )
126
Call objBtnControl.Active ( "btnMakeUnrelease", "N" )
127
Call objBtnControl.Active ( "btnReversionPackage", "N" )
128
Call objBtnControl.Visible ( "btnObsoletePatch", "N" )
129
Call objBtnControl.Visible ( "btnUnobsoletePatch", "N" )
130
Call objBtnControl.Visible ( "btnDeprecation", "N" )
131
Call objBtnControl.Visible ( "btnUnDeprecation", "N" )
132
Call objBtnControl.Active ( "btnApproveMerge", "N" )
133
Call objBtnControl.Visible ( "btnApproveMerge", "N" )
134
 
135
 
136
 
137
If objAccessControl.IsDataActive ("PROJECTS", DB_PROJ_ID, "EditProjects") Then
138
	'-- Change button setting on conditions ---
139
	If ( pkgInfoHash.Item ("build_type") = "A" ) Then
140
		' For automatic build
141
		Call objBtnControl.Visible ( "btnMakePending", "Y" )
142
 
143
		Call objBtnControl.Visible ( "btnApprovePackage", "Y" )
144
		Call objBtnControl.Active ( "btnApprovePackage", "N" )
145
 
146
		Call objBtnControl.Visible ( "btnMakeUnrelease", "N" )
147
		Call objBtnControl.Visible ( "btnRejectPackage", "Y" )
148
 
149
	Else
150
		If ( ReleaseMode = enumDB_RELEASE_IN_CCB_MODE ) And Not objAccessControl.IsVisible("ApproveForManualBuild") Then
151
			Call objBtnControl.Visible ( "btnMakeRelease", "N" )
152
		Else
153
			Call objBtnControl.Visible ( "btnMakeRelease", "Y" )
154
		End If
155
 
156
		If (pkgInfoHash.Item("is_patch")) <> "" Then
157
			If objAccessControl.IsVisible("ReleasePatch") Then
158
				Call objBtnControl.Visible ( "btnMakeRelease", "Y" )
159
			Else
160
				Call objBtnControl.Visible ( "btnMakeRelease", "N" )
161
			End If
162
		End If
163
 
164
		If ( ReleaseMode = enumDB_RELEASE_IN_CCB_MODE ) Or (ReleaseMode = enumDB_RELEASE_IN_RESTRICTIVE_MODE) Then
165
 
166
			Call objBtnControl.Visible ( "btnMakePending", "Y" )
167
 
168
 
169
			If ( ( pkgInfoHash.Item ("dlocked") = "N" ) OR ( pkgInfoHash.Item ("dlocked") = "R" ) ) _
170
		   	AND ( IsNull(pkgInfoHash.Item("is_patch")) ) _
171
			Then Call objBtnControl.Active ( "btnMakeRelease", "N" )
172
 
173
 
174
			Call objBtnControl.Visible ( "btnMakeUnrelease", "N" )
175
			Call objBtnControl.Visible ( "btnRejectPackage", "Y" )
176
 
177
 
178
			Call objBtnControl.Visible ( "btnRemovePackage", "N" )
179
 
180
		Else
181
			'Call objBtnControl.Active ( "btnMakeRelease", "Y" )
182
   		End If
183
 
184
	End If
185
End If
186
 
187
 
188
 
189
'-- Change button setting on conditions ---
190
If pkgInfoHash.Item ("dlocked") = "Y" Then
191
 
192
	Call objBtnControl.Visible ( "btnNewVersion", "Y" )
193
 
194
	If AssocMASSREF Then
195
		Call objBtnControl.Visible ( "btnNewVersion-MASSREF", "Y" )
196
	End If
197
 
198
	If Request("rtag_id") <> "" AND objAccessControl.IsVisible("DeprecatePackage") Then
199
		Dim rsDeprecate
200
		If NOT IsNull(pkgInfoHash.Item ("v_ext")) Then
201
			Set 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))
202
		Else
203
			Set 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))
204
		End If
205
 
206
		If (rsDeprecate.RecordCount) = 0 Then
207
			Call objBtnControl.Visible ( "btnDeprecation", "Y" )
208
		Else
209
			Call objBtnControl.Visible ( "btnUnDeprecation", "Y" )
210
		End If
211
		rsDeprecate.Close()
212
		Set rsDeprecate = nothing
213
	End If
214
	Call objBtnControl.Active ( "btnApprovePackage", "N" )
215
	Call objBtnControl.Active ( "btnMakeRelease", "N" )
216
 
217
	If pkgInfoHash.Item("can_unofficial") = "true" OR objAccessControl.IsActive("EditCriticalInfoForLockedPackage") Then
218
		Call objBtnControl.Visible ( "btnMakeUnrelease", "Y" )
219
		Call objBtnControl.Active ( "btnMakeUnrelease", "Y" )
220
	End If
221
 
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
226
		Call objBtnControl.Visible ( "btnRejectPackage", "Y" )
227
		Call objBtnControl.Active ( "btnRejectPackage", "Y" )
228
	End If
229
 
230
ElseIf pkgInfoHash.Item ("dlocked") = "P" Then
231
 
232
	Call objBtnControl.Active ( "btnMakePending", "N" )
233
	Call objBtnControl.Active ( "btnApprovePackage", "Y" )
234
	Call objBtnControl.Active ( "btnRejectPackage", "Y" )
235
 
236
ElseIf pkgInfoHash.Item ("dlocked") = "A" Then
237
	Call objBtnControl.Active ( "btnMakePending", "N" )
238
	Call objBtnControl.Active ( "btnApprovePackage", "N" )
239
	Call objBtnControl.Visible ( "btnRejectPackage", "N" )
240
 
241
	Call objBtnControl.Visible ( "btnMakeUnrelease", "Y" )
242
	Call objBtnControl.Active ( "btnMakeUnrelease", "N" )
243
	If pkgInfoHash.Item("can_unofficial") = "true" OR objAccessControl.IsActive("EditCriticalInfoForLockedPackage") Then
244
		Call objBtnControl.Active ( "btnMakeUnrelease", "Y" )
245
	End If
246
 
247
Else
248
	' Unlocked or rejected packages
249
	Call objBtnControl.Active ( "btnReversionPackage", "Y" )
250
	Call objBtnControl.Active ( "btnMakePending", "Y" )
251
 
252
End If
253
 
254
 
255
If IsNull(pkgInfoHash.Item ("is_obsolete")) Then
256
	Call objBtnControl.Visible ( "btnObsoletePatch", "Y" )
257
Else
258
	Call objBtnControl.Visible ( "btnUnobsoletePatch", "Y" )
259
End If
260
 
261
If objAccessControl.IsVisible("DestroyPackage") Then
262
	Call objBtnControl.Visible ( "btnRecycleBin", "Y" )
263
End If
264
 
265
'--- Access Control Action Relationships ---
266
If ( ReleaseMode = enumDB_RELEASE_IN_OPEN_MODE ) AND pkgInfoHash.Item("build_type") = "A" Then
267
	Call objBtnControl.Visible ( "btnApprovePackage", "Y" )
268
Else
269
	Call objBtnControl.SetRelationship ( "btnApprovePackage", "ApproveForAutoBuild" )
270
End If
271
 
272
' DEVI-45275 - Merges now occur via the Pending tab. Merge candidates are marked with a (planned) operation
273
' of "A" for add, or "S" for subtract. If the package version is one of these (within the context of the
274
' release ofcoarse), manipulate the MakeRelease button (of which there are now 3 types) accordingly.
275
If ( pkgInfoHash.Item ("planned_operation") = "A" OR pkgInfoHash.Item ("planned_operation") = "S") Then
276
 
277
	' always enable the reject button for pending merge operations
278
	Call objBtnControl.Active ( "btnRejectPackage", "Y" )
279
	Call objBtnControl.Visible ( "btnRejectPackage", "Y" )
280
 
281
	' disable the other two types of MakeRelease button
282
	Call objBtnControl.Visible ( "btnApprovePackage", "N" )
283
	Call objBtnControl.Active ( "btnApprovePackage", "N" )
284
	Call objBtnControl.Visible ( "btnMakeRelease", "N" )
285
	Call objBtnControl.Active ( "btnMakeRelease", "N" )
286
 
287
	' make the approve merge button variant visible
288
	Call objBtnControl.Visible ( "btnApproveMerge", "Y" )
289
 
290
	' These conditions match those used in Diff.asp that control whether the Merge button is visible or not.
291
	' Use them to enable or disable the approve merge button
292
	If ( ReleaseMode <> enumDB_RELEASE_IN_CLOSED_MODE AND ReleaseMode <> enumDB_RELEASE_IN_CCB_MODE AND objAccessControl.IsActive("MergeRelease") ) _
293
		OR ( ReleaseMode = enumDB_RELEASE_IN_CCB_MODE AND objAccessControl.IsActive("MergeReleaseForCCB") ) Then
294
 
295
		Call objBtnControl.Active ( "btnApproveMerge", "Y" )
296
	Else
297
		Call objBtnControl.Active ( "btnApproveMerge", "N" )
298
	End If
299
End If
300
 
301
 
302
'--- Other Access Control Action Relationships ---
303
'Call objBtnControl.SetRelationship ( "btnRejectPackage", "ApproveForAutoBuild" )
304
If ( ReleaseMode = enumDB_RELEASE_IN_CCB_MODE )  Then Call objBtnControl.SetRelationship ( "btnMakeRelease", "ApprovePackageReleaseForRestrictiveMode" )
305
Call objBtnControl.SetRelationship ( "btnRejectPackage", "RejectPackageFromPending" )
306
 
307
 
308
Call objBtnControl.SetRelationship ( "btnPendingIntegration", "ApproveForPendingIntegration" )
309
Call objBtnControl.SetRelationship ( "btnPendingTest", "ApproveForPendingTest" )
310
Call objBtnControl.SetRelationship ( "btnPendingDeployment", "ApproveForPendingDeployment" )
311
Call objBtnControl.SetRelationship ( "btnRejectProduct", "RejectProduct" )
312
Call objBtnControl.SetRelationship ( "btnPendingIntegrateAndDeploy", "ApprovePendingIntegrateAndDeploy" )
313
 
314
 
315
 
316
' -- Render Buttons
317
Call objBtnControl.Render  ( aTabBtnsDef, objAccessControl )
318
%>