Subversion Repositories DevTools

Rev

Rev 6080 | Rev 6185 | 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", _
91
                                        "btnMoveToView", "btnReversionPackage","btnLockPackage","btnUnLockPackage", "width=20", "btnStickyNotes", "btnDeprecation", "btnUnDeprecation", "btnAddDaemonInstRipplePackage")
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", _
96
                                        "btnMoveToView", "btnReversionPackage", "width=20", "btnStickyNotes", "btnDeprecation", "btnUnDeprecation", "btnAddDaemonInstRipplePackage")
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")
156
    Call objBtnControl.Active ("btnAddDaemonInstTestBuildPackage", "N")
157
    Call objBtnControl.Visible("btnAddDaemonInstTestBuildPackage", "N")
158
    Call objBtnControl.Active ("btnMoveWIPToRelease", "N")
159
    Call objBtnControl.Visible("btnMoveWIPToRelease", "N")
160
    Call objBtnControl.Active ("btnDestroyWip", "N")
161
    Call objBtnControl.Visible("btnDestroyWip", "N")
6176 dpurdie 162
    Call objBtnControl.Visible("btnUnLockPackage", "N")
163
    Call objBtnControl.Active ("btnUnLockPackage", "N")
164
    Call objBtnControl.Visible("btnLockPackage", "N")
165
    Call objBtnControl.Active ("btnLockPackage", "N")
119 ghuddy 166
 
6176 dpurdie 167
    ' -- Change visible buttons for Auto: Manual built packages
168
    '    Manually build packages are very rare. Possibly just DataBase patches
169
    '
170
    If (pkgInfoHash.Item("build_type") <> "M") Then
171
        ' For automatic build
172
        Call objBtnControl.Visible("btnApprovePackage", "Y")
173
        Call objBtnControl.Active ("btnApprovePackage", "N")
6031 dpurdie 174
 
6176 dpurdie 175
    Else
176
        ' For Manual Build
177
        Call objBtnControl.Visible("btnMakeRelease", "Y")
178
        Call objBtnControl.Active ("btnMakeRelease", "Y")
119 ghuddy 179
 
6176 dpurdie 180
    End If
119 ghuddy 181
 
6176 dpurdie 182
    '-- Change button setting the current state of the package
183
    '       Release and Locked
184
    '       Pending Approval
185
    '       Approved Waiting auto build
186
    '       Rejected or Unlcoked
187
    '
5983 dpurdie 188
    If pkgInfoHash.Item("dlocked") = "Y" Then
189
       ' Package is Released and Locked
190
        Call objBtnControl.Visible("btnNewVersion", "Y")
191
        If Not canActionControlInProject("CreateNewVersion") Then
192
            Call objBtnControl.Active("btnNewVersion", "N")
193
        End If
119 ghuddy 194
 
5983 dpurdie 195
        If AssocMASSREF Then
6031 dpurdie 196
            Call objBtnControl.Visible("btnNewVersion-MASSREF", "Y")
5983 dpurdie 197
        End If
119 ghuddy 198
 
5983 dpurdie 199
        If (parRtag_id > 0) AND canShowControlInProject("DeprecatePackage") Then
6031 dpurdie 200
            If (pkgInfoHash.Item("is_deprecated")) Then
6080 dpurdie 201
                Call objBtnControl.Visible("btnUnDeprecation", "Y")
202
            Else
6031 dpurdie 203
                Call objBtnControl.Visible("btnDeprecation", "Y")
204
            End If
5983 dpurdie 205
        Else
6031 dpurdie 206
            Call objBtnControl.Active("btnDeprecation",  "N")
207
            Call objBtnControl.Visible("btnDeprecation",  "Y")
5983 dpurdie 208
        End If
119 ghuddy 209
 
5983 dpurdie 210
        Call objBtnControl.Active("btnApprovePackage", "N")
211
        Call objBtnControl.Active("btnMakeRelease", "N")
119 ghuddy 212
 
5983 dpurdie 213
        If pkgInfoHash.Item("can_unofficial") = "true" OR canActionControlInProject("EditCriticalInfoForLockedPackage") Then
6031 dpurdie 214
            Call objBtnControl.Visible("btnMakeUnrelease", "Y")
215
            Call objBtnControl.Active("btnMakeUnrelease", "Y")
5983 dpurdie 216
        End If
5929 dpurdie 217
 
5983 dpurdie 218
       ' DEVI-45275 - We can now merge existing(locked) versions to planned(pending) whilst assigning an operation to them
219
       ' to either(A)dd or(S)ubtract the version from the release. Such items must be "rejectable" so we need to enable the
220
       ' reject package button.
