Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
119 ghuddy 1
<%
2
'=====================================================
129 ghuddy 3
'                COMMON SUBs Part 1
119 ghuddy 4
'=====================================================
3959 dpurdie 5
Dim haveCommonSubs: haveCommonSubs = 1
119 ghuddy 6
%>
7
<%
8
'-----------------------------------------------------------------------------------------------------------------------------
9
Sub CloseWindow
10
%>
11
<SCRIPT language="JavaScript" type="text/javascript">
12
<!--
13
self.close();
14
//-->
15
</SCRIPT>
16
<%
17
End Sub
18
'-----------------------------------------------------------------------------------------------------------------------------
19
Sub OpenChildWindow ( SStitle, SSurl, SSH, SSW, BBscroll )
129 ghuddy 20
   Dim scrlBar
21
   If BBscroll Then
22
      scrlBar = "yes"
23
   Else
24
      scrlBar = "no"
25
   End If
119 ghuddy 26
%>
129 ghuddy 27
   <script language="JavaScript" type="text/javascript">
28
   <!--
29
   window.open('<%=SSurl%>','<%=SStitle%>','scrollbars=<%=scrlBar%>,resizable=yes,width=<%=SSW%>,height=<%=SSH%>')
30
   //-->
31
   </script>
119 ghuddy 32
<%
33
End Sub
34
'-----------------------------------------------------------------------------------------------------------------------------
35
Sub OpenInParentWindow ( SSurl )
36
%>
129 ghuddy 37
   <script language="JavaScript" type="text/javascript">
38
   <!--
39
   window.opener.document.location='<%=SSurl%>';
40
   //-->
41
   </script>
119 ghuddy 42
<%
43
End Sub
44
'-----------------------------------------------------------------------------------------------------------------------------
45
Sub OpenInWindow ( SSurl )
129 ghuddy 46
   Response.Redirect ( SSurl )
119 ghuddy 47
End Sub
48
'-----------------------------------------------------------------------------------------------------------------------------
49
Function GetQuery ( sQryName )
129 ghuddy 50
   GetQuery = ReadFile( QUERIES_PATH &"\"& sQryName )
119 ghuddy 51
End Function
52
'-----------------------------------------------------------------------------------------------------------------------------
53
Sub RaiseMsg ( SSerrFile, SSerrDesc )
129 ghuddy 54
   ' Usage: enumERROR, parval1 &"|"& parval2 &"|"& parval3 ...
55
   Session( enum_RELMGR_ERRDESCRIPTION ) = SSerrDesc
56
   Response.Redirect ("messages/"& SSerrFile )
119 ghuddy 57
End Sub
58
'-----------------------------------------------------------------------------------------------------------------------------
59
Sub RaiseMsgInParent ( SSerrFile, SSerrDesc )
129 ghuddy 60
   Session( enum_RELMGR_ERRDESCRIPTION ) = SSerrDesc
61
   Call OpenInParentWindow ("messages/"& SSerrFile )
119 ghuddy 62
End Sub
63
'-----------------------------------------------------------------------------------------------------------------------------
64
Function ReadFile( SSpath )
129 ghuddy 65
   Dim filesys, rfile
66
   Set filesys = CreateObject("Scripting.FileSystemObject")
67
   Set rfile = filesys.OpenTextFile( SSpath, 1, false)
68
   ReadFile = rfile.ReadAll
69
   rfile.close
70
   Set filesys = nothing
119 ghuddy 71
End Function
72
'-----------------------------------------------------------------------------------------------------------------------------
73
Function HighlightSubstring ( SSstr, SSsubstr )
129 ghuddy 74
   Dim leftSTR, startPos
75
   startPos = InStr( 1, SSstr, SSsubstr, 1 )
119 ghuddy 76
 
129 ghuddy 77
   If startPos > 0 Then
78
      leftSTR = Left ( SSstr, startPos - 1 )
79
      HighlightSubstring = leftSTR &"<SPAN style='background:#ffff99;'>"& Mid( SSstr, startPos, Len(SSsubstr) ) &"</SPAN>"&  Right ( SSstr, Len(SSstr) - Len(leftSTR) - Len(SSsubstr)  )
80
   Else
81
      ' Subtring not found
82
      HighlightSubstring = SSstr
83
   End If
119 ghuddy 84
 
85
End Function
86
'-----------------------------------------------------------------------------------------------------------------------------
87
Sub DeleteFile( SSpath )
129 ghuddy 88
   Dim filesys
89
   Set filesys = CreateObject("Scripting.FileSystemObject")
90
   If filesys.FileExists(SSpath) Then
91
         filesys.DeleteFile SSpath, TRUE
92
   End If
93
   Set filesys = nothing
119 ghuddy 94
End Sub
95
'-----------------------------------------------------------------------------------------------------------------------------
96
Sub DeleteFolder( SSpath )
129 ghuddy 97
   Dim  filesys
98
   Set filesys = CreateObject ("Scripting.FileSystemObject")
99
   If filesys.FolderExists( SSpath ) Then
100
      'Set oFolder = filesys.GetFolder( SSpath )
101
      filesys.DeleteFolder SSpath ,TRUE
102
   End If
119 ghuddy 103
End Sub
104
'-----------------------------------------------------------------------------------------------------------------------------
105
Sub Create_Folder ( sCreateIn, sFolderName )
129 ghuddy 106
   Dim filesys, currfolder, folcoll, subfol
107
   Set filesys = CreateObject("Scripting.FileSystemObject")
108
   If filesys.FolderExists( sCreateIn ) Then
109
      Set currfolder = filesys.GetFolder( sCreateIn )
110
      Set folcoll = currfolder.SubFolders
111
      If NOT filesys.FolderExists( sCreateIn &"\"& sFolderName ) Then
112
         folcoll.Add( sFolderName )
113
      End If
114
   End If
119 ghuddy 115
End Sub
116
'-----------------------------------------------------------------------------------------------------------------------------
117
Function Folder_Is_Empty ( sPath )
129 ghuddy 118
   Dim filesys, oFolder
119
   Set filesys = CreateObject("Scripting.FileSystemObject")
119 ghuddy 120
 
129 ghuddy 121
   If filesys.FolderExists( sPath ) Then
122
      Set oFolder = filesys.GetFolder( sPath )
123
      If ( oFolder.Files.Count + oFolder.SubFolders.Count ) > 0 Then
124
         Folder_Is_Empty = FALSE
125
      Else
126
         Folder_Is_Empty = TRUE
127
      End If
128
   Else
129
      Folder_Is_Empty = TRUE
130
   End If
119 ghuddy 131
 
132
End Function
133
'-----------------------------------------------------------------------------------------------------------------------------
134
Sub Destroy_All_Objects
129 ghuddy 135
   On Error Resume Next
136
   set brokenReadyHash = nothing
137
   set brokenHash = nothing
138
   set pkgInfoHash = nothing
139
   set OraDatabase = nothing
140
   set OraSession = nothing
119 ghuddy 141
End Sub
142
'-----------------------------------------------------------------------------------------------------------------------------
143
Function InStrPipes ( SSstr, SSsubstr )
129 ghuddy 144
   If InStr( SSstr, "|"& SSsubstr &"|") > 0 Then
145
      InStrPipes = true
146
   Else
147
      InStrPipes = false
148
   End If
119 ghuddy 149
End Function
150
'-----------------------------------------------------------------------------------------------------------------------------
151
Function RemoveFromStrPipes ( SSstr, SSsubstr )
129 ghuddy 152
   RemoveFromStrPipes = Replace( SSstr, "|"& SSsubstr &"|", "" )
119 ghuddy 153
End Function
154
'-----------------------------------------------------------------------------------------------------------------------------
155
Function View_Name_Exists ( SSviewname, NNused_id )
129 ghuddy 156
   Dim rsTemp, Query_String
157
   Query_String = _
158
   " SELECT view_name"&_
159
   "  FROM views"&_
160
   " WHERE UPPER(view_name) = UPPER('"& UCase(SSviewname) &"') AND owner_id = "& NNused_id
161
   Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
162
   If rsTemp.RecordCount > 0 Then
163
      View_Name_Exists = TRUE
164
   Else
165
      View_Name_Exists = FALSE
166
   End If
167
   rsTemp.Close
168
   Set rsTemp = nothing
119 ghuddy 169
End Function
170
'-----------------------------------------------------------------------------------------------------------------------------
171
Function User_Name_Exists ( SSusername )
129 ghuddy 172
   Dim rsTemp, Query_String
173
   Query_String = _
174
   " SELECT user_name"&_
175
   "  FROM users"&_
176
   " WHERE user_name = '"& SSusername &"'"
177
   Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
178
   If rsTemp.RecordCount > 0 Then
179
      User_Name_Exists = TRUE
180
   Else
181
      User_Name_Exists = FALSE
182
   End If
183
   rsTemp.Close
184
   Set rsTemp = nothing
119 ghuddy 185
End Function
186
'-----------------------------------------------------------------------------------------------------------------------------
187
Function This_View_Owner( NNview_id, NNuser_id )
129 ghuddy 188
   Dim rsTemp, Query_String
189
   Query_String = _
190
   " SELECT owner_id"&_
191
   "  FROM views"&_
192
   " WHERE view_id = "& NNview_id
193
   Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
194
   If rsTemp.RecordCount > 0 Then
195
      If CInt(rsTemp.Fields("owner_id")) = CInt(NNuser_id) Then
196
         This_View_Owner = TRUE
197
      Else
198
         This_View_Owner = FALSE
199
      End If
200
   Else
201
      ' view not found
202
      Session("AdditionalParams") = "$ADMINEMAIL$,"& adminEmail
203
      Response.Redirect("message.asp?msg=400-2")
204
   End If
205
   rsTemp.Close
206
   Set rsTemp = nothing
119 ghuddy 207
End Function
208
'-----------------------------------------------------------------------------------------------------------------------------
209
Function GetReleaseMode ( NNrtag_id )
129 ghuddy 210
   Dim rsTemp, Query_String
211
   If NNrtag_id = "" Then NNrtag_id = "-1"
119 ghuddy 212
 
129 ghuddy 213
   Query_String = _
214
   " SELECT official FROM release_tags WHERE rtag_id = "& NNrtag_id
119 ghuddy 215
 
129 ghuddy 216
   Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
217
   'Response.write "DB"& NNrtag_id
218
   If ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) Then
219
      GetReleaseMode = rsTemp.Fields("official")
119 ghuddy 220
 
129 ghuddy 221
   End If
119 ghuddy 222
 
129 ghuddy 223
   rsTemp.Close
224
   Set rsTemp = nothing
119 ghuddy 225
End Function
226
'-----------------------------------------------------------------------------------------------------------------------------
227
Function Get_Devl_Envorinment
129 ghuddy 228
   If Request.Cookies("RELEASEMANAGER_MEMORY")("devl_environment") <> "" Then
229
      If Request.Cookies("RELEASEMANAGER_MEMORY")("devl_environment") = "clearcase" Then
230
         Get_Devl_Envorinment = "jats"      'clear case does not have import
231
      Else
232
         Get_Devl_Envorinment = Request.Cookies("RELEASEMANAGER_MEMORY")("devl_environment")
233
      End If
234
   Else
235
      Get_Devl_Envorinment = "jats"      'JATS devl environment is set by default
236
   End If
119 ghuddy 237
End Function
238
'-----------------------------------------------------------------------------------------------------------------------------
239
Function Get_From_DUAL ( SSclm )
129 ghuddy 240
   Dim rsTemp, Query_String, OraSession2, OraDatabase2
241
   Set OraSession2 = CreateObject("OracleInProcServer.XOraSession")
242
   Set OraDatabase2 = OraSession2.OpenDatabase( TNS_NAME, DB_AUTHENTICATION, Cint(0))
119 ghuddy 243
 
129 ghuddy 244
   Query_String = _
245
   " SELECT "& SSclm &" AS result FROM DUAL"
246
   Set rsTemp = OraDatabase2.DbCreateDynaset( Query_String, cint(0))
119 ghuddy 247
 
129 ghuddy 248
   If ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) Then
249
      Get_From_DUAL = (rsTemp.Fields("result"))
250
   End If
119 ghuddy 251
 
