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
37
Dim DEVIiss, TDSEiss, VT5DMiss, VTSUPiss
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
      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()
191
 
192
      GetIssues = Err.Number
193
   Else
194
 
195
    GetIssues = -1
196
 
197
   End If
198
 
29 jtweddle 199
End Function
200
'----------------------------------------------------------------------------------------------------------------------------------------
31 ghuddy 201
Function Get_JIRA_Issues ( sPvIdList, oRsJiraIssTemp )
202
 
203
   Dim rsTemp, JIRAIss
204
   Dim jira_query_string
205
 
206
   JIRAIss = "'-1'"
207
 
208
   Set rsTemp = OraDatabase.DbCreateDynaset( "SELECT DISTINCT iss_key FROM JIRA_ISSUES WHERE pv_id IN ("& sPvIdList & ")", cint(0))
209
   If rsTemp.RecordCount <> 0 Then
210
 
211
      ' Get iss_key's into a CSV list for use in the query to be submitted to the JIRA database
212
      While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))
213
         JIRAIss = JIRAIss &",'"& rsTemp("iss_key")&"'"
214
         rsTemp.MoveNext
215
      WEnd
216
 
217
      rsTemp.Close()
218
      Set rsTemp = nothing
219
 
220
      ' Form the JIRA database query string
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 "&_
222
                          " FROM  jiraissue I, issuestatus ISS, issuetype IT, priority PR "&_
223
                          " WHERE I.pkey IN ("& JIRAIss &") "&_
224
                          " AND   I.issuestatus = ISS.ID "&_
225
                          " AND   IT.ID = I.issuetype "&_
226
                          " AND   PR.ID = I.PRIORITY "
227
 
228
      If oRsJiraIssTemp.State = 1 Then
229
         oRsJiraIssTemp.Close()
230
      End If
231
 
232
      On Error Resume Next
233
      oRsJiraIssTemp.ActiveConnection = JIRA_conn
234
      oRsJiraIssTemp.Source = jira_query_string
235
      oRsJiraIssTemp.CursorType = 0
236
      oRsJiraIssTemp.CursorLocation = 3
237
      oRsJiraIssTemp.LockType = 3
238
      oRsJiraIssTemp.Open()
239
 
240
      Get_JIRA_Issues = Err.Number
241
   Else
242
 
243
    Get_JIRA_Issues = -1
244
 
245
   End If
246
 
247
End Function
248
'----------------------------------------------------------------------------------------------------------------------------------------
29 jtweddle 249
Sub GetPackageDependencies ( nPv_id_a, nPv_id_b, oRsTemp )
250
 
31 ghuddy 251
   OraDatabase.Parameters.Add "PV_ID_A", nPv_id_a, ORAPARM_INPUT, ORATYPE_NUMBER
252
   OraDatabase.Parameters.Add "PV_ID_B", nPv_id_b, ORAPARM_INPUT, ORATYPE_NUMBER
29 jtweddle 253
 
31 ghuddy 254
   Set oRsTemp = OraDatabase.DbCreateDynaset( GetQuery ("UniquePackageDependencies.sql"), ORADYN_DEFAULT )
255
 
256
   OraDatabase.Parameters.Remove "PV_ID_A"
257
   OraDatabase.Parameters.Remove "PV_ID_B"
258
 
29 jtweddle 259
End Sub
260
'----------------------------------------------------------------------------------------------------------------------------------------
261
Sub GetAllBomContents ( nSbom_id, oRsTemp )
262
 
31 ghuddy 263
   OraDatabase.Parameters.Add "SBOM_ID", nSbom_id,      ORAPARM_INPUT, ORATYPE_NUMBER
29 jtweddle 264
 
31 ghuddy 265
   Set oRsTemp = OraDatabase.DbCreateDynaset( GetQuery ("BomPackagesAndDeps.sql"), ORADYN_DEFAULT )
266
 
267
   OraDatabase.Parameters.Remove "SBOM_ID"
268
 
