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
3959 dpurdie 625
'Response.write "<pre>Send_Email:" & SSfromName & " : "& SSfrom &" : "& SSto &" : "& SSsubject &" : "& SSbody
119 ghuddy 626
 
129 ghuddy 627
   canSend = FALSE
628
   Set Mail = Server.CreateObject("Persits.MailSender")
3959 dpurdie 629
   Mail.Host = MAIL_SERVER
129 ghuddy 630
   Mail.From = SSfrom
631
   Mail.FromName = SSfromName
119 ghuddy 632
 
129 ghuddy 633
   ' Send TO:
634
   If IsObject( SSto ) Then
635
      Keys = SSto.Keys
636
      For Each Key In Keys
637
         Mail.AddAddress Key, SSto.Item( Key )
638
      Next
119 ghuddy 639
 
129 ghuddy 640
      If SSto.Count > 0 Then canSend = TRUE
641
   Else
119 ghuddy 642
 
129 ghuddy 643
      Mail.AddAddress SSto
644
      If SSto <> "" Then canSend = TRUE
645
   End If
119 ghuddy 646
 
129 ghuddy 647
   Mail.Subject = SSsubject
648
   Mail.IsHTML = True
649
   Mail.Body = SSbody
119 ghuddy 650
 
129 ghuddy 651
   ' Add Attachments     DDDDDDD  Sash, It appears as if AddEmbededImage is premium functionality that costs money, can we just do a normal add attachment?
3959 dpurdie 652
   If IsObject( oAttachments ) Then
653
      Keys = oAttachments.Keys
654
      For Each Key In Keys
129 ghuddy 655
   '      Mail.AddEmbeddedImage rootPath & Key, oAttachments.Item( Key )
3959 dpurdie 656
          Mail.AddAttachment oAttachments.Item( Key )
657
      Next
658
    Else
659
          Mail.AddAttachment oAttachments
660
   End If
119 ghuddy 661
 
129 ghuddy 662
   On Error Resume Next
663
   If canSend Then   Mail.Send   ' send message
119 ghuddy 664
 
665
End Sub
666
'-----------------------------------------------------------------------------------------------------------------------------
667
Sub Iterate_UP_the_tree ( NNrtag_id, HHstart_with, HHresult )
129 ghuddy 668
   Dim rsTemp, Query_String
669
   Dim seekPKGs, seekNOTpkgs
119 ghuddy 670
 
129 ghuddy 671
   seekPKGs = Join(HHstart_with.Keys, ",")
672
   If seekPKGs = "" Then seekPKGs = "-1"
673
   seekNOTpkgs = "-1"
119 ghuddy 674
 
129 ghuddy 675
   Do While seekPKGs <> "-1"
676
      Query_String = _
677
      " SELECT DISTINCT dep.pkg_id"&_
678
      "    FROM package_dependencies dep, release_content rel"&_
679
      "   WHERE rel.pv_id = dep.pv_id"&_
680
      "     AND rel.rtag_id = "& NNrtag_id &_
681
      "     AND dpkg_id IN ( "& seekPKGs &" ) "&_
682
      "     AND pkg_id NOT IN ( "& seekNOTpkgs &" )"
683
      '"     AND dep.dpv_id NOT IN ( SELECT iw.iw_id FROM ignore_warnings iw WHERE iw.rtag_id = "& NNrtag_id &" )"
684
      Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
119 ghuddy 685
 
129 ghuddy 686
      If rsTemp.RecordCount < 1 Then Exit Do
119 ghuddy 687
 
129 ghuddy 688
      seekPKGs = "-1"
689
      While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))
690
         If NOT HHresult.Exists(Cstr(rsTemp.Fields("pkg_id"))) Then HHresult.Add Cstr(rsTemp.Fields("pkg_id")), ""
691
         seekPKGs = seekPKGs &","& rsTemp.Fields("pkg_id")
692
         rsTemp.MoveNext
693
      WEnd
119 ghuddy 694
 
129 ghuddy 695
      seekNOTpkgs = seekNOTpkgs &","& seekPKGs
696
   Loop
119 ghuddy 697
 
698
End Sub
699
'-----------------------------------------------------------------------------------------------------------------------------
129 ghuddy 700
Sub Iterate_DOWN_the_tree (   NNrtag_id, HHstart_with, HHresult )
701
   Dim rsTemp, Query_String
702
   Dim seekPKGs, seekNOTpkgs
119 ghuddy 703
 
129 ghuddy 704
   seekPKGs = Join(HHstart_with.Keys, ",")
705
   If seekPKGs = "" Then seekPKGs = "-1"
706
   seekNOTpkgs = "-1"
119 ghuddy 707
 
129 ghuddy 708
   Do While seekPKGs <> "-1"
709
      Query_String = _
710
      " SELECT DISTINCT dep.dpkg_id"&_
711
      "    FROM package_dependencies dep, release_content rel"&_
712
      "   WHERE rel.pv_id = dep.pv_id"&_
713
      "     AND rel.rtag_id = "& NNrtag_id &_
714
      "     AND pkg_id IN ( "& seekPKGs &" ) "&_
715
      "     AND dpkg_id NOT IN ( "& seekNOTpkgs &" )"
716
      Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
119 ghuddy 717
 
129 ghuddy 718
      If rsTemp.RecordCount < 1 Then Exit Do
119 ghuddy 719
 
129 ghuddy 720
      seekPKGs = "-1"
721
      While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))
722
         If NOT HHresult.Exists(Cstr(rsTemp.Fields("dpkg_id"))) Then HHresult.Add Cstr(rsTemp.Fields("dpkg_id")), ""
723
         seekPKGs = seekPKGs &","& rsTemp.Fields("dpkg_id")
724
         rsTemp.MoveNext
725
      WEnd
119 ghuddy 726
 
129 ghuddy 727
      seekNOTpkgs = seekNOTpkgs &","& seekPKGs
728
   Loop
119 ghuddy 729
 
730
End Sub
731
'-----------------------------------------------------------------------------------------------------------------------------
732
Class TempSession
129 ghuddy 733
   Function Value ()
734
      Value = Session("RELEASEMANAGER_temp")
735
   End Function
119 ghuddy 736
 
129 ghuddy 737
   Sub Add ( SSstr )
738
      Session("RELEASEMANAGER_temp") = Session("RELEASEMANAGER_temp") & SSstr
739
   End Sub
119 ghuddy 740
 
129 ghuddy 741
   Sub Clean ()
742
      Session("RELEASEMANAGER_temp") = NULL
743
   End Sub
119 ghuddy 744
End Class
745
'-----------------------------------------------------------------------------------------------------------------------------
746
Sub DisplayInfo ( SSmsg, SSwidth )
129 ghuddy 747
   Dim msg
748
   If SSmsg = "" Then Exit Sub
119 ghuddy 749
 
129 ghuddy 750
   Select Case UCase( SSmsg )
751
   Case "ISSUES_IMPORTED"
752
      msg = "Import is complete. <br>Click on Close button if you are finished."
753
   Case "MAKE_OFFICIAL_WARNING"