129 ghuddy 252
   rsTemp.Close
253
   Set rsTemp = nothing
254
   Set OraDatabase2 = nothing
255
   Set OraSession2 = nothing
119 ghuddy 256
End Function
257
'-----------------------------------------------------------------------------------------------------------------------------
258
Function Get_Pkg_Base_View ( NNpv_id, NNrtag_id )
129 ghuddy 259
   Dim rsTemp, Query_String
119 ghuddy 260
 
129 ghuddy 261
   If NNrtag_id = "" Then
262
      Get_Pkg_Base_View = "N/A"
263
      Exit Function
264
   End If
119 ghuddy 265
 
129 ghuddy 266
   Query_String = _
267
   " SELECT vi.view_name"&_
268
   "  FROM release_content rc,"&_
269
   "       views vi"&_
270
   " WHERE vi.view_id = rc.base_view_id"&_
271
   "   AND rc.rtag_id = "& NNrtag_id &_
272
   "   AND rc.pv_id = "& NNpv_id
119 ghuddy 273
 
129 ghuddy 274
   Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
119 ghuddy 275
 
129 ghuddy 276
   If ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) Then
277
      Get_Pkg_Base_View = UCase(rsTemp.Fields("view_name"))
278
   Else
279
      Get_Pkg_Base_View = "N/A"
280
   End If
119 ghuddy 281
 
129 ghuddy 282
   rsTemp.Close
283
   Set rsTemp = nothing
119 ghuddy 284
End Function
285
'-----------------------------------------------------------------------------------------------------------------------------
286
Function Get_Proj_ID ( SSrtag_id )
129 ghuddy 287
   Dim rsTemp, Query_String
119 ghuddy 288
 
129 ghuddy 289
   Query_String = _
290
   " SELECT projects.proj_id"&_
291
   "   FROM projects projects, release_tags rel"&_
292
   "  WHERE projects.proj_id = rel.proj_id"&_
293
   "    AND rel.rtag_id = "& SSrtag_id
119 ghuddy 294
 
129 ghuddy 295
   Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
119 ghuddy 296
 
129 ghuddy 297
   If ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) Then
298
      Get_Proj_ID = (rsTemp.Fields("proj_id"))
299
   End If
119 ghuddy 300
 
129 ghuddy 301
   rsTemp.Close
302
   Set rsTemp = nothing
119 ghuddy 303
End Function
304
'-----------------------------------------------------------------------------------------------------------------------------
305
Function Get_Proj_Name ( NNproj_id )
129 ghuddy 306
   Dim rsTemp, Query_String
119 ghuddy 307
 
159 ghuddy 308
   Get_Proj_Name = ""
309
 
129 ghuddy 310
   Query_String = _
311
   " SELECT proj_name "&_
312
   "   FROM projects pr "&_
119 ghuddy 313
  "  WHERE pr.proj_id = "& NNproj_id
314
 
129 ghuddy 315
   Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
119 ghuddy 316
 
129 ghuddy 317
   If ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) Then
318
      Get_Proj_Name = (rsTemp.Fields("proj_name"))
319
   End If
119 ghuddy 320
 
129 ghuddy 321
   rsTemp.Close
322
   Set rsTemp = nothing
119 ghuddy 323
End Function
324
'-----------------------------------------------------------------------------------------------------------------------------
159 ghuddy 325
Function Get_Release_Name ( NNrtag_id )
326
   Dim rsTemp, Query_String
327
 
328
   Get_Release_Name = ""
329
 
330
   Query_String = _
331
   " SELECT rtag_name "&_
332
   "   FROM release_tags rt "&_
333
  "  WHERE rt.rtag_id = "& NNrtag_id
334
 
335
   Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
336
 
337
   If ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) Then
338
      Get_Release_Name = (rsTemp.Fields("rtag_name"))
339
   End If
340
 
341
   rsTemp.Close
342
   Set rsTemp = nothing
343
End Function
344
'-----------------------------------------------------------------------------------------------------------------------------
119 ghuddy 345
Function Get_Base_URL ( NNproj_id )
129 ghuddy 346
   Dim rsTemp, Query_String
119 ghuddy 347
 
129 ghuddy 348
   Query_String = _
349
   " SELECT base_url "&_
350
   "   FROM projects pr "&_
119 ghuddy 351
  "  WHERE pr.proj_id = "& NNproj_id
352
 
129 ghuddy 353
   Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
119 ghuddy 354
 
129 ghuddy 355
   Get_Base_URL = rsTemp("base_url")
119 ghuddy 356
 
129 ghuddy 357
   rsTemp.Close()
358
   Set rsTemp = nothing
119 ghuddy 359
End Function
360
'-----------------------------------------------------------------------------------------------------------------------------
361
Function Get_Categories ( NNrtag_id )
129 ghuddy 362
   Get_Categories = _
363
   " SELECT vi.view_id, vi.view_name"&_
364
   "  FROM release_content rel,"&_
365
   "       views vi"&_
366
   " WHERE rel.base_view_id = vi.view_id"&_
367
   "   AND rtag_id = "& NNrtag_id &_
368
   " GROUP BY vi.view_id, vi.view_name   "&_
369
   " ORDER BY vi.view_name ASC "
119 ghuddy 370
End Function
371
'-----------------------------------------------------------------------------------------------------------------------------
372
Function Get_PV_IDs_In_Release ( NNrtag_id )
373
    Dim rsTemp, Query_String, tempSTR
129 ghuddy 374
   tempSTR = "-1"
375
   Query_String = _
376
   "SELECT pv_id FROM release_content WHERE rtag_id = "& NNrtag_id
119 ghuddy 377
 
129 ghuddy 378
   Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
119 ghuddy 379
 
129 ghuddy 380
   While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))
381
      tempSTR = tempSTR &","& rsTemp.Fields("pv_id")
382
      rsTemp.MoveNext
383
   WEnd
384
   Get_PV_IDs_In_Release = tempSTR
385
   rsTemp.Close
386
   Set rsTemp = nothing
119 ghuddy 387
End Function
388
'-----------------------------------------------------------------------------------------------------------------------------
389
Sub Get_Pkg_Info ( SSpv_id, NNrtag )
129 ghuddy 390
   Dim rsTemp, Query_String
391
   OraDatabase.Parameters.Add "PV_ID",       SSpv_id,   ORAPARM_INPUT, ORATYPE_NUMBER
392
   OraDatabase.Parameters.Add "RTAG_ID",       NNrtag,      ORAPARM_INPUT, ORATYPE_NUMBER
183 brianf 393
   OraDatabase.Parameters.Add "RETURN_NUMBER", NULL,      ORAPARM_OUTPUT, ORATYPE_NUMBER   
119 ghuddy 394
 
129 ghuddy 395
   pkgInfoHash.Item ("can_unofficial") = "false"
119 ghuddy 396
 
129 ghuddy 397
   '/* Get Package Details */
398
   Set rsTemp = OraDatabase.DbCreateDynaset( GetQuery("PackageDetails.sql"), cint(0))
119 ghuddy 399
 
129 ghuddy 400
   If ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) Then
401
      pkgInfoHash.Add "pv_id", (rsTemp.Fields("pv_id"))
402
      pkgInfoHash.Add "pkg_id", (rsTemp.Fields("pkg_id"))
403
      pkgInfoHash.Add "pkg_name", (rsTemp.Fields("pkg_name"))
404
      pkgInfoHash.Add "pkg_version", (rsTemp.Fields("pkg_version"))
405
      pkgInfoHash.Add "v_ext", (rsTemp.Fields("v_ext"))
406
      pkgInfoHash.Add "comments", (rsTemp.Fields("comments"))
119 ghuddy 407
 
129 ghuddy 408
      pkgInfoHash.Add "modified_stamp", (rsTemp.Fields("modified_stamp"))
409
      pkgInfoHash.Add "modifier", (rsTemp.Fields("modifier"))
410
      pkgInfoHash.Add "modifier_id", (rsTemp.Fields("modifier_id"))
411
      pkgInfoHash.Add "modifier_email", (rsTemp.Fields("modifier_email"))
119 ghuddy 412
 
129 ghuddy 413
      pkgInfoHash.Add "created_stamp", (rsTemp.Fields("created_stamp"))
414
      pkgInfoHash.Add "creator", (rsTemp.Fields("creator"))
415
      pkgInfoHash.Add "creator_email", (rsTemp.Fields("creator_email"))
119 ghuddy 416
 
129 ghuddy 417
      pkgInfoHash.Add "owner", (rsTemp.Fields("owner"))
418
      pkgInfoHash.Add "owner_email", (rsTemp.Fields("owner_email"))
119 ghuddy 419
 
129 ghuddy 420
      pkgInfoHash.Add "dlocked", (rsTemp.Fields("dlocked"))
421
      pkgInfoHash.Add "proj_id", (rsTemp.Fields("proj_id"))
422
      pkgInfoHash.Add "rtag_id", (rsTemp.Fields("rtag_id"))
423
      pkgInfoHash.Add "rtag_name", (rsTemp.Fields("rtag_name"))
424
      pkgInfoHash.Add "pkg_label", (rsTemp.Fields("pkg_label"))
425
      pkgInfoHash.Add "src_path", (rsTemp.Fields("src_path"))
426
      pkgInfoHash.Add "pv_description", (rsTemp.Fields("pv_description"))
427
      pkgInfoHash.Add "last_pv_id", (rsTemp.Fields("last_pv_id"))
428
      pkgInfoHash.Add "previous_version", (rsTemp.Fields("previous_version"))
429
      pkgInfoHash.Add "release_notes_info", (rsTemp.Fields("release_notes_info"))
119 ghuddy 430
 
129 ghuddy 431
      pkgInfoHash.Add "is_patch", (rsTemp.Fields("is_patch"))
432
      pkgInfoHash.Add "is_obsolete", (rsTemp.Fields("is_obsolete"))
433
      pkgInfoHash.Add "obsolete_comments", (rsTemp.Fields("obsolete_comments"))
119 ghuddy 434
 
129 ghuddy 435
      pkgInfoHash.Add "build_type", (rsTemp.Fields("build_type"))
436
      pkgInfoHash.Add "change_type", (rsTemp.Fields("change_type"))
437
      pkgInfoHash.Add "bs_id", (rsTemp.Fields("bs_id"))
438
      pkgInfoHash.Add "is_deployable", (rsTemp.Fields("is_deployable"))
439
      pkgInfoHash.Add "sbom_priority", (rsTemp.Fields("sbom_priority"))
440
      pkgInfoHash.Add "ripple_field", (rsTemp.Fields("ripple_field"))
119 ghuddy 441
 
129 ghuddy 442
   End If
119 ghuddy 443
 
444
 
129 ghuddy 445
   '-- Find if package is editable in this project
446
   OraDatabase.ExecuteSQL "BEGIN  :RETURN_NUMBER := CAN_EDIT_PKG_IN_PROJECT( :PV_ID, :RTAG_ID );  END;"
447
   pkgInfoHash.Add "can_edit_in_project", CStr( OraDatabase.Parameters("RETURN_NUMBER").Value )
119 ghuddy 448
 
449
 
129 ghuddy 450
   '/* Get Package Release Details */
451
   Set rsTemp = OraDatabase.DbCreateDynaset( GetQuery("PackageReleaseDetails.sql"), cint(0))
119 ghuddy 452
 
453
 
454
 
129 ghuddy 455
   If ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) Then
456
      pkgInfoHash.Item ("base_view_id") = (rsTemp.Fields("base_view_id"))
457
      pkgInfoHash.Add "insert_stamp", (rsTemp.Fields("insert_stamp"))
458
      pkgInfoHash.Add "insertor", (rsTemp.Fields("insertor"))
459
      pkgInfoHash.Add "insertor_email", (rsTemp.Fields("insertor_email"))
460
      pkgInfoHash.Item ("pkg_state") = (rsTemp.Fields("pkg_state"))
461
      pkgInfoHash.Item ("deprecated_state") = (rsTemp.Fields("deprecated_state"))
462
      pkgInfoHash.Item ("product_state") = (rsTemp.Fields("product_state"))
119 ghuddy 463
 
129 ghuddy 464
      'AND  (rsTemp("used_count") = 0)  _
119 ghuddy 465
 
