Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
29 jtweddle 1
<%@LANGUAGE="VBSCRIPT"%>
2
<%
3
'=====================================================
4
'|                                                   |
5
'|                      REPORT                       |
6
'|                    SBOM Issues                    |
7
'=====================================================
8
%>
9
<%
10
Option explicit
11
' Good idea to set when using redirect
12
Response.Expires = 0	' always load the page, dont store
13
 
14
'To enable the script timeout to 5 mins
15
Server.ScriptTimeout=300
16
%>
17
<!--#include file="common/config.asp"-->
18
<!--#include file="common/common_subs.asp"-->
19
<!--#include file="common/globals.asp"-->
20
<!--#include file="common/formating.asp"-->
21
<!--#include file="common/qstr.asp"-->
22
<!--#include file="common/common_dbedit.asp"-->
23
<%
24
'------------ ACCESS CONTROL ------------------
25
%>
26
<!--#include file="_access_control_general.asp"-->
27
<%
28
'------------ Variable Definition -------------
29
Dim rsQry
30
Dim parPv_id
31
Dim	objSbomDetailsA, objSbomDetailsB
32
Dim objRelCollectorA, objRelCollectorB
33
Dim parSbomA, parSbomB
34
Dim retVal
35
Dim topLevelId
36
Dim DEVIiss, TDSEiss, VT5DMiss, VTSUPiss
37
Dim pvIdList
38
Dim objIssueDetails
39
Dim rsCQ
40
Dim rsBomPackages
41
Dim rsPkgDeps
42
 
43
'------------ Constants Declaration -----------
44
'------------ Variable Init -------------------
45
parSbomA = Request("sbomA")
46
parSbomB = Request("sbomB")
47
Set objRelCollectorA = CreateObject("Scripting.Dictionary")
48
Set objRelCollectorB = CreateObject("Scripting.Dictionary")
49
Set objSbomDetailsA = CreateObject("Scripting.Dictionary")
50
Set objSbomDetailsB = CreateObject("Scripting.Dictionary")
51
Set objIssueDetails = CreateObject("Scripting.Dictionary")
52
Set rsCQ = Server.CreateObject("ADODB.Recordset")
53
Set rsBomPackages = Server.CreateObject("ADODB.Recordset")
54
Set rsPkgDeps = Server.CreateObject("ADODB.Recordset")
55
'----------------------------------------------
56
%>
57
<%
58
'----------------------------------------------------------------------------------------------------------------------------------------
59
Sub GetFormDetails ( nSourceSBOM, ByRef tempObjRelCollector )
60
	Dim rsQry, query
61
 
62
	' Exit if nSourceRtagId is empty
63
	If nSourceSBOM = "" Then Exit Sub 
64
 
65
	OraDatabase.Parameters.Add "SBOM", 	nSourceSBOM,		ORAPARM_INPUT, ORATYPE_NUMBER 
66
 
67
	query = _
68
	" SELECT pr.PROJ_NAME ||' &gt; '|| br.BRANCH_NAME ||' &gt; '|| b.BOM_VERSION ||'.'||b.BOM_LIFECYCLE  AS LOCATION, "&_
69
	"        pr.PROJ_ID, b.BOM_ID, br.BRANCH_ID, b.IS_READONLY, b.RTAG_ID_FK"&_
70
	"  FROM BRANCHES br,"&_
71
	"  		BOMS b,"&_	
72
	"  	    DM_PROJECTS pr"&_
73
	" WHERE br.PROJ_ID = pr.PROJ_ID"&_
74
	" 	AND b.BRANCH_ID = br.BRANCH_ID"&_	
75
	"   AND b.BOM_ID = :SBOM"
76
 
77
	Set rsQry = OraDatabase.DbCreateDynaset( query, ORADYN_DEFAULT )
78
 
79
	OraDatabase.Parameters.Remove "SBOM"
80
 
81
	If rsQry.RecordCount > 0 Then
82
		tempObjRelCollector ("location") = rsQry("location")
