Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

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