Subversion Repositories DevTools

Rev

Rev 6176 | Rev 6188 | 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")
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
%>