221
        If pkgInfoHash.Item("planned_operation") <> " " Then
6031 dpurdie 222
            Call objBtnControl.Visible("btnRejectPackage", "Y")
223
            Call objBtnControl.Active("btnRejectPackage", "Y")
5983 dpurdie 224
        Else
6031 dpurdie 225
            Call objBtnControl.Visible("btnRejectPackage", "N")
5983 dpurdie 226
        End If
119 ghuddy 227
 
5983 dpurdie 228
        Call objBtnControl.Visible("btnMakePending", "N")
229
        Call objBtnControl.Visible("btnMakeRelease", "N")
230
        Call objBtnControl.Visible("btnApprovePackage", "N")
231
        Call objBtnControl.Visible("btnAddDaemonInstRipplePackage", "Y")
232
        Call ActivateButtonAccordingToReleaseModeAndPermissions("btnAddDaemonInstRipplePackage", "ApproveForAutoBuild")
119 ghuddy 233
 
6176 dpurdie 234
        ' Unlock patch or package.
235
        Call objBtnControl.Visible("btnUnLockPackage", "Y")
236
        Call objBtnControl.Active ("btnUnLockPackage", "Y")
119 ghuddy 237
 
5983 dpurdie 238
    ElseIf pkgInfoHash.Item("dlocked") = "P" Then
239
        ' In Pending
240
        Call objBtnControl.Visible("btnMakePending", "N")
241
        Call ActivateButtonAccordingToReleaseModeAndPermissions("btnApprovePackage", "ApproveForAutoBuild")
6176 dpurdie 242
        Call ActivateButtonAccordingToReleaseModeAndPermissions("btnMakeRelease",    "ApproveForManualBuild")
243
        Call ActivateButtonAccordingToReleaseModeAndPermissions("btnRejectPackage",  "RejectPackageFromPending")
143 ghuddy 244
 
5983 dpurdie 245
        Call objBtnControl.Active ("btnRemovePackage", "N")
246
        Call objBtnControl.Visible("btnRemovePackage", "N")
143 ghuddy 247
 
6176 dpurdie 248
 
5983 dpurdie 249
    ElseIf pkgInfoHash.Item("dlocked") = "A" Then
250
       ' In Pending, Approved For Autobuild
251
        Call objBtnControl.Visible("btnMakePending", "N")
252
        Call objBtnControl.Active("btnMakePending", "N")
143 ghuddy 253
 
5983 dpurdie 254
        Call objBtnControl.Visible("btnApprovePackage", "N")
255
        Call objBtnControl.Active("btnApprovePackage", "N")
143 ghuddy 256
 
5983 dpurdie 257
        Call objBtnControl.Visible("btnRejectPackage", "N")
258
        Call objBtnControl.Active("btnRejectPackage", "N")
143 ghuddy 259
 
6176 dpurdie 260
        Call objBtnControl.Active ("btnRemovePackage", "N")
261
        Call objBtnControl.Visible("btnRemovePackage", "N")
119 ghuddy 262
 
6176 dpurdie 263
        Call objBtnControl.Visible("btnRejectAutobuildPackage", "Y")
264
        Call objBtnControl.Active ("btnRejectAutobuildPackage", "N")
265
 
266
        If parRtag_id > 0 Then
267
            '--- Allow failed auto-builds to be rejected back to WIP, conditions allowing.
268
            '    Can reject if:
269
            '       Manual Package and a suitable user
270
            '       Auto Package and 
271
            '           The release has no active daemons OR the packahe has failed to build
272
            If pkgInfoHash.Item("build_type") = "A" Then
273
                If activeDaemonCount(parRtag_id) = 0 OR isInDoNotRippleTable(parRtag_id, pkgInfoHash.Item("pv_id")) = TRUE Then
274
                    Call ActivateButtonAccordingToReleaseModeAndPermissions("btnRejectAutobuildPackage", "RejectPackageFromPending")
275
                End If
276
            Else
277
                '    Manual Package should not be in this state
278
                If canActionControlInProject("EditCriticalInfoForLockedPackage") Then
279
                    Call objBtnControl.Active ("btnRejectAutobuildPackage", "Y")
280
                End If
6031 dpurdie 281
            End If
5983 dpurdie 282
        End If
119 ghuddy 283
 
143 ghuddy 284
 
5983 dpurdie 285
    Else
286
       ' Unlocked or rejected packages(dlocked = N or R)
6176 dpurdie 287
        Call objBtnControl.Active ("btnReversionPackage", "Y")
288
        Call objBtnControl.Visible("btnReversionPackage", "Y")
289
        Call objBtnControl.Visible("btnMakePending", "Y")
