Subversion Repositories DevTools

Rev

Rev 4554 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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