Subversion Repositories DevTools

Rev

Rev 5924 | Rev 6646 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
5355 dpurdie 1
<%@LANGUAGE="VBSCRIPT"%>
2
<%
3
'=====================================================
4
'|                                                   |
5
'|                      BOM DIFF                     |
6
'|                                                   |
7
'=====================================================
8
%>
9
<%
10
Option explicit
11
' Good idea to set when using redirect
12
Response.Expires = 0    ' always load the page, dont store
13
%>
14
 
15
<%
16
'To enable the script timeout to 10 mins
17
Server.ScriptTimeout=1200
18
%>
19
<!--#include file="common/config.asp"-->
20
<!--#include file="common/globals.asp"-->
21
<!--#include file="common/formating.asp"-->
22
<!--#include file="common/common_subs.asp"-->
23
<!--#include file="common/common_dbedit.asp"-->
24
<!--#include file="common/_form_window_common.asp"-->
25
<!--#include file="common/_rtree_common.asp"-->
26
<%
27
' Set rfile parameter. This is a return page after Login
28
'Call objPMod.StoreParameter ( "rfile", "rtree.asp" )
29
'objPMod.PersistInQryString("proj_id")
30
'------------ ACCESS CONTROL ------------------
31
%>
32
 
33
<!--#include file="_access_control_general.asp"-->
34
<SCRIPT LANGUAGE="VBScript" RUNAT=SERVER SRC="class/classaspJSON.vbs"></SCRIPT>
35
<SCRIPT LANGUAGE="VBScript" RUNAT=SERVER SRC="common/base64encode.vbs"></SCRIPT> 
36
<SCRIPT LANGUAGE="VBScript" RUNAT=SERVER SRC="common/jiraIssues.vbs"></SCRIPT> 
37
<%
38
'------------ Variable Definition -------------
39
Dim rsQry
40
Dim objRelCollectorA
41
Dim objRelCollectorB
42
Dim parRtagA
43
Dim parRtagB
44
Dim parSBOMA
45
Dim parSBOMB
46
Dim dDiffFilter
47
Dim colorA, colorB, ChangeTypeIcon
48
Dim btnMerge, btnRemove
49
Dim rowId
50
Dim email
51
Dim genReport
52
Dim FSO
53
Dim NewTextFile
54
Dim pkgA, pkgB, pkgname, delimiter, rsQryA, rsQryB, rsQryCommentsA, rsQryCommentsB, sqlstrA, counterA, sqlstrB, sqlstrC, counterB
55
Dim SSsql, retVal, rsCQ, DEVIiss
56
Dim a, b, c, d, pkgversion, errormsg
57
Dim VersionList
58
 
59
 
60
'------------ Constants Declaration -----------
61
Const LIMG_UPDATED = "<img src='images/i_updated.gif' width='11' height='11' border='0' hspace='5' align='absmiddle' title='Updated'>"
62
Const LIMG_RIPPLED = "<img src='images/i_rippled.gif' width='11' height='11' border='0' hspace='5' align='absmiddle' title='Rippled'>"
63
Const LIMG_ADDED = "<img src='images/i_added.gif' width='11' height='11' border='0' hspace='5' align='absmiddle' title='Added'>"
64
Const LIMG_REMOVED = "<img src='images/i_removed.gif' width='11' height='11' border='0' hspace='5' align='absmiddle' title='Removed'>"
65
Const LIMG_FILTER_ON = "<img src='images/i_data_table.gif' border='0' align='absmiddle' hspace='0' title='Filter in use.'>"
66
Const LIMG_FILTER_OFF = "<img src='images/i_data_table_off.gif' border='0' align='absmiddle' hspace='0' title='Filter not in use.'>"
67
Const LIMG_DROP_DOWN_ARROW = "<img src='images/i_drop_down_arrow.gif' width='5' height='15' hspace='1' border='0' align='absmiddle'>"
68
Const LCOLOR_NOT_CHANGED = "#F5F5F5"
69
Const LCOLOR_CHANGED = "#d2f7c9"
70
Const LCOLOR_RIPPLED = "#D8F8F8"
71
Const LCOLOR_BLANK = "#FFFFFF"
72
Const LIMG_MERGE = "<img src='images/bt_move_all_right.gif' title='Click to merge.' border='0'>"
73
Const LIMG_MERGE_WARN = "<img src='images/bt_move_warn_right.gif' title='Right hand side version is newer.' border='0'>"
74
Const LIMG_REMOVE = "<img src='images/bt_remove.gif' title='Remove this version from release.' border='0'>"
75
Const LIMG_UNDO = "<img src='images/bt_undo.gif' title='Undo merge/remove.' border='0'>"
76
'------------ Variable Init -------------------
77
parRtagA = Request("rtagA")
78
parRtagB = Request("rtagB")
79
parSBOMA = Request("sbomA")
80
parSBOMB = Request("sbomB")
81
Set objRelCollectorA = CreateObject("Scripting.Dictionary")
82
Set objRelCollectorB = CreateObject("Scripting.Dictionary")
83
Set dDiffFilter = CreateObject("Scripting.Dictionary")
84
 
85
'----------------------------------------------
86
If Request("btn") = "Mail Me Report" Then
87
    email = true
88
    genReport = true
89
End If
90
If Request("btn") = "Show Me Report" Then
91
    genReport = true
92
End If
93
%>
94
<%
95
'--------------------------------------------------------------------------------------------------------------------------
96
Sub GetDiffFilterValues ( outDepFilter )
97
    Dim FilterVal, aFilterValues
98
 
99
    If Request.Cookies(enum_RELMGR_COOKIE_DOMAIN)(COOKIE_HIDE_DIFF_FILTER) <> "" Then
100
        aFilterValues = Split( Replace( Request.Cookies(enum_RELMGR_COOKIE_DOMAIN)(COOKIE_HIDE_DIFF_FILTER), " ", ""), ",")
101
 
102
        For Each FilterVal In aFilterValues
103
            outDepFilter.Item (CStr( FilterVal )) = ""
104
        Next
105
 
106
    End If
107
 
108
End Sub
109
'--------------------------------------------------------------------------------------------------------------------------
110
Sub Javascript()
111
    NewTextFile.WriteLine("<script language=""JavaScript"" type=""text/javascript"">")
112
    NewTextFile.WriteLine("function MM_findObj(n, d) { //v4.0")
113
    NewTextFile.WriteLine("  var p,i,x;")
114
    NewTextFile.WriteLine("  if(!d) d=document; ")
115
    NewTextFile.WriteLine("  if((p=n.indexOf(""?""))>0&&parent.frames.length) {")
116
    NewTextFile.WriteLine("  	d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);")
117
    NewTextFile.WriteLine("  }")
118
    NewTextFile.WriteLine("  if(!(x=d[n])&&d.all) x=d.all[n]; ")
119
    NewTextFile.WriteLine("  for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];")
120
    NewTextFile.WriteLine("  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);")
121
    NewTextFile.WriteLine("  if(!x && document.getElementById) x=document.getElementById(n); ")
122
    NewTextFile.WriteLine("  return x;")
123
    NewTextFile.WriteLine("}")
124
 
125
    NewTextFile.WriteLine("function toggleSPAN(x) {")
126
    NewTextFile.WriteLine("    var el = MM_findObj('spanPkgInfo' + x);")
127
    NewTextFile.WriteLine("    if (el.style.display != ""block"") {")
128
    NewTextFile.WriteLine("        el.style.display = ""block"";")
129
    NewTextFile.WriteLine("    } else {")
130
    NewTextFile.WriteLine("        el.style.display = ""none"";")
131
    NewTextFile.WriteLine("    }")
132
    NewTextFile.WriteLine("}")
133
 
134
    NewTextFile.WriteLine("function MM_getElementsByClassName(cn) {")