754
      msg = "Note that making a package official will prevent any further change to it."
755
   Case "APPLY_LABEL_TO_ALL_WARNING"
756
      msg = "This will overwrite any existing labels on selected packages."
757
   Case "BLANK_LABEL_WARNING"
758
      msg = "Some dependencies in the export list above, do not have a label!"
759
   Case "PERSONAL_VIEW_NOT_SETUP"
760
      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>"
761
   Case "EMPTY_RELEASE_CONTENTS"
762
      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>"
763
   Case "PKG_NAME_REQUIRED"
764
      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>"
765
   Case "ADD_PATCH_WARNING"
766
      msg = "Note that patches cannot be used in your build dependencies."
767
   Case "NEW_PATCH_AVAILABLE"
768
      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 769
 
129 ghuddy 770
   Case "GENERATE_RELEASE_NOTES"
167 brianf 771
      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 772
   Case "NOT_FOUND_IN_PKG_ARCHIVE_RELEASE_NOTES"
3959 dpurdie 773
      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 774
   Case "FAILED_GENERATING_RELEASE_NOTES"
775
      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>"
776
   Case "GENERATING_RELEASE_NOTES"
777
      msg = "<b>Generating release notes...</b><br>It may take a minute. Please try refreshing this page a bit later."
778
   Case "NO_PREVIOUS_VERSION_RELEASE_NOTES"
779
       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 780
 
129 ghuddy 781
   Case "PACKAGE_FOUND_IN_OTHER_LOCATIONS"
782
      msg = "This package is also found in other locations."
783
   Case "DOC_NUMBER_NOTFOUND"
784
      msg = "<span class='err_alert'>Document number "& Request("doc_num") &" does not correspond to any document!</span>"
785
   Case "DOC_NUMBER_FOUND"
786
      msg = "Document found. Click &quot;Import&quot; to link the document."
787
   Case "UNIT_TEST_NOT_DONE"
788
      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."
789
   Case "PACKAGE_NOT_PART_OF_RELEASE"
790
      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 791
 
129 ghuddy 792
   Case "NOT_FOUND_IN_PKG_ARCHIVE_FILE_GENERATE"
3959 dpurdie 793
      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 794
   Case "GENERATE_FILES_AND_FOLDERS"
795
      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."
796
   Case "NO_PRODUCT_FILES_CAPTURED"
797
      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 798
 
129 ghuddy 799
   Case "MASS REF REFERENCE"
800
      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 801
 
129 ghuddy 802
   Case "REPEAT_SCHEDULE_NOT_SELECTED"
803
      msg = "<span class='err_alert'><b>YOU MUST SELECT A VALUE FOR REPEAT SCHEDULED DOWNTIME</b></span>"
119 ghuddy 804
 
129 ghuddy 805
   Case "PKG_NAME_INVALID"
806
      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 807
 
129 ghuddy 808
   Case "PKG_NAME_EXISTS"
809
      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 810
 
129 ghuddy 811
   End Select
119 ghuddy 812
%>
813
<table width="<%=SSwidth%>" border="0" cellspacing="0" cellpadding="1">
814
  <tr>
815
    <td background="images/bg_bage_dark.gif">
129 ghuddy 816
     <table width="100%" border="0" cellspacing="0" cellpadding="3">
119 ghuddy 817
        <tr>
818
          <td width="1%" valign="top" background="images/bg_help.gif"><img src="images/i_qhelp.gif" width="16" height="16"></td>
819
          <td width="100%" background="images/bg_help.gif" class="form_txt"><%=msg%></td>
820
        </tr>
821
      </table></td>
822
  </tr>
823
</table>
824
<br>
825
<%
826
 
827
End Sub
828
'-----------------------------------------------------------------------------------------------------------------------------
829
Sub Messenger ( sMessage, nMessageType, sWidth )
129 ghuddy 830
   Dim msgTemplate, Img
119 ghuddy 831
 
129 ghuddy 832
   If (sMessage = "") OR IsNull(sMessage) Then Exit Sub
119 ghuddy 833
 
129 ghuddy 834
   Select Case CStr(nMessageType)
835
      Case "1"
836
         Img = "s_critical.gif"
837
      Case "2"
838
         Img = "s_warning.gif"
839
      Case "3"
840
         Img = "s_note.gif"
841
      Case Else
842
         Img = nMessageType
843
   End Select
119 ghuddy 844
 
845
 
129 ghuddy 846
   msgTemplate = ReadFile( APP_ROOT &"\scripts\message_style.html" )
847
   msgTemplate = Replace( msgTemplate, "%WIDTH%", sWidth )
848
   msgTemplate = Replace( msgTemplate, "%IMAGE%", Img )
849
   msgTemplate = Replace( msgTemplate, "%MESSAGE%", sMessage )
119 ghuddy 850
 
129 ghuddy 851
   Response.write msgTemplate
119 ghuddy 852
End Sub
853
'-----------------------------------------------------------------------------------------------------------------------------
129 ghuddy 854
Function Default_Label ( SSpv_id, SSbuild_type, SSpkg_name, SSpkg_version, SSv_ext )
3959 dpurdie 855
    If SSbuild_type = "A" Then
856
        Default_Label = UCase(SSpkg_name & "." & SSpv_id & SSv_ext & ".WIP")
857
    Else
858
        Default_Label = SSpkg_name &"_"& SSpkg_version
859
    End If
119 ghuddy 860
End Function
861
'-----------------------------------------------------------------------------------------------------------------------------
862
Function Format_Version ( SSpkg_version, SSv_ext )
129 ghuddy 863
   Dim tempArr, tempVersion, patchArr, seg, myVersion
864
   myVersion = SSpkg_version
119 ghuddy 865
 
129 ghuddy 866
   If NOT IsNull(SSv_ext) Then
867
      myVersion = Left ( myVersion, Len(myVersion) - Len(SSv_ext) )
868
   End If
119 ghuddy 869
 
129 ghuddy 870
   tempArr = Split (myVersion, ".")
871
   For Each seg In tempArr
872
      If Len(seg) < 2 Then
873
         ' single digit number
874
         tempVersion = tempVersion &"0"& seg
119 ghuddy 875
 
129 ghuddy 876
      Else
877
         seg = Replace(seg, "_", "-")   ' make sure that there is no _ in segment
878
         If InStr( seg, "-" ) > 0 Then
879
            ' patch version supplied
880
            patchArr = Split(seg, "-")
881
            If Len(patchArr(0)) < 2 Then
882
               ' single digit number
883
               tempVersion = tempVersion &"0"& patchArr(0) &"_0"& patchArr(1)
884
            Else
885
               ' double digit number
886
               tempVersion = tempVersion & patchArr(0) &"_0"& patchArr(1)
887
            End If
119 ghuddy 888
 
129 ghuddy 889
         Else
890
            ' double digit no patch
891
            tempVersion = tempVersion & seg
892
         End If
119 ghuddy 893
 
129 ghuddy 894
      End If
119 ghuddy 895
 
129 ghuddy 896
   Next
119 ghuddy 897
 
129 ghuddy 898
   Format_Version = tempVersion
