Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

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