29 jtweddle 269
End Sub
270
'----------------------------------------------------------------------------------------------------------------------------------------
271
Sub GetBomPackages ( nSbomA, nSbomB, oRsTemp )
272
 
31 ghuddy 273
   OraDatabase.Parameters.Add "SBOM_A", nSbomA,      ORAPARM_INPUT, ORATYPE_NUMBER
274
   OraDatabase.Parameters.Add "SBOM_B", nSbomB,      ORAPARM_INPUT, ORATYPE_NUMBER
275
 
276
   Set oRsTemp = OraDatabase.DbCreateDynaset( GetQuery ("BomPackageDiff.sql"), ORADYN_DEFAULT )
277
 
278
   OraDatabase.Parameters.Remove "SBOM_A"
279
   OraDatabase.Parameters.Remove "SBOM_B"
280
 
29 jtweddle 281
End Sub
282
'----------------------------------------------------------------------------------------------------------------------------------------
283
 
284
 
285
 
286
%>
287
<%
288
'---------------------- Run Before Page ---------------------------
289
 
290
' Get release details
291
Call GetFormDetails ( parSbomA, objRelCollectorA )
292
Call GetFormDetails ( parSbomB, objRelCollectorB )
293
 
31 ghuddy 294
multiPackagesEnabled = FALSE
295
 
29 jtweddle 296
If parSbomA <> "" AND parSbomB <> "" Then
297
 
31 ghuddy 298
   If Request("form_btn_comp") = "Get Issues" Then
299
      Call OpenInWindow ( SCRIPT_NAME &"?sbomA="& parSbomA &"&sbomB="& parSbomB )
300
   End If
29 jtweddle 301
 
31 ghuddy 302
   Call   GetBomDetails   (parSbomA, objSbomDetailsA)
303
   Call   GetBomDetails   (parSbomB, objSbomDetailsB)
304
 