119 ghuddy 899
End Function
900
'-----------------------------------------------------------------------------------------------------------------------------
901
Function DefineStateIcon ( NNpkg_state, CCdlocked, sIgnoreWarnings, cIsPatchIgnore, cBuildType, bForEnvironment )
902
 
129 ghuddy 903
   If NOT IsNull(sIgnoreWarnings) Then
904
      '-- Ignore Warning is on
905
      If IsNull(cIsPatchIgnore) Then
906
         DefineStateIcon = enum_imgIgnoring
907
      Else
908
         DefineStateIcon = enum_imgPatchIgnoring
909
      End If
119 ghuddy 910
 
129 ghuddy 911
   Else
912
      Select Case CInt( NNpkg_state )
913
         Case enumPKG_STATE_OK
183 brianf 914
            If (CCdlocked = "N") OR (CCdlocked = "R") Then
129 ghuddy 915
               DefineStateIcon = enum_imgBuilding
183 brianf 916
            ElseIf (CCdlocked = "P") Then
917
               DefineStateIcon = enum_imgPending
129 ghuddy 918
            Else
919
               DefineStateIcon = enum_imgBlank
920
            End If
119 ghuddy 921
 
129 ghuddy 922
         Case enumPKG_STATE_MAJOR
923
            DefineStateIcon = enum_imgCritical
119 ghuddy 924
 
129 ghuddy 925
         Case enumPKG_STATE_MINOR
926
            DefineStateIcon = enum_imgWarning
119 ghuddy 927
 
129 ghuddy 928
         Case enumPKG_STATE_MAJOR_READY
929
            DefineStateIcon = enum_imgCReady
119 ghuddy 930
 
129 ghuddy 931
         Case enumPKG_STATE_MINOR_READY
932
            DefineStateIcon = enum_imgWReady
119 ghuddy 933
 
129 ghuddy 934
         Case enumPKG_NOT_FOUND
935
            DefineStateIcon = enum_imgNotFound
119 ghuddy 936
 
129 ghuddy 937
         Case enumPKG_STATE_NEW_PATCH
938
            DefineStateIcon = enum_imgPatchAvailable
119 ghuddy 939
 
129 ghuddy 940
         Case enumPKG_STATE_DEPRECATED
941
            DefineStateIcon = enum_imgDeprecated
119 ghuddy 942
 
129 ghuddy 943
         Case enumPKG_STATE_DEPRECATED_DEPENDENT
944
            DefineStateIcon = enum_imgDeprecatedDependent
119 ghuddy 945
 
129 ghuddy 946
         Case enumPKG_ADVISORY_RIPPLE
947
            DefineStateIcon = enum_imgAR
119 ghuddy 948
 
129 ghuddy 949
         Case enumPKG_ADVISORY_RIPPLE_DEPENDENT
950
            DefineStateIcon = enum_imgARD
119 ghuddy 951
 
131 ghuddy 952
         Case enumPKG_PEGGED_VERSION
953
            DefineStateIcon = enum_imgGreenPin
129 ghuddy 954
      End Select
119 ghuddy 955
 
129 ghuddy 956
      If (NOT bForEnvironment) AND _
957
         (cBuildType = "A") AND _
958
         (CCdlocked <> "Y") AND _
959
         (DefineStateIcon <> enum_imgBlank) AND _
960
         (DefineStateIcon <> enum_imgBuilding)  AND  _
961
         (DefineStateIcon <> enum_imgNotFound) OR _
962
         ( Request("rtag_id") = ""  AND  Request("FRrtag_id") = "")  _
963
         Then
119 ghuddy 964
 
129 ghuddy 965
         DefineStateIcon = ""
119 ghuddy 966
 
129 ghuddy 967
       End If
119 ghuddy 968
 
969
 
129 ghuddy 970
   End If
119 ghuddy 971
 
972
 
973
End Function
974
'-----------------------------------------------------------------------------------------------------------------------------
975
Function DefineStateSmallIcon ( NNpkg_state, CCdlocked )
129 ghuddy 976
   Select Case CInt( NNpkg_state )
977
   Case enumPKG_STATE_OK
978
      If CCdlocked = "N" Then
979
         DefineStateSmallIcon = enum_SMALL_imgBuilding
980
      Else
981
         DefineStateSmallIcon = enum_SMALL_imgOK
982
      End If
119 ghuddy 983
 
129 ghuddy 984
   Case enumPKG_STATE_MAJOR
985
      DefineStateSmallIcon = enum_SMALL_imgCritical
119 ghuddy 986
 
129 ghuddy 987
   Case enumPKG_STATE_MINOR
988
      DefineStateSmallIcon = enum_SMALL_imgWarning
119 ghuddy 989
 
129 ghuddy 990
   Case enumPKG_STATE_MAJOR_READY
991
      DefineStateSmallIcon = enum_SMALL_imgCReady
119 ghuddy 992
 
129 ghuddy 993
   Case enumPKG_STATE_MINOR_READY
994
      DefineStateSmallIcon = enum_SMALL_imgWReady
119 ghuddy 995
 
129 ghuddy 996
   End Select
119 ghuddy 997
End Function
998
'-----------------------------------------------------------------------------------------------------------------------------
999
Function PatchIcon ( cIsPatch, cIsPatchObsolete )
129 ghuddy 1000
   If IsNull(cIsPatch) Then
1001
      PatchIcon = "<img src='images/rex_images/ext_blank.gif' width='16' height='16' border='0' align='absmiddle'>"
1002
   Else
1003
      If IsNull(cIsPatchObsolete) Then
1004
         PatchIcon = "<img src='images/i_patch_small.gif' width='16' height='16' border='0' align='absmiddle' >"
1005
      Else
1006
         PatchIcon = "<img src='images/i_patch_small_obsolete.gif' width='16' height='16' border='0' align='absmiddle' title='Patch is obsolete'>"
1007
      End If
1008
   End If
119 ghuddy 1009
End Function
1010
'-----------------------------------------------------------------------------------------------------------------------------
1011
' Function that returns true of false if the item exists in the array
1012
'-----------------------------------------------------------------------------------------------------------------------------
1013
Function inArray(item, aItems)
129 ghuddy 1014
   Dim element
1015
   inArray = false
1016
   for each element in aItems
1017
      If element = item Then
1018
         inArray=true
1019
      End If
1020
   next
119 ghuddy 1021
End Function
1022
'-----------------------------------------------------------------------------------------------------------------------------
1023
Function ProgressBar ()
129 ghuddy 1024
   ProgressBar = "<DIV name='divProgressBar' id='divProgressBar' style='visibility:hidden;'><img src='icons/i_processing.gif' width='79' height='14'></DIV>"
119 ghuddy 1025
End Function
1026
'-----------------------------------------------------------------------------------------------------------------------------
1027
Function GetCurrentParameters( nProjId, nRtagId, nPvId )
129 ghuddy 1028
   Dim rsQry,query
119 ghuddy 1029
 
129 ghuddy 1030
   ' Set defaults
1031
   nProjId    = -1
1032
   nRtagId    = -1
1033
   nPvId       = -1
