| 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 |
%>
|