305
   objSbomDetailsA("bom_full_version") = objSbomDetailsA("bom_name")&"   "&   objSbomDetailsA("bom_version") &"."& objSbomDetailsA("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
 
29 jtweddle 316
Else
31 ghuddy 317
   objSbomDetailsA("bom_full_version") = "Software Bill of Materials (SBOM)"
29 jtweddle 318
End If
319
 
320
'------------------------------------------------------------------
321
%>
322
<html>
31 ghuddy 323
   <head>
324
      <title>Deployment Manager - SBOM Issues Report</title>
325
      <meta http-equiv="Pragma" content="no-cache">
326
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
327
      <link rel="stylesheet" href="images/release_manager_style.css" type="text/css">
328
      <script language="JavaScript" src="scripts/common.js"></script>
329
      <script language="JavaScript" src="scripts/remote_scripting.js"></script>
330
      <script language="JavaScript" type="text/javascript">
331
         <!--
29 jtweddle 332
 
31 ghuddy 333
         function RequestSBOMCombo( paramString, rowId )
334
         {
335
            var requestURL = 'RequestSBOMCombo.asp';
29 jtweddle 336
 
31 ghuddy 337
            // Set ajax divname
338
            ajaxdivname = rowId;
29 jtweddle 339
 
31 ghuddy 340
            //Append the name to search for to the requestURL
341
            var url = requestURL + paramString;
29 jtweddle 342
 
31 ghuddy 343
            rowId.options[0] = new Option('Loading...','');
344
            rowId.selectedIndex = 0;
29 jtweddle 345
 
31 ghuddy 346
            //Create the xmlHttp object to use in the request
347
            //stateChangeHandler will fire when the state has changed, i.e. data is received back
348
            xmlHttp = GetXmlHttpObject(stateComboChangeHandler);
29 jtweddle 349
 
31 ghuddy 350
            //Send the xmlHttp get to the specified url
351
            //This is non-blocking (asynchronous)
352
            xmlHttp_Get(xmlHttp, url);
353
         }
29 jtweddle 354
 
31 ghuddy 355
         function RequestReleaseCombos( paramString, rowIdA, rowIdB )
356
         {
357
            var requestURL = 'RequestReleaseCombo.asp';
358
            // First release combo box.
29 jtweddle 359
 
31 ghuddy 360
            // Set ajax divname
361
            ajaxdivname = rowIdA;
362
 
363
            //Append the name to search for to the requestURL
364
            var url = requestURL + paramString;
365
 
366
            rowIdA.options[0] = new Option('Loading...','');
367
            rowIdA.selectedIndex = 0;
368
 
369
            //Create the xmlHttp object to use in the request
370
            //stateChangeHandler will fire when the state has changed, i.e. data is received back
371
            xmlHttp = GetXmlHttpObject(stateComboChangeHandler);
372
 
373
            //Send the xmlHttp get to the specified url
374
            //This is blocking (synchronous)
375
            xmlHttp_Get_Synch(xmlHttp, url);
376
 
377
 
378
            // Second release combo box.
379
 
380
            ajaxdivname = rowIdB;
381
 
382
            rowIdB.options[0] = new Option('Loading...','');
383
            rowIdB.selectedIndex = 0;
384
 
385
            //Create the xmlHttp object to use in the request
386
            //stateChangeHandler will fire when the state has changed, i.e. data is received back
387
            xmlHttp = GetXmlHttpObject(stateComboChangeHandler);
388
 
389
            //Send the xmlHttp get to the specified url
390
            //This is blocking (synchronous)
391
            xmlHttp_Get_Synch(xmlHttp, url);
392
         }
393
 
394
         function openSbom( elementId )
395
         {
396
            var url = 'Bom_Home.asp?bom_id=';
397
            var bom_id = document.getElementById(elementId).value;
398
 
399
            window.open( url + bom_id );
400
         }
401
 
402
         function setLeftOffset( elementId )
403
         {
404
            if ( document.getElementById(elementId) )
405
            {
406
               var offset = (getWindowWidth() / 2) - (document.getElementById(elementId).clientWidth / 2);
407
               document.getElementById(elementId).style.left = offset;
408
            }
409
         }
410
 
411
         function removePrompt ( elementId )
412
         {
413
            var selectElement = document.getElementById(elementId);
414
 
415
            if ( /^\d+$/.test(selectElement.options[0].value) == false)
416
            {
417
               selectElement.options[0] = null;
418
            }
419
         }
420
 
421
         function clearSelectBox ( elementId )
422
         {
423
            var selectElement = document.getElementById(elementId);
424
 
425
            selectElement.options.length = 0;
426
         }
427
         //-->
428
      </script>
429
   </head>
430
   <body onresize="setLeftOffset('loader');">
431
      <div align="center" class="report_header">
432
 
433
      <%=objSbomDetailsA("bom_full_version")%> Issues Report
434
 
435
      </div>
436
      <form name="FormName" method="post" action="<%=SCRIPT_NAME%>">
437
         <table width="100%"  border="0" cellspacing="10" cellpadding="0">
438
            <tr>
439
               <td align="left" class="body_col" colspan="2">Select SBOM To View</td>
440
            </tr>
441
            <tr>
442
               <td align="left">
443
                  <select name="proj" id="proj" class="form_item"
444
                     onchange="RequestReleaseCombos('?proj_id='+ this.value, FormName.rtagA, FormName.rtagB);removePrompt(this.id);clearSelectBox('sbomA');clearSelectBox('sbomB');">
445
                     <option value="">-- Select Project --</option>
446
                     <%
447
                     ' Currently set project to
448
                     'Dim temp_proj_id
449
                     'temp_proj_id = 142
450
 
451
                     OraDatabase.Parameters.Add "PROJ_ID",    objRelCollectorA("proj_id"),   ORAPARM_INPUT, ORATYPE_NUMBER
452
                     'OraDatabase.Parameters.Add "PROJ_ID",    temp_proj_id,   ORAPARM_INPUT, ORATYPE_NUMBER
453
 
454
                     Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ProjectsCombo.sql"), cint(0))
455
 
456
                     OraDatabase.Parameters.Remove "PROJ_ID"
457
 
458
                     While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
459
                        <option value="<%=rsQry("proj_id")%>" <%=rsQry("selected")%>><%=rsQry("proj_name")%></option>
460
                        <%rsQry.MoveNext
461
                     WEnd
462
 
463
                     rsQry.Close
464
                     Set rsQry = Nothing
465
                     %>
466
                  </select>
467
               </td>
468
               <td align="left" class="body_col">Select SBOM To Compare To</td>
469
            </tr>
470
            <tr>
471
               <td align="left" width="25%">
472
                  <select name="rtagA" id="rtagA" class="form_item" onchange="RequestSBOMCombo('?branch_id='+ this.value, FormName.sbomA);removePrompt(this.id);">
473
      <!--           <option value="">-- Select Branch --</option>           -->
474
                     <%
475
                     OraDatabase.Parameters.Add "PROJ_ID",    objRelCollectorA("proj_id"),   ORAPARM_INPUT,  ORATYPE_NUMBER
476
 
477
                     'OraDatabase.Parameters.Add "PROJ_ID",    temp_proj_id,   ORAPARM_INPUT,  ORATYPE_NUMBER
478
                     OraDatabase.Parameters.Add "BRANCH_ID",    objRelCollectorA("branch_id"),   ORAPARM_INPUT, ORATYPE_NUMBER
479
 
480
                     Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ReleasesCombo.sql"), cint(0))
481
 
482
                     OraDatabase.Parameters.Remove "PROJ_ID"
483
                     OraDatabase.Parameters.Remove "BRANCH_ID"
484
 
485
                     While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
486
                        <option value="<%=rsQry("branch_id")%>" <%=rsQry("selected")%>><%=rsQry("branch_name")%></option>
487
                        <%rsQry.MoveNext
488
                     WEnd
489
 
490
                     rsQry.Close
491
                     Set rsQry = Nothing
492
                     %>
493
                  </select>
494
               </td>
495
               <td align="left">
496
                  <select name="rtagB" id="rtagB" class="form_item" onchange="RequestSBOMCombo('?branch_id='+ this.value, FormName.sbomB);removePrompt(this.id);">
497
      <!--           <option value="">-- Select Branch --</option>           -->
498
                     <%
499
                     OraDatabase.Parameters.Add "PROJ_ID",    objRelCollectorB("proj_id"),   ORAPARM_INPUT,  ORATYPE_NUMBER
500
 
501
                     'OraDatabase.Parameters.Add "PROJ_ID",    temp_proj_id,   ORAPARM_INPUT,  ORATYPE_NUMBER
502
                     OraDatabase.Parameters.Add "BRANCH_ID",    objRelCollectorB("branch_id"),   ORAPARM_INPUT, ORATYPE_NUMBER
503
 
504
                     Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ReleasesCombo.sql"), cint(0))
505
 
506
                     OraDatabase.Parameters.Remove "PROJ_ID"
507
                     OraDatabase.Parameters.Remove "BRANCH_ID"
508
 
509
                     While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
510
                        <option value="<%=rsQry("branch_id")%>" <%=rsQry("selected")%>><%=rsQry("branch_name")%></option>
511
                        <%rsQry.MoveNext
512
                     WEnd
513
 
514
                     rsQry.Close
515
                     Set rsQry = Nothing
516
                     %>
517
                  </select>
518
               </td>
519
            </tr>
520
            <tr>
521
               <td align="left" width="25%">
522
                  <select name="sbomA" id="sbomA" class="form_item">
523
                     <%
524
                     OraDatabase.Parameters.Add "BOM_ID",    objRelCollectorA("bom_id"),   ORAPARM_INPUT,  ORATYPE_NUMBER
525
                     OraDatabase.Parameters.Add "BRANCH_ID",    objRelCollectorA("branch_id"),   ORAPARM_INPUT, ORATYPE_NUMBER
526
 
527
                     Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("SBOMCombo.sql"), cint(0))