119 ghuddy 1034
 
1035
 
129 ghuddy 1036
   ' Get parameters from database
1037
   OraDatabase.Parameters.Add "ProjId",       Request("proj_id"),   ORAPARM_INPUT, ORATYPE_VARCHAR2
1038
   OraDatabase.Parameters.Add "Rtag_id",       Request("rtag_id"),   ORAPARM_INPUT, ORATYPE_VARCHAR2
1039
   OraDatabase.Parameters.Add "results",       NULL, ORAPARM_OUTPUT, ORATYPE_CURSOR
119 ghuddy 1040
 
129 ghuddy 1041
   OraDatabase.ExecuteSQL " BEGIN  PK_APP_UTILS.GET_CURRENT_PARAMETERS ( :ProjId, :Rtag_id, :results ); END;"
119 ghuddy 1042
 
129 ghuddy 1043
   Set rsQry = OraDatabase.Parameters("results").Value
119 ghuddy 1044
 
129 ghuddy 1045
   OraDatabase.Parameters.Remove "ProjId"
1046
   OraDatabase.Parameters.Remove "Rtag_id"
1047
   OraDatabase.Parameters.Remove "results"
119 ghuddy 1048
 
1049
 
129 ghuddy 1050
   If rsQry.RecordCount > 0 Then
119 ghuddy 1051
 
129 ghuddy 1052
      nProjId    = CDbl(rsQry("PROJ_ID"))
1053
      nRtagId    = CDbl(rsQry("RTAG_ID"))
119 ghuddy 1054
 
129 ghuddy 1055
   End If
119 ghuddy 1056
 
129 ghuddy 1057
   rsQry.Close()
1058
   Set rsQry = nothing
119 ghuddy 1059
 
1060
 
129 ghuddy 1061
   ' Set pv_id parameter
1062
   If Request("pv_id") <> "" Then nPvId = CDbl(Request("pv_id"))
119 ghuddy 1063
 
1064
 
1065
End Function
1066
'-----------------------------------------------------------------------------------------------------------------------------
1067
Function GetEnvName ( nEnvTab )
129 ghuddy 1068
   Select Case CInt( nEnvTab )
1069
      Case enumENVTAB_WORK_IN_PROGRESS
1070
         GetEnvName = "Work In Progress"
119 ghuddy 1071
 
129 ghuddy 1072
      Case enumENVTAB_PLANNED
1073
         GetEnvName = "Pending"
119 ghuddy 1074
 
129 ghuddy 1075
      Case enumENVTAB_RELEASED
1076
         GetEnvName = "Released"
119 ghuddy 1077
 
129 ghuddy 1078
   End Select
119 ghuddy 1079
 
1080
End Function
1081
'-----------------------------------------------------------------------------------------------------------------------------
1082
Function Title (rtagId)
1083
 
129 ghuddy 1084
   If rtagId = "" Then
1085
      Title = "Release Manager"
1086
   Else
1087
      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 )
1088
      Title = rsQry("proj_name")&">"&rsQry("rtag_name")
1089
      rsQry.Close()
1090
      Set rsQry = Nothing
1091
   End If
119 ghuddy 1092
 
1093
End Function
1094
'-------------------------------------------------------------------------------------
1095
Function Check_Package_WIP_Already_Exists(NNrtag_id, NNpv_id)
129 ghuddy 1096
   Dim Query_String, rsQry
119 ghuddy 1097
 
129 ghuddy 1098
   Query_String = _
1099
   "   SELECT * "&_
1100
   "   FROM planned pl, package_versions pv "&_
1101
   "   WHERE pl.rtag_id = "& NNrtag_id &_
1102
   "   AND pv.pv_id = pl.pv_id "&_
1103
   "   AND pv.dlocked = 'A' "&_
1104
   "   AND pv.pkg_id = (SELECT pkg_id "&_
1105
       "                  FROM package_versions "&_
1106
       "                 WHERE pv_id = "& NNpv_id &") "&_
1107
   "   AND pv.v_ext = (SELECT v_ext "&_
1108
   "                  FROM package_versions "&_
1109
       "                 WHERE pv_id = "& NNpv_id &")"
119 ghuddy 1110
 
1111
 
129 ghuddy 1112
   Set rsQry = OraDatabase.DbCreateDynaset( Query_String , cint(0) )
119 ghuddy 1113
 
129 ghuddy 1114
   Check_Package_WIP_Already_Exists = rsQry.RecordCount
119 ghuddy 1115
 
129 ghuddy 1116
   rsQry.Close()
1117
   Set rsQry = Nothing
119 ghuddy 1118
End Function
1119
'-----------------------------------------------------------------------------------------------------------------------------
1120
Function ValidateCodeReviewURL ( sCodeReviewURL )
1121
  Dim isValid
1122
  Dim sTempBaseURL
1123
  Dim httpRegEx
129 ghuddy 1124
   Set httpRegEx = new RegExp
119 ghuddy 1125
 
129 ghuddy 1126
   httpRegEx.Pattern = "^https?:\/\/"
119 ghuddy 1127
 
129 ghuddy 1128
   ' Removes ending slash from project's base URL for ease of comparison.
1129
   sTempBaseURL = Left(baseURL, Len(baseURL)-1)
1130
   ' Removes the project's base URL from the URL specified (if it's present).
1131
   codeReviewURL = Replace(sCodeReviewURL, sTempBaseURL, "")
1132
   ' Removes the slash from the beginning of the resulting URL (if it's present).
1133
   If InStr(codeReviewURL, "/") = 1 Then
1134
     codeReviewURL = Replace(codeReviewURL, "/", "", 1, 1)
1135
   End If
119 ghuddy 1136
 
129 ghuddy 1137
   ' If the URL doesn't contain the http:// prefix, assume that it's correct.
1138
   If NOT httpRegEx.Test(codeReviewURL) AND Len(codeReviewURL) > 0 Then
1139
     isValid = True
1140
   Else
1141
     ' If the URL still contains the http:// prefix and is longer than the base
1142
     ' URL, assume that it is an invalid URL because of a differing base URL.
1143
     If Len(sCodeReviewURL) > Len(baseURL) Then
1144
       Response.Write("<script type='text/javascript'>alert('Incorrect Base URL\n\nMust start with project\'s base url (" & baseURL &") if full URL specified.')</script>")
1145
     Else
1146
     ' If the URL still contains the http:// prefix and is shorter than the base
1147
     ' URL, assume that it is incomplete.
1148
       Response.Write("<script type='text/javascript'>alert('Incomplete Code Review URL')</script>")
1149
     End If
1150
     ' Otherwise, the URL matches the base URL exactly, which is also invalid.
1151
     codeReviewURL = sCodeReviewURL
1152
     isValid = False
1153
   End If
1154
   ValidateCodeReviewURL = isValid
119 ghuddy 1155
End Function
1156
'----------------------------------------------------------------------------------------------------------------------------------------
1157
Function Is_Page_Editable ( cDlocked )
129 ghuddy 1158
   ' Editable if (   (unlocked OR rejected)
1159
   '              OR ( NOT released/locked AND EditReleaseNotesInPending allowed)