83
		tempObjRelCollector ("official") = rsQry("IS_READONLY")
84
		tempObjRelCollector ("proj_id") = rsQry("proj_id")
85
		tempObjRelCollector ("branch_id") = rsQry("branch_id")
86
		tempObjRelCollector ("bom_id") = rsQry("bom_id")
87
		tempObjRelCollector ("rtag_id_fk") = rsQry("rtag_id_fk")
88
	Else
89
		Err.Raise 8, "Sub GetFormDetails in "& SCRIPT_NAME, "Empty record set returned. nSourceSBOM="& nSourceSBOM
90
	End If
91
 
92
	If tempObjRelCollector ("location") = "" Then
93
		tempObjRelCollector.Item ("location") = "N"
94
	End If
95
 
96
	rsQry.Close
97
	Set rsQry = Nothing
98
 
99
End Sub
100
'----------------------------------------------------------------------------------------------------------------------------------------
101
Sub GetPackageDetailsForIssue ( nIss_id, sPvIdList, tempIssDetails )
102
	Dim rsQry, query
103
 
104
	query = "SELECT DISTINCT pkg.pkg_name, pv.pkg_version, pv.v_ext, pkg.pkg_id, pv.pv_id FROM package_versions pv, packages pkg, cq_issues iss WHERE pv.pkg_id = pkg.pkg_id AND pv.pv_id = iss.pv_id AND iss.iss_id = :ISS_ID AND pv.pv_id IN ("& sPvIdList &")"
105
 
106
	OraDatabase.Parameters.Add "ISS_ID", nIss_id, ORAPARM_INPUT, ORATYPE_NUMBER
107
 
108
	Set rsQry = OraDatabase.DbCreateDynaset( query, ORADYN_DEFAULT )
109
 
110
	OraDatabase.Parameters.Remove "ISS_ID"
111
 
112
	If rsQry.RecordCount > 0 Then
113
		tempIssDetails("pkg_name") = rsQry("pkg_name")
114
		tempIssDetails("pkg_version") = rsQry("pkg_version")
115
		tempIssDetails("v_ext") = rsQry("v_ext")
116
		tempIssDetails("pkg_id") = rsQry("pkg_id")
117
		tempIssDetails("pv_id") = rsQry("pv_id")
118
 
119
	Else
120
		Err.Raise 8, "Sub GetPackageDetailsForIssue in "& SCRIPT_NAME, "Empty record set returned. nIss_id="& nIss_id
121
	End If
122
 
123
	rsQry.Close
124
	Set rsQry = Nothing
125
 
126
End Sub
127
'----------------------------------------------------------------------------------------------------------------------------------------
128
Function GetIssues( sPvIdList, oRsCqIssTemp )
129
	Dim sqlStrTemp, oRsTemp
130
 
131
	Set oRsTemp = OraDatabase.DbCreateDynaset("SELECT iss_db, iss_id FROM CQ_ISSUES WHERE pv_id IN ("& sPvIdList &")", cint(0))
132
 
133
	If oRsTemp.RecordCount <> 0 Then
134
 
135
		DEVIiss = "-1"
136
		TDSEiss = "-1"
137
		VT5DMiss = "-1"
138
		VTSUPiss = "-1"
139
 
140
		While ((NOT oRsTemp.BOF) AND (NOT oRsTemp.EOF))
141
 
142
			If CInt(oRsTemp("iss_db")) = CInt(enumCLEARQUEST_DEVI_ID) Then
143
				DEVIiss = DEVIiss &","& oRsTemp("iss_id")
144
			ElseIf CInt(oRsTemp("iss_db")) = CInt(enumCLEARQUEST_TDSE_ID) Then
145
				TDSEiss = TDSEiss &","& oRsTemp("iss_id")
146
			ElseIf CInt(oRsTemp("iss_db")) = CInt(enumCLEARQUEST_VT5DM_ID) Then
147
				VT5DMiss = VT5DMiss &","& oRsTemp("iss_id")		