129 ghuddy 466
      If      (pkgInfoHash.Item ("dlocked") = "Y") _
467
         AND  (pkgInfoHash.Item ("build_type") = "M") _
468
         AND  (CDate( FormatDateTime(pkgInfoHash.Item ("modified_stamp"), 2) ) = Date) _
469
         AND  (pkgInfoHash.Item("can_edit_in_project") = "1" ) _
470
      Then
119 ghuddy 471
 
129 ghuddy 472
         pkgInfoHash.Item ("can_unofficial") = "true"
473
      End If
119 ghuddy 474
 
129 ghuddy 475
   Else
119 ghuddy 476
 
129 ghuddy 477
      If (CDate( FormatDateTime(pkgInfoHash.Item ("modified_stamp"), 2) ) = Date) Then
478
         ' Must be not older then a day
479
         If (pkgInfoHash.Item ("dlocked") = "A")  OR   NOT IsNull(pkgInfoHash.Item("is_patch")) Then
480
            pkgInfoHash.Item ("can_unofficial") = "true"
119 ghuddy 481
 
129 ghuddy 482
         End If
119 ghuddy 483
 
129 ghuddy 484
      End If
119 ghuddy 485
 
129 ghuddy 486
   End If
119 ghuddy 487
 
488
 
129 ghuddy 489
   '/* Get Patch Parent */
490
   If pkgInfoHash.Item ("is_patch") = "Y" Then
491
      Set rsTemp = OraDatabase.DbCreateDynaset( GetQuery("PatchParent.sql"), cint(0))
119 ghuddy 492
 
129 ghuddy 493
      If ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) Then
494
         pkgInfoHash.Add "patch_parent_id", (rsTemp.Fields("pv_id"))
495
      End If
496
   End If
119 ghuddy 497
 
129 ghuddy 498
   ' DEVI-45275 - Check if version is in the planned table and if so get its planned operation type
499
   ' which denotes whether it is an existing version being added to a release, an existing version
500
   ' being removed from a release, or a new version being prepared for a release.
501
   Set rsTemp = OraDatabase.DbCreateDynaset( GetQuery("PlannedPackageVersionDetails.sql"), cint(0))
119 ghuddy 502
 
129 ghuddy 503
   If ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) Then
504
      pkgInfoHash.Add "planned_operation", (rsTemp.Fields("operation"))
505
   Else
506
      pkgInfoHash.Add "planned_operation", " "
507
   End If
119 ghuddy 508
 
129 ghuddy 509
   OraDatabase.Parameters.Remove "PV_ID"
510
   OraDatabase.Parameters.Remove "RTAG_ID"
511
   OraDatabase.Parameters.Remove "RETURN_NUMBER"
119 ghuddy 512
 
513
 
1376 dpurdie 514
   On Error Resume Next
183 brianf 515
   ' check if package is released
185 brianf 516
   If (NNrtag = "") or (IsNull(NNrtag)) Then
183 brianf 517
     pkgInfoHash.Add "is_released", False
518
   Else
519
     Set rsTemp = OraDatabase.DbCreateDynaset( "SELECT rc.pv_id FROM release_content rc WHERE rc.rtag_id = " & NNrtag & " AND rc.pv_id = " & SSpv_id, cint(0))
520
     pkgInfoHash.Add "is_released", rsTemp.RecordCount <> 0
521
   End If
522
 
523
   pkgInfoHash.Add "is_excluded", False
524
   pkgInfoHash.Add "has_build_failure", False
525
   ' check if package is excluded from build
185 brianf 526
   If Not ((NNrtag = "") or (IsNull(NNrtag))) Then
183 brianf 527
     Set rsTemp = OraDatabase.DbCreateDynaset( "SELECT dnr.pv_id,dnr.root_file FROM do_not_ripple dnr WHERE dnr.rtag_id = " & NNrtag & " AND dnr.pv_id = " & SSpv_id, cint(0))
528
     If rsTemp.RecordCount <> 0 Then
529
       pkgInfoHash("is_excluded") = True
530
       pkgInfoHash("has_build_failure") = Not IsNull(rsTemp("root_file"))
531
     End If
532
   End If
533
 
129 ghuddy 534
   rsTemp.Close
535
   Set rsTemp = nothing
183 brianf 536
 
537
 
119 ghuddy 538
End Sub
539
'-----------------------------------------------------------------------------------------------------------------------------
540
Sub Get_Pkg_Short_Info( SSparPv_id, SSpkgID, SSpkgName, SSpkgVersion, SSsrc_path, SSpkgDesc, BBdlocked )
129 ghuddy 541
   Dim rsTemp, Query_String
542
   If IsEmpty(SSparPv_id) Then Exit Sub
119 ghuddy 543
 
129 ghuddy 544
   Query_String = _
545
   " SELECT pkg.pkg_id, pkg.pkg_name, pv.pkg_version, pv.src_path, pv.pv_description, pv.dlocked"&_
546
   "  FROM packages pkg, package_versions pv"&_
547
   " WHERE pkg.pkg_id = pv.pkg_id  AND pv.pv_id ="& SSparPv_id
119 ghuddy 548
 
129 ghuddy 549
   Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
119 ghuddy 550
 
129 ghuddy 551
   If ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) Then
552
      SSpkgID = rsTemp.Fields("pkg_id")
553
      SSpkgName = rsTemp.Fields("pkg_name")
554
      SSpkgVersion = rsTemp.Fields("pkg_version")
555
      SSsrc_path = rsTemp.Fields("src_path")
556
      SSpkgDesc = rsTemp.Fields("pv_description")
557
      BBdlocked = rsTemp.Fields("dlocked")
558
   End If
119 ghuddy 559
 
129 ghuddy 560
   rsTemp.Close
561
   Set rsTemp = nothing
119 ghuddy 562
End Sub
563
'-----------------------------------------------------------------------------------------------------------------------------
564
Private Function IsDomainAuthOK( SSusername, SSpassword, SSdomainName )
129 ghuddy 565
   Dim objLoginAuth, return, tempSTR
566
   'Set objWSH = Server.CreateObject("WScript.Shell")
567
   'On Error Resume Next
568
   'return = -1
569
   'return = objWSH.Run("cmd.exe /c perl "& rootPath &"\common\domainauth.pl """&_
570
   '               SSdomainName &""" """& SSusername &""" """& SSpassword &""" "&_
571
   '               "> "& rootPath &"\temp\"& SSusername &".txt", 0, true)
119 ghuddy 572
 
129 ghuddy 573
   Set objLoginAuth = Server.CreateObject("LoginAdmin.ImpersonateUser")
119 ghuddy 574
 
129 ghuddy 575
   return = -1
576
   return = objLoginAuth.AuthenticateUser ( SSusername, SSpassword, SSdomainName )
119 ghuddy 577
 
129 ghuddy 578
   'Response.write "LOGIN"& SSusername &"-"& SSpassword &"-"& SSdomainName &"-"& return
119 ghuddy 579
 
129 ghuddy 580
   If (return = 0) OR (return = 1385) Then
581
      ' From MSDN System Error Codes
582
      ' 0 - The operation completed successfully.
583
      ' 1326 - Logon failure: unknown user name or bad password.
584
      ' 1385 - Logon failure: the user has not been granted the requested logon type at this computer.
585
      ' 1909 - The referenced account is currently locked out and may not be used to log on.
119 ghuddy 586
 
129 ghuddy 587
      'Login ok
588
      IsDomainAuthOK = True
589
   Else
590
      IsDomainAuthOK = False
591
   End If
119 ghuddy 592
 
129 ghuddy 593
   Set objLoginAuth = Nothing
119 ghuddy 594
End Function
595
'-----------------------------------------------------------------------------------------------------------------------------
596
Function ReadUserPreferences ( SSitem )
129 ghuddy 597
   'ReadUserPreferences = Request.Cookies("RELEASEMANAGER_USER_PREFERENCES")( SSitem )
598
   ReadUserPreferences = "0"
119 ghuddy 599
End Function
600
'-----------------------------------------------------------------------------------------------------------------------------
601
Function Requred_Parameters_String ( SScurrent, SSstr )
129 ghuddy 602
   'returns "&par1=val1&&parn=valn&"            must use & as it will not be used on parameter name or value
603
   Dim tempARR, parameter, tempSTR
604
   tempARR = Split( SSstr, "," )
605
   tempSTR = SScurrent
119 ghuddy 606
 
129 ghuddy 607
   For Each parameter In tempARR
608
      tempSTR = tempSTR &"&"& parameter &"="& QStrPar( parameter ) &"&"
609
   Next
119 ghuddy 610
 
129 ghuddy 611
   Requred_Parameters_String = tempSTR
119 ghuddy 612
End Function
613
'-----------------------------------------------------------------------------------------------------------------------------
614
Function Quick_Help ( SStipname )
129 ghuddy 615
   Quick_Help = "<a href='javascript:;' onMouseOver=""formTips.show('"& SStipname &"')"" onMouseOut=""formTips.hide()""><img src='images/i_help.gif' width='12' height='12' hspace='2' align='absmiddle' border='0' ></a>"
119 ghuddy 616
End Function
617
'-----------------------------------------------------------------------------------------------------------------------------
618
Function LogError ( SSlog, SSstr )
129 ghuddy 619
   '|errstr1||errstr2||errstr3|...
620
   LogError = SSlog &"|"& SSstr &"|"
119 ghuddy 621
End Function
622
'-----------------------------------------------------------------------------------------------------------------------------
623
Sub Send_Email ( SSfromName, SSfrom, SSto, SSsubject, SSbody, oAttachments )
129 ghuddy 624
   Dim Mail, Keys, Key, canSend
4028 dpurdie 625
'Response.write "<pre>Send_Email:SSfromName:" & SSfromName
626
'Response.write "<br>Send_Email:SSfrom:" & SSfrom
627
'Response.write "<br>Send_Email:SSto:" & SSto
628
'Response.write "<br>Send_Email:SSsubject:" & SSsubject
629
'Response.write "<br>Send_Email:SSbody:" & SSbody
119 ghuddy 630
 
129 ghuddy 631
   canSend = FALSE
632
   Set Mail = Server.CreateObject("Persits.MailSender")
3959 dpurdie 633
   Mail.Host = MAIL_SERVER
129 ghuddy 634
   Mail.From = SSfrom
635
   Mail.FromName = SSfromName
119 ghuddy 636
 
129 ghuddy 637
   ' Send TO:
4028 dpurdie 638
   ' Handle a Dictionary of names
639
   If IsObject(SSto) AND (TypeName(SSto) <> "IOraField") Then
129 ghuddy 640
      Keys = SSto.Keys
641
      For Each Key In Keys
642
         Mail.AddAddress Key, SSto.Item( Key )
643
      Next
119 ghuddy 644
 
129 ghuddy 645
      If SSto.Count > 0 Then canSend = TRUE
646
   Else
119 ghuddy 647
 
129 ghuddy 648
      Mail.AddAddress SSto
649
      If SSto <> "" Then canSend = TRUE
650
   End If
119 ghuddy 651
 
129 ghuddy 652
   Mail.Subject = SSsubject
653
   Mail.IsHTML = True
654
   Mail.Body = SSbody
119 ghuddy 655
 
4028 dpurdie 656
   If NOT IsEmpty(oAttachments) AND NOT IsNull(oAttachments) Then
657
       ' Add Attachments     DDDDDDD  Sash,
658
       ' It appears as if AddEmbededImage is premium functionality that costs money, can we just do a normal add attachment?
659
       If IsObject( oAttachments ) Then
660
          Keys = oAttachments.Keys
661
          For Each Key In Keys
662
       '      Mail.AddEmbeddedImage rootPath & Key, oAttachments.Item( Key )
663
              Mail.AddAttachment oAttachments.Item( Key )
664
          Next
665
        Else
666
              Mail.AddAttachment oAttachments
667
       End If
668
    End If
119 ghuddy 669
 
129 ghuddy 670
   On Error Resume Next
671
   If canSend Then   Mail.Send   ' send message
119 ghuddy 672
 
673
End Sub
674
'-----------------------------------------------------------------------------------------------------------------------------
675
Sub Iterate_UP_the_tree ( NNrtag_id, HHstart_with, HHresult )
129 ghuddy 676
   Dim rsTemp, Query_String