1160
   '              OR (released/locked AND EditNonCriticalInfoForLockedPackage allowed)
1161
   '             )
1162
   '             AND user logged in
1163
   If (((cDlocked = "N") OR (cDlocked = "R")) OR ((cDlocked <> "Y") AND (objAccessControl.IsActive("EditReleaseNotesInPending"))) OR ((cDlocked = "Y") AND (objAccessControl.IsActive("EditNonCriticalInfoForLockedPackage")))) AND objAccessControl.UserLogedIn Then
1164
      Is_Page_Editable = TRUE
1165
   Else
1166
      Is_Page_Editable = FALSE
1167
   End If
119 ghuddy 1168
End Function
1169
'----------------------------------------------------------------------------------------------------------------------------------------
1170
Function Is_Section_Editable ( )
129 ghuddy 1171
   If scriptName = "fixed_issues.asp" AND objAccessControl.UserLogedIn Then
1172
      Is_Section_Editable = TRUE
1173
   Else
1174
      Is_Section_Editable = FALSE
1175
   End If
119 ghuddy 1176
End Function
1177
'----------------------------------------------------------------------------------------------------------------------------------------
1178
Function Is_Critical_Section_Editable ( cDlocked )
129 ghuddy 1179
   ' Editable if (   (unlocked OR rejected)
1180
   '              OR ( NOT released/locked AND EditReleaseNotesInPending allowed)
1181
   '              OR (released/locked AND EditCriticalInfoForLockedPackage allowed)
1182
   '             )
1183
   '             AND user logged in
1184
   If (((cDlocked = "N") OR (cDlocked = "R")) OR ((cDlocked <> "Y") AND (objAccessControl.IsActive("EditReleaseNotesInPending"))) OR ((cDlocked = "Y") AND (objAccessControl.IsActive("EditCriticalInfoForLockedPackage")))) AND objAccessControl.UserLogedIn Then
1185
      Is_Critical_Section_Editable = TRUE
1186
   Else
1187
      Is_Critical_Section_Editable = FALSE
1188
   End If
119 ghuddy 1189
End Function
1190
 
1191
'---------------------------------------------------------------
1192
' Function: Codestriker_Command
1193
'
1194
' Purpose:   Forms a codestriker differencing command for use when
1195
'            preparing codestriker reviews. This will be used mainly
1196
'            on release notes pages.
1197
'
1198
' Arguments: old_label   : The previous or older label
1199
'            new_label   : The current or newer label
1200
'
1201
Function Codestriker_Command (oldLabel, new_label)
1202
 
129 ghuddy 1203
   If ( IsNull(new_label) ) Then
1204
      Codestriker_Command = "Label not defined"
1205
   ElseIf (IsNull(oldLabel) OR oldLabel = "" ) Then
1206
      Codestriker_Command = "jats CCdiff -new=" & new_label
1207
   Else
1208
      Codestriker_Command = "jats CCdiff -old=" & oldLabel & " -new=" & new_label
1209
   End If
119 ghuddy 1210
End Function
1211
 
1212
'---------------------------------------------------------------
1213
' Function: getLastNonRippleVersionPVID
1214
'
1215
' Purpose: returns the last non-ripple version of the package
1216
'
1217
' Arguments: this_pv_id : string
1218
'
1219
' Notes: In the past, users used to manually perform ripple builds.
1220
'        This function does not detect those as ripples. It could be
1221
'        made to do so but it would not be reliable. For example, it
1222
'        could check to see if the word "ripple" appears in the
1223
'        comments field of the record set of the SWL query.  That
1224
'        might catch some of those records, but assumes the user
1225
'        wrote the wor ripple into the comments (reason for version).
1226
'
1227
Function getLastNonRippleVersionPVID( this_pv_id )
129 ghuddy 1228
   Dim queryResult
1229
   Dim queryString
1230
   Dim finalPVID
1231
   Dim lastPVID
119 ghuddy 1232
 
129 ghuddy 1233
   ' default return value in case we never get into the loop
1234
   finalPVID = this_pv_id
119 ghuddy 1235
 
129 ghuddy 1236
   ' Get record for this PVID
157 ghuddy 1237
   queryString = "SELECT build_type, last_pv_id FROM package_versions WHERE pv_id = " & this_pv_id
119 ghuddy 1238
 
129 ghuddy 1239
   Set queryResult = OraDatabase.DbCreateDynaset( queryString, cint(0))
119 ghuddy 1240
 
129 ghuddy 1241
    If ((NOT queryResult.BOF) AND (NOT queryResult.EOF)) Then
119 ghuddy 1242
 
129 ghuddy 1243
      ' If this version is a ripple built version, begin the process of finding its ancestral non-ripple built version
1244
      If (queryResult("build_type") = "Y") Then
119 ghuddy 1245
 
129 ghuddy 1246
         lastPVID = queryResult("last_pv_id")
119 ghuddy 1247
 
129 ghuddy 1248
         ' We know we have some ripple built versions now, so arm the finalPVID for loop control
1249
         finalPVID = ""
119 ghuddy 1250
 
129 ghuddy 1251
         ' Work back through the version history until we hit a record that is not a ripple build version
1252
         Do While ((NOT queryResult.BOF) AND (NOT queryResult.EOF) AND (NOT IsNull(lastPVID)) AND (finalPVID = ""))
119 ghuddy 1253
 
157 ghuddy 1254
            queryString = "SELECT build_type, last_pv_id FROM package_versions WHERE pv_id = " & lastPVID
119 ghuddy 1255
 
129 ghuddy 1256
            Set queryResult = OraDatabase.DbCreateDynaset( queryString, cint(0))
119 ghuddy 1257
 
129 ghuddy 1258
            ' if the package version is a ripple built one, go round the loop again, else trigger a loop exit
1259
            If ((NOT queryResult.BOF) AND (NOT queryResult.EOF) AND ( queryResult("build_type") = "Y")) Then
1260
               lastPVID  = queryResult("last_pv_id")
1261
            Else
1262
               finalPVID = lastPVID
1263
            End If
1264
         Loop
1265
      End If
1266
   End If
119 ghuddy 1267
 
129 ghuddy 1268
   queryResult.Close()
1269
   Set queryResult = nothing
119 ghuddy 1270
 
129 ghuddy 1271
   getLastNonRippleVersionPVID = finalPVID
119 ghuddy 1272
End Function
1273
 
159 ghuddy 1274
Function getLastNonRippleVersionPVIDLimitedByDate( this_pv_id, limitDate )
1275
   Dim queryResult
1276
   Dim queryString
1277
   Dim finalPVID
1278
   Dim lastPVID
1279
 
1280
   ' default return value in case we never get into the loop
1281
   finalPVID = this_pv_id
1282
 
1283
   ' Get record for this PVID
1284
   queryString = "SELECT build_type, last_pv_id FROM package_versions WHERE pv_id = " & this_pv_id
1285
 
1286
   Set queryResult = OraDatabase.DbCreateDynaset( queryString, cint(0))
1287
 
1288
   If ((NOT queryResult.BOF) AND (NOT queryResult.EOF)) Then