148
			ElseIf CInt(oRsTemp("iss_db")) = CInt(enumCLEARQUEST_VTSUP_ID) Then
149
				VTSUPiss = VTSUPiss &","& oRsTemp("iss_id")
150
			End If
151
 
152
		oRsTemp.MoveNext
153
		Wend
154
 
155
		sqlStrTemp = GetQuery ("cq_issues.sql")
156
		sqlStrTemp = Replace( sqlStrTemp, "/*enumCLEARQUEST_DEVI_ID*/", enumCLEARQUEST_DEVI_ID)
157
		sqlStrTemp = Replace( sqlStrTemp, "/*enumCLEARQUEST_TDSE_ID*/", enumCLEARQUEST_TDSE_ID)
158
		sqlStrTemp = Replace( sqlStrTemp, "/*enumCLEARQUEST_VT5DM_ID*/", enumCLEARQUEST_VT5DM_ID)
159
		sqlStrTemp = Replace( sqlStrTemp, "/*enumCLEARQUEST_VTSUP_ID*/", enumCLEARQUEST_VTSUP_ID)					
160
		sqlStrTemp = Replace( sqlStrTemp, "/*DEVIiss*/", DEVIiss)
161
		sqlStrTemp = Replace( sqlStrTemp, "/*TDSEiss*/", TDSEiss)
162
		sqlStrTemp = Replace( sqlStrTemp, "/*VT5DMiss*/", VT5DMiss)	
163
		sqlStrTemp = Replace( sqlStrTemp, "/*VTSUPiss*/", VTSUPiss)
164
 
165
		If oRsCqIssTemp.State = 1 Then 
166
			oRsCqIssTemp.Close
167
		End If
168
 
169
		On Error Resume Next
170
		oRsCqIssTemp.ActiveConnection = CQ_conn
171
		oRsCqIssTemp.Source = sqlStrTemp
172
		oRsCqIssTemp.CursorType = 0
173
		oRsCqIssTemp.CursorLocation = 2
174
		oRsCqIssTemp.LockType = 3
175
		oRsCqIssTemp.Open()
176
 
177
		GetIssues = Err.Number
178
	Else
179
 
180
	 GetIssues = -1
181
 
182
	End If
183
 
184
End Function
185
'----------------------------------------------------------------------------------------------------------------------------------------
186
Sub GetPackageDependencies ( nPv_id_a, nPv_id_b, oRsTemp )
187
 
188
	OraDatabase.Parameters.Add "PV_ID_A", nPv_id_a, ORAPARM_INPUT, ORATYPE_NUMBER 
189
	OraDatabase.Parameters.Add "PV_ID_B", nPv_id_b, ORAPARM_INPUT, ORATYPE_NUMBER 
190
 
191
	Set oRsTemp = OraDatabase.DbCreateDynaset( GetQuery ("UniquePackageDependencies.sql"), ORADYN_DEFAULT )
192
 
193
	OraDatabase.Parameters.Remove "PV_ID_A"
194
	OraDatabase.Parameters.Remove "PV_ID_B"
195
 
196
End Sub
197
'----------------------------------------------------------------------------------------------------------------------------------------
198
Sub GetAllBomContents ( nSbom_id, oRsTemp )
199
 
200
	OraDatabase.Parameters.Add "SBOM_ID", nSbom_id,		ORAPARM_INPUT, ORATYPE_NUMBER
201
 
202
	Set oRsTemp = OraDatabase.DbCreateDynaset( GetQuery ("BomPackagesAndDeps.sql"), ORADYN_DEFAULT )
203
 
204
	OraDatabase.Parameters.Remove "SBOM_ID"
205
 
206
End Sub
207
'----------------------------------------------------------------------------------------------------------------------------------------
208
Sub GetBomPackages ( nSbomA, nSbomB, oRsTemp )
209
 
210
	OraDatabase.Parameters.Add "SBOM_A", nSbomA,		ORAPARM_INPUT, ORATYPE_NUMBER 