135
    NewTextFile.WriteLine("    var allT=document.getElementsByTagName('*'), allCN=[], i=0, a;")
136
    NewTextFile.WriteLine("    while(a=allT[i++]) {")
137
    NewTextFile.WriteLine("        a.className==cn ? allCN[allCN.length]=a : null;")
138
    NewTextFile.WriteLine("    }")
139
    NewTextFile.WriteLine("    return allCN")
140
    NewTextFile.WriteLine("}")
141
 
142
    NewTextFile.WriteLine("    function MM_toggleAll(cn, show){")
143
    NewTextFile.WriteLine("        var allEl = MM_getElementsByClassName(cn);")
144
    NewTextFile.WriteLine("        for (var ii=0; ii<allEl.length;ii++){")
145
    NewTextFile.WriteLine("            var el = allEl[ii];")
146
    NewTextFile.WriteLine("            if(show) {")
147
    NewTextFile.WriteLine("                el.style.display = ""block"";")
148
    NewTextFile.WriteLine("            } else {")
149
    NewTextFile.WriteLine("                el.style.display = ""none"";")
150
    NewTextFile.WriteLine("            }")
151
    NewTextFile.WriteLine("        }")
152
    NewTextFile.WriteLine("    }")
153
 
154
    NewTextFile.WriteLine("</script>")
155
End Sub
156
'--------------------------------------------------------------------------------------------------------------------------
157
Sub GetFixedIssues(pv_id, issues)
158
    If issues <> "Filter Issues" Then
5924 dpurdie 159
        Set sqlstrC = OraDatabase.DbCreateDynaset( _
160
                "SELECT iss_db, iss_id, iss_state, notes FROM CQ_ISSUES" &_
161
                " WHERE pv_id="& pv_id &" AND iss_state = "& enumISSUES_STATE_FIXED _
162
                , cint(0))
5355 dpurdie 163
 
164
        If sqlstrC.RecordCount <> 0 Then
165
            NewTextFile.WriteLine()
166
            NewTextFile.WriteLine("<blockquote><blockquote>Fixed Issues:</blockquote></blockquote>")
167
            NewTextFile.WriteLine("<blockquote><blockquote><blockquote><table class='fixed_issues' width='100%'>")
168
            NewTextFile.WriteLine("<tr>")
169
            NewTextFile.WriteLine("<td width='10%' class='form_field'>Issue Id</td>")
170
            NewTextFile.WriteLine("<td width='55%' class='form_field'>Summary</td>")
171
            NewTextFile.WriteLine("<td width='10%' class='form_field'>Issue Type</td>")
172
            NewTextFile.WriteLine("<td width='15%' class='form_field'>Priority</td>")
173
            NewTextFile.WriteLine("<td width='10%' class='form_field'>Status</td>")
174
            NewTextFile.WriteLine("</tr>")
175
 
176
            While ((NOT sqlstrC.BOF) AND (NOT sqlstrC.EOF))
177
                DEVIiss = "-1"
178
 
179
                If CInt(sqlstrC("iss_db")) = CInt(enumCLEARQUEST_DEVI_ID) Then
180
                    DEVIiss = DEVIiss &","& sqlstrC("iss_id")
181
                End If
182
 
183
                SSsql = ReadFile( QUERIES_PATH & "\cq_issues.sql" )
184
                SSsql = Replace( SSsql, "/*enumCLEARQUEST_DEVI_ID*/", enumCLEARQUEST_DEVI_ID)
185
                SSsql = Replace( SSsql, "/*DEVIiss*/", DEVIiss)
186
 
187
                retVal = Get_CQ_Issues ( SSsql, rsCQ )
188
 
189
                NewTextFile.WriteLine("<tr>")
190
                NewTextFile.WriteLine("<td nowrap class='form_item'>"&rsCQ("iss_num")&"</td>")
191
 
192
                NewTextFile.WriteLine("<td class='form_item'>"&NewLine_To_BR ( To_HTML ( rsCQ("summary") ) )&"</td>")
193
                NewTextFile.WriteLine("<td class='form_item'>"&rsCQ("issue_type")&"</td>")
194
                NewTextFile.WriteLine("<td class='form_item'>"&rsCQ("priority")&"</td>")
195
                NewTextFile.WriteLine("<td class='form_item'>"&rsCQ("Status")&"</td>")
196
                NewTextFile.WriteLine("</tr>")
197
 
198
                sqlstrC.MoveNext
199
 
200
            Wend
201
 
202
            NewTextFile.WriteLine( "                        </table></blockquote></blockquote></blockquote> 		")
203
        End If
204
 
205
        '
206
        ' Must also handle Jira Issues
207
 
208
        Dim issueInfo, el, key
209
        Set issueInfo = CreateObject( "Scripting.Dictionary" )
210
        Call getJiraIssueDetails(pv_id, issueInfo, 1)
211
        If issueInfo.Count > 0 Then
212
            ' Table Header
213
            NewTextFile.WriteLine()
214
            NewTextFile.WriteLine("<blockquote><blockquote>Jira Issues:</blockquote></blockquote>")
215
            NewTextFile.WriteLine("<blockquote><blockquote><blockquote><table class='fixed_issues' width='100%'>")
216
            NewTextFile.WriteLine("<tr>")
217
            NewTextFile.WriteLine("<td width='8%' class='form_field'>Issue Id</td>")
218
            NewTextFile.WriteLine("<td width='58%' class='form_field'>Summary</td>")
219
            NewTextFile.WriteLine("<td width='8%' class='form_field'>Issue Type</td>")
220
            NewTextFile.WriteLine("<td width='10%' class='form_field'>Priority</td>")
221
            NewTextFile.WriteLine("<td width='8%' class='form_field'>Status</td>")
222
            NewTextFile.WriteLine("<td width='8%' class='form_field'>Resolution</td>")
223
            NewTextFile.WriteLine("</tr>")
224
 
225
            ' Table Body
226
            For Each key In issueInfo
227
                Set el = issueInfo.item(key)
228
 
229
                NewTextFile.WriteLine("<tr>")
230
                NewTextFile.WriteLine("<td nowrap class='form_item'>"&key&"</td>")
231
                NewTextFile.WriteLine("<td class='form_item'>"&NewLine_To_BR ( To_HTML ( el.item("summary") ) )&"</td>")
232
                NewTextFile.WriteLine("<td class='form_item'>"&el.item("issuetype")&"</td>")
233
                NewTextFile.WriteLine("<td class='form_item'>"&el.item("priority")&"</td>")
234
                NewTextFile.WriteLine("<td class='form_item'>"&el.item("status")&"</td>")
235
                NewTextFile.WriteLine("<td class='form_item'>"&el.item("resolution")&"</td>")
236
                NewTextFile.WriteLine("</tr>")
237
            Next
238
            NewTextFile.WriteLine( "                        </table></blockquote></blockquote></blockquote> 		")
239
        Set issueInfo = nothing
240
        End If
241
    End If
242
End Sub
243
'--------------------------------------------------------------------------------------------------------------------------
244
Function LastPvId(pvId)
245
    Dim qryA
5924 dpurdie 246
    Set qryA = OraDatabase.DbCreateDynaset("SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="&pvId, cint(0))
5355 dpurdie 247
 
248
    LastPvId = pvId
249
 
250
    If pvId <> qryA("last_pv_id") Then
251
        LastPvId = qryA("last_pv_id")
252
    Else
253
        errormsg = true
254
    End If
255
 
256
    qryA.Close()
257
    Set qryA = Nothing
258
 
259
End Function
260
'--------------------------------------------------------------------------------------------------------------------------
261
Sub PreviousVersions(a, b, versionA, versionB, data, issues)
262
    NewTextFile.WriteLine()
263
    NewTextFile.WriteLine("<b>Versions Between: "&versionA&" and "&versionB&"</b>")