290
        Call objBtnControl.Active ("btnMakePending", "Y")
5983 dpurdie 291
        Call objBtnControl.Visible("btnRejectPackage", "N")
143 ghuddy 292
 
6176 dpurdie 293
        ' Patches (which are Manual) can be directly released
294
        If NOT IsNull(pkgInfoHash.Item("is_patch")) Then
295
            Call objBtnControl.Visible("btnApprovePackage", "N")
296
            Call objBtnControl.Visible("btnMakeRelease", "Y")
297
            Call objBtnControl.Visible("btnMakeUnrelease", "Y")
298
            If NOT canShowControlInProject("ReleasePatch") Then
299
                Call objBtnControl.Active("btnMakeRelease", "N")
300
            End If
301
 
302
        Else
303
            Call objBtnControl.Visible("btnApprovePackage", "N")
304
            Call objBtnControl.Visible("btnMakeRelease", "N")
305
        End If
306
 
5983 dpurdie 307
        Call objBtnControl.Visible("btnMoveWIPToRelease", "Y")
6176 dpurdie 308
        Call objBtnControl.Active ("btnMoveWIPToRelease", "Y")
5983 dpurdie 309
        Call objBtnControl.Visible("btnAddDaemonInstTestBuildPackage", "Y")
6176 dpurdie 310
        Call objBtnControl.Active ("btnAddDaemonInstTestBuildPackage", "Y")
4670 dpurdie 311
 
5983 dpurdie 312
        Call objBtnControl.Visible("btnDestroyWip", "Y")
6176 dpurdie 313
        If ((objAccessControl.UserName = pkgInfoHash.Item("creator")) OR (canActionControlInProject("DestroyPackageFromRelease"))) Then
314
            Call objBtnControl.Active ("btnDestroyWip", "Y")
4670 dpurdie 315
        End If
316
 
5983 dpurdie 317
        If pkgInfoHash.Item("is_wip")  Then
318
            Call objBtnControl.Active ("btnRemovePackage", "N")
319
            Call objBtnControl.Visible("btnRemovePackage", "N")
320
        End If
5964 dpurdie 321
 
6176 dpurdie 322
        ' lock patch or package.
323
        Call objBtnControl.Visible("btnLockPackage", "Y")
324
        Call objBtnControl.Active( "btnLockPackage", "Y")
325
 
5983 dpurdie 326
    End If
119 ghuddy 327
 
6176 dpurdie 328
    '------------------------------------------------
329
    '   Various other tweaks
330
    '
5983 dpurdie 331
    If IsNull(pkgInfoHash.Item("is_obsolete")) Then
332
        Call objBtnControl.Visible("btnObsoletePatch", "Y")
333
    Else
334
        Call objBtnControl.Visible("btnUnobsoletePatch", "Y")
335
    End If
119 ghuddy 336
 
5983 dpurdie 337
    If NOT(parRtag_id > 0) Then
338
        ' Not shown in the context of a Release
6176 dpurdie 339
        ' Determine if the package can be destroyed
5929 dpurdie 340
 
5983 dpurdie 341
        If canShowControlInProject("DestroyPackage") Then
342
           Call objBtnControl.Visible("btnRecycleBin", "Y")
343
        ElseIf (objAccessControl.UserId = pkgInfoHash.Item("creator_id")) OR(objAccessControl.UserId = pkgInfoHash.Item("owner_id")) Then
344
            'If aVersions(rsVB.FieldIndex("inuse"), i) = 0 Then
345
                'If aVersions(rsVB.FieldIndex("age") , i) < 1000 Then
346
                    If pkgInfoHash.Item("dlocked") <> "Y" Then
347
                        'If pkgInfoHash.Item("dlocked") <> "A" Then
348
                            Call objBtnControl.Active("btnRecycleBin", "Y")
349
                        'End If
350
                    End If
351
                'End If
5929 dpurdie 352
            'End If
5983 dpurdie 353
        End If
5929 dpurdie 354
 
355
    End If
119 ghuddy 356
 
5983 dpurdie 357
    '--- Access Control Action Relationships ---
119 ghuddy 358
 
5983 dpurdie 359
    ' DEVI-45275 - Merges now occur via the Pending tab. Merge candidates are marked with a(planned) operation
360
    ' of "A" for add, or "S" for subtract. If the package version is one of these(within the context of the
361
    ' release of coarse), manipulate the MakeRelease button(of which there are now 3 types) accordingly.
362
    If (pkgInfoHash.Item("planned_operation") = "A" OR pkgInfoHash.Item("planned_operation") = "S") Then
119 ghuddy 363
 