211
	OraDatabase.Parameters.Add "SBOM_B", nSbomB,		ORAPARM_INPUT, ORATYPE_NUMBER 
212
 
213
	Set oRsTemp = OraDatabase.DbCreateDynaset( GetQuery ("BomPackageDiff.sql"), ORADYN_DEFAULT )
214
 
215
	OraDatabase.Parameters.Remove "SBOM_A"
216
	OraDatabase.Parameters.Remove "SBOM_B"
217
 
218
End Sub
219
'----------------------------------------------------------------------------------------------------------------------------------------
220
 
221
 
222
 
223
%>
224
<%
225
'---------------------- Run Before Page ---------------------------
226
 
227
' Get release details
228
Call GetFormDetails ( parSbomA, objRelCollectorA )
229
Call GetFormDetails ( parSbomB, objRelCollectorB )
230
 
231
If parSbomA <> "" AND parSbomB <> "" Then
232
 
233
	If Request("form_btn_comp") = "Get Issues" Then
234
		Call OpenInWindow ( SCRIPT_NAME &"?sbomA="& parSbomA &"&sbomB="& parSbomB )
235
	End If
236
 
237
	Call	GetBomDetails	(parSbomA, objSbomDetailsA)
238
	Call	GetBomDetails	(parSbomB, objSbomDetailsB)
239
 
240
	objSbomDetailsA("bom_full_version") = objSbomDetailsA("bom_name")&"	"&	objSbomDetailsA("bom_version") &"."& objSbomDetailsA("bom_lifecycle")
241
	objSbomDetailsB("bom_full_version") = objSbomDetailsB("bom_name")&"	"&	objSbomDetailsB("bom_version") &"."& objSbomDetailsB("bom_lifecycle")
242
Else
243
	objSbomDetailsA("bom_full_version") = "Software Bill of Materials (SBOM)"
244
End If
245
 
246
'------------------------------------------------------------------
247
%>
248
<html>
249
	<head>
250
		<title>Deployment Manager - SBOM Issues Report</title>
251
		<meta http-equiv="Pragma" content="no-cache">
252
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
253
		<link rel="stylesheet" href="images/release_manager_style.css" type="text/css">
254
		<script language="JavaScript" src="scripts/common.js"></script>
255
		<script language="JavaScript" src="scripts/remote_scripting.js"></script>
256
		<script language="JavaScript" type="text/javascript">
257
			<!--
258
 
259
			function RequestSBOMCombo( paramString, rowId )
260
			{
261
				var requestURL = 'RequestSBOMCombo.asp';
262
 
263
				// Set ajax divname
264
				ajaxdivname = rowId;
265
 
266
				//Append the name to search for to the requestURL
267
				var url = requestURL + paramString;
268
 
269
				rowId.options[0] = new Option('Loading...','');
270
				rowId.selectedIndex = 0;
271
 
272
				//Create the xmlHttp object to use in the request
273
				//stateChangeHandler will fire when the state has changed, i.e. data is received back
274
				xmlHttp = GetXmlHttpObject(stateComboChangeHandler);
275
 
276
				//Send the xmlHttp get to the specified url
277
				//This is non-blocking (asynchronous)
278
				xmlHttp_Get(xmlHttp, url);
279
			}
280
 
281
			function RequestReleaseCombos( paramString, rowIdA, rowIdB )
