Subversion Repositories DevTools

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

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