Subversion Repositories DevTools

Rev

Rev 6579 | Rev 6642 | Go to most recent revision | Details | Compare with Previous | 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
<%
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")
6188 dpurdie 328
 
5983 dpurdie 329
        Call objBtnControl.Visible("btnAddDaemonInstTestBuildPackage", "Y")
6176 dpurdie 330
        Call objBtnControl.Active ("btnAddDaemonInstTestBuildPackage", "Y")
4670 dpurdie 331
 
6188 dpurdie 332
        If pkgInfoHash.Item("hasTestInstr") <> "" Then
333
            Call objBtnControl.Active("btnAddDaemonInstTestBuildPackage", "N")
334
            Call objBtnControl.Visible("btnDelDaemonInstTestPackage", "Y")
335
            Call objBtnControl.Active("btnDelDaemonInstTestPackage", "Y")
336
        End If
337
 
5983 dpurdie 338
        Call objBtnControl.Visible("btnDestroyWip", "Y")
6176 dpurdie 339
        If ((objAccessControl.UserName = pkgInfoHash.Item("creator")) OR (canActionControlInProject("DestroyPackageFromRelease"))) Then
340
            Call objBtnControl.Active ("btnDestroyWip", "Y")
4670 dpurdie 341
        End If
342
 
5983 dpurdie 343
        If pkgInfoHash.Item("is_wip")  Then
344
            Call objBtnControl.Active ("btnRemovePackage", "N")
345
            Call objBtnControl.Visible("btnRemovePackage", "N")
346
        End If
5964 dpurdie 347
 
6176 dpurdie 348
        ' lock patch or package.
349
        Call objBtnControl.Visible("btnLockPackage", "Y")
350
        Call objBtnControl.Active( "btnLockPackage", "Y")
351
 
5983 dpurdie 352
    End If
119 ghuddy 353
 
6176 dpurdie 354
    '------------------------------------------------
355
    '   Various other tweaks
356
    '
5983 dpurdie 357
    If IsNull(pkgInfoHash.Item("is_obsolete")) Then
358
        Call objBtnControl.Visible("btnObsoletePatch", "Y")
359
    Else
360
        Call objBtnControl.Visible("btnUnobsoletePatch", "Y")
361
    End If
119 ghuddy 362
 
5983 dpurdie 363
    If NOT(parRtag_id > 0) Then
364
        ' Not shown in the context of a Release
6176 dpurdie 365
        ' Determine if the package can be destroyed
5929 dpurdie 366
 
5983 dpurdie 367
        If canShowControlInProject("DestroyPackage") Then
368
           Call objBtnControl.Visible("btnRecycleBin", "Y")
369
        ElseIf (objAccessControl.UserId = pkgInfoHash.Item("creator_id")) OR(objAccessControl.UserId = pkgInfoHash.Item("owner_id")) Then
370
            'If aVersions(rsVB.FieldIndex("inuse"), i) = 0 Then
371
                'If aVersions(rsVB.FieldIndex("age") , i) < 1000 Then
372
                    If pkgInfoHash.Item("dlocked") <> "Y" Then
373
                        'If pkgInfoHash.Item("dlocked") <> "A" Then
374
                            Call objBtnControl.Active("btnRecycleBin", "Y")
375
                        'End If
376
                    End If
377
                'End If
5929 dpurdie 378
            'End If
5983 dpurdie 379
        End If
5929 dpurdie 380
 
381
    End If
119 ghuddy 382
 
5983 dpurdie 383
    '--- Access Control Action Relationships ---
119 ghuddy 384
 
5983 dpurdie 385
    ' DEVI-45275 - Merges now occur via the Pending tab. Merge candidates are marked with a(planned) operation
386
    ' of "A" for add, or "S" for subtract. If the package version is one of these(within the context of the
387
    ' release of coarse), manipulate the MakeRelease button(of which there are now 3 types) accordingly.
388
    If (pkgInfoHash.Item("planned_operation") = "A" OR pkgInfoHash.Item("planned_operation") = "S") Then
119 ghuddy 389
 
6031 dpurdie 390
        ' always enable the reject button for pending merge operations
5983 dpurdie 391
        Call objBtnControl.Visible("btnRejectPackage", "Y")
119 ghuddy 392
 
6031 dpurdie 393
        ' disable the other two types of MakeRelease button
5983 dpurdie 394
        Call objBtnControl.Visible("btnApprovePackage", "N")
395
        Call objBtnControl.Visible("btnMakeRelease", "N")
119 ghuddy 396
 