282
			{
283
				var requestURL = 'RequestReleaseCombo.asp';
284
				// First release combo box.
285
 
286
				// Set ajax divname
287
				ajaxdivname = rowIdA;
288
 
289
				//Append the name to search for to the requestURL
290
				var url = requestURL + paramString;
291
 
292
				rowIdA.options[0] = new Option('Loading...','');
293
				rowIdA.selectedIndex = 0;
294
 
295
				//Create the xmlHttp object to use in the request
296
				//stateChangeHandler will fire when the state has changed, i.e. data is received back
297
				xmlHttp = GetXmlHttpObject(stateComboChangeHandler);
298
 
299
				//Send the xmlHttp get to the specified url
300
				//This is blocking (synchronous)
301
				xmlHttp_Get_Synch(xmlHttp, url);
302
 
303
 
304
				// Second release combo box.
305
 
306
				ajaxdivname = rowIdB;
307
 
308
				rowIdB.options[0] = new Option('Loading...','');
309
				rowIdB.selectedIndex = 0;
310
 
311
				//Create the xmlHttp object to use in the request
312
				//stateChangeHandler will fire when the state has changed, i.e. data is received back
313
				xmlHttp = GetXmlHttpObject(stateComboChangeHandler);
314
 
315
				//Send the xmlHttp get to the specified url
316
				//This is blocking (synchronous)
317
				xmlHttp_Get_Synch(xmlHttp, url);
318
			}
319
 
320
			function openSbom( elementId )
321
			{
322
				var url = 'Bom_Home.asp?bom_id=';
323
				var bom_id = document.getElementById(elementId).value;
324
 
325
				window.open( url + bom_id );
326
			}
327
 
328
			function setLeftOffset( elementId )
329
			{
330
				if ( document.getElementById(elementId) )
331
				{
332
					var offset = (getWindowWidth() / 2) - (document.getElementById(elementId).clientWidth / 2);
333
					document.getElementById(elementId).style.left = offset;
334
				}
335
			}
336
 
337
			function removePrompt ( elementId )
338
			{
339
				var selectElement = document.getElementById(elementId);
340
 
341
				if ( /^\d+$/.test(selectElement.options[0].value) == false)
342
				{
343
					selectElement.options[0] = null;
344
				}
345
			}
346
 
347
			function clearSelectBox ( elementId )
348
			{
349
				var selectElement = document.getElementById(elementId);
350
 
351
				selectElement.options.length = 0;
352
			}
353
			//-->
354
		</script>
355
	</head>
356
	<body onresize="setLeftOffset('loader');">
357
		<div align="center" class="report_header">
358
 
359
		<%=objSbomDetailsA("bom_full_version")%> Issues Report
360
 
361
		</div>
362
		<form name="FormName" method="post" action="<%=SCRIPT_NAME%>">
363
		<table width="100%"  border="0" cellspacing="10" cellpadding="0">
364
			<tr>
365
        <td align="left" class="body_col" colspan="2">Select SBOM To View</td>
366
      </tr>
367
      <tr>
368
        <td align="left">
369
					<select name="proj" id="proj" class="form_item"
370
						onchange="RequestReleaseCombos('?proj_id='+ this.value, FormName.rtagA, FormName.rtagB);removePrompt(this.id);clearSelectBox('sbomA');clearSelectBox('sbomB');">
371
            <option value="">-- Select Project --</option>
372
						<%
373
						' Currently set project to 
374
						'Dim temp_proj_id
375
						'temp_proj_id = 142
376
 
377
						OraDatabase.Parameters.Add "PROJ_ID", 	objRelCollectorA("proj_id"),	ORAPARM_INPUT, ORATYPE_NUMBER 
378
						'OraDatabase.Parameters.Add "PROJ_ID", 	temp_proj_id,	ORAPARM_INPUT, ORATYPE_NUMBER
379
 
380
						Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ProjectsCombo.sql"), cint(0))
381
 
382
						OraDatabase.Parameters.Remove "PROJ_ID"
383
 
384
						While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
385
							<option value="<%=rsQry("proj_id")%>" <%=rsQry("selected")%>><%=rsQry("proj_name")%></option>
386
							<%rsQry.MoveNext
387
						WEnd
388
 
389
						rsQry.Close
390
						Set rsQry = Nothing
391
						%>
392
					</select>
393
        </td>
394
        <td align="left" class="body_col">Select SBOM To Compare To</td>
395
      </tr>
396
      <tr>
397
        <td align="left" width="25%">