677
   Dim seekPKGs, seekNOTpkgs
119 ghuddy 678
 
129 ghuddy 679
   seekPKGs = Join(HHstart_with.Keys, ",")
680
   If seekPKGs = "" Then seekPKGs = "-1"
681
   seekNOTpkgs = "-1"
119 ghuddy 682
 
129 ghuddy 683
   Do While seekPKGs <> "-1"
684
      Query_String = _
685
      " SELECT DISTINCT dep.pkg_id"&_
686
      "    FROM package_dependencies dep, release_content rel"&_
687
      "   WHERE rel.pv_id = dep.pv_id"&_
688
      "     AND rel.rtag_id = "& NNrtag_id &_
689
      "     AND dpkg_id IN ( "& seekPKGs &" ) "&_
690
      "     AND pkg_id NOT IN ( "& seekNOTpkgs &" )"
691
      '"     AND dep.dpv_id NOT IN ( SELECT iw.iw_id FROM ignore_warnings iw WHERE iw.rtag_id = "& NNrtag_id &" )"
692
      Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
119 ghuddy 693
 
129 ghuddy 694
      If rsTemp.RecordCount < 1 Then Exit Do
119 ghuddy 695
 
129 ghuddy 696
      seekPKGs = "-1"
697
      While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))
698
         If NOT HHresult.Exists(Cstr(rsTemp.Fields("pkg_id"))) Then HHresult.Add Cstr(rsTemp.Fields("pkg_id")), ""
699
         seekPKGs = seekPKGs &","& rsTemp.Fields("pkg_id")
700
         rsTemp.MoveNext
701
      WEnd
119 ghuddy 702
 
129 ghuddy 703
      seekNOTpkgs = seekNOTpkgs &","& seekPKGs
704
   Loop
119 ghuddy 705
 
706
End Sub
707
'-----------------------------------------------------------------------------------------------------------------------------
129 ghuddy 708
Sub Iterate_DOWN_the_tree (   NNrtag_id, HHstart_with, HHresult )
709
   Dim rsTemp, Query_String
710
   Dim seekPKGs, seekNOTpkgs
119 ghuddy 711
 
129 ghuddy 712
   seekPKGs = Join(HHstart_with.Keys, ",")
713
   If seekPKGs = "" Then seekPKGs = "-1"
714
   seekNOTpkgs = "-1"
119 ghuddy 715
 
129 ghuddy 716
   Do While seekPKGs <> "-1"
717
      Query_String = _
718
      " SELECT DISTINCT dep.dpkg_id"&_
719
      "    FROM package_dependencies dep, release_content rel"&_
720
      "   WHERE rel.pv_id = dep.pv_id"&_
721
      "     AND rel.rtag_id = "& NNrtag_id &_
722
      "     AND pkg_id IN ( "& seekPKGs &" ) "&_
723
      "     AND dpkg_id NOT IN ( "& seekNOTpkgs &" )"
724
      Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
119 ghuddy 725
 
129 ghuddy 726
      If rsTemp.RecordCount < 1 Then Exit Do
119 ghuddy 727
 
129 ghuddy 728
      seekPKGs = "-1"
729
      While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))
730
         If NOT HHresult.Exists(Cstr(rsTemp.Fields("dpkg_id"))) Then HHresult.Add Cstr(rsTemp.Fields("dpkg_id")), ""
731
         seekPKGs = seekPKGs &","& rsTemp.Fields("dpkg_id")
732
         rsTemp.MoveNext
733
      WEnd
119 ghuddy 734
 
129 ghuddy 735
      seekNOTpkgs = seekNOTpkgs &","& seekPKGs
736
   Loop
119 ghuddy 737
 
738
End Sub
739
'-----------------------------------------------------------------------------------------------------------------------------
740
Class TempSession
129 ghuddy 741
   Function Value ()
742
      Value = Session("RELEASEMANAGER_temp")
743
   End Function
119 ghuddy 744
 
129 ghuddy 745
   Sub Add ( SSstr )
746
      Session("RELEASEMANAGER_temp") = Session("RELEASEMANAGER_temp") & SSstr
747
   End Sub
119 ghuddy 748
 
129 ghuddy 749
   Sub Clean ()
750
      Session("RELEASEMANAGER_temp") = NULL
751
   End Sub
119 ghuddy 752
End Class
753
'-----------------------------------------------------------------------------------------------------------------------------
754
Sub DisplayInfo ( SSmsg, SSwidth )
129 ghuddy 755
   Dim msg
756
   If SSmsg = "" Then Exit Sub
119 ghuddy 757
 
129 ghuddy 758
   Select Case UCase( SSmsg )
759
   Case "ISSUES_IMPORTED"
760
      msg = "Import is complete. <br>Click on Close button if you are finished."
761
   Case "MAKE_OFFICIAL_WARNING"
762
      msg = "Note that making a package official will prevent any further change to it."
763
   Case "APPLY_LABEL_TO_ALL_WARNING"
764
      msg = "This will overwrite any existing labels on selected packages."
765
   Case "BLANK_LABEL_WARNING"
766
      msg = "Some dependencies in the export list above, do not have a label!"
767
   Case "PERSONAL_VIEW_NOT_SETUP"
768
      msg = "<span class='err_alert'><b>Your View is not setup!</b></span><span class='sublbox_txt'><br><br>Either set your view using My&nbsp;Account&nbsp;&gt;&nbsp;Views menu<br><br>OR<br><br>switch to Base view (Full view) by clicking on <img src='images/abtn_personal_view.gif' width='25' height='25' border='0'> icon above.</span>"
769
   Case "EMPTY_RELEASE_CONTENTS"
770
      msg = "<span class='err_alert'><b>Release content is empty!</b></span><span class='sublbox_txt'><br><br>Use + button to add packages to a release.</span>"
771
   Case "PKG_NAME_REQUIRED"
772
      msg = "<span class='err_alert'><b>Package Name required!</b></span><span class='sublbox_txt'><br>You are required to select at least one package name.</span>"
773
   Case "ADD_PATCH_WARNING"
774
      msg = "Note that patches cannot be used in your build dependencies."
775
   Case "NEW_PATCH_AVAILABLE"
776
      msg = "<b>New Patch is Required</b><br>One or more Build Dependencies have been patched.<br>Please click Add button to create patch for this package."
119 ghuddy 777
 
129 ghuddy 778
   Case "GENERATE_RELEASE_NOTES"
167 brianf 779
      msg = "<a href='_generate_release_notes.asp?rfile=&pv_id="& Request("pv_id") &"&rtag_id="& Request("rtag_id") &"' class='txt_linked'>Click here</a> to generate full release notes."
129 ghuddy 780
   Case "NOT_FOUND_IN_PKG_ARCHIVE_RELEASE_NOTES"
3959 dpurdie 781
      msg = "<b>This package is not found in dpkg_archive!</b><br>Release notes are not generated.<br><a href='_generate_release_notes.asp?rfile="& scriptName &"&pv_id="& Request("pv_id") &"&rtag_id="& Request("rtag_id") &"' class='txt_linked'>Click here</a> to try again."
129 ghuddy 782
   Case "FAILED_GENERATING_RELEASE_NOTES"
783
      msg = "<span class='err_alert'><b>Failed generating release notes!</b></span><br>Please contact the <a href='mailto:"& adminEmail&"' class='txt_linked'>Administrator</a>"
784
   Case "GENERATING_RELEASE_NOTES"
785
      msg = "<b>Generating release notes...</b><br>It may take a minute. Please try refreshing this page a bit later."
786
   Case "NO_PREVIOUS_VERSION_RELEASE_NOTES"
787
       msg = "<b>Previous Version is Unknown</b>!<br>Please specify previous version by clicking on 'Show Details...' above.<br>Release notes are not generated."
119 ghuddy 788
 
129 ghuddy 789
   Case "PACKAGE_FOUND_IN_OTHER_LOCATIONS"
790
      msg = "This package is also found in other locations."
791
   Case "DOC_NUMBER_NOTFOUND"
792
      msg = "<span class='err_alert'>Document number "& Request("doc_num") &" does not correspond to any document!</span>"
793
   Case "DOC_NUMBER_FOUND"
794
      msg = "Document found. Click &quot;Import&quot; to link the document."
795
   Case "UNIT_TEST_NOT_DONE"
796
      msg = "<b>Unit test is Not Done!</b><br><a href='javascript:;' onClick=""MM_openBrWindow('_wform_reason_for_unit_test_not_done.asp?pv_id="& Request("pv_id") &"&rtag_id="& Request("rtag_id") &"','ReasonForNotDone','resizable=yes,width=400,height=250')"" class='txt_linked'>Click here</a> to supply/edit reason."
797
   Case "PACKAGE_NOT_PART_OF_RELEASE"
798
      msg = "<b>Package is Not Part of This Release Anymore!</b><br>This package cannot be found in the list on the left-hand side.<br>You can use 'lookup:' on the left-hand side to find the package inside this release. "
119 ghuddy 799
 
129 ghuddy 800
   Case "NOT_FOUND_IN_PKG_ARCHIVE_FILE_GENERATE"
3959 dpurdie 801
      msg = "<b>This package is not found in dpkg_archive!</b><br>Files and folders are not captured.<br><a href='_generate_files_and_folders.asp?rfile="& scriptName &"&pv_id="& Request("pv_id") &"&rtag_id="& Request("rtag_id") &"' class='txt_linked' onClick=""ProgressBar.style.visibility='visible';"">Click here</a> to try again."
129 ghuddy 802
   Case "GENERATE_FILES_AND_FOLDERS"
803
      msg = "<b>Files and folders not found.</b><br><a href='_generate_files_and_folders.asp?pv_id="& Request("pv_id") &"&rtag_id="& Request("rtag_id") &"' class='txt_linked' onClick=""ProgressBar.style.visibility='visible';"">Click here</a> to try capture them."
804
   Case "NO_PRODUCT_FILES_CAPTURED"
805
      msg = "<b>Files and Folders not found for this product!</b><br>Capture of product components can only be done during the build time."
119 ghuddy 806
 
129 ghuddy 807
   Case "MASS REF REFERENCE"