6031 dpurdie 397
        ' make the approve merge button variant visible
5983 dpurdie 398
        Call objBtnControl.Visible("btnApproveMerge", "Y")
119 ghuddy 399
 
6031 dpurdie 400
        ' These conditions match those used in Diff.asp that control whether the Merge button is visible or not.
401
        ' Use them to enable or disable the approve merge button
5983 dpurdie 402
        If releaseIsMergable(ReleaseMode) Then
6031 dpurdie 403
            Call objBtnControl.Active("btnApproveMerge", "Y")
404
            Call objBtnControl.Active("btnRejectPackage", "Y")
5983 dpurdie 405
        Else
6031 dpurdie 406
            Call objBtnControl.Active("btnApproveMerge", "N")
407
            Call objBtnControl.Active("btnRejectPackage", "N")
5983 dpurdie 408
        End If
409
    End If
119 ghuddy 410
 
6176 dpurdie 411
    '   Have now set visible button based on the current state of the package
412
    '   No deactivate buttons based on the Release Mode and users permissions
413
    '       Users should be able to see what 'could' be done, even if they don't have permission
414
    '
415
    If (ReleaseMode = enumDB_RELEASE_IN_RESTRICTIVE_MODE) OR (ReleaseMode = enumDB_RELEASE_IN_CCB_MODE) Then
416
 
417
        Dim canAddRemove, canRelease, canAlter
418
        canAddRemove = canActionControlInProject("AddDeletePackageInRestrictiveMode")
419
        canRelease   = canActionControlInProject("ApprovePackageReleaseForRestrictiveMode")
420
        canAlter     = canActionControlInProject("AlterReleaseContentsInRestrictiveMode")
421
 
422
        ' If in CCB mode then we must also be able to 'Alter Release Contents) 
423
        '
424
        If (ReleaseMode = enumDB_RELEASE_IN_CCB_MODE) AND (NOT canAlter) Then
425
            canAddRemove = False
426
            canRelease = False
427
        End If
428
 
429
        ' Disable Package Release Actions - unless allowed
430
        '   ApprovePackage ( for autobuild )
431
        '   MakeRelease ( for Manual Build )
432
        '   ApproveMerge
433
        '   
434
        If NOT (canRelease) Then
435
            Call objBtnControl.Active("btnApprovePackage", "N")
436
            Call objBtnControl.Active("btnMakeRelease", "N")
437
            Call objBtnControl.Active("btnApproveMerge", "N")
438
            Call objBtnControl.Active("btnRejectPackage", "N")
439
 
440
        End If
441
 
442
        ' Disable Release Modification Actions - Unless allowed
443
        '   Create New version of a package
444
        '   Remove a package
445
        '
446
        If NOT (canAddRemove ) Then
447
            Call objBtnControl.Active("btnNewVersion", "N")
448
            Call objBtnControl.Active("btnRemovePackage", "N")
449
        End If
450
 
451
    End If
452
 
453
    '---------------------------------------------------------------------------
454
    ' Unlock Package
455
    ' Note: Unlocking of a Package or Patch is intended for the administrators
456
    '
457
    If NOT (pkgInfoHash("is_released") AND canActionControlInProject("EditCriticalInfoForLockedPackage")) Then
458
        Call objBtnControl.Active ("btnUnLockPackage", "N")
459
        Call objBtnControl.Active( "btnLockPackage", "N")
460
    End If
461
 
462
    ' Unbuildable packages
463
    '   Spontaneously generated package - by Deployment Manager
5983 dpurdie 464
    If (pkgInfoHash.Item("build_type") = "U") Then
6031 dpurdie 465
        Call objBtnControl.Active("btnMakeRelease", "N")
466
        Call objBtnControl.Active("btnApprovePackage", "N")
6176 dpurdie 467
        Call objBtnControl.Active("btnMakeRelease", "N")
6031 dpurdie 468
        Call objBtnControl.Active("btnMakeUnrelease", "N")
469
        Call objBtnControl.Active("btnAddDaemonInstTestBuildPackage", "N")
470
        Call objBtnControl.Active("btnMakePending", "N")
471
        Call objBtnControl.Active("btnApproveMerge",  "N")
6176 dpurdie 472
        Call objBtnControl.Active("btnUnLockPackage",  "N")
473
        Call objBtnControl.Active("btnLockPackage",  "N")
5983 dpurdie 474
    End If
5898 dpurdie 475
 
6176 dpurdie 476
    ' Manual Packages
6031 dpurdie 477
    If (pkgInfoHash.Item("build_type") = "M") Then