398
					<select name="rtagA" id="rtagA" class="form_item" onchange="RequestSBOMCombo('?branch_id='+ this.value, FormName.sbomA);removePrompt(this.id);">
399
<!--            <option value="">-- Select Branch --</option>			  -->
400
						<%
401
						OraDatabase.Parameters.Add "PROJ_ID", 	objRelCollectorA("proj_id"),	ORAPARM_INPUT,  ORATYPE_NUMBER 
402
 
403
						'OraDatabase.Parameters.Add "PROJ_ID", 	temp_proj_id,	ORAPARM_INPUT,  ORATYPE_NUMBER 
404
						OraDatabase.Parameters.Add "BRANCH_ID", 	objRelCollectorA("branch_id"),	ORAPARM_INPUT, ORATYPE_NUMBER 
405
 
406
						Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ReleasesCombo.sql"), cint(0))
407
 
408
						OraDatabase.Parameters.Remove "PROJ_ID"
409
						OraDatabase.Parameters.Remove "BRANCH_ID"
410
 
411
						While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>	
412
							<option value="<%=rsQry("branch_id")%>" <%=rsQry("selected")%>><%=rsQry("branch_name")%></option>
413
							<%rsQry.MoveNext
414
						WEnd
415
 
416
						rsQry.Close
417
						Set rsQry = Nothing
418
						%>
419
					</select>
420
				</td>
421
        <td align="left">
422
					<select name="rtagB" id="rtagB" class="form_item" onchange="RequestSBOMCombo('?branch_id='+ this.value, FormName.sbomB);removePrompt(this.id);">
423
<!--            <option value="">-- Select Branch --</option>			  -->
424
						<%
425
						OraDatabase.Parameters.Add "PROJ_ID", 	objRelCollectorB("proj_id"),	ORAPARM_INPUT,  ORATYPE_NUMBER 
426
 
427
						'OraDatabase.Parameters.Add "PROJ_ID", 	temp_proj_id,	ORAPARM_INPUT,  ORATYPE_NUMBER 
428
						OraDatabase.Parameters.Add "BRANCH_ID", 	objRelCollectorB("branch_id"),	ORAPARM_INPUT, ORATYPE_NUMBER 
429
 
430
						Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ReleasesCombo.sql"), cint(0))
431
 
432
						OraDatabase.Parameters.Remove "PROJ_ID"
433
						OraDatabase.Parameters.Remove "BRANCH_ID"
434
 
435
						While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>	
436
							<option value="<%=rsQry("branch_id")%>" <%=rsQry("selected")%>><%=rsQry("branch_name")%></option>
437
							<%rsQry.MoveNext
438
						WEnd
439
 
440
						rsQry.Close
441
						Set rsQry = Nothing
442
						%>
443
					</select>
444
				</td>
445
      </tr>
446
      <tr>
447
        <td align="left" width="25%">
448
					<select name="sbomA" id="sbomA" class="form_item">
449
            <%
450
						OraDatabase.Parameters.Add "BOM_ID", 	objRelCollectorA("bom_id"),	ORAPARM_INPUT,  ORATYPE_NUMBER 
451
						OraDatabase.Parameters.Add "BRANCH_ID", 	objRelCollectorA("branch_id"),	ORAPARM_INPUT, ORATYPE_NUMBER 
452
 
453
						Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("SBOMCombo.sql"), cint(0))
454
 
455
						OraDatabase.Parameters.Remove "BOM_ID"
456
						OraDatabase.Parameters.Remove "BRANCH_ID"
457
 
458
						While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
459
							<option value="<%=rsQry("bom_id")%>" <%=rsQry("selected")%>><%=rsQry("version")%></option>
460
							<%rsQry.MoveNext
461
						WEnd
462
 
463
						rsQry.Close
464
						Set rsQry = Nothing
465
						%>
466
          </select>
467
				</td>
468
				<td align="left">
469
					<select name="sbomB" id="sbomB" class="form_item">
470
            <%
471
						OraDatabase.Parameters.Add "BOM_ID", 	objRelCollectorB("bom_id"),	ORAPARM_INPUT,  ORATYPE_NUMBER 