528
 
529
                     OraDatabase.Parameters.Remove "BOM_ID"
530
                     OraDatabase.Parameters.Remove "BRANCH_ID"
531
 
532
                     While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
533
                        <option value="<%=rsQry("bom_id")%>" <%=rsQry("selected")%>><%=rsQry("version")%></option>
534
                        <%rsQry.MoveNext
535
                     WEnd
536
 
537
                     rsQry.Close
538
                     Set rsQry = Nothing
539
                     %>
540
                  </select>
541
               </td>
542
               <td align="left">
543
                  <select name="sbomB" id="sbomB" class="form_item">
544
                     <%
545
                     OraDatabase.Parameters.Add "BOM_ID",    objRelCollectorB("bom_id"),   ORAPARM_INPUT,  ORATYPE_NUMBER
546
                     OraDatabase.Parameters.Add "BRANCH_ID",    objRelCollectorB("branch_id"),   ORAPARM_INPUT, ORATYPE_NUMBER
547
 
548
                     Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("SBOMCombo.sql"), cint(0))
549
 
550
                     OraDatabase.Parameters.Remove "BOM_ID"
551
                     OraDatabase.Parameters.Remove "BRANCH_ID"
552
 
553
                     While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
554
                        <option value="<%=rsQry("bom_id")%>" <%=rsQry("selected")%>><%=rsQry("version")%></option>
