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