472
						OraDatabase.Parameters.Add "BRANCH_ID", 	objRelCollectorB("branch_id"),	ORAPARM_INPUT, ORATYPE_NUMBER 
473
 
474
						Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("SBOMCombo.sql"), cint(0))
475
 
476
						OraDatabase.Parameters.Remove "BOM_ID"
477
						OraDatabase.Parameters.Remove "BRANCH_ID"
478
 
479
						While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
480
							<option value="<%=rsQry("bom_id")%>" <%=rsQry("selected")%>><%=rsQry("version")%></option>
481
							<%rsQry.MoveNext
482
						WEnd
483
 
484
						rsQry.Close
485
						Set rsQry = Nothing
486
						%>
487
          </select>
488
				</td>
489
      </tr>
490
			<%If parSbomA <> "" OR parSbomB <> "" Then%>  
491
			<tr>
492
				<td align="left" width="25%">
493
					<%If parSbomA <> "" Then%>
494
					<a href="javascript:;" onclick="openSbom('sbomA')" class="body_txt_drk">Go To SBOM A &raquo;</a>
495
					<%End If%>
496
				</td>
497
				<td align="left">
498
					<%If parSbomB <> "" Then%>
499
					<a href="javascript:;" onclick="openSbom('sbomB')" class="body_txt_drk">Go To SBOM B &raquo;</a>
500
					<%End If%>
501
				</td>
502
			</tr>
503
			<%End If%>
504
			<tr>
505
				<td colspan="2">
506
					<input class="form_btn_comp" name="form_btn_comp" type="submit" style="margin-right: 5px;" value="Get Issues" name="btn"/>
507
				</td>
508
			</tr>
509
    </table>
510
		</form>
511
 
512
<%
513
If parSbomA = "" OR parSbomB = "" Then%>
514
	<div align="center" class="report_msg">Select both SBOMs to compare.</div>
515
<%ElseIf parSbomA = parSbomB Then%>
516
	<div align="center" class="report_msg">Select two different SBOMs to compare.</div>
517
<%Else%>
518
	<img src="images/ajax-loader.gif" width="100px" height="100px" id="loader" name="loader" style="position: absolute; z-index: 100; display: block; top: 110px;" onload="setLeftOffset(this.id);">
519
	<div align="center" class="report_msg" id="report_heading">Issues found in BOM <%=objSbomDetailsA("bom_version") &"."& objSbomDetailsA("bom_lifecycle")%> but not in SBOM <%=objSbomDetailsB("bom_version") &"."& objSbomDetailsB("bom_lifecycle")%></div>
520
	<br>
521
	<%
522
	Dim issueCounter
523
 
524
	issueCounter = 0
525
 
526
	Call GetBomPackages( parSbomA, parSbomB, rsBomPackages )
527
 
528
	If rsBomPackages.RecordCount > 0 Then
529
 
530
		While (NOT rsBomPackages.BOF) AND (NOT rsBomPackages.EOF)
531
 
532
		pvIdList = rsBomPackages("pv_id")
533
 
534
		Call GetPackageDependencies( rsBomPackages("pv_id"), rsBomPackages("prev_pv_id"), rsPkgDeps )
535
 
536
		While (NOT rsPkgDeps.BOF) AND (NOT rsPkgDeps.EOF)
537
 
538
			pvIdList = pvIdList & "," & rsPkgDeps("dpv_id")
539
 
540
		rsPkgDeps.MoveNext
541
		Wend
542
 
543
		retVal = GetIssues( pvIdList, rsCQ )
544
 
545
		If retVal = 0 Then
546
 
547
		issueCounter = issueCounter + 1
548
 
549
		%>
550
		<fieldset>
551
		<legend style="padding: 0px 4px 3px 4px;" >