1289
 
1290
      ' If this version is a ripple built version, begin the process of finding its ancestral non-ripple built version
1291
      If (queryResult("build_type") = "Y") Then
1292
 
1293
         lastPVID = queryResult("last_pv_id")
1294
 
1295
         ' We know we have some ripple built versions now, so arm the finalPVID for loop control
1296
         finalPVID = ""
1297
 
1298
         ' Work back through the version history until we hit a record that is not a ripple build version
1299
         Do While ((NOT queryResult.BOF) AND (NOT queryResult.EOF) AND (NOT IsNull(lastPVID)) AND (finalPVID = ""))
1300
 
1301
            queryString = "SELECT build_type, last_pv_id FROM package_versions "&_
1302
                          " WHERE pv_id = " & lastPVID &_
1303
                          "   AND MODIFIED_STAMP >= TO_DATE('" & limitDate & "','DD/MM/YYYY')"
1304
 
1305
            Set queryResult = OraDatabase.DbCreateDynaset( queryString, cint(0))
1306
 
1307
            ' if the package version is a ripple built one, go round the loop again, else trigger a loop exit
1308
            If ((NOT queryResult.BOF) AND (NOT queryResult.EOF) AND ( queryResult("build_type") = "Y")) Then
1309
               lastPVID  = queryResult("last_pv_id")
1310
            Else
1311
               finalPVID = lastPVID
1312
            End If
1313
         Loop
1314
      End If
1315
   End If
1316
 
1317
   queryResult.Close()
1318
   Set queryResult = nothing
1319
 
1320
   getLastNonRippleVersionPVIDLimitedByDate = finalPVID
1321
End Function
1322
 
1323
 
119 ghuddy 1324
'---------------------------------------------------------------
1325
' Function: getPreviousVersionPVID
1326
'
1327
' Purpose: returns the immediate predecssor version of the given
1328
'          package version
1329
'
1330
' Arguments: this_pv_id : string
1331
'
1332
' Notes:
1333
'
1334
Function getPreviousVersionPVID( this_pv_id )
129 ghuddy 1335
   Dim queryResult
1336
   Dim queryString
119 ghuddy 1337
 
129 ghuddy 1338
   getPreviousVersionPVID = ""
119 ghuddy 1339
 
157 ghuddy 1340
   queryString = "SELECT last_pv_id FROM package_versions WHERE pv_id = " & this_pv_id
119 ghuddy 1341
 
129 ghuddy 1342
   Set queryResult = OraDatabase.DbCreateDynaset( queryString, cint(0))
119 ghuddy 1343
 
129 ghuddy 1344
    If ((NOT queryResult.BOF) AND (NOT queryResult.EOF)) Then
1345
      getPreviousVersionPVID = queryResult("last_pv_id")
1346
   End If
119 ghuddy 1347
 
129 ghuddy 1348
   queryResult.Close()
1349
   Set queryResult = nothing
119 ghuddy 1350
 
1351
End Function
1352
 
1353
'---------------------------------------------------------------
129 ghuddy 1354
' Function: getLastSignificantPVID
1355
'
1356
' Purpose: Returns the last significant (man-made) version (PV_ID) that
1357
'          is a predecessor to the specified pv_id
1358
'
1359
' Arguments: pv_id       : Uniquely identifies this package version
1360
'            last_pv_id  : Uniquely identifies the predecssor of this package version
1361
' Notes:
1362
'
1363
Function getLastSignificantPVID (pv_id, last_pv_id)
1364
 
1365
   getLastSignificantPVID = ""
1366
 
1367
   If( (NOT IsNull(last_pv_id)) AND (last_pv_id <> pv_id) ) Then
1368
 
1369
      ' Get the pv_id for the current version, and if necessary, work back through any ripple versions as necessary
1370
      ' to get a non-ripple version ancestor
1371
        pv_id = getLastNonRippleVersionPVID( pv_id )
1372
      If (pv_id <> "") Then
1373
         ' get the pv_id of the previous version to the non-ripple version ancestor we just found.
1374
         ' It does not matter if we get a ripple version here. It is good enough to serve the purpose of version diff'ing
1375
         pv_id = getPreviousVersionPVID( pv_id )
1376
         If (pv_id <> "") Then
1377
            getLastSignificantPVID = pv_id
1378
         End If
1379
      End If
1380
 
1381
   End If
1382
 
1383
End Function
1384
'---------------------------------------------------------------
1385
' Function: get_Pkg_Label
1386
'
1387
' Purpose: Returns the package label for the specified pv_id
1388
'
1389
' Arguments: pv_id       : Uniquely identifies this package version
1390
'
1391
Function get_Pkg_Label (pv_id)
1392
   Dim queryResult
1393
   Dim queryString
1394
 
1395
   get_Pkg_Label = ""
1396
 
1397
   ' Get the package label from the package versions table
1398
   queryString = "SELECT pkg_label FROM package_versions WHERE pv_id = " & pv_id
1399
   Set queryResult = OraDatabase.DbCreateDynaset( queryString, cint(0))
1400
   If ((NOT queryResult.BOF) AND (NOT queryResult.EOF)) Then
1401
      get_Pkg_Label = queryResult("pkg_label")
1402
   End If
1403
   queryResult.Close()
1404
   Set queryResult = nothing
1405
End Function
1406
'---------------------------------------------------------------
1407
' Function: get_Src_Path
1408
'
1409
' Purpose: Returns the source path for the specified pv_id
1410
'
1411
' Arguments: pv_id       : Uniquely identifies this package version
1412
'
1413
Function get_Src_Path (pv_id)
1414
   Dim queryResult
1415
   Dim queryString
1416
 
1417
   get_Src_Path = ""
1418
 
1419
   ' Get the source path from package versions table
1420
   queryString = "SELECT src_path FROM package_versions WHERE pv_id = " & pv_id
1421
   Set queryResult = OraDatabase.DbCreateDynaset( queryString, cint(0))
1422
   If ((NOT queryResult.BOF) AND (NOT queryResult.EOF)) Then
1423
      get_Src_Path = queryResult("src_path")
1424
   End If
1425
   queryResult.Close()
1426
   Set queryResult = nothing
1427
End Function
1428
 
1429
'---------------------------------------------------------------
119 ghuddy 1430
' Function: getOldLabel
1431
'
1432
' Purpose: Returns the previous label; if none then returns empty string
1433
'
1434
'          Since this operation is designed to fulfil the generation of
1435
'          diff commands, there is no point in considering ripple
1436
'          versions, since the only differences we find there are in
1437
'          the build.pl files (for example). So, this function uses
1438
'          some underlying methods that ignore ripple built versions
1439
'          therefore concentrating on versions that someone has manually
1440
'          gone and labelled, presumably because they changed some
1441
'          source file other than build.pl.
1442
'
1443
' Arguments: pv_id       : Uniquely identifies this package version
1444
'            last_pv_id  : Uniquely identifies the predecssor of this package version
1445
' Notes:
1446
'
1447
Function getOldLabel (pv_id, last_pv_id)
129 ghuddy 1448
   Dim lastSignificantPVID