264
 
265
    If CLng(a) < CLng(b) Then
266
        While CLng(a) < CLng(b)
267
            b = LastPvId(b)
268
            If CLng(a) < CLng(b) Then
269
                VersionList = VersionList + ","& b &""
270
                Call Comments(b, data)
271
                Call GetFixedIssues(b, issues)
272
            End If
273
        Wend
274
    End If
275
 
276
    If CLng(b) < CLng(a) Then
277
        While CLng(b) < CLng(a)
278
            a = LastPvId(a)
279
            If CLng(b) < CLng(a) Then
280
                VersionList = VersionList + ","& a &""
281
                Call Comments(a, data)
282
                Call GetFixedIssues(a, issues)
283
            End If
284
        Wend
285
    End If
286
 
287
End Sub
288
'--------------------------------------------------------------------------------------------------------------------------
289
Sub GetDependencies(pv_id_a, pv_id_b, versionA, versionB, comments, issues)
290
    On Error Resume Next
291
 
5924 dpurdie 292
    Set sqlstrA = OraDatabase.DbCreateDynaset( _
293
            "select distinct dpv_id " &_
294
            " from package_dependencies" &_
295
            " where pv_id IN ("& pv_id_b &")" &_
296
            "   and dpv_id NOT IN (SELECT dpv_id from package_dependencies where pv_id = "& pv_id_a &")" &_
297
	        " order by dpv_id desc", cint(0))
5355 dpurdie 298
 
299
    If sqlstrA.RecordCount <> 0 Then
300
        NewTextFile.WriteLine()
301
        NewTextFile.WriteLine("<b>Dependencies Changed Between "&versionA&" and "&versionB&":</b>")
302
 
303
        While ((NOT sqlstrA.BOF) AND (NOT sqlstrA.EOF))
304
            Call dependencyComments(sqlstrA("dpv_id"), comments)
305
            Call GetFixedIssues(sqlstrA("dpv_id"), issues)
306
            sqlstrA.MoveNext
307
        Wend
308
 
309
    End If
310
 
311
    sqlstrA.Close()
312
    Set sqlstrA = Nothing
313
 
314
End Sub
315
'--------------------------------------------------------------------------------------------------------------------------
316
Sub dependencyComments(pv_id, comments)
317
 
5924 dpurdie 318
        Set sqlstrB = OraDatabase.DbCreateDynaset("SELECT * FROM PACKAGE_VERSIONS pv, PACKAGES pkg WHERE pkg.pkg_id = pv.pkg_id AND PV_ID ="&pv_id, cint(0))
5355 dpurdie 319
        NewTextFile.WriteLine("<blockquote><blockquote><span class="&chr(34)&"highlight_text"&chr(34)&">"& sqlstrB("pkg_name") &" "& sqlstrB("pkg_version") &"</font></span></blockquote></blockquote>")
320
 
321
        If comments <> "Filter Comments" Then
322
    NewTextFile.WriteLine("<blockquote><blockquote>Comments:</blockquote></blockquote>")
323
    NewTextFile.Write("<blockquote><blockquote><blockquote>"& TextToHTML(sqlstrB("comments")) &"</blockquote></blockquote></blockquote>")
324
        End If
325
 
326
        sqlstrB.Close()
327
        Set sqlstrB = nothing
328
End Sub
329
'--------------------------------------------------------------------------------------------------------------------------
330
Sub pkg_Version(pv)
331
    Dim qry
5924 dpurdie 332
    Set qry = OraDatabase.DbCreateDynaset("SELECT PKG_VERSION FROM PACKAGE_VERSIONS WHERE PV_ID="&pv, cint(0))
5355 dpurdie 333
    pkgversion = qry("pkg_version")
334
    qry.Close()
335
    Set qry = Nothing
336
End Sub
337
'--------------------------------------------------------------------------------------------------------------------------
338
Sub Comments(Pv_Id, data)
339
        Dim comments
5924 dpurdie 340
        Set comments = OraDatabase.DbCreateDynaset("SELECT COMMENTS, PKG_VERSION FROM PACKAGE_VERSIONS WHERE PV_ID="&Pv_id, cint(0))
5355 dpurdie 341
        'If comments("comments") <> "Rippled Build." Then
342
            NewTextFile.WriteLine("<blockquote><blockquote><span class="&chr(34)&"highlight_text"&chr(34)&">Version: "& comments("pkg_version")&"</span></blockquote></blockquote>")
343
            If data <> "Filter Comments" Then
344
                If comments("comments") <> "" Then
345
                    NewTextFile.WriteLine("<blockquote><blockquote>Comments: </blockquote></blockquote>")
346
                    NewTextFile.WriteLine("<blockquote><blockquote><blockquote>"& TextToHTML(comments("comments")) &"</blockquote></blockquote></blockquote>")
347
                End If
348
            End If
349
        'End If
350
End Sub
351
'--------------------------------------------------------------------------------------------------------------------------
352
Sub Release(pvId)
353
    Dim release
5924 dpurdie 354
    Set release = OraDatabase.DbCreateDynaset("SELECT INSERT_STAMP FROM RELEASE_CONTENT WHERE PV_ID="&pvId, cint(0))
5355 dpurdie 355
 
356
    If release("insert_stamp") <> "" Then
357
        NewTextFile.Write(release("insert_stamp"))
358
    Else
359
        NewTextFile.Write("Version Not Used.")
360
    End If
361
 
362
End Sub
363
'--------------------------------------------------------------------------------------------------------------------------
364
Sub Header()
365
    NewTextFile.WriteLine("<html>")
366
    NewTextFile.WriteLine("<head>")
367
End Sub
368
'--------------------------------------------------------------------------------------------------------------------------
369
Sub Footer()
370
    NewTextFile.WriteLine("</body>")
371
    NewTextFile.WriteLine("</html>")
372
End Sub
373
'--------------------------------------------------------------------------------------------------------------------------
374
Sub Styles()
375
  NewTextFile.WriteLine("<style type="&chr(34)&"text/css"&chr(34)&">")
376
  NewTextFile.WriteLine("body { font-family:Verdana,Arial,Helvetica,sans-serif; }")
377
  NewTextFile.WriteLine("table { border-collapse:collapse; }")
378
  NewTextFile.WriteLine("td { border-width:1; border-style:solid; border-color:black; padding:3 5 3 5; }")
379
  NewTextFile.WriteLine(".fixed_issues { border-width:1; border-style:solid; border-color:black; }")
380
  NewTextFile.WriteLine(".page_title { color:red; font-size:110%; text-align:center; }")
381
  NewTextFile.WriteLine(".highlight_text { color:blue; }")
382
  NewTextFile.WriteLine(".form_field { background-color:#EAE5D7; font:bold 70% Tahoma,sans-serif; }")
383
  NewTextFile.WriteLine(".form_item { background-color:#EAE5D7; color:red; font:bold 70% Tahoma,sans-serif; vertical-align:top; }")
384
  NewTextFile.WriteLine("</style>")
385
End Sub
386
'--------------------------------------------------------------------------------------------------------------------------
387
Function GetIsDiffFilterInUseIcon()
388
    GetIsDiffFilterInUseIcon = LIMG_FILTER_OFF & LIMG_DROP_DOWN_ARROW
389
 
390
    If dDiffFilter.Count > 0 Then
391
        GetIsDiffFilterInUseIcon = LIMG_FILTER_ON & LIMG_DROP_DOWN_ARROW
392
    End If
393
 
394
End Function
395
'--------------------------------------------------------------------------------------------------------------------------
396
Function GetIsDiffFilterChecked( nFilterId )
397
 
398
    If dDiffFilter.Exists ( CStr(nFilterId)  ) Then
399
        GetIsDiffFilterChecked = "checked"
