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