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