400
    End If
401
 
402
End Function
403
'---------------------------------------------------------------------------------------------------------------------------
404
Function  Get_CQ_Issues ( SSsql, OOrsCQ )
405
 
406
    On Error Resume Next
407
    Set OOrsCQ = OraDatabase.DbCreateDynaset( SSsql, cint(0))
408
    Get_CQ_Issues = Err.Number
409
 
410
End Function
411
'--------------------------------------------------------------------------------------------------------------------------
412
Public Function TextToHTML ( sString )
413
    Dim mString
414
 
415
    If (sString = "") OR IsNull(sString) Then Exit Function
416
 
417
    mString = Server.HTMLEncode( sString )
418
    mString = Replace(mString, VBNewLine, "<br>")
419
 
420
    TextToHTML = mString
421
End Function
422
'--------------------------------------------------------------------------------------------------------------------------
423
Sub GetFormDetails ( nSourceSBOM, ByRef outobjDetails )
424
    Dim rsQry, query
425
 
426
    ' Exit if nSourceRtagId is empty
427
    If nSourceSBOM = "" Then Exit Sub
428
 
429
    OraDatabase.Parameters.Add "SBOM",  nSourceSBOM,        ORAPARM_INPUT, ORATYPE_NUMBER
430
 
431
    query = _
432
	" SELECT pr.PROJ_NAME ||' &gt; '|| br.BRANCH_NAME ||' &gt; '|| b.BOM_VERSION ||'.'||b.BOM_LIFECYCLE  AS LOCATION, "&_
433
	"        pr.PROJ_ID, b.BOM_ID, br.BRANCH_ID, b.IS_READONLY"&_
434
	"  FROM BRANCHES br,"&_
435
	"  		BOMS b,"&_
436
	"  	    DM_PROJECTS pr"&_
437
	" WHERE br.PROJ_ID = pr.PROJ_ID"&_
438
	" 	AND b.BRANCH_ID = br.BRANCH_ID"&_
439
	"   AND b.BOM_ID = :SBOM"
440
 
441
    Set rsQry = OraDatabase.DbCreateDynaset( query, ORADYN_DEFAULT )
442
 
443
    OraDatabase.Parameters.Remove "SBOM"
444
 
445
    If rsQry.RecordCount > 0 Then
446
        outobjDetails.Item ("location") = rsQry("location")
447
        outobjDetails.Item ("official") = rsQry("IS_READONLY")
448
        outobjDetails.Item ("proj_id") = rsQry("proj_id")
449
        outobjDetails.Item ("branch_id") = rsQry("branch_id")
450
        outobjDetails.Item ("bom_id") = rsQry("bom_id")
451
    Else
452
        Err.Raise 8, "Sub GetFormDetails in "& SCRIPT_NAME, "Empty record set returned. nSourceSBOM="& nSourceSBOM
453
    End If
454
 
455
    If outobjDetails.Item ("location") = "" Then
456
        outobjDetails.Item ("location") = "N"
457
    End If
458
 
459
    rsQry.Close
460
    Set rsQry = Nothing
461
 
462
End Sub
463
'--------------------------------------------------------------------------------------------------------------------------
464
Sub GetDiffStateIcon( nDiffState, outIcon )
465
 
466
    Select Case nDiffState
467
        Case "U"
468
            outIcon  = LIMG_UPDATED
469
        Case "UW"
470
            outIcon  = LIMG_UPDATED
471
        Case "A"
472
            outIcon = LIMG_ADDED
473
        Case "R"
474
            outIcon = LIMG_REMOVED
475
        Case "UR"
476
            outIcon = LIMG_RIPPLED
477
        Case Else
478
            outIcon = ""
479
    End Select
480
 
481
End Sub
482
'--------------------------------------------------------------------------------------------------------------------------
483
%>
484
<%
485
'------------ RUN BEFORE PAGE RENDER ----------
486
If Request("btn") = "Exit" Then
487
    Call OpenInWindow ( "reports.asp" )
488
End If
489
 
490
' Get release details
491
Call GetFormDetails ( parSBOMA, objRelCollectorA )
492
Call GetFormDetails ( parSBOMB, objRelCollectorB )
493
 
494
If Request("btn") = "Swap Compare" Then
495
    Call OpenInWindow ( SCRIPT_NAME &"?sbomA="& parSBOMB &"&sbomB="& parSBOMA &"&rtagA="& parRtagB &"&rtagB="& parRtagA )
496
End If
497
 
498
If Request("btn") = "Hide" Then
499
    ' Store filter in cookie
500
    Response.Cookies(enum_RELMGR_COOKIE_DOMAIN)(COOKIE_HIDE_DIFF_FILTER) = Request("difilter")
501
End If
502
 
503
 
504
Call GetDiffFilterValues ( dDiffFilter )
505
'----------------------------------------------
506
%>
507
<html>
508
<head>
509
<title>Deployment Manager SBOM Differences</title>
510
<link rel="shortcut icon" href="<%=FavIcon%>"/>
511
<meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
512
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
513
<link rel="stylesheet" href="scripts/deployment_manager.css" type="text/css">
514
<link rel="stylesheet" href="images/release_manager_style.css" type="text/css">
515
<link rel="stylesheet" href="images/navigation.css" type="text/css">
516
<script language="JavaScript" src="scripts/common.js"></script>
517
<script language="JavaScript" src="scripts/remote_scripting.js"></script>
518
<script language="JavaScript" type="text/javascript">
519
<!--
520
 
521
function RequestReleaseCombo( paramString, rowId )
522
{
523
    var requestURL = 'RequestReleaseCombo.asp';
524
 
525
    // Set ajax divname
526
    ajaxdivname = rowId;
527
 
528
    //Append the name to search for to the requestURL
529
    var url = requestURL + paramString;
530
 
531
    //Progress
532
    //alert(MM_findObj( rowId ));
533
 
534
    //MM_findObj( rowId ).options[0] = new Option('Loading...','');
535
    //MM_findObj( rowId ).selectedIndex = 0;
536
    rowId.options[0] = new Option('Loading...','');
537
    rowId.selectedIndex = 0;
538
 
539
 
540
    //Create the xmlHttp object to use in the request
541
    //stateChangeHandler will fire when the state has changed, i.e. data is received back
542
    // This is non-blocking (asynchronous)
543
    xmlHttp = GetXmlHttpObject(stateComboChangeHandler);
544
 
545
    //Send the xmlHttp get to the specified url
546
    xmlHttp_Get(xmlHttp, url);
547
 
548
 
549
}
550
 
551
function RequestSBOMCombo( paramString, rowId ){
552
    var requestURL = 'RequestSBOMCombo.asp';
553
 
554
    // Set ajax divname
555
    ajaxdivname = rowId;
556
 
557
    //Append the name to search for to the requestURL
558
    var url = requestURL + paramString;
559
 
560
    //Progress
561
    //alert(MM_findObj( rowId ));
562
 
563
    //MM_findObj( rowId ).options[0] = new Option('Loading...','');
564
    //MM_findObj( rowId ).selectedIndex = 0;
565
    rowId.options[0] = new Option('Loading...','');
566
    rowId.selectedIndex = 0;
567
 
568
 
569
    //Create the xmlHttp object to use in the request
570
    //stateChangeHandler will fire when the state has changed, i.e. data is received back
571
    // This is non-blocking (asynchronous)
572
    xmlHttp = GetXmlHttpObject(stateComboChangeHandler);
573
 
574
    //Send the xmlHttp get to the specified url
575
    xmlHttp_Get(xmlHttp, url);
576
 
577
 
578
}
579
 
580
//-->
581
</script>
582
 
583
</head>
584
<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0">
585
<form name="FormName" method="post" action="<%=SCRIPT_NAME%>">
586
    <!-- HEADER -->
