Subversion Repositories DevTools

Rev

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