Subversion Repositories DevTools

Rev

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

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