587
    <!--#include file="_header.asp"-->
588
    <!-- BODY ---->
589
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
590
        <tr>
591
            <td width="20%">
592
            <td width="60%">
593
            <td width="20%">
594
        </tr>
595
        <tr>
596
    <td background="images/bg_lite_blue.gif" valign="top">
597
 
598
 
599
    <!-- SELECT SBOM A ---------------------------------------------->
600
 
601
    <br>
602
      <table width="100%"  border="0" cellspacing="10" cellpadding="0">
603
 
604
        <tr>
605
          <td align="left" class="body_col"><img src="images/i_rtag_open_mode.gif" border="0" align="absmiddle" width="15" height="13">&nbsp;Select SBOM A<hr size="1px" color="Olive" noshade></td>
606
        </tr>
607
        <tr>
608
          <td align="left">
609
          <select name="projA" class="form_item" onChange="RequestReleaseCombo( '?proj_id='+ this.value, FormName.rtagA );">
610
              <option value="">-- Select Project --</option>
611
              <%
612
              OraDatabase.Parameters.Add "PROJ_ID",     objRelCollectorA.Item("proj_id"),   ORAPARM_INPUT, ORATYPE_NUMBER
613
 
614
              Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ProjectsCombo.sql"), cint(0))
615
 
616
              OraDatabase.Parameters.Remove "PROJ_ID"
617
 
618
              While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
619
                <option value="<%=rsQry("proj_id")%>" <%=rsQry("selected")%>><%=rsQry("proj_name")%></option>
620
              <%rsQry.MoveNext
621
              WEnd
622
 
623
              rsQry.Close
624
              Set rsQry = Nothing
625
            %>
626
          </select></td>
627
        </tr>
628
        <tr>
629
          <td align="left">
630
 
631
              <select name="rtagA" id="rtagA" class="form_item" onChange="RequestSBOMCombo( '?branch_id='+ this.value, FormName.sbomA );">
632
              <option value="">-- Select Branch --</option>
633
              <%
634
              OraDatabase.Parameters.Add "PROJ_ID",     objRelCollectorA.Item("proj_id"),   ORAPARM_INPUT,  ORATYPE_NUMBER
635
              OraDatabase.Parameters.Add "BRANCH_ID",   objRelCollectorA.Item("branch_id"), ORAPARM_INPUT, ORATYPE_NUMBER
636
 
637
              Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ReleasesCombo.sql"), cint(0))
638
 
639
              OraDatabase.Parameters.Remove "PROJ_ID"
640
              OraDatabase.Parameters.Remove "BRANCH_ID"
641
 
642
              While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
643
                <option value="<%=rsQry("branch_id")%>" <%=rsQry("selected")%>><%=rsQry("branch_name")%></option>
644
              <%rsQry.MoveNext
645
              WEnd
646
 
647
              rsQry.Close
648
              Set rsQry = Nothing
649
              %>
650
          </select></td>
651
        </tr>
652
        <tr>
653
          <td align="left">
654
 
655
 
656
          <select name="sbomA" id="sbomA" class="form_item">
657
            <%
658
              OraDatabase.Parameters.Add "BOM_ID",  objRelCollectorA.Item("bom_id"),    ORAPARM_INPUT,  ORATYPE_NUMBER
659
              OraDatabase.Parameters.Add "BRANCH_ID",   objRelCollectorA.Item("branch_id"), ORAPARM_INPUT, ORATYPE_NUMBER
660
 
661
              Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("SBOMCombo.sql"), cint(0))
662
 
663
              OraDatabase.Parameters.Remove "BOM_ID"
664
              OraDatabase.Parameters.Remove "BRANCH_ID"
665
 
666
              While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
667
            <option value="<%=rsQry("bom_id")%>" <%=rsQry("selected")%>><%=rsQry("version")%></option>
668
            <%rsQry.MoveNext
669
              WEnd
670
 
671
              rsQry.Close
672
              Set rsQry = Nothing
673
              %>
674
          </select>
675
 
676
          </td>
677
        </tr>
678
        <%If (parRtagA <> "") Then%>
679
        <tr>
680
          <td align="left"><a href="Bom_Home.asp?bom_id=<%=parSBOMA%>" class="body_txt_drk">Go To SBOM A &raquo;</a></td>
681
        </tr>
682
        <%End If%>
683
    </table>
684
 
685
    <!-- SELECT SBOM A END ---------------------------------------------->
686
    </td>
687
    <td rowspan="2" valign="top" background="images/bg_lght_gray.gif" align="center">
688
      <!-- DIFF -------------------------------------------------------->
689
      <br>
690
 
691
 
692
 
693
 
694
      <table width="100%" border="0" cellspacing="10" cellpadding="0">
695
        <tr>
696
          <td>
697
 
698
 
699
 
700
            <table width="100%" border="0" cellspacing="0" cellpadding="0">
701
              <tr>
702
                <td width="1%"></td>
703
                <td width="100%" align="left" class="form_ttl">DIFF SBOM
704
                <%If genReport Then%>
705
                &nbsp;[Generating Report]
706
                <%End If%>
707
                </td>
708
                <td width="1%"></td>
709
              </tr>
710
              <tr>
711
                <td align="left" valign="top" background="images/lbox_bg_blue.gif"><img src="images/lbox_tl_cnr_b.gif" width="13" height="13"></td>
712
                <td background="images/lbox_bg_blue.gif" align="left" class="wform_ttl">&nbsp;
713
                </td>
714
                <td align="right" valign="top" background="images/lbox_bg_blue.gif"><img src="images/lbox_tr_cnr_b.gif" width="13" height="13"></td>
715
              </tr>
716
              <tr>
717
                <td width="1%" bgcolor="#FFFFFF"><img src="images/h_trsp_dot.gif" width="10" height="100"></td>
718
                <td bgcolor="#FFFFFF" valign="top" class="form_item">
719
 
720
 
721
 
722
                <table width="100%"  border="0" cellspacing="0" cellpadding="5">
723
                  <tr>
724
                    <td width="100%" bgcolor="#DAD7C8">
725
                    <input type="submit" name="btn" value="Compare" class="form_btn_comp" style="margin-right:5px;">
726
                    <input type="submit" name="btn" value="Swap Compare" class="form_btn_comp">
727
                    <span class="body_txt">
728
                        <input name="btn" type="submit" class="form_btn" value="Mail Me Report">
729
                    <%
730
                        '<input name="btn" type="submit" class="form_btn" value="Show Me Report">
731
                    %>
732
                    </span>
733
                    </td>
734
                    <td width="1" align="right" bgcolor="#DAD7C8" nowrap>
735
                    <table width="100%"  border="0" cellspacing="0" cellpadding="0">
736
                      <tr>
737
 
738
                        <td><input type="submit" name="btn" value="Exit" class="form_btn_comp"></td>
739
                      </tr>
740
                    </table></td>
741
                  </tr>
742
                  <tr>
743
                    <td>
744
                    <%If (parRtagA <> "") AND (parRtagB <> "")Then%>
745
                        <!-- DIFF FILTER +++++++++++++++++++++++++++++++++++++++++++ -->
746
                        <fieldset style="width:150px;">
747
                        <legend><a href="javascript:;" class="body_scol" onClick="ToggleDisplay('divDiffFilter');" ><%=GetIsDiffFilterInUseIcon() %>&nbsp;Filter&nbsp;Results...</a></legend>
748
                        <div name="divDiffFilter" id="divDiffFilter" class="body_txt" style="display:none;">
749
                          <br>
750
                          <table width="100%"  border="0" cellspacing="1" cellpadding="3">
751
                            <tr>
752
                              <td width="1" background="images/bg_action_norm.gif"><input name="difilter" type="checkbox" value="<%=enumDB_DIFF_UPDATED%>" <%=GetIsDiffFilterChecked(enumDB_DIFF_UPDATED)%>></td>