552
		<a href="javascript:;" onclick="MM_openBrWindow('../release_manager/_wform_versions_history_release_notes.asp?OLDpv_id=<%=rsBomPackages("pv_id")%>&pkg_id=<%=rsBomPackages("pkg_id")%>&FLpkg_version=*<%=rsBomPackages("v_ext")%>&FLuser_name=*&rfile=<%=SCRIPT_NAME%>&pv_id=<%=rsBomPackages("pv_id")%>&#ANC_<%=rsBomPackages("pv_id")%>','History','resizable=yes,width=850,height='+ ( screen.height - 100 )  );" class="report_sub_header"><%=rsBomPackages("pkg_name")%>&nbsp;<%=rsBomPackages("pkg_version")%></a>
553
		</legend>
554
		<table width="100%" border="0" cellspacing="2" cellpadding="3">
555
			<tr>
556
				<td background="images/bg_form_lightbluedark.gif" nowrap width="70px" class="form_field">Issue Id</td>
557
				<td background="images/bg_form_lightbluedark.gif" nowrap width="65%" class="form_field">Title</td>
558
				<td background="images/bg_form_lightbluedark.gif" nowrap width="80px" class="form_field">Status</td>
559
				<td background="images/bg_form_lightbluedark.gif" nowrap class="form_field">Package</td>
560
			</tr>
561
 
562
		<%
563
			While (NOT rsCQ.BOF) AND (NOT rsCQ.EOF)
564
 
565
			Call GetPackageDetailsForIssue( rsCQ("iss_id"), pvIdList, objIssueDetails )
566
		%>	
567
			<tr>
568
				<td background="images/bg_form_lightgray.gif" valign="top" class="form_item"><%=rsCQ("iss_num")%></td>
569
				<td background="images/bg_form_lightgray.gif" valign="top" class="form_item"><%=rsCQ("summary")%></td>
570
				<td nowrap background="images/bg_form_lightgray.gif" valign="top" class="form_item"><%=rsCQ("status")%></td>
571
				<td nowrap background="images/bg_form_lightgray.gif" valign="top" class="form_item">
572
 
573
				<a href="javascript:;" onclick="MM_openBrWindow('../release_manager/_wform_versions_history_release_notes.asp?OLDpv_id=<%=objIssueDetails("pv_id")%>&pkg_id=<%=objIssueDetails("pkg_id")%>&FLpkg_version=*<%=objIssueDetails("v_ext")%>&FLuser_name=*&rfile=<%=SCRIPT_NAME%>&pv_id=<%=objIssueDetails("pv_id")%>&#ANC_<%=objIssueDetails("pv_id")%>','History','resizable=yes,width=850,height='+ ( screen.height - 100 )  );" class="report_link">
574
				<%Response.Write(objIssueDetails("pkg_name") &" "& objIssueDetails("pkg_version"))%>
575
				</a>
576
				</td>
577
			</tr>
578
		<%
579
			rsCQ.MoveNext
580
			Wend
581
		%>
582
 
583
			</table>
584
		</fieldset>
585
 
586
		<br>
587
		<%
588
 
589
		End If
590
 
591
		rsBomPackages.MoveNext
592
		Wend
593
 
594
		End If
595
 
596
	If issueCounter = 0 Then
597
	%>
598
		<div align="center" class="report_sub_header">No issues found</div>
599
	<%
600
	End If
601
	%>
602
	<script>
603
	<!--
604
		document.getElementById("loader").style.display = "none";
605
	//-->
606
	</script>	
607
	<%
608
 
609
	' Clean up objects before quitting
610
	On Error Resume Next
611
	rsBomPackages.Close
612
	rsPkgDeps.Close
613
	rsCQ.Close
614
 
615
	Set objRelCollectorA = Nothing
616
	Set objRelCollectorB = Nothing
617
	Set objSbomDetailsA = Nothing
618
	Set objSbomDetailsB = Nothing
619
 
620
	Set rsBomPackages = Nothing
621
	Set rsPkgDeps = Nothing
622
	Set rsCQ = Nothing
623
 
624
	End If%>
625
	</body>
626
</html>