119 ghuddy 1449
 
129 ghuddy 1450
   getOldLabel = ""
119 ghuddy 1451
 
129 ghuddy 1452
   lastSignificantPVID = getLastSignificantPVID(pv_id, last_pv_id)
1453
   If (lastSignificantPVID <> "") Then
1454
      getOldLabel = get_Pkg_Label(lastSignificantPVID)
1455
   End If
1456
End Function
1457
'---------------------------------------------------------------
1458
' Function: getOldSrcPath
1459
'
1460
' Purpose: Returns the previous src path; if none then returns empty string
1461
'
1462
'          Since this operation is designed to fulfil the generation of
1463
'          diff commands, there is no point in considering ripple
1464
'          versions, since the only differences we find there are in
1465
'          the build.pl files (for example). So, this function uses
1466
'          some underlying methods that ignore ripple built versions
1467
'          therefore concentrating on versions that someone has manually
1468
'          gone and labelled, presumably because they changed some
1469
'          source file other than build.pl.
1470
'
1471
'          NOTE: With SubVersion, the src_path column in the package_versions
1472
'                table will be used to hold the Subversion tag. This function
1473
'                will therefore be used mostly when a package version is
1474
'                controlled under subversion.
1475
'
1476
' Arguments: pv_id       : Uniquely identifies this package version
1477
'            last_pv_id  : Uniquely identifies the predecssor of this package version
1478
' Notes:
1479
'
1480
Function getOldSrcPath (pv_id, last_pv_id)
1481
   Dim lastSignificantPVID
119 ghuddy 1482
 
129 ghuddy 1483
   getOldSrcPath = ""
119 ghuddy 1484
 
129 ghuddy 1485
   lastSignificantPVID = getLastSignificantPVID(pv_id, last_pv_id)
1486
   If (lastSignificantPVID <> "") Then
1487
      getOldSrcPath = get_Src_Path(lastSignificantPVID)
1488
   End If
1489
End Function
1490
'----------------------------------------------------------------------------------------------------------------------
1491
Sub vcs_info_from_vcs_tag( nVcs_tag, ByRef objDetails )
1492
   Dim rsTemp, Query_String
119 ghuddy 1493
 
129 ghuddy 1494
   Query_String = " SELECT * FROM vcs_type WHERE tag = '"& nVcs_tag &"'"
1495
   Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
1496
   If (NOT rsTemp.BOF ) AND (NOT rsTemp.EOF) Then
1497
      objDetails.Item("vcs_type_id") = rsTemp("vcs_type_id")
1498
      objDetails.Item("vcs_name") = rsTemp("name")
1499
      objDetails.Item("vcs_tag") = rsTemp("tag")
1500
   Else
141 ghuddy 1501
      Call RaiseMsg(enum_MSG_ERROR, "Database does not contain a record of the VCS tag : " & nVcs_tag )
129 ghuddy 1502
   End If
1503
   rsTemp.Close()
1504
   set rsTemp = nothing
1505
End Sub
1506
'----------------------------------------------------------------------------------------------------------------------
1507
Sub vcs_info_from_vcs_type_id( nVcs_type_id, ByRef objDetails )
1508
   Dim rsTemp, Query_String
1509
 
1510
   If NOT IsNull(nVcs_type_id) Then
1511
      Query_String = " SELECT * FROM vcs_type WHERE vcs_type_id = "& nVcs_type_id
1512
      Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
1513
      If (NOT rsTemp.BOF ) AND (NOT rsTemp.EOF) Then
1514
         objDetails.Item("vcs_type_id") = rsTemp("vcs_type_id")
1515
         objDetails.Item("vcs_name") = rsTemp("name")
1516
         objDetails.Item("vcs_tag") = rsTemp("tag")
1517
      Else
141 ghuddy 1518
         Call RaiseMsg(enum_MSG_ERROR, "Database does not contain a record of the VCS type ID : " & nVcs_type_id )
129 ghuddy 1519
      End If
1520
      rsTemp.Close()
1521
      set rsTemp = nothing
1522
   Else
3616 dpurdie 1523
      ' default to returning Subversion info, assuming it exists in the data
1524
      Call vcs_info_from_vcs_tag( enum_VCS_SUBVERSION_TAG, objDetails )
129 ghuddy 1525
   End If
1526
End Sub
1527
'----------------------------------------------------------------------------------------------------------------------
137 ghuddy 1528
Sub get_vcs_info_for_package( nPkgLabel, nBuildType, nVcsTypeId, nDLocked, ByRef objDetails )
129 ghuddy 1529
   ' lots of patch versions exist with N/A as their pkg_label and null as vcs_type_id. These are all uncontrolled
1530
   ' packages published directly into dpkg_archive with no controlled source under clearcase, so we want to treat
1531
   ' them as uncontrolled if possible.
137 ghuddy 1532
   If nDLocked = "Y" AND ((nPkgLabel = "N/A") OR IsNull(nPkgLabel)) AND nBuildType = "M" AND IsNull(nVcsTypeId) Then
129 ghuddy 1533
      Call vcs_info_from_vcs_tag( enum_VCS_UNCONTROLLED_TAG, objDetails )
1534
   Else
1535
      ' Otherwise, try and decode the VCS from the package's vcs_type_id entry from the package version table
1536
      ' NOTE: A null vcs_type_id entry will default to ClearCase. That is all we have been using up til now so
1537
      ' it should be safe.
1538
      Call vcs_info_from_vcs_type_id( nVcsTypeId, objDetails )
1539
   End If
1540
End Sub
1541
'----------------------------------------------------------------------------------------------------------------------
1542
Sub get_vcs_info_for_pv_id( nPv_id, ByRef objDetails )
1543
   Dim rsTemp, Query_String
1544
 
1545
   Query_String = _
137 ghuddy 1546
   " SELECT pv.pkg_label, pv.build_type, pv.vcs_type_id, pv.dlocked "&_
129 ghuddy 1547
   "   FROM PACKAGE_VERSIONS pv"&_
1548
   "  WHERE pv.pv_id = "& nPv_id
1549
 
1550
   Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
1551
   If (NOT rsTemp.BOF ) AND (NOT rsTemp.EOF) Then
137 ghuddy 1552
      Call get_vcs_info_for_package( rsTemp("pkg_label"), rsTemp("build_type"), rsTemp("vcs_type_id"), rsTemp("dlocked"), objDetails )
129 ghuddy 1553
   Else
1554
      Call RaiseMsg(enum_MSG_ERROR, "PV_ID (" & nPv_id & ") Not Found")
1555
   End If
1556
   rsTemp.Close()
1557
   set rsTemp = nothing
1558
End Sub
1559
'----------------------------------------------------------------------------------------------------------------------
1560
Function get_vcs_tag( nPv_id )
1561
   Dim tempVcsInfoCollector
1562
   Set tempVcsInfoCollector = CreateObject("Scripting.Dictionary")
1563
 
1564
   Call get_vcs_info_for_pv_id( nPv_id, tempVcsInfoCollector )
1565
   get_vcs_tag = tempVcsInfoCollector.Item("vcs_tag")