753
                              <td width="50" nowrap background="images/bg_action_norm.gif" class="form_field"><%=LIMG_UPDATED%>Updated</td>
754
                            </tr>
755
                            <tr>
756
                              <td background="images/bg_action_norm.gif"><input type="checkbox" name="difilter" value="<%=enumDB_DIFF_NEW%>" <%=GetIsDiffFilterChecked(enumDB_DIFF_NEW)%>></td>
757
                              <td nowrap background="images/bg_action_norm.gif" class="form_field"><%=LIMG_ADDED%>Added</td>
758
                            </tr>
759
                            <tr>
760
                              <td background="images/bg_action_norm.gif"><input type="checkbox" name="difilter" value="<%=enumDB_DIFF_REMOVED%>" <%=GetIsDiffFilterChecked(enumDB_DIFF_REMOVED)%>></td>
761
                              <td nowrap background="images/bg_action_norm.gif" class="form_field"><%=LIMG_REMOVED%>Removed</td>
762
                            </tr>
763
                            <tr>
764
                              <td background="images/bg_action_norm.gif"><input type="checkbox" name="filter_comments" value="<%=enumDB_FILTER_COMMENTS%>" <%=GetIsDiffFilterChecked(enumDB_FILTER_COMMENTS)%>></td>
765
                              <td nowrap background="images/bg_action_norm.gif" class="form_field">Comments</td>
766
                            </tr>
767
                            <tr>
768
                              <td background="images/bg_action_norm.gif"><input type="checkbox" name="filter_issues" value="<%=enumDB_FILTER_ISSUES%>" <%=GetIsDiffFilterChecked(enumDB_FILTER_ISSUES)%>></td>
769
                              <td nowrap background="images/bg_action_norm.gif" class="form_field">Issues</td>
770
                            </tr>
771
                            <tr>
772
                              <td background="images/bg_action_norm.gif">&nbsp;</td>
773
                              <td background="images/bg_action_norm.gif"><input name="btn" type="submit" class="form_btn" value="Hide"></td>
774
                            </tr>
775
                          </table>
776
                        </div>
777
                        </fieldset>
778
                        <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
779
                    <%End If%>
780
                    </td>
781
                    <td></td>
782
                  </tr>
783
                </table>
784
 
785
                <%
786
                Set FSO=Server.CreateObject("Scripting.FileSystemObject")
787
                Set NewTextFile=FSO.CreateTextFile(Server.MapPath("docs\compareBoms_"&objAccessControl.UserName&".html"), true)
788
                Call Header()
789
 
790
                If (parRtagA <> "") AND (parRtagB <> "")Then%>
791
                <table width="100%"  border="0" cellspacing="1" cellpadding="0">
792
                  <tr>
793
                    <td width="50%" bgcolor="#E4E9EC" class="body_row" nowrap><%= ReleaseIcon(objRelCollectorA.Item("official")) & objRelCollectorA.Item("location")%> </td>
794
                    <td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="1"></td>
795
                    <td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="20"></td>
796
                    <td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="1"></td>
797
                    <td width="50%" bgcolor="#E4E9EC" class="body_row" nowrap><%= ReleaseIcon(objRelCollectorB.Item("official")) & objRelCollectorB.Item("location")%></td>
798
                  </tr>
799
                <%
800
 
801
                OraDatabase.Parameters.Add "SBOM_A",    parSBOMA,   ORAPARM_INPUT, ORATYPE_NUMBER
802
                OraDatabase.Parameters.Add "SBOM_B",    parSBOMB,   ORAPARM_INPUT, ORATYPE_NUMBER
803
                OraDatabase.Parameters.Add "NO_CHANGE", GetIsDiffFilterChecked(enumDB_DIFF_NO_CHANGE),      ORAPARM_INPUT, ORATYPE_VARCHAR2
804
                OraDatabase.Parameters.Add "ADDED",     GetIsDiffFilterChecked(enumDB_DIFF_NEW),        ORAPARM_INPUT, ORATYPE_VARCHAR2
805
                OraDatabase.Parameters.Add "UPDATED",   GetIsDiffFilterChecked(enumDB_DIFF_UPDATED),        ORAPARM_INPUT, ORATYPE_VARCHAR2
806
                OraDatabase.Parameters.Add "REMOVED",   GetIsDiffFilterChecked(enumDB_DIFF_REMOVED),        ORAPARM_INPUT, ORATYPE_VARCHAR2
807
 
808
                Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("BOMDiff.sql"), cint(0))
809
 
810
                OraDatabase.Parameters.Remove "SBOM_A"
811
                OraDatabase.Parameters.Remove "SBOM_B"
812
                OraDatabase.Parameters.Remove "NO_CHANGE"
813
                OraDatabase.Parameters.Remove "ADDED"
814
                OraDatabase.Parameters.Remove "UPDATED"
815
                OraDatabase.Parameters.Remove "REMOVED"
816
 
817
                Set rsQryA = OraDatabase.DbCreateDynaset( "SELECT pr.PROJ_NAME, br.BRANCH_NAME, b.BOM_VERSION ||'.'||b.BOM_LIFECYCLE  AS LOCATION, "&_
818
	"        pr.PROJ_ID, b.BOM_ID, br.BRANCH_ID"&_
819
	"  FROM BRANCHES br,"&_
820
	"  		BOMS b,"&_
821
	"  	    DM_PROJECTS pr"&_
822
	" WHERE br.PROJ_ID = pr.PROJ_ID"&_
823
	" 	AND b.BRANCH_ID = br.BRANCH_ID"&_
824
	"   AND b.BOM_ID ="&parSBOMA, cint(0))
825
 
826
 
827
                Set rsQryB = OraDatabase.DbCreateDynaset( "SELECT pr.PROJ_NAME, br.BRANCH_NAME, b.BOM_VERSION ||'.'||b.BOM_LIFECYCLE  AS LOCATION, "&_
828
	"        pr.PROJ_ID, b.BOM_ID, br.BRANCH_ID"&_
829
	"  FROM BRANCHES br,"&_
830
	"  		BOMS b,"&_
831
	"  	    DM_PROJECTS pr"&_
832
	" WHERE br.PROJ_ID = pr.PROJ_ID"&_
833
	" 	AND b.BRANCH_ID = br.BRANCH_ID"&_
834
	"   AND b.BOM_ID ="&parSBOMB, cint(0))
835
 
836
 
837
                NewTextFile.WriteLine("<title>Difference Report Between "&_
838
                            rsQryA("branch_name")&" "& rsQryA("location")&" and "&_
839
                            rsQryB("branch_name")&" "& rsQryB("location")&_
840
                            "</title>")
841
                Call Javascript()
842
                Call Styles()
843
                NewTextFile.WriteLine("</head>")
844
                NewTextFile.WriteLine("<body>")
845
                NewTextFile.WriteLine("<div class="&chr(34)&"page_title"&chr(34)&">Difference Report Between "&_
846
                            rsQryA("proj_name") & " > " & rsQryA("branch_name")&" > "&rsQryA("location")&" and "&_
847
                            rsQryB("proj_name") & " > " & rsQryB("branch_name")&" > "&rsQryB("location")&_
848
                            "</div><br><br>")
849
 
850
                NewTextFile.WriteLine("<b>Toggle Sections:</b><blockquote>")
851
                NewTextFile.WriteLine("<a href=""javascript:;"" onClick=""MM_toggleAll('divPkgInfo','1');"">Expand All</a>")
852
                NewTextFile.WriteLine("<a href=""javascript:;"" onClick=""MM_toggleAll('divPkgInfo','');"">Collapse All</a>")
853
                NewTextFile.WriteLine("</blockquote>")
854
 
855
                While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))
856
                VersionList = "0"