555
                        <%rsQry.MoveNext
556
                     WEnd
557
 
558
                     rsQry.Close
559
                     Set rsQry = Nothing
560
                     %>
561
                  </select>
562
               </td>
563
            </tr>
564
            <%If parSbomA <> "" OR parSbomB <> "" Then%>
565
               <tr>
566
                  <td align="left" width="25%">
567
                     <%If parSbomA <> "" Then%>
568
                     <a href="javascript:;" onclick="openSbom('sbomA')" class="body_txt_drk">Go To SBOM A &raquo;</a>
569
                     <%End If%>
570
                  </td>
571
                  <td align="left">
572
                     <%If parSbomB <> "" Then%>
573
                     <a href="javascript:;" onclick="openSbom('sbomB')" class="body_txt_drk">Go To SBOM B &raquo;</a>
574
                     <%End If%>
575
                  </td>
576
               </tr>
577
            <%End If%>
578
            <tr>
579
               <td colspan="2">
580
                  <input class="form_btn_comp" name="form_btn_comp" type="submit" style="margin-right: 5px;" value="Get Issues" name="btn"/>
581
               </td>
582
            </tr>
583
         </table>
584
      </form>
585
 
586
      <!-- FORM holding a checkbox that allows user to modify the package vs issue renderering from one-per-issue to many-per-issue -->
587
      <form name="FormNameMultiplePackages" method="post" action='<%=SCRIPT_NAME & "?sbomA=" & parSbomA & "&sbomB=" & parSbomB%>'>
588
         <%If parSbomA <> "" OR parSbomB <> "" Then%>
589
            <table width="50%"  border="0" cellspacing="10" cellpadding="0">
590
               <tr>
591
                  <%If multiPackagesEnabled Then%>
592
                     <td width="1%" ><input name="multipackages" value="TRUE" type="checkbox" onclick="submit(); return false;" checked></td>
593
                  <%Else%>
594
                     <td width="1%" ><input name="multipackages" value="TRUE" type="checkbox" onclick="submit(); return false;"></td>
595
                  <%End If%>
596
                  <td align="left" class="body_col">Show multiple package/issue associations.</td>
597
               </tr>
598
            </table>
599
         <%End If%>
600
      </form>
601
 
602
      <%
603
      If parSbomA = "" OR parSbomB = "" Then%>
604
         <div align="center" class="report_msg">Select both SBOMs to compare.</div>
605
      <%ElseIf parSbomA = parSbomB Then%>