6176 dpurdie 478
        ' Cannot be rippled or test built
6031 dpurdie 479
        Call objBtnControl.Active("btnAddDaemonInstTestBuildPackage", "N")
6176 dpurdie 480
        Call objBtnControl.Active("btnAddDaemonInstRipplePackage", "N")
6031 dpurdie 481
 
6176 dpurdie 482
        ' Cannot be Released, unless in the archive 
483
        If Not pkgInfoHash.Item("isInArchive") AND NOT canActionControlInProject("EditCriticalInfoForLockedPackage") Then
484
            Call objBtnControl.Active("btnMakeRelease", "N")
485
        End If
486
 
5983 dpurdie 487
    End If
4670 dpurdie 488
 
5983 dpurdie 489
    '-- Disable if the Package is imported as a part of an SDK
490
    '   Or as part of a linked Release
6176 dpurdie 491
    '   Or the user is not logged in
492
    '   Or user cannot edit in this project
493
    If (pkgInfoHash.Item("can_edit_in_project") <> "1") OR (NOT objAccessControl.UserLogedIn) OR (NOT canActionInProject() ) Then
5983 dpurdie 494
        Call objBtnControl.Active("btnNewVersion", "N")
495
        Call objBtnControl.Active("btnDestroyWip" , "N")
496
        Call objBtnControl.Active("btnRemovePackage",  "N")
497
        Call objBtnControl.Active("btnAddDaemonInstTestBuildPackage",  "N")
498
        Call objBtnControl.Active("btnMakePending",  "N")
6176 dpurdie 499
        Call objBtnControl.Active("btnMakeRelease",  "N")
5983 dpurdie 500
        Call objBtnControl.Active("btnApprovePackage",  "N")
501
        Call objBtnControl.Active("btnApproveMerge",  "N")
502
        Call objBtnControl.Active("btnRejectPackage",  "N")
503
        Call objBtnControl.Active("btnRejectAutobuildPackage",  "N")
504
        Call objBtnControl.Active("btnMakeUnrelease", "N")
505
        Call objBtnControl.Active("btnMoveToView",  "N")
506
        Call objBtnControl.Active("btnMoveWIPToRelease",  "N")
507
        Call objBtnControl.Active("btnDeprecation",  "N")
508
        Call objBtnControl.Active("btnUnDeprecation",  "N")
509
        Call objBtnControl.Active("btnAddDaemonInstRipplePackage", "N")
6185 dpurdie 510
        Call objBtnControl.Active("btnDelDaemonInstRipplePackage", "N")
511
        Call objBtnControl.Active("btnDelDaemonInstTestPackage", "N")
6176 dpurdie 512
        Call objBtnControl.Active ("btnUnLockPackage", "N")
513
        Call objBtnControl.Active ("btnLockPackage", "N")
5983 dpurdie 514
    End If
4670 dpurdie 515
 
6176 dpurdie 516
    If (NOT objAccessControl.UserLogedIn) OR (NOT canActionInProject() ) Then
517
        Call objBtnControl.Active("btnReversionPackage", "N")
518
    End If
519
 
5983 dpurdie 520
    If (pkgInfoHash.Item("base_view_id") = "") Then
521
        Call objBtnControl.Active("btnMoveToView",  "N")
522
    End IF
5590 dpurdie 523
 
5983 dpurdie 524
    '--- Other Access Control Action Relationships ---
525
    If (ReleaseMode = enumDB_RELEASE_IN_CCB_MODE)  Then Call objBtnControl.SetRelationship("btnMakeRelease", "ApprovePackageReleaseForRestrictiveMode")
119 ghuddy 526
 
5983 dpurdie 527
    Call objBtnControl.SetRelationship("btnPendingIntegration", "ApproveForPendingIntegration")
528
    Call objBtnControl.SetRelationship("btnPendingTest", "ApproveForPendingTest")
529
    Call objBtnControl.SetRelationship("btnPendingDeployment", "ApproveForPendingDeployment")
530
    Call objBtnControl.SetRelationship("btnRejectProduct", "RejectProduct")
531
    Call objBtnControl.SetRelationship("btnPendingIntegrateAndDeploy", "ApprovePendingIntegrateAndDeploy")
119 ghuddy 532
 
5983 dpurdie 533
    '---------------------------------------------------------------------------
534
    ' -- Render Buttons
535
    Call objBtnControl.Render (aTabBtnsDef, objAccessControl)
185 brianf 536
End Sub
119 ghuddy 537
%>