857
                errormsg = false
858
                    rowId = rsQry("pv_id_a") &"_"& rsQry("pv_id_b")
859
 
860
                    btnMerge = LIMG_MERGE
861
                    btnRemove = LIMG_REMOVE
862
                    colorA = LCOLOR_NOT_CHANGED
863
                    colorB = LCOLOR_NOT_CHANGED
864
 
865
                    Select Case rsQry("change_type")
866
                        Case "U"
867
                            colorA = LCOLOR_CHANGED
868
                            colorB = LCOLOR_CHANGED
869
                        Case "UW"
870
                            colorA = LCOLOR_CHANGED
871
                            colorB = LCOLOR_CHANGED
872
                            btnMerge = LIMG_MERGE_WARN
873
                        Case "UR"
874
                            colorA = LCOLOR_RIPPLED
875
                            colorB = LCOLOR_RIPPLED
876
                        Case "A"
877
                            colorA = LCOLOR_BLANK
878
                        Case "R"
879
                            colorB = LCOLOR_BLANK
880
                    End Select
881
 
882
                    Call GetDiffStateIcon ( rsQry("change_type"), ChangeTypeIcon )
883
                %>
884
                  <tr>
885
                    <td class="body_row" nowrap>
886
                        <DIV id="PVA<%=rowId%>" style="background:<%=colorA%>; padding:5px;">
887
                        <%=rsQry("pkg_name_a") &" "& rsQry("pkg_version_a")%>
888
                        </DIV>
889
                        <input type="hidden" id="UNDOCOLORA_<%=rowId%>" value="<%=colorA%>">
890
                    </td>
891
                    <td bgcolor="#F5F5F5"></td>
892
                    <td bgcolor="#E4E9EC"><DIV id="IMGSTATE<%=rowId%>" ><%=ChangeTypeIcon%></DIV><input type="hidden" id="CHANGETYPE_<%=rowId%>" value="<%=rsQry("change_type")%>"></td>
893
                    <td bgcolor="#F5F5F5"></td>
894
                    <td class="body_row" nowrap>
895
                        <DIV id="PVB<%=rowId%>" style="background:<%=colorB%>; padding:5px;">
896
                        <%=rsQry("pkg_name_b") &" "& rsQry("pkg_version_b")%>
897
                        </DIV>
898
                        <input type="hidden" id="UNDOCOLORB_<%=rowId%>" value="<%=colorB%>">
899
                        <input type="hidden" name="addpkg" id="ADDPKG_<%=rowId%>" value="">
900
                        <input type="hidden" name="removepkg" id="REMOVEPKG_<%=rowId%>" value="">
901
                        <input type="hidden" id="UNDOPKG_<%=rowId%>" value="<%=rsQry("pkg_name_b") &" "& rsQry("pkg_version_b")%>">
902
                    </td>
903
                  </tr>
904
<%
905
    If genReport Then
906
        If rsQry("pv_id_a") Then
907
            Set rsQryCommentsA = OraDatabase.DbCreateDynaset( "SELECT COMMENTS FROM PACKAGE_VERSIONS WHERE PV_ID="& rsQry("pv_id_a"), cint(0))
908
        End If
909
 
910
        If rsQry("pv_id_b") Then
911
            Set rsQryCommentsB = OraDatabase.DbCreateDynaset( "SELECT COMMENTS FROM PACKAGE_VERSIONS WHERE PV_ID="& rsQry("pv_id_b"), cint(0))
912
        End If
913
 
914
        pkgA = rsQry("pkg_name_a")
915
        pkgB = rsQry("pkg_name_b")
916
 
917
        If pkgA <> "" then
918
            pkgname = pkgA
919
        Else
920
            pkgname = pkgB
921
        End If
922
 
923
        If rsQry("change_type") = "U" OR rsQry("change_type") = "UW" Then
924
                NewTextFile.Write("<p><a href=""javascript:;"" class=""body_scol"" onClick=""toggleSPAN('"& rowId &"');"">"& pkgname &"</a>")