1566
 
1567
   Set tempVcsInfoCollector = nothing
119 ghuddy 1568
End Function
129 ghuddy 1569
'----------------------------------------------------------------------------------------------------------------------
143 ghuddy 1570
Function isInDoNotRippleTable( NNrtag_id, NNpv_id )
1571
   Dim rsTemp, Query_String
119 ghuddy 1572
 
143 ghuddy 1573
   isInDoNotRippleTable = FALSE
1574
 
1575
   If NNrtag_id <> "" AND NNpv_id <> "" Then
1576
      Query_String = " SELECT dnr.pv_id FROM DO_NOT_RIPPLE dnr WHERE dnr.RTAG_ID ="& NNrtag_id &" AND dnr.PV_ID ="& NNpv_id
1577
 
1578
      Set rsTemp = OraDatabase.DbCreateDynaset(Query_String, cint(0))
1579
      If rsTemp.RecordCount <> 0  Then
1580
         isInDoNotRippleTable = TRUE
1581
      End If
1582
      rsTemp.Close()
1583
      set rsTemp = nothing
1584
   End If
1585
End Function
145 ghuddy 1586
'----------------------------------------------------------------------------------------------------------------------
1587
Function pv_id_exists( nPv_id )
1588
   Dim rsTemp, Query_String
143 ghuddy 1589
 
145 ghuddy 1590
   If NOT IsNull( nPv_id ) AND nPv_id <> "" Then
1591
      Query_String = _
1592
      " SELECT pv.pv_id "&_
1593
      "   FROM PACKAGE_VERSIONS pv"&_
1594
      "  WHERE pv.pv_id = "& nPv_id
1595
      Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
1596
      If (NOT rsTemp.BOF ) AND (NOT rsTemp.EOF) Then
1597
         pv_id_exists = TRUE
1598
      Else
1599
         pv_id_exists = FALSE
1600
      End If
1601
      rsTemp.Close()
1602
      set rsTemp = nothing
1603
   Else
1604
      pv_id_exists = FALSE
1605
   End If
1606
End Function
1607
'----------------------------------------------------------------------------------------------------------------------
1608
Function is_daemon_enabled_release( NNrtag_id, defaultReturnValue )
1609
   Dim rsTemp, Query_String
143 ghuddy 1610
 
145 ghuddy 1611
   If NOT IsNull( NNrtag_id ) AND NNrtag_id <> "" Then
143 ghuddy 1612
 
145 ghuddy 1613
      Query_String = _
1614
      " SELECT rc.daemon_hostname "&_
1615
      "   FROM RELEASE_CONFIG rc"&_
1616
      "  WHERE rc.rtag_id = "& NNrtag_id
1617
      Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
1618
 
1619
      is_daemon_enabled_release = FALSE
1620
      While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF) AND (is_daemon_enabled_release = FALSE))
1621
         If (NOT IsNull(rsTemp("daemon_hostname"))) AND (rsTemp("daemon_hostname") <> "") Then
1622
            is_daemon_enabled_release = TRUE
1623
         End If
1624
         rsTemp.MoveNext
1625
      WEnd
1626
 
1627
      rsTemp.Close()
1628
      set rsTemp = nothing
1629
   Else
1630
      is_daemon_enabled_release = defaultReturnValue
1631
   End If
1632
End Function
147 ghuddy 1633
'--------------------------------------------------------------------------------------------------------------------------
1634
' Convert release state into a meaningful string
1635
Function Get_Official( nOfficial )
1636
   If nOfficial = "N" Then
1637
      Get_Official = "Open"
1638
   ElseIf nOfficial = "A" Then
1639
      Get_Official = "Archive"
1640
   ElseIf nOfficial = "C" Then
1641
      Get_Official = "CCB"
1642
   ElseIf nOfficial = "R" Then
1643
      Get_Official = "Restricted"
1644
   ElseIf nOfficial = "Y" Then
1645
      Get_Official = "Closed"
1646
   Else
1647
      Get_Official = "?"
1648
   End If
1649
End Function
151 ghuddy 1650
'-----------------------------------------------------------------------------------------------------------------------------
1651
Function Get_Pkg_Id_For_Pv_Id ( NNpv_id )
1652
   Dim rsTemp, Query_String
145 ghuddy 1653
 
151 ghuddy 1654
   Get_Pkg_Id_For_Pv_Id = ""
145 ghuddy 1655
 
151 ghuddy 1656
   If NOT IsNull(NNpv_id) AND NNpv_id <> "" Then
1657
      Query_String = _
1658
      "SELECT pkg_id FROM package_versions WHERE pv_id = "& NNpv_id
1659
 
1660
      Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
1661
 
1662
      If ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) Then
1663
         Get_Pkg_Id_For_Pv_Id = rsTemp("pkg_id")
1664
      End If
1665
      rsTemp.Close
1666
      Set rsTemp = nothing
1667
   End If
1668
 
1669
End Function
1670
 
171 brianf 1671
'-----------------------------------------------------------------------------------------------------------------------------
161 iaugusti 1672
Function iif(bFlag, sTrueStr, sFalseStr)
1673
  if bFlag then
1674
    iif = sTrueStr
1675
  else 
1676
    iif = sFalseStr
1677
  end if
1678
End Function
151 ghuddy 1679
 
171 brianf 1680
'--------------------------------------------------------------------------------------------------------------------------
1681
' Sets the state of all build daemons of the specified release
1682
Sub SetDaemonStates (artag_id,astate)
1683
	On Error Resume Next
1684
	OraDatabase.Parameters.Add "RTAG_ID", 			artag_id, 	ORAPARM_INPUT, ORATYPE_NUMBER 
1685
	OraDatabase.Parameters.Add "NSTATE", 			astate, 	ORAPARM_INPUT, ORATYPE_NUMBER 
1686
 
1687
	objEH.TryORA ( OraSession )
1688
 
1689
	OraDatabase.ExecuteSQL _
1690
        "BEGIN PK_BUILDAPI.SET_DAEMON_STATES(:RTAG_ID,:NSTATE);   END;"
1691
 
1692
	objEH.CatchORA ( OraSession )
1693
 
1694
	OraDatabase.Parameters.Remove "RTAG_Id"
1695
	OraDatabase.Parameters.Remove "NSTATE"	
1696
End Sub
1697
 
183 brianf 1698
'----------------------------------------------
1699
'Returns true if the specified package version exists in the specified table
1700
Function PackageExists(RtagId, pvId, stable)
1701
  Dim rsTemp
1702
  Dim sqry
185 brianf 1703
  If RtagId = "" Then
1704
    PackageExists = False
1705
  Else
1706
    sqry = "SELECT * FROM " & stable & " WHERE rtag_id = " & RtagId & " AND pv_id = " & pvId
1707
    Set rsTemp = OraDatabase.DbCreateDynaset(sqry,CInt(0))
1708
    PackageExists = rsTemp.RecordCount > 0  
1709
    rsTemp.Close()
1710
    Set rsTemp = Nothing
1711
  End If
183 brianf 1712
End Function
1713
 
119 ghuddy 1714
%>