6031 dpurdie 364
        ' always enable the reject button for pending merge operations
5983 dpurdie 365
        Call objBtnControl.Visible("btnRejectPackage", "Y")
119 ghuddy 366
 
6031 dpurdie 367
        ' disable the other two types of MakeRelease button
5983 dpurdie 368
        Call objBtnControl.Visible("btnApprovePackage", "N")
369
        Call objBtnControl.Visible("btnMakeRelease", "N")
119 ghuddy 370
 
6031 dpurdie 371
        ' make the approve merge button variant visible
5983 dpurdie 372
        Call objBtnControl.Visible("btnApproveMerge", "Y")
119 ghuddy 373
 
6031 dpurdie 374
        ' These conditions match those used in Diff.asp that control whether the Merge button is visible or not.
375
        ' Use them to enable or disable the approve merge button
5983 dpurdie 376
        If releaseIsMergable(ReleaseMode) Then
6031 dpurdie 377
            Call objBtnControl.Active("btnApproveMerge", "Y")
378
            Call objBtnControl.Active("btnRejectPackage", "Y")
5983 dpurdie 379
        Else
6031 dpurdie 380
            Call objBtnControl.Active("btnApproveMerge", "N")
381
            Call objBtnControl.Active("btnRejectPackage", "N")
5983 dpurdie 382
        End If
383
    End If
119 ghuddy 384
 
6176 dpurdie 385
    '   Have now set visible button based on the current state of the package
386
    '   No deactivate buttons based on the Release Mode and users permissions
387
    '       Users should be able to see what 'could' be done, even if they don't have permission
388
    '
389
    If (ReleaseMode = enumDB_RELEASE_IN_RESTRICTIVE_MODE) OR (ReleaseMode = enumDB_RELEASE_IN_CCB_MODE) Then
390
 
391
        Dim canAddRemove, canRelease, canAlter
392
        canAddRemove = canActionControlInProject("AddDeletePackageInRestrictiveMode")
393
        canRelease   = canActionControlInProject("ApprovePackageReleaseForRestrictiveMode")
394
        canAlter     = canActionControlInProject("AlterReleaseContentsInRestrictiveMode")
395
 
396
        ' If in CCB mode then we must also be able to 'Alter Release Contents) 
397
        '
398
        If (ReleaseMode = enumDB_RELEASE_IN_CCB_MODE) AND (NOT canAlter) Then
399
            canAddRemove = False
400
            canRelease = False
401
        End If
402
 
403
        ' Disable Package Release Actions - unless allowed
404
        '   ApprovePackage ( for autobuild )
405
        '   MakeRelease ( for Manual Build )
406
        '   ApproveMerge
407
        '   
408
        If NOT (canRelease) Then
409
            Call objBtnControl.Active("btnApprovePackage", "N")
410
            Call objBtnControl.Active("btnMakeRelease", "N")
411
            Call objBtnControl.Active("btnApproveMerge", "N")
412
            Call objBtnControl.Active("btnRejectPackage", "N")
413
 
414
        End If
415
 
416
        ' Disable Release Modification Actions - Unless allowed
417
        '   Create New version of a package
418
        '   Remove a package
419
        '
420
        If NOT (canAddRemove ) Then
421
            Call objBtnControl.Active("btnNewVersion", "N")
422
            Call objBtnControl.Active("btnRemovePackage", "N")
423
        End If
424
 
425
    End If
426
 
427
    '---------------------------------------------------------------------------
428
    ' Unlock Package
429
    ' Note: Unlocking of a Package or Patch is intended for the administrators
430
    '
431
    If NOT (pkgInfoHash("is_released") AND canActionControlInProject("EditCriticalInfoForLockedPackage")) Then
432
        Call objBtnControl.Active ("btnUnLockPackage", "N")
433
        Call objBtnControl.Active( "btnLockPackage", "N")
434
    End If
435
 
436
    ' Unbuildable packages
437
    '   Spontaneously generated package - by Deployment Manager
5983 dpurdie 438
    If (pkgInfoHash.Item("build_type") = "U") Then
6031 dpurdie 439
        Call objBtnControl.Active("btnMakeRelease", "N")
440
        Call objBtnControl.Active("btnApprovePackage", "N")
6176 dpurdie 441
        Call objBtnControl.Active("btnMakeRelease", "N")
6031 dpurdie 442
        Call objBtnControl.Active("btnMakeUnrelease", "N")
443
        Call objBtnControl.Active("btnAddDaemonInstTestBuildPackage", "N")
444
        Call objBtnControl.Active("btnMakePending", "N")
445
        Call objBtnControl.Active("btnApproveMerge",  "N")