925
                NewTextFile.WriteLine("<DIV class=divPkgInfo id=""spanPkgInfo"& rowId &""" name=""spanPkgInfo"" style=""display:none;"">")
926
                NewTextFile.Write(rsQryA("location")&" uses: "&rsQry("pkg_version_a")&" ")
927
 
928
                NewTextFile.WriteLine("<br>")
929
                NewTextFile.Write(rsQryB("location")&" uses: "&rsQry("pkg_version_b")&" ")
930
 
931
                a = rsQry("pv_id_a")
932
                b = rsQry("pv_id_b")
933
                c = rsQry("pv_id_a")
934
                d = rsQry("pv_id_b")
935
 
936
                NewTextFile.WriteLine("<br><br>")
937
                NewTextFile.WriteLine()
938
                NewTextFile.WriteLine("<b>"&rsQryB("location")&"</b>")
939
                Call Comments(rsQry("pv_id_b"), Request("filter_comments"))
940
                Call GetFixedIssues(rsQry("pv_id_b"), Request("filter_issues"))
941
 
942
                Dim rsQryLast
943
                Set rsQryLast = OraDatabase.DbCreateDynaset( "SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="& rsQry("pv_id_b"), cint(0))
944
 
945
                If rsQryLast("last_pv_id") <> a Then
946
                    Call PreviousVersions(a, b, rsQry("pkg_version_a"), rsQry("pkg_version_b"), Request("filter_comments"), Request("filter_issues"))
947
                End If
948
 
949
                a = rsQry("pv_id_a")
950
                b = rsQry("pv_id_b")
951
                Call GetDependencies(a, VersionList + ","+ b, rsQry("pkg_version_a"), rsQry("pkg_version_b"), Request("filter_comments"), Request("filter_issues"))
952
                NewTextFile.WriteLine("</DIV>")
953
 
954
                rsQryLast.Close()
955
                Set rsQryLast = Nothing
956
 
957
        End If
958
 
959
        If rsQry("change_type") = "A" AND rsQry("patch_b") = "Y" Then
960
            Dim rsQryPatch
961
            OraDatabase.Parameters.Add "PV_ID",     rsQry("pv_id_b"),   ORAPARM_INPUT, ORATYPE_NUMBER
962
            Set rsQryPatch = OraDatabase.DbCreateDynaset( GetQuery("pd_patch.sql"), cint(0))
963
            OraDatabase.Parameters.Remove "PV_ID"
964
            If NOT IsNull(rsQryPatch("pv_id")) Then
965
                NewTextFile.Write("<p><a href=""javascript:;"" class=""body_scol"" onClick=""toggleSPAN('_p"& rowId &"');""><font face="&chr(34)&"Verdana, Arial, Helvetica, sans-serif"&chr(34)&">"& rsQryPatch("pkg_name") &" "& rsQryPatch("pkg_version") &"</font></a>")
966
                NewTextFile.WriteLine("<DIV class=divPkgInfo id=""spanPkgInfo_p"& rowId &""" name=""spanPkgInfo"" style=""display:none;"">")
967
                Call Comments(rsQryPatch("pv_id"), Request("filter_comments"))
968
                Call GetFixedIssues(rsQryPatch("pv_id"), Request("filter_issues"))
969
            Else
970
                NewTextFile.Write("<p><a href=""javascript:;"" class=""body_scol"" onClick=""toggleSPAN('_p"& rowId &"');""><font face="&chr(34)&"Verdana, Arial, Helvetica, sans-serif"&chr(34)&">"& rsQry("pkg_name_b") &" "& rsQry("pkg_version_b") &"</font></a>")
971
                NewTextFile.WriteLine("<DIV class=divPkgInfo  id=""spanPkgInfo_p"& rowId &""" name=""spanPkgInfo"" style=""display:none;"">")
972
                Call Comments(rsQry("pv_id_b"), Request("filter_comments"))
973
                Call GetFixedIssues(rsQry("pv_id_b"), Request("filter_issues"))
974
            End If
975
 
976
            NewTextFile.WriteLine("</DIV>")
977
            rsQryPatch.Close
978
            Set rsQryPatch = nothing
979
 
980
        End If
981
 
982
    End If
983
 
984
    rsQry.MoveNext
985
    WEnd
986
 
987
    rsQry.Close
988
    Set rsQry = Nothing
989
%>
990
<%
991
    Call Footer()
992
    NewTextFile.Close
993
    Set NewTextFile=Nothing
994
%>
995
                </table>
996
                <br>
997
            <%Else%>
998
                <br>
999
                <%
1000
                If (parRtagB <> "") Then
1001
                    Call Messenger ( "Select <b>SBOM A</b> to compare.", 3, "100%" )
1002
                ElseIf (parRtagA <> "") Then
1003
                    Call Messenger ( "Select <b>SBOM B</b> to compare.", 3, "100%" )
1004
                Else
1005
                    Call Messenger ( "Select <b>SBOM A</b> and <b>SBOM B</b> to compare.", 3, "100%" )
1006
                End If
1007
                %>
1008
 
1009
            <%End If%>
1010
 
1011
                </td>
1012
                <td width="1%" background="images/lbox_bgside_white.gif">&nbsp;</td>
1013
              </tr>
1014
              <tr>
1015
                <td width="1%" background="images/lbox_bg_blue.gif" valign="bottom"><img src="images/lbox_bl_cnr_b.gif" width="13" height="13"></td>
1016
                <td background="images/lbox_bg_blue.gif"></td>
1017
                <td width="1%" background="images/lbox_bg_blue.gif" valign="bottom" align="right"><img src="images/lbox_br_cnr_b.gif" width="13" height="13"></td>
1018
              </tr>
1019
            </table>
1020
          </td>
1021
        </tr>
1022
      </table>
1023
    <!-- DIFF END ---------------------------------------------------->
1024
    </td>
1025
    <td valign="top" background="images/bg_lite_blue.gif">
1026
 
1027
 
1028
      <!-- SELECT SBOM B ---------------------------------------------->
1029
      <br>
1030
      <table width="100%"  border="0" cellspacing="10" cellpadding="0">
1031
        <tr>
1032
          <td align="left" class="body_col"><img src="images/i_rtag_open_mode.gif" border="0" align="absmiddle" width="15" height="13">&nbsp;Select SBOM B<hr size="1px" color="Olive" noshade></td>
1033
        </tr>
1034
        <tr>
1035
          <td align="left">
1036
          <select name="projB" class="form_item" onChange="RequestReleaseCombo( '?proj_id='+ this.value, FormName.rtagB );">
1037
              <option value="">-- Select Project --</option>
1038
              <%
1039
              OraDatabase.Parameters.Add "PROJ_ID",     objRelCollectorB.Item("proj_id"),   ORAPARM_INPUT, ORATYPE_NUMBER
1040
 
1041
              Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ProjectsCombo.sql"), cint(0))
1042
 
1043
              OraDatabase.Parameters.Remove "PROJ_ID"
1044
 
1045
              While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
1046
                <option value="<%=rsQry("proj_id")%>" <%=rsQry("selected")%>><%=rsQry("proj_name")%></option>
1047
              <%rsQry.MoveNext
1048
              WEnd
1049
 
1050
              rsQry.Close
1051
              Set rsQry = Nothing
1052
            %>
1053
         </select>
1054
        </td>
1055
        </tr>
1056
        <tr>
1057
          <td align="left">
1058
 
1059
          <select name="rtagB" id="rtagB" class="form_item" onChange="RequestSBOMCombo( '?branch_id='+ this.value, FormName.sbomB );">
1060
              <option value="">-- Select Branch --</option>
1061
              <%
1062
              OraDatabase.Parameters.Add "PROJ_ID",     objRelCollectorB.Item("proj_id"),   ORAPARM_INPUT,  ORATYPE_NUMBER
1063
              OraDatabase.Parameters.Add "BRANCH_ID",   objRelCollectorB.Item("branch_id"), ORAPARM_INPUT, ORATYPE_NUMBER
1064
 
1065
              Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ReleasesCombo.sql"), cint(0))
1066
 
1067
              OraDatabase.Parameters.Remove "PROJ_ID"
1068
              OraDatabase.Parameters.Remove "BRANCH_ID"
1069
 
1070
              While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
1071
                <option value="<%=rsQry("branch_id")%>" <%=rsQry("selected")%>><%=rsQry("branch_name")%></option>
1072
              <%rsQry.MoveNext
1073
              WEnd
1074
 
1075
              rsQry.Close
1076
              Set rsQry = Nothing
1077
              %>
1078
          </select></td>
1079
        </tr>
1080
        <tr>
1081
          <td align="left">
1082
 
1083
 
1084
          <select name="sbomB" id="sbomB" class="form_item">
1085
            <%
1086
              OraDatabase.Parameters.Add "BOM_ID",  objRelCollectorB.Item("bom_id"),    ORAPARM_INPUT,  ORATYPE_NUMBER
1087
              OraDatabase.Parameters.Add "BRANCH_ID",   objRelCollectorB.Item("branch_id"), ORAPARM_INPUT, ORATYPE_NUMBER
1088
 
1089
              Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("SBOMCombo.sql"), cint(0))
1090
 
1091
              OraDatabase.Parameters.Remove "BOM_ID"
1092
              OraDatabase.Parameters.Remove "BRANCH_ID"
1093
 
1094
              While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
1095
            <option value="<%=rsQry("bom_id")%>" <%=rsQry("selected")%>><%=rsQry("version")%></option>
1096
            <%rsQry.MoveNext
1097
              WEnd
1098
 
1099
              rsQry.Close
1100
              Set rsQry = Nothing
1101
              %>
1102
          </select>
1103
 
1104
 
1105
          </td>
1106
        </tr>
1107
        <%If (parRtagB <> "") Then%>
1108
        <tr>
1109
          <td align="left"><a href="Bom_home.asp?bom_id=<%=parSBOMB%>" class="body_txt_drk">Go To SBOM B &raquo;</a></td>
1110
        </tr>
1111
        <%End If%>
1112
                </table>
1113
                <!-- SELECT RELEASE B END ---------------------------------------------->
1114
            </td>
1115
        </tr>
1116
        <tr>
1117
            <td valign="bottom" align="center" background="images/bg_lite_blue.gif">
1118
                <img src="images/img_vtree.gif" width="86" height="99" vspace="20" hspace="30">
1119
            </td>
1120
            <td valign="bottom" background="images/bg_lite_blue.gif" align="center">
1121
                <img src="images/img_vtree.gif" width="86" height="99" vspace="20" hspace="30">
1122
            </td>
1123
        </tr>
1124
    </table>
1125
</form>
1126
<%
1127
If email Then
1128
 
1129
    Dim myMail, LocalPath
1130
    Set myMail=Server.CreateObject("Persits.MailSender")
1131
    LocalPath = Server.MapPath("docs\compareBoms_"&objAccessControl.UserName&".html")
1132
 
1133
    myMail.Host = SMTP_HOST
1134
    myMail.Subject="BOM Comparisons from Deployment Manager"
1135
    myMail.From="releasem@erggroup.com"
1136
    myMail.AddAddress objAccessControl.UserEmail
1137
    ' Attach the file
1138
    myMail.AddAttachment LocalPath
1139
    myMail.Body = "Your requested report..."
1140
    myMail.Send
1141
 
1142
    set myMail=nothing
1143
 
1144
End If
1145
%>
5958 dpurdie 1146
<!-- FOOTER -->
1147
<!--#include file="_footer.asp"-->
5355 dpurdie 1148
</body>
1149
</html>