808
      msg = "<span class='err_alert'><b>New Version can only be created in the Release's associated MASS REF: <a href=""dependencies.asp?pv_id="& pkgInfoHash.Item("pv_id") &"&rtag_id="& AssocMASSREFValue &""">"& pkgInfoHash.Item("pkg_name") &" "& pkgInfoHash.Item("pkg_version") &"</a></b></span>"
119 ghuddy 809
 
129 ghuddy 810
   Case "REPEAT_SCHEDULE_NOT_SELECTED"
811
      msg = "<span class='err_alert'><b>YOU MUST SELECT A VALUE FOR REPEAT SCHEDULED DOWNTIME</b></span>"
119 ghuddy 812
 
129 ghuddy 813
   Case "PKG_NAME_INVALID"
814
      msg = "<span class='err_alert'><b>Package Name Invalid!</b></span><span class='sublbox_txt'><br>This package name is invalid. Package names must only consist of alpha-numeric characters, underscores and dashes (A-Z 0-9 _ -), and cannot include spaces or any other symbols.</span>"
119 ghuddy 815
 
129 ghuddy 816
   Case "PKG_NAME_EXISTS"
817
      msg = "<span class='err_alert'><b>Package Name Already Exists!</b></span><span class='sublbox_txt'><br>This package name already exists, please try again.</span>"
119 ghuddy 818
 
129 ghuddy 819
   End Select
119 ghuddy 820
%>
821
<table width="<%=SSwidth%>" border="0" cellspacing="0" cellpadding="1">
822
  <tr>
823
    <td background="images/bg_bage_dark.gif">
129 ghuddy 824
     <table width="100%" border="0" cellspacing="0" cellpadding="3">
119 ghuddy 825
        <tr>
826
          <td width="1%" valign="top" background="images/bg_help.gif"><img src="images/i_qhelp.gif" width="16" height="16"></td>
827
          <td width="100%" background="images/bg_help.gif" class="form_txt"><%=msg%></td>
828
        </tr>
829
      </table></td>
830
  </tr>
831
</table>
832
<br>
833
<%
834
 
835
End Sub
836
'-----------------------------------------------------------------------------------------------------------------------------
837
Sub Messenger ( sMessage, nMessageType, sWidth )
129 ghuddy 838
   Dim msgTemplate, Img
119 ghuddy 839
 
129 ghuddy 840
   If (sMessage = "") OR IsNull(sMessage) Then Exit Sub
119 ghuddy 841
 
129 ghuddy 842
   Select Case CStr(nMessageType)
843
      Case "1"
844
         Img = "s_critical.gif"
845
      Case "2"
846
         Img = "s_warning.gif"
847
      Case "3"
848
         Img = "s_note.gif"
849
      Case Else
850
         Img = nMessageType
851
   End Select
119 ghuddy 852
 
853
 
129 ghuddy 854
   msgTemplate = ReadFile( APP_ROOT &"\scripts\message_style.html" )
855
   msgTemplate = Replace( msgTemplate, "%WIDTH%", sWidth )
856
   msgTemplate = Replace( msgTemplate, "%IMAGE%", Img )
857
   msgTemplate = Replace( msgTemplate, "%MESSAGE%", sMessage )
119 ghuddy 858
 
129 ghuddy 859
   Response.write msgTemplate
119 ghuddy 860
End Sub
861
'-----------------------------------------------------------------------------------------------------------------------------
4203 dpurdie 862
Function Default_Label ( SSpv_id, SSbuild_type, SSchange_type, SSpkg_name, SSpkg_version, SSv_ext )
3959 dpurdie 863
    If SSbuild_type = "A" Then
4203 dpurdie 864
        If  SSchange_type = "F" Then
865
            Default_Label = SSpkg_name & "_" & SSpkg_version & ".WIP"
866
        else
867
            Default_Label = UCase(SSpkg_name & "." & SSpv_id & SSv_ext) & ".WIP"
868
        End If
3959 dpurdie 869
    Else
4203 dpurdie 870
        Default_Label = SSpkg_name & "_" & SSpkg_version
3959 dpurdie 871
    End If
119 ghuddy 872
End Function
873
'-----------------------------------------------------------------------------------------------------------------------------
874
Function Format_Version ( SSpkg_version, SSv_ext )
129 ghuddy 875
   Dim tempArr, tempVersion, patchArr, seg, myVersion
876
   myVersion = SSpkg_version
119 ghuddy 877
 
129 ghuddy 878
   If NOT IsNull(SSv_ext) Then
879
      myVersion = Left ( myVersion, Len(myVersion) - Len(SSv_ext) )
880
   End If
119 ghuddy 881
 
129 ghuddy 882
   tempArr = Split (myVersion, ".")
883
   For Each seg In tempArr
884
      If Len(seg) < 2 Then
885
         ' single digit number
886
         tempVersion = tempVersion &"0"& seg
119 ghuddy 887
 
129 ghuddy 888
      Else
889
         seg = Replace(seg, "_", "-")   ' make sure that there is no _ in segment
890
         If InStr( seg, "-" ) > 0 Then
891
            ' patch version supplied
892
            patchArr = Split(seg, "-")
893
            If Len(patchArr(0)) < 2 Then
894
               ' single digit number
895
               tempVersion = tempVersion &"0"& patchArr(0) &"_0"& patchArr(1)
896
            Else
897
               ' double digit number
898
               tempVersion = tempVersion & patchArr(0) &"_0"& patchArr(1)
899
            End If
119 ghuddy 900
 
129 ghuddy 901
         Else
902
            ' double digit no patch
903
            tempVersion = tempVersion & seg
904
         End If
119 ghuddy 905
 
129 ghuddy 906
      End If
119 ghuddy 907
 
129 ghuddy 908
   Next
119 ghuddy 909
 
129 ghuddy 910
   Format_Version = tempVersion
119 ghuddy 911
End Function
912
'-----------------------------------------------------------------------------------------------------------------------------
913
Function DefineStateIcon ( NNpkg_state, CCdlocked, sIgnoreWarnings, cIsPatchIgnore, cBuildType, bForEnvironment )
914
 
129 ghuddy 915
   If NOT IsNull(sIgnoreWarnings) Then
916
      '-- Ignore Warning is on
917
      If IsNull(cIsPatchIgnore) Then
918
         DefineStateIcon = enum_imgIgnoring
919
      Else
920
         DefineStateIcon = enum_imgPatchIgnoring
921
      End If
119 ghuddy 922
 
129 ghuddy 923
   Else
924
      Select Case CInt( NNpkg_state )
925
         Case enumPKG_STATE_OK
183 brianf 926
            If (CCdlocked = "N") OR (CCdlocked = "R") Then
129 ghuddy 927
               DefineStateIcon = enum_imgBuilding
183 brianf 928
            ElseIf (CCdlocked = "P") Then
929
               DefineStateIcon = enum_imgPending
129 ghuddy 930
            Else
931
               DefineStateIcon = enum_imgBlank
932
            End If
119 ghuddy 933
 
129 ghuddy 934
         Case enumPKG_STATE_MAJOR
935
            DefineStateIcon = enum_imgCritical
119 ghuddy 936
 
129 ghuddy 937
         Case enumPKG_STATE_MINOR
938
            DefineStateIcon = enum_imgWarning
119 ghuddy 939
 
129 ghuddy 940
         Case enumPKG_STATE_MAJOR_READY
941
            DefineStateIcon = enum_imgCReady
119 ghuddy 942
 
129 ghuddy 943
         Case enumPKG_STATE_MINOR_READY
944
            DefineStateIcon = enum_imgWReady
119 ghuddy 945
 
129 ghuddy 946
         Case enumPKG_NOT_FOUND
947
            DefineStateIcon = enum_imgNotFound
119 ghuddy 948
 
129 ghuddy 949
         Case enumPKG_STATE_NEW_PATCH
950
            DefineStateIcon = enum_imgPatchAvailable
119 ghuddy 951
 
129 ghuddy 952
         Case enumPKG_STATE_DEPRECATED
953
            DefineStateIcon = enum_imgDeprecated
119 ghuddy 954
 
129 ghuddy 955
         Case enumPKG_STATE_DEPRECATED_DEPENDENT
956
            DefineStateIcon = enum_imgDeprecatedDependent
119 ghuddy 957
 
129 ghuddy 958
         Case enumPKG_ADVISORY_RIPPLE
959
            DefineStateIcon = enum_imgAR
119 ghuddy 960
 
129 ghuddy 961
         Case enumPKG_ADVISORY_RIPPLE_DEPENDENT
962
            DefineStateIcon = enum_imgARD
119 ghuddy 963
 
131 ghuddy 964
         Case enumPKG_PEGGED_VERSION
965
            DefineStateIcon = enum_imgGreenPin
129 ghuddy 966
      End Select
119 ghuddy 967
 
129 ghuddy 968
      If (NOT bForEnvironment) AND _
969
         (cBuildType = "A") AND _
970
         (CCdlocked <> "Y") AND _
971
         (DefineStateIcon <> enum_imgBlank) AND _
972
         (DefineStateIcon <> enum_imgBuilding)  AND  _
973
         (DefineStateIcon <> enum_imgNotFound) OR _
974
         ( Request("rtag_id") = ""  AND  Request("FRrtag_id") = "")  _
975
         Then
119 ghuddy 976
 
129 ghuddy 977
         DefineStateIcon = ""
119 ghuddy 978
 
129 ghuddy 979
       End If
4390 dpurdie 980
   End If
981
End Function
982
'-----------------------------------------------------------------------------------------------------------------------------
983
Function DefineStateIconSimple ( NNpkg_state, CCdlocked)
119 ghuddy 984
 
4390 dpurdie 985
      DefineStateIconSimple = ""
986
      Select Case CInt( NNpkg_state )
987
         Case enumPKG_STATE_OK
988
            If (CCdlocked = "R") OR (CCdlocked = "A") Then
989
               DefineStateIconSimple = enum_imgBuilding
990
            ElseIf (CCdlocked = "P") Then
991
               DefineStateIconSimple = enum_imgPending
992
            ElseIf (CCdlocked = "Y") Then
993
               DefineStateIconSimple = enum_imgReleasedLocked
994
            ElseIf (CCdlocked = "N") Then
995
               DefineStateIconSimple = enum_imgReleasedUnlocked
996
            Else
997
               DefineStateIconSimple = enum_imgBlank
998
            End If
119 ghuddy 999
 
4390 dpurdie 1000
         Case enumPKG_STATE_MAJOR
1001
            DefineStateIconSimple = enum_imgCritical
119 ghuddy 1002
 
4390 dpurdie 1003
         Case enumPKG_STATE_MINOR
1004
            DefineStateIconSimple = enum_imgWarning
119 ghuddy 1005
 
4390 dpurdie 1006
         Case enumPKG_STATE_MAJOR_READY
1007
            DefineStateIconSimple = enum_imgCReady
1008
 
1009
         Case enumPKG_STATE_MINOR_READY
1010
            DefineStateIconSimple = enum_imgWReady
1011
 
1012
         Case enumPKG_NOT_FOUND
1013
            DefineStateIconSimple = enum_imgNotFound
1014
 
1015
         Case enumPKG_STATE_NEW_PATCH
1016
            DefineStateIconSimple = enum_imgPatchAvailable
1017
 
1018
         Case enumPKG_STATE_DEPRECATED
1019
            DefineStateIconSimple = enum_imgDeprecated
1020
 
1021
         Case enumPKG_STATE_DEPRECATED_DEPENDENT
1022
            DefineStateIconSimple = enum_imgDeprecatedDependent
1023
 
1024
         Case enumPKG_ADVISORY_RIPPLE
1025
            DefineStateIconSimple = enum_imgAR
1026
 
1027
         Case enumPKG_ADVISORY_RIPPLE_DEPENDENT
1028
            DefineStateIconSimple = enum_imgARD
1029
 
1030
         Case enumPKG_PEGGED_VERSION
1031
            DefineStateIconSimple = enum_imgGreenPin
1032
      End Select
119 ghuddy 1033
End Function
1034
'-----------------------------------------------------------------------------------------------------------------------------
1035
Function DefineStateSmallIcon ( NNpkg_state, CCdlocked )
129 ghuddy 1036
   Select Case CInt( NNpkg_state )
1037
   Case enumPKG_STATE_OK
1038
      If CCdlocked = "N" Then
1039
         DefineStateSmallIcon = enum_SMALL_imgBuilding
1040
      Else
1041
         DefineStateSmallIcon = enum_SMALL_imgOK
1042
      End If
119 ghuddy 1043
 
129 ghuddy 1044
   Case enumPKG_STATE_MAJOR
1045
      DefineStateSmallIcon = enum_SMALL_imgCritical
119 ghuddy 1046
 
129 ghuddy 1047
   Case enumPKG_STATE_MINOR
1048
      DefineStateSmallIcon = enum_SMALL_imgWarning
119 ghuddy 1049
 
129 ghuddy 1050
   Case enumPKG_STATE_MAJOR_READY
1051
      DefineStateSmallIcon = enum_SMALL_imgCReady
119 ghuddy 1052
 
129 ghuddy 1053
   Case enumPKG_STATE_MINOR_READY
1054
      DefineStateSmallIcon = enum_SMALL_imgWReady
119 ghuddy 1055
 
129 ghuddy 1056
   End Select
119 ghuddy 1057
End Function
1058
'-----------------------------------------------------------------------------------------------------------------------------
1059
Function PatchIcon ( cIsPatch, cIsPatchObsolete )
129 ghuddy 1060
   If IsNull(cIsPatch) Then
1061
      PatchIcon = "<img src='images/rex_images/ext_blank.gif' width='16' height='16' border='0' align='absmiddle'>"
1062
   Else
1063
      If IsNull(cIsPatchObsolete) Then
1064
         PatchIcon = "<img src='images/i_patch_small.gif' width='16' height='16' border='0' align='absmiddle' >"
1065
      Else
1066
         PatchIcon = "<img src='images/i_patch_small_obsolete.gif' width='16' height='16' border='0' align='absmiddle' title='Patch is obsolete'>"
1067
      End If
1068
   End If
119 ghuddy 1069
End Function
1070
'-----------------------------------------------------------------------------------------------------------------------------
1071
' Function that returns true of false if the item exists in the array
1072
'-----------------------------------------------------------------------------------------------------------------------------
1073
Function inArray(item, aItems)
129 ghuddy 1074
   Dim element
1075
   inArray = false
1076
   for each element in aItems
1077
      If element = item Then
1078
         inArray=true
1079
      End If
1080
   next
119 ghuddy 1081
End Function
1082
'-----------------------------------------------------------------------------------------------------------------------------
1083
Function ProgressBar ()
129 ghuddy 1084
   ProgressBar = "<DIV name='divProgressBar' id='divProgressBar' style='visibility:hidden;'><img src='icons/i_processing.gif' width='79' height='14'></DIV>"
119 ghuddy 1085
End Function
1086
'-----------------------------------------------------------------------------------------------------------------------------
1087
Function GetCurrentParameters( nProjId, nRtagId, nPvId )
129 ghuddy 1088
   Dim rsQry,query
119 ghuddy 1089
 
129 ghuddy 1090
   ' Set defaults
1091
   nProjId    = -1
1092
   nRtagId    = -1
1093
   nPvId       = -1
119 ghuddy 1094
 
1095
 
129 ghuddy 1096
   ' Get parameters from database
1097
   OraDatabase.Parameters.Add "ProjId",       Request("proj_id"),   ORAPARM_INPUT, ORATYPE_VARCHAR2
1098
   OraDatabase.Parameters.Add "Rtag_id",       Request("rtag_id"),   ORAPARM_INPUT, ORATYPE_VARCHAR2
1099
   OraDatabase.Parameters.Add "results",       NULL, ORAPARM_OUTPUT, ORATYPE_CURSOR
119 ghuddy 1100
 
129 ghuddy 1101
   OraDatabase.ExecuteSQL " BEGIN  PK_APP_UTILS.GET_CURRENT_PARAMETERS ( :ProjId, :Rtag_id, :results ); END;"
119 ghuddy 1102
 
129 ghuddy 1103
   Set rsQry = OraDatabase.Parameters("results").Value
119 ghuddy 1104
 
129 ghuddy 1105
   OraDatabase.Parameters.Remove "ProjId"
1106
   OraDatabase.Parameters.Remove "Rtag_id"
1107
   OraDatabase.Parameters.Remove "results"
119 ghuddy 1108
 
1109
 
129 ghuddy 1110
   If rsQry.RecordCount > 0 Then
119 ghuddy 1111
 
129 ghuddy 1112
      nProjId    = CDbl(rsQry("PROJ_ID"))
1113
      nRtagId    = CDbl(rsQry("RTAG_ID"))
119 ghuddy 1114
 
129 ghuddy 1115
   End If
119 ghuddy 1116
 
129 ghuddy 1117
   rsQry.Close()
1118
   Set rsQry = nothing
119 ghuddy 1119
 
1120
 
129 ghuddy 1121
   ' Set pv_id parameter
1122
   If Request("pv_id") <> "" Then nPvId = CDbl(Request("pv_id"))
119 ghuddy 1123
 
1124
 
1125
End Function
1126
'-----------------------------------------------------------------------------------------------------------------------------
1127
Function GetEnvName ( nEnvTab )
129 ghuddy 1128
   Select Case CInt( nEnvTab )
1129
      Case enumENVTAB_WORK_IN_PROGRESS
1130
         GetEnvName = "Work In Progress"
119 ghuddy 1131
 
129 ghuddy 1132
      Case enumENVTAB_PLANNED
1133
         GetEnvName = "Pending"
119 ghuddy 1134
 
129 ghuddy 1135
      Case enumENVTAB_RELEASED
1136
         GetEnvName = "Released"
119 ghuddy 1137
 
129 ghuddy 1138
   End Select
119 ghuddy 1139
 
1140
End Function
1141
'-----------------------------------------------------------------------------------------------------------------------------
1142
Function Title (rtagId)
1143
 
129 ghuddy 1144
   If rtagId = "" Then
1145
      Title = "Release Manager"
1146
   Else
1147
      Set rsQry = OraDatabase.DbCreateDynaset( "SELECT RT.RTAG_NAME, P.PROJ_NAME FROM PROJECTS P, RELEASE_TAGS RT WHERE RT.PROJ_ID = P.PROJ_ID AND RT.RTAG_ID="& rtagId, ORADYN_DEFAULT )
1148
      Title = rsQry("proj_name")&">"&rsQry("rtag_name")
1149
      rsQry.Close()
1150
      Set rsQry = Nothing
1151
   End If
119 ghuddy 1152
 
1153
End Function
1154
'-------------------------------------------------------------------------------------
1155
Function Check_Package_WIP_Already_Exists(NNrtag_id, NNpv_id)
129 ghuddy 1156
   Dim Query_String, rsQry
119 ghuddy 1157
 
129 ghuddy 1158
   Query_String = _
1159
   "   SELECT * "&_
1160
   "   FROM planned pl, package_versions pv "&_
1161
   "   WHERE pl.rtag_id = "& NNrtag_id &_
1162
   "   AND pv.pv_id = pl.pv_id "&_
1163
   "   AND pv.dlocked = 'A' "&_
1164
   "   AND pv.pkg_id = (SELECT pkg_id "&_
1165
       "                  FROM package_versions "&_
1166
       "                 WHERE pv_id = "& NNpv_id &") "&_
1167
   "   AND pv.v_ext = (SELECT v_ext "&_
1168
   "                  FROM package_versions "&_
1169
       "                 WHERE pv_id = "& NNpv_id &")"
119 ghuddy 1170
 
1171
 
129 ghuddy 1172
   Set rsQry = OraDatabase.DbCreateDynaset( Query_String , cint(0) )
119 ghuddy 1173
 
129 ghuddy 1174
   Check_Package_WIP_Already_Exists = rsQry.RecordCount
119 ghuddy 1175
 
129 ghuddy 1176
   rsQry.Close()
1177
   Set rsQry = Nothing
119 ghuddy 1178
End Function
1179
'-----------------------------------------------------------------------------------------------------------------------------
1180
Function ValidateCodeReviewURL ( sCodeReviewURL )
1181
  Dim isValid
1182
  Dim sTempBaseURL
1183
  Dim httpRegEx
129 ghuddy 1184
   Set httpRegEx = new RegExp
119 ghuddy 1185
 
129 ghuddy 1186
   httpRegEx.Pattern = "^https?:\/\/"
119 ghuddy 1187
 
129 ghuddy 1188
   ' Removes ending slash from project's base URL for ease of comparison.
1189
   sTempBaseURL = Left(baseURL, Len(baseURL)-1)
1190
   ' Removes the project's base URL from the URL specified (if it's present).
1191
   codeReviewURL = Replace(sCodeReviewURL, sTempBaseURL, "")
1192
   ' Removes the slash from the beginning of the resulting URL (if it's present).
1193
   If InStr(codeReviewURL, "/") = 1 Then
1194
     codeReviewURL = Replace(codeReviewURL, "/", "", 1, 1)
1195
   End If
119 ghuddy 1196
 
129 ghuddy 1197
   ' If the URL doesn't contain the http:// prefix, assume that it's correct.
1198
   If NOT httpRegEx.Test(codeReviewURL) AND Len(codeReviewURL) > 0 Then
1199
     isValid = True
1200
   Else
1201
     ' If the URL still contains the http:// prefix and is longer than the base
1202
     ' URL, assume that it is an invalid URL because of a differing base URL.
1203
     If Len(sCodeReviewURL) > Len(baseURL) Then
1204
       Response.Write("<script type='text/javascript'>alert('Incorrect Base URL\n\nMust start with project\'s base url (" & baseURL &") if full URL specified.')</script>")
1205
     Else
1206
     ' If the URL still contains the http:// prefix and is shorter than the base
1207
     ' URL, assume that it is incomplete.
1208
       Response.Write("<script type='text/javascript'>alert('Incomplete Code Review URL')</script>")
1209
     End If
1210
     ' Otherwise, the URL matches the base URL exactly, which is also invalid.
1211
     codeReviewURL = sCodeReviewURL
1212
     isValid = False
1213
   End If
1214
   ValidateCodeReviewURL = isValid
119 ghuddy 1215
End Function
1216
'----------------------------------------------------------------------------------------------------------------------------------------
1217
Function Is_Page_Editable ( cDlocked )
129 ghuddy 1218
   ' Editable if (   (unlocked OR rejected)
1219
   '              OR ( NOT released/locked AND EditReleaseNotesInPending allowed)
1220
   '              OR (released/locked AND EditNonCriticalInfoForLockedPackage allowed)
1221
   '             )
1222
   '             AND user logged in
1223
   If (((cDlocked = "N") OR (cDlocked = "R")) OR ((cDlocked <> "Y") AND (objAccessControl.IsActive("EditReleaseNotesInPending"))) OR ((cDlocked = "Y") AND (objAccessControl.IsActive("EditNonCriticalInfoForLockedPackage")))) AND objAccessControl.UserLogedIn Then
1224
      Is_Page_Editable = TRUE
1225
   Else
1226
      Is_Page_Editable = FALSE
1227
   End If
119 ghuddy 1228
End Function
1229
'----------------------------------------------------------------------------------------------------------------------------------------
1230
Function Is_Section_Editable ( )
129 ghuddy 1231
   If scriptName = "fixed_issues.asp" AND objAccessControl.UserLogedIn Then
1232
      Is_Section_Editable = TRUE
1233
   Else
1234
      Is_Section_Editable = FALSE
1235
   End If
119 ghuddy 1236
End Function
1237
'----------------------------------------------------------------------------------------------------------------------------------------
1238
Function Is_Critical_Section_Editable ( cDlocked )
129 ghuddy 1239
   ' Editable if (   (unlocked OR rejected)
1240
   '              OR ( NOT released/locked AND EditReleaseNotesInPending allowed)
1241
   '              OR (released/locked AND EditCriticalInfoForLockedPackage allowed)
1242
   '             )
1243
   '             AND user logged in
1244
   If (((cDlocked = "N") OR (cDlocked = "R")) OR ((cDlocked <> "Y") AND (objAccessControl.IsActive("EditReleaseNotesInPending"))) OR ((cDlocked = "Y") AND (objAccessControl.IsActive("EditCriticalInfoForLockedPackage")))) AND objAccessControl.UserLogedIn Then
1245
      Is_Critical_Section_Editable = TRUE
1246
   Else
1247
      Is_Critical_Section_Editable = FALSE
1248
   End If
119 ghuddy 1249
End Function
1250
 
1251
'---------------------------------------------------------------
1252
' Function: Codestriker_Command
1253
'
1254
' Purpose:   Forms a codestriker differencing command for use when
1255
'            preparing codestriker reviews. This will be used mainly
1256
'            on release notes pages.
1257
'
1258
' Arguments: old_label   : The previous or older label
1259
'            new_label   : The current or newer label
1260
'
1261
Function Codestriker_Command (oldLabel, new_label)
1262
 
129 ghuddy 1263
   If ( IsNull(new_label) ) Then
1264
      Codestriker_Command = "Label not defined"
1265
   ElseIf (IsNull(oldLabel) OR oldLabel = "" ) Then
1266
      Codestriker_Command = "jats CCdiff -new=" & new_label
1267
   Else
1268
      Codestriker_Command = "jats CCdiff -old=" & oldLabel & " -new=" & new_label
1269
   End If
119 ghuddy 1270
End Function
1271
 
1272
'---------------------------------------------------------------
1273
' Function: getLastNonRippleVersionPVID
1274
'
1275
' Purpose: returns the last non-ripple version of the package
1276
'
1277
' Arguments: this_pv_id : string
1278
'
1279
' Notes: In the past, users used to manually perform ripple builds.
1280
'        This function does not detect those as ripples. It could be
1281
'        made to do so but it would not be reliable. For example, it
1282
'        could check to see if the word "ripple" appears in the
1283
'        comments field of the record set of the SWL query.  That
1284
'        might catch some of those records, but assumes the user
1285
'        wrote the wor ripple into the comments (reason for version).
1286
'
1287
Function getLastNonRippleVersionPVID( this_pv_id )
129 ghuddy 1288
   Dim queryResult
1289
   Dim queryString
1290
   Dim finalPVID
1291
   Dim lastPVID
119 ghuddy 1292
 
129 ghuddy 1293
   ' default return value in case we never get into the loop
1294
   finalPVID = this_pv_id
119 ghuddy 1295
 
129 ghuddy 1296
   ' Get record for this PVID
157 ghuddy 1297
   queryString = "SELECT build_type, last_pv_id FROM package_versions WHERE pv_id = " & this_pv_id
119 ghuddy 1298
 
129 ghuddy 1299
   Set queryResult = OraDatabase.DbCreateDynaset( queryString, cint(0))
119 ghuddy 1300
 
129 ghuddy 1301
    If ((NOT queryResult.BOF) AND (NOT queryResult.EOF)) Then
119 ghuddy 1302
 
129 ghuddy 1303
      ' If this version is a ripple built version, begin the process of finding its ancestral non-ripple built version
1304
      If (queryResult("build_type") = "Y") Then
119 ghuddy 1305
 
129 ghuddy 1306
         lastPVID = queryResult("last_pv_id")
119 ghuddy 1307
 
129 ghuddy 1308
         ' We know we have some ripple built versions now, so arm the finalPVID for loop control
1309
         finalPVID = ""
119 ghuddy 1310
 
129 ghuddy 1311
         ' Work back through the version history until we hit a record that is not a ripple build version
1312
         Do While ((NOT queryResult.BOF) AND (NOT queryResult.EOF) AND (NOT IsNull(lastPVID)) AND (finalPVID = ""))
119 ghuddy 1313
 
157 ghuddy 1314
            queryString = "SELECT build_type, last_pv_id FROM package_versions WHERE pv_id = " & lastPVID
119 ghuddy 1315
 
129 ghuddy 1316
            Set queryResult = OraDatabase.DbCreateDynaset( queryString, cint(0))
119 ghuddy 1317
 
129 ghuddy 1318
            ' if the package version is a ripple built one, go round the loop again, else trigger a loop exit
1319
            If ((NOT queryResult.BOF) AND (NOT queryResult.EOF) AND ( queryResult("build_type") = "Y")) Then
1320
               lastPVID  = queryResult("last_pv_id")
1321
            Else
1322
               finalPVID = lastPVID
1323
            End If
1324
         Loop
1325
      End If
1326
   End If
119 ghuddy 1327
 
129 ghuddy 1328
   queryResult.Close()
1329
   Set queryResult = nothing
119 ghuddy 1330
 
129 ghuddy 1331
   getLastNonRippleVersionPVID = finalPVID
119 ghuddy 1332
End Function
1333
 
159 ghuddy 1334
Function getLastNonRippleVersionPVIDLimitedByDate( this_pv_id, limitDate )
1335
   Dim queryResult
1336
   Dim queryString
1337
   Dim finalPVID
1338
   Dim lastPVID
1339
 
1340
   ' default return value in case we never get into the loop
1341
   finalPVID = this_pv_id
1342
 
1343
   ' Get record for this PVID
1344
   queryString = "SELECT build_type, last_pv_id FROM package_versions WHERE pv_id = " & this_pv_id
1345
 
1346
   Set queryResult = OraDatabase.DbCreateDynaset( queryString, cint(0))
1347
 
1348
   If ((NOT queryResult.BOF) AND (NOT queryResult.EOF)) Then
1349
 
1350
      ' If this version is a ripple built version, begin the process of finding its ancestral non-ripple built version
1351
      If (queryResult("build_type") = "Y") Then
1352
 
1353
         lastPVID = queryResult("last_pv_id")
1354
 
1355
         ' We know we have some ripple built versions now, so arm the finalPVID for loop control
1356
         finalPVID = ""
1357
 
1358
         ' Work back through the version history until we hit a record that is not a ripple build version
1359
         Do While ((NOT queryResult.BOF) AND (NOT queryResult.EOF) AND (NOT IsNull(lastPVID)) AND (finalPVID = ""))
1360
 
1361
            queryString = "SELECT build_type, last_pv_id FROM package_versions "&_
1362
                          " WHERE pv_id = " & lastPVID &_
1363
                          "   AND MODIFIED_STAMP >= TO_DATE('" & limitDate & "','DD/MM/YYYY')"
1364
 
1365
            Set queryResult = OraDatabase.DbCreateDynaset( queryString, cint(0))
1366
 
1367
            ' if the package version is a ripple built one, go round the loop again, else trigger a loop exit
1368
            If ((NOT queryResult.BOF) AND (NOT queryResult.EOF) AND ( queryResult("build_type") = "Y")) Then
1369
               lastPVID  = queryResult("last_pv_id")
1370
            Else
1371
               finalPVID = lastPVID
1372
            End If
1373
         Loop
1374
      End If
1375
   End If
1376
 
1377
   queryResult.Close()
1378
   Set queryResult = nothing
1379
 
1380
   getLastNonRippleVersionPVIDLimitedByDate = finalPVID
1381
End Function
1382
 
1383
 
119 ghuddy 1384
'---------------------------------------------------------------
1385
' Function: getPreviousVersionPVID
1386
'
1387
' Purpose: returns the immediate predecssor version of the given
1388
'          package version
1389
'
1390
' Arguments: this_pv_id : string
1391
'
1392
' Notes:
1393
'
1394
Function getPreviousVersionPVID( this_pv_id )
129 ghuddy 1395
   Dim queryResult
1396
   Dim queryString
119 ghuddy 1397
 
129 ghuddy 1398
   getPreviousVersionPVID = ""
119 ghuddy 1399
 
157 ghuddy 1400
   queryString = "SELECT last_pv_id FROM package_versions WHERE pv_id = " & this_pv_id
119 ghuddy 1401
 
129 ghuddy 1402
   Set queryResult = OraDatabase.DbCreateDynaset( queryString, cint(0))
119 ghuddy 1403
 
129 ghuddy 1404
    If ((NOT queryResult.BOF) AND (NOT queryResult.EOF)) Then
1405
      getPreviousVersionPVID = queryResult("last_pv_id")
1406
   End If
119 ghuddy 1407
 
129 ghuddy 1408
   queryResult.Close()
1409
   Set queryResult = nothing
119 ghuddy 1410
 
1411
End Function
1412
 
1413
'---------------------------------------------------------------
129 ghuddy 1414
' Function: getLastSignificantPVID
1415
'
1416
' Purpose: Returns the last significant (man-made) version (PV_ID) that
1417
'          is a predecessor to the specified pv_id
1418
'
1419
' Arguments: pv_id       : Uniquely identifies this package version
1420
'            last_pv_id  : Uniquely identifies the predecssor of this package version
1421
' Notes:
1422
'
1423
Function getLastSignificantPVID (pv_id, last_pv_id)
1424
 
1425
   getLastSignificantPVID = ""
1426
 
1427
   If( (NOT IsNull(last_pv_id)) AND (last_pv_id <> pv_id) ) Then
1428
 
1429
      ' Get the pv_id for the current version, and if necessary, work back through any ripple versions as necessary
1430
      ' to get a non-ripple version ancestor
1431
        pv_id = getLastNonRippleVersionPVID( pv_id )
1432
      If (pv_id <> "") Then
1433
         ' get the pv_id of the previous version to the non-ripple version ancestor we just found.
1434
         ' It does not matter if we get a ripple version here. It is good enough to serve the purpose of version diff'ing
1435
         pv_id = getPreviousVersionPVID( pv_id )
1436
         If (pv_id <> "") Then
1437
            getLastSignificantPVID = pv_id
1438
         End If
1439
      End If
1440
 
1441
   End If
1442
 
1443
End Function
1444
'---------------------------------------------------------------
1445
' Function: get_Pkg_Label
1446
'
1447
' Purpose: Returns the package label for the specified pv_id
1448
'
1449
' Arguments: pv_id       : Uniquely identifies this package version
1450
'
1451
Function get_Pkg_Label (pv_id)
1452
   Dim queryResult
1453
   Dim queryString
1454
 
1455
   get_Pkg_Label = ""
1456
 
1457
   ' Get the package label from the package versions table
1458
   queryString = "SELECT pkg_label FROM package_versions WHERE pv_id = " & pv_id
1459
   Set queryResult = OraDatabase.DbCreateDynaset( queryString, cint(0))
1460
   If ((NOT queryResult.BOF) AND (NOT queryResult.EOF)) Then
1461
      get_Pkg_Label = queryResult("pkg_label")
1462
   End If
1463
   queryResult.Close()
1464
   Set queryResult = nothing
1465
End Function
1466
'---------------------------------------------------------------
1467
' Function: get_Src_Path
1468
'
1469
' Purpose: Returns the source path for the specified pv_id
1470
'
1471
' Arguments: pv_id       : Uniquely identifies this package version
1472
'
1473
Function get_Src_Path (pv_id)
1474
   Dim queryResult
1475
   Dim queryString
1476
 
1477
   get_Src_Path = ""
1478
 
1479
   ' Get the source path from package versions table
1480
   queryString = "SELECT src_path FROM package_versions WHERE pv_id = " & pv_id
1481
   Set queryResult = OraDatabase.DbCreateDynaset( queryString, cint(0))
1482
   If ((NOT queryResult.BOF) AND (NOT queryResult.EOF)) Then
1483
      get_Src_Path = queryResult("src_path")
1484
   End If
1485
   queryResult.Close()
1486
   Set queryResult = nothing
1487
End Function
1488
 
1489
'---------------------------------------------------------------
119 ghuddy 1490
' Function: getOldLabel
1491
'
1492
' Purpose: Returns the previous label; if none then returns empty string
1493
'
1494
'          Since this operation is designed to fulfil the generation of
1495
'          diff commands, there is no point in considering ripple
1496
'          versions, since the only differences we find there are in
1497
'          the build.pl files (for example). So, this function uses
1498
'          some underlying methods that ignore ripple built versions
1499
'          therefore concentrating on versions that someone has manually
1500
'          gone and labelled, presumably because they changed some
1501
'          source file other than build.pl.
1502
'
1503
' Arguments: pv_id       : Uniquely identifies this package version
1504
'            last_pv_id  : Uniquely identifies the predecssor of this package version
1505
' Notes:
1506
'
1507
Function getOldLabel (pv_id, last_pv_id)
129 ghuddy 1508
   Dim lastSignificantPVID
119 ghuddy 1509
 
129 ghuddy 1510
   getOldLabel = ""
119 ghuddy 1511
 
129 ghuddy 1512
   lastSignificantPVID = getLastSignificantPVID(pv_id, last_pv_id)
1513
   If (lastSignificantPVID <> "") Then
1514
      getOldLabel = get_Pkg_Label(lastSignificantPVID)
1515
   End If
1516
End Function
1517
'---------------------------------------------------------------
1518
' Function: getOldSrcPath
1519
'
1520
' Purpose: Returns the previous src path; if none then returns empty string
1521
'
1522
'          Since this operation is designed to fulfil the generation of
1523
'          diff commands, there is no point in considering ripple
1524
'          versions, since the only differences we find there are in
1525
'          the build.pl files (for example). So, this function uses
1526
'          some underlying methods that ignore ripple built versions
1527
'          therefore concentrating on versions that someone has manually
1528
'          gone and labelled, presumably because they changed some
1529
'          source file other than build.pl.
1530
'
1531
'          NOTE: With SubVersion, the src_path column in the package_versions
1532
'                table will be used to hold the Subversion tag. This function
1533
'                will therefore be used mostly when a package version is
1534
'                controlled under subversion.
1535
'
1536
' Arguments: pv_id       : Uniquely identifies this package version
1537
'            last_pv_id  : Uniquely identifies the predecssor of this package version
1538
' Notes:
1539
'
1540
Function getOldSrcPath (pv_id, last_pv_id)
1541
   Dim lastSignificantPVID
119 ghuddy 1542
 
129 ghuddy 1543
   getOldSrcPath = ""
119 ghuddy 1544
 
129 ghuddy 1545
   lastSignificantPVID = getLastSignificantPVID(pv_id, last_pv_id)
1546
   If (lastSignificantPVID <> "") Then
1547
      getOldSrcPath = get_Src_Path(lastSignificantPVID)
1548
   End If
1549
End Function
1550
'----------------------------------------------------------------------------------------------------------------------
1551
Sub vcs_info_from_vcs_tag( nVcs_tag, ByRef objDetails )
1552
   Dim rsTemp, Query_String
119 ghuddy 1553
 
129 ghuddy 1554
   Query_String = " SELECT * FROM vcs_type WHERE tag = '"& nVcs_tag &"'"
1555
   Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
1556
   If (NOT rsTemp.BOF ) AND (NOT rsTemp.EOF) Then
1557
      objDetails.Item("vcs_type_id") = rsTemp("vcs_type_id")
1558
      objDetails.Item("vcs_name") = rsTemp("name")
1559
      objDetails.Item("vcs_tag") = rsTemp("tag")
1560
   Else
141 ghuddy 1561
      Call RaiseMsg(enum_MSG_ERROR, "Database does not contain a record of the VCS tag : " & nVcs_tag )
129 ghuddy 1562
   End If
1563
   rsTemp.Close()
1564
   set rsTemp = nothing
1565
End Sub
1566
'----------------------------------------------------------------------------------------------------------------------
1567
Sub vcs_info_from_vcs_type_id( nVcs_type_id, ByRef objDetails )
1568
   Dim rsTemp, Query_String
1569
 
1570
   If NOT IsNull(nVcs_type_id) Then
1571
      Query_String = " SELECT * FROM vcs_type WHERE vcs_type_id = "& nVcs_type_id
1572
      Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
1573
      If (NOT rsTemp.BOF ) AND (NOT rsTemp.EOF) Then
1574
         objDetails.Item("vcs_type_id") = rsTemp("vcs_type_id")
1575
         objDetails.Item("vcs_name") = rsTemp("name")
1576
         objDetails.Item("vcs_tag") = rsTemp("tag")
1577
      Else
141 ghuddy 1578
         Call RaiseMsg(enum_MSG_ERROR, "Database does not contain a record of the VCS type ID : " & nVcs_type_id )
129 ghuddy 1579
      End If
1580
      rsTemp.Close()
1581
      set rsTemp = nothing
1582
   Else
3616 dpurdie 1583
      ' default to returning Subversion info, assuming it exists in the data
1584
      Call vcs_info_from_vcs_tag( enum_VCS_SUBVERSION_TAG, objDetails )
129 ghuddy 1585
   End If
1586
End Sub
1587
'----------------------------------------------------------------------------------------------------------------------
137 ghuddy 1588
Sub get_vcs_info_for_package( nPkgLabel, nBuildType, nVcsTypeId, nDLocked, ByRef objDetails )
129 ghuddy 1589
   ' lots of patch versions exist with N/A as their pkg_label and null as vcs_type_id. These are all uncontrolled
1590
   ' packages published directly into dpkg_archive with no controlled source under clearcase, so we want to treat
1591
   ' them as uncontrolled if possible.
137 ghuddy 1592
   If nDLocked = "Y" AND ((nPkgLabel = "N/A") OR IsNull(nPkgLabel)) AND nBuildType = "M" AND IsNull(nVcsTypeId) Then
129 ghuddy 1593
      Call vcs_info_from_vcs_tag( enum_VCS_UNCONTROLLED_TAG, objDetails )
1594
   Else
1595
      ' Otherwise, try and decode the VCS from the package's vcs_type_id entry from the package version table
1596
      ' NOTE: A null vcs_type_id entry will default to ClearCase. That is all we have been using up til now so
1597
      ' it should be safe.
1598
      Call vcs_info_from_vcs_type_id( nVcsTypeId, objDetails )
1599
   End If
1600
End Sub
1601
'----------------------------------------------------------------------------------------------------------------------
1602
Sub get_vcs_info_for_pv_id( nPv_id, ByRef objDetails )
1603
   Dim rsTemp, Query_String
1604
 
1605
   Query_String = _
137 ghuddy 1606
   " SELECT pv.pkg_label, pv.build_type, pv.vcs_type_id, pv.dlocked "&_
129 ghuddy 1607
   "   FROM PACKAGE_VERSIONS pv"&_
1608
   "  WHERE pv.pv_id = "& nPv_id
1609
 
1610
   Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
1611
   If (NOT rsTemp.BOF ) AND (NOT rsTemp.EOF) Then
137 ghuddy 1612
      Call get_vcs_info_for_package( rsTemp("pkg_label"), rsTemp("build_type"), rsTemp("vcs_type_id"), rsTemp("dlocked"), objDetails )
129 ghuddy 1613
   Else
1614
      Call RaiseMsg(enum_MSG_ERROR, "PV_ID (" & nPv_id & ") Not Found")
1615
   End If
1616
   rsTemp.Close()
1617
   set rsTemp = nothing
1618
End Sub
1619
'----------------------------------------------------------------------------------------------------------------------
1620
Function get_vcs_tag( nPv_id )
1621
   Dim tempVcsInfoCollector
1622
   Set tempVcsInfoCollector = CreateObject("Scripting.Dictionary")
1623
 
1624
   Call get_vcs_info_for_pv_id( nPv_id, tempVcsInfoCollector )
1625
   get_vcs_tag = tempVcsInfoCollector.Item("vcs_tag")
1626
 
1627
   Set tempVcsInfoCollector = nothing
119 ghuddy 1628
End Function
129 ghuddy 1629
'----------------------------------------------------------------------------------------------------------------------
143 ghuddy 1630
Function isInDoNotRippleTable( NNrtag_id, NNpv_id )
1631
   Dim rsTemp, Query_String
119 ghuddy 1632
 
143 ghuddy 1633
   isInDoNotRippleTable = FALSE
1634
 
1635
   If NNrtag_id <> "" AND NNpv_id <> "" Then
1636
      Query_String = " SELECT dnr.pv_id FROM DO_NOT_RIPPLE dnr WHERE dnr.RTAG_ID ="& NNrtag_id &" AND dnr.PV_ID ="& NNpv_id
1637
 
1638
      Set rsTemp = OraDatabase.DbCreateDynaset(Query_String, cint(0))
1639
      If rsTemp.RecordCount <> 0  Then
1640
         isInDoNotRippleTable = TRUE
1641
      End If
1642
      rsTemp.Close()
1643
      set rsTemp = nothing
1644
   End If
1645
End Function
145 ghuddy 1646
'----------------------------------------------------------------------------------------------------------------------
1647
Function pv_id_exists( nPv_id )
1648
   Dim rsTemp, Query_String
143 ghuddy 1649
 
145 ghuddy 1650
   If NOT IsNull( nPv_id ) AND nPv_id <> "" Then
1651
      Query_String = _
1652
      " SELECT pv.pv_id "&_
1653
      "   FROM PACKAGE_VERSIONS pv"&_
1654
      "  WHERE pv.pv_id = "& nPv_id
1655
      Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
1656
      If (NOT rsTemp.BOF ) AND (NOT rsTemp.EOF) Then
1657
         pv_id_exists = TRUE
1658
      Else
1659
         pv_id_exists = FALSE
1660
      End If
1661
      rsTemp.Close()
1662
      set rsTemp = nothing
1663
   Else
1664
      pv_id_exists = FALSE
1665
   End If
1666
End Function
1667
'----------------------------------------------------------------------------------------------------------------------
1668
Function is_daemon_enabled_release( NNrtag_id, defaultReturnValue )
1669
   Dim rsTemp, Query_String
143 ghuddy 1670
 
145 ghuddy 1671
   If NOT IsNull( NNrtag_id ) AND NNrtag_id <> "" Then
143 ghuddy 1672
 
145 ghuddy 1673
      Query_String = _
4293 dpurdie 1674
      " SELECT rc.bmcon_id "&_
145 ghuddy 1675
      "   FROM RELEASE_CONFIG rc"&_
1676
      "  WHERE rc.rtag_id = "& NNrtag_id
1677
      Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
1678
 
1679
      is_daemon_enabled_release = FALSE
1680
      While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF) AND (is_daemon_enabled_release = FALSE))
4293 dpurdie 1681
         If (NOT IsNull(rsTemp("bmcon_id"))) AND (rsTemp("bmcon_id") <> "") Then
145 ghuddy 1682
            is_daemon_enabled_release = TRUE
1683
         End If
1684
         rsTemp.MoveNext
1685
      WEnd
1686
 
1687
      rsTemp.Close()
1688
      set rsTemp = nothing
1689
   Else
1690
      is_daemon_enabled_release = defaultReturnValue
1691
   End If
1692
End Function
147 ghuddy 1693
'--------------------------------------------------------------------------------------------------------------------------
1694
' Convert release state into a meaningful string
1695
Function Get_Official( nOfficial )
1696
   If nOfficial = "N" Then
1697
      Get_Official = "Open"
1698
   ElseIf nOfficial = "A" Then
1699
      Get_Official = "Archive"
1700
   ElseIf nOfficial = "C" Then
1701
      Get_Official = "CCB"
1702
   ElseIf nOfficial = "R" Then
1703
      Get_Official = "Restricted"
1704
   ElseIf nOfficial = "Y" Then
1705
      Get_Official = "Closed"
1706
   Else
1707
      Get_Official = "?"
1708
   End If
1709
End Function
151 ghuddy 1710
'-----------------------------------------------------------------------------------------------------------------------------
1711
Function Get_Pkg_Id_For_Pv_Id ( NNpv_id )
1712
   Dim rsTemp, Query_String
145 ghuddy 1713
 
151 ghuddy 1714
   Get_Pkg_Id_For_Pv_Id = ""
145 ghuddy 1715
 
151 ghuddy 1716
   If NOT IsNull(NNpv_id) AND NNpv_id <> "" Then
1717
      Query_String = _
1718
      "SELECT pkg_id FROM package_versions WHERE pv_id = "& NNpv_id
1719
 
1720
      Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
1721
 
1722
      If ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) Then
1723
         Get_Pkg_Id_For_Pv_Id = rsTemp("pkg_id")
1724
      End If
1725
      rsTemp.Close
1726
      Set rsTemp = nothing
1727
   End If
1728
 
1729
End Function
1730
 
171 brianf 1731
'-----------------------------------------------------------------------------------------------------------------------------
161 iaugusti 1732
Function iif(bFlag, sTrueStr, sFalseStr)
1733
  if bFlag then
1734
    iif = sTrueStr
1735
  else 
1736
    iif = sFalseStr
1737
  end if
1738
End Function
151 ghuddy 1739
 
171 brianf 1740
'--------------------------------------------------------------------------------------------------------------------------
1741
' Sets the state of all build daemons of the specified release
1742
Sub SetDaemonStates (artag_id,astate)
1743
	On Error Resume Next
1744
	OraDatabase.Parameters.Add "RTAG_ID", 			artag_id, 	ORAPARM_INPUT, ORATYPE_NUMBER 
1745
	OraDatabase.Parameters.Add "NSTATE", 			astate, 	ORAPARM_INPUT, ORATYPE_NUMBER 
1746
 
1747
	objEH.TryORA ( OraSession )
1748
 
1749
	OraDatabase.ExecuteSQL _
1750
        "BEGIN PK_BUILDAPI.SET_DAEMON_STATES(:RTAG_ID,:NSTATE);   END;"
1751
 
1752
	objEH.CatchORA ( OraSession )
1753
 
1754
	OraDatabase.Parameters.Remove "RTAG_Id"
1755
	OraDatabase.Parameters.Remove "NSTATE"	
1756
End Sub
1757
 
183 brianf 1758
'----------------------------------------------
1759
'Returns true if the specified package version exists in the specified table
1760
Function PackageExists(RtagId, pvId, stable)
1761
  Dim rsTemp
1762
  Dim sqry
185 brianf 1763
  If RtagId = "" Then
1764
    PackageExists = False
1765
  Else
1766
    sqry = "SELECT * FROM " & stable & " WHERE rtag_id = " & RtagId & " AND pv_id = " & pvId
1767
    Set rsTemp = OraDatabase.DbCreateDynaset(sqry,CInt(0))
1768
    PackageExists = rsTemp.RecordCount > 0  
1769
    rsTemp.Close()
1770
    Set rsTemp = Nothing
1771
  End If
183 brianf 1772
End Function
1773
 
119 ghuddy 1774
%>