6176 dpurdie 446
        Call objBtnControl.Active("btnUnLockPackage",  "N")
447
        Call objBtnControl.Active("btnLockPackage",  "N")
5983 dpurdie 448
    End If
5898 dpurdie 449
 
6176 dpurdie 450
    ' Manual Packages
6031 dpurdie 451
    If (pkgInfoHash.Item("build_type") = "M") Then
6176 dpurdie 452
        ' Cannot be rippled or test built
6031 dpurdie 453
        Call objBtnControl.Active("btnAddDaemonInstTestBuildPackage", "N")
6176 dpurdie 454
        Call objBtnControl.Active("btnAddDaemonInstRipplePackage", "N")
6031 dpurdie 455
 
6176 dpurdie 456
        ' Cannot be Released, unless in the archive 
457
        If Not pkgInfoHash.Item("isInArchive") AND NOT canActionControlInProject("EditCriticalInfoForLockedPackage") Then
458
            Call objBtnControl.Active("btnMakeRelease", "N")
459
        End If
460
 
5983 dpurdie 461
    End If
4670 dpurdie 462
 
5983 dpurdie 463
    '-- Disable if the Package is imported as a part of an SDK
464
    '   Or as part of a linked Release
6176 dpurdie 465
    '   Or the user is not logged in
466
    '   Or user cannot edit in this project
467
    If (pkgInfoHash.Item("can_edit_in_project") <> "1") OR (NOT objAccessControl.UserLogedIn) OR (NOT canActionInProject() ) Then
5983 dpurdie 468
        Call objBtnControl.Active("btnNewVersion", "N")
469
        Call objBtnControl.Active("btnDestroyWip" , "N")
470
        Call objBtnControl.Active("btnRemovePackage",  "N")
471
        Call objBtnControl.Active("btnAddDaemonInstTestBuildPackage",  "N")
472
        Call objBtnControl.Active("btnMakePending",  "N")
6176 dpurdie 473
        Call objBtnControl.Active("btnMakeRelease",  "N")
5983 dpurdie 474
        Call objBtnControl.Active("btnApprovePackage",  "N")
475
        Call objBtnControl.Active("btnApproveMerge",  "N")
476
        Call objBtnControl.Active("btnRejectPackage",  "N")
477
        Call objBtnControl.Active("btnRejectAutobuildPackage",  "N")
478
        Call objBtnControl.Active("btnMakeUnrelease", "N")
479
        Call objBtnControl.Active("btnMoveToView",  "N")
480
        Call objBtnControl.Active("btnMoveWIPToRelease",  "N")
481
        Call objBtnControl.Active("btnDeprecation",  "N")
482
        Call objBtnControl.Active("btnUnDeprecation",  "N")
483
        Call objBtnControl.Active("btnAddDaemonInstRipplePackage", "N")
6176 dpurdie 484
        Call objBtnControl.Active ("btnUnLockPackage", "N")
485
        Call objBtnControl.Active ("btnLockPackage", "N")
5983 dpurdie 486
    End If
4670 dpurdie 487
 
6176 dpurdie 488
    If (NOT objAccessControl.UserLogedIn) OR (NOT canActionInProject() ) Then
489
        Call objBtnControl.Active("btnReversionPackage", "N")
490
    End If
491
 
5983 dpurdie 492
    If (pkgInfoHash.Item("base_view_id") = "") Then
493
        Call objBtnControl.Active("btnMoveToView",  "N")
494
    End IF
5590 dpurdie 495
 
5983 dpurdie 496
    '--- Other Access Control Action Relationships ---
497
    If (ReleaseMode = enumDB_RELEASE_IN_CCB_MODE)  Then Call objBtnControl.SetRelationship("btnMakeRelease", "ApprovePackageReleaseForRestrictiveMode")
119 ghuddy 498
 
5983 dpurdie 499
    Call objBtnControl.SetRelationship("btnPendingIntegration", "ApproveForPendingIntegration")
500
    Call objBtnControl.SetRelationship("btnPendingTest", "ApproveForPendingTest")
501
    Call objBtnControl.SetRelationship("btnPendingDeployment", "ApproveForPendingDeployment")
502
    Call objBtnControl.SetRelationship("btnRejectProduct", "RejectProduct")
503
    Call objBtnControl.SetRelationship("btnPendingIntegrateAndDeploy", "ApprovePendingIntegrateAndDeploy")
119 ghuddy 504
 
5983 dpurdie 505
    '---------------------------------------------------------------------------
506
    ' -- Render Buttons
507
    Call objBtnControl.Render (aTabBtnsDef, objAccessControl)
185 brianf 508
End Sub
119 ghuddy 509
%>