606
         <div align="center" class="report_msg">Select two different SBOMs to compare.</div>
607
      <%Else%>
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);">
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>
610
         <br>
611
         <%
612
         Dim issueCounter
613
 
614
         issueCounter = 0
615
 
616
         Call GetBomPackages( parSbomA, parSbomB, rsBomPackages )
617
 
618
         If rsBomPackages.RecordCount > 0 Then
619
 
620
            While (NOT rsBomPackages.BOF) AND (NOT rsBomPackages.EOF)
621
 
622
               pvIdList = rsBomPackages("pv_id")
623
 
624
               Call GetPackageDependencies( rsBomPackages("pv_id"), rsBomPackages("prev_pv_id"), rsPkgDeps )
625
 
626
               While (NOT rsPkgDeps.BOF) AND (NOT rsPkgDeps.EOF)
627
 
628
                  pvIdList = pvIdList & "," & rsPkgDeps("dpv_id")
629
 
630
                  rsPkgDeps.MoveNext
631
               WEnd
632
 
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
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.
635
               retValCQIssues = GetIssues( pvIdList, cqIssues )
636
 
637
               retValJIRAIssues = Get_JIRA_Issues( pvIdList, jiraIssues )
638
 
639
               If retValCQIssues = 0 OR retValJIRAIssues = 0 Then%>
640
                  <fieldset>
641
                     <legend style="padding: 0px 4px 3px 4px;" >
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>
643
                     </legend>
644
 
645
                     <%If retValCQIssues = 0 Then
646
 
647
                        Dim firstPackageRow
648
 
649
                        issueCounter = issueCounter + 1
650
                        %>
651
                        <table width="100%" border="0" cellspacing="2" cellpadding="3">
652
                           <tr>
653
                              <td background="images/bg_form_lightbluedark.gif" nowrap width="70px" class="form_field">Issue Id</td>
654
                              <td background="images/bg_form_lightbluedark.gif" nowrap width="65%" class="form_field">CLEARQUEST Issue Title</td>
655
                              <td background="images/bg_form_lightbluedark.gif" nowrap width="80px" class="form_field">Status</td>
656
                              <td background="images/bg_form_lightbluedark.gif" nowrap class="form_field">Package(s)</td>
657
                           </tr>
658
 
659
                           <%
660
                           While (NOT cqIssues.BOF) AND (NOT cqIssues.EOF)
661
 
662
                              Call GetPackageDetailsForIssue( cqIssues("iss_id"), pvIdList, objIssueDetails )
663
 
664
                              firstPackageRow = TRUE
665
                              Do While (NOT objIssueDetails.BOF) AND (NOT objIssueDetails.EOF)%>
666
                                 <tr>
667
                                    <%If firstPackageRow Then%>
668
                                       <%firstPackageRow = FALSE%>
669
 
670
                                       <td background="images/bg_form_lightgray.gif" valign="top" class="form_item"><%=cqIssues("iss_num")%></td>
671
                                       <td background="images/bg_form_lightgray.gif" valign="top" class="form_item"><%=cqIssues("summary")%></td>
672
                                       <td nowrap background="images/bg_form_lightgray.gif" valign="top" class="form_item"><%=cqIssues("status")%></td>
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
                                    <%End If%>
678
 
679
                                    <td nowrap background="images/bg_form_lightgray.gif" valign="top" class="form_item">
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">
681
                                          <%Response.Write(objIssueDetails("pkg_name") &" "& objIssueDetails("pkg_version"))%>
682
                                       </a>
683
                                    </td>
684
                                 </tr>
685
                                 <%
686
                                 objIssueDetails.MoveNext
687
                                 If multiPackagesEnabled = FALSE Then Exit Do
688
                              Loop
689
                              cqIssues.MoveNext
690
                           WEnd
691
                           %>
692
                        </table>
693
                     <%End If
694
 
695
                     If retValJIRAIssues = 0 Then
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
780
 
781
      End If%>
782
   </body>
29 jtweddle 783
</html>