Subversion Repositories DevTools

Rev

Details | 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
159
        Set sqlstrC = OraDatabase.DbCreateDynaset("SELECT iss_db, iss_id, iss_state, notes FROM CQ_ISSUES" &_
160
                " WHERE pv_id="& pv_id &" AND iss_state = "& enumISSUES_STATE_FIXED &_
161
                " UNION SELECT iss_db, iss_id, iss_state, notes FROM ARCHIVE_MANAGER.CQ_ISSUES" &_
162
                " WHERE pv_id="& pv_id &" AND iss_state = "& enumISSUES_STATE_FIXED, cint(0))
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
246
    Set qryA = OraDatabase.DbCreateDynaset("SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="&pvId &_
247
	" UNION SELECT LAST_PV_ID FROM ARCHIVE_MANAGER.PACKAGE_VERSIONS WHERE PV_ID="&pvId, cint(0))
248
 
249
    LastPvId = pvId
250
 
251
    If pvId <> qryA("last_pv_id") Then
252
        LastPvId = qryA("last_pv_id")
253
    Else
254
        errormsg = true
255
    End If
256
 
257
    qryA.Close()
258
    Set qryA = Nothing
259
 
260
End Function
261
'--------------------------------------------------------------------------------------------------------------------------
262
Sub PreviousVersions(a, b, versionA, versionB, data, issues)
263
    NewTextFile.WriteLine()
264
    NewTextFile.WriteLine("<b>Versions Between: "&versionA&" and "&versionB&"</b>")
265
 
266
    If CLng(a) < CLng(b) Then
267
        While CLng(a) < CLng(b)
268
            b = LastPvId(b)
269
            If CLng(a) < CLng(b) Then
270
                VersionList = VersionList + ","& b &""
271
                Call Comments(b, data)
272
                Call GetFixedIssues(b, issues)
273
            End If
274
        Wend
275
    End If
276
 
277
    If CLng(b) < CLng(a) Then
278
        While CLng(b) < CLng(a)
279
            a = LastPvId(a)
280
            If CLng(b) < CLng(a) Then
281
                VersionList = VersionList + ","& a &""
282
                Call Comments(a, data)
283
                Call GetFixedIssues(a, issues)
284
            End If
285
        Wend
286
    End If
287
 
288
End Sub
289
'--------------------------------------------------------------------------------------------------------------------------
290
Sub GetDependencies(pv_id_a, pv_id_b, versionA, versionB, comments, issues)
291
    On Error Resume Next
292
 
293
    Set sqlstrA = OraDatabase.DbCreateDynaset("select distinct dpv_id from package_dependencies where pv_id IN ("& pv_id_b &") and dpv_id NOT IN (SELECT dpv_id from package_dependencies where pv_id = "& pv_id_a &")" &_
294
	" UNION select distinct dpv_id from ARCHIVE_MANAGER.package_dependencies where pv_id IN ("& pv_id_b &") and dpv_id NOT IN (SELECT dpv_id from ARCHIVE_MANAGER.package_dependencies where pv_id = "& pv_id_a &") order by dpv_id desc", cint(0))
295
 
296
    If sqlstrA.RecordCount <> 0 Then
297
        NewTextFile.WriteLine()
298
        NewTextFile.WriteLine("<b>Dependencies Changed Between "&versionA&" and "&versionB&":</b>")
299
 
300
        While ((NOT sqlstrA.BOF) AND (NOT sqlstrA.EOF))
301
            Call dependencyComments(sqlstrA("dpv_id"), comments)
302
            Call GetFixedIssues(sqlstrA("dpv_id"), issues)
303
            sqlstrA.MoveNext
304
        Wend
305
 
306
    End If
307
 
308
    sqlstrA.Close()
309
    Set sqlstrA = Nothing
310
 
311
End Sub
312
'--------------------------------------------------------------------------------------------------------------------------
313
Sub dependencyComments(pv_id, comments)
314
 
315
        Set sqlstrB = OraDatabase.DbCreateDynaset("SELECT * FROM PACKAGE_VERSIONS pv, PACKAGES pkg WHERE pkg.pkg_id = pv.pkg_id AND PV_ID ="&pv_id &_
316
    	" UNION SELECT * FROM ARCHIVE_MANAGER.PACKAGE_VERSIONS pv, ARCHIVE_MANAGER.PACKAGES pkg WHERE pkg.pkg_id = pv.pkg_id AND PV_ID ="&pv_id, cint(0))
317
        NewTextFile.WriteLine("<blockquote><blockquote><span class="&chr(34)&"highlight_text"&chr(34)&">"& sqlstrB("pkg_name") &" "& sqlstrB("pkg_version") &"</font></span></blockquote></blockquote>")
318
 
319
        If comments <> "Filter Comments" Then
320
    NewTextFile.WriteLine("<blockquote><blockquote>Comments:</blockquote></blockquote>")
321
    NewTextFile.Write("<blockquote><blockquote><blockquote>"& TextToHTML(sqlstrB("comments")) &"</blockquote></blockquote></blockquote>")
322
        End If
323
 
324
        sqlstrB.Close()
325
        Set sqlstrB = nothing
326
End Sub
327
'--------------------------------------------------------------------------------------------------------------------------
328
Sub pkg_Version(pv)
329
    Dim qry
330
    Set qry = OraDatabase.DbCreateDynaset("SELECT PKG_VERSION FROM PACKAGE_VERSIONS WHERE PV_ID="&pv &_
331
	" UNION SELECT PKG_VERSION FROM ARCHIVE_MANAGER.PACKAGE_VERSIONS WHERE PV_ID="&pv, cint(0))
332
    pkgversion = qry("pkg_version")
333
    qry.Close()
334
    Set qry = Nothing
335
End Sub
336
'--------------------------------------------------------------------------------------------------------------------------
337
Sub Comments(Pv_Id, data)
338
        Dim comments
339
        Set comments = OraDatabase.DbCreateDynaset("SELECT COMMENTS, PKG_VERSION FROM PACKAGE_VERSIONS WHERE PV_ID="&Pv_id &_
340
    	" UNION SELECT COMMENTS, PKG_VERSION FROM ARCHIVE_MANAGER.PACKAGE_VERSIONS WHERE PV_ID="&Pv_id, cint(0))
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
354
    Set release = OraDatabase.DbCreateDynaset("SELECT INSERT_STAMP FROM RELEASE_CONTENT WHERE PV_ID="&pvId &_
355
	" UNION SELECT INSERT_STAMP FROM ARCHIVE_MANAGER.RELEASE_CONTENT WHERE PV_ID="&pvId, cint(0))
356
 
357
    If release("insert_stamp") <> "" Then
358
        NewTextFile.Write(release("insert_stamp"))
359
    Else
360
        NewTextFile.Write("Version Not Used.")
361
    End If
362
 
363
End Sub
364
'--------------------------------------------------------------------------------------------------------------------------
365
Sub Header()
366
    NewTextFile.WriteLine("<html>")
367
    NewTextFile.WriteLine("<head>")
368
End Sub
369
'--------------------------------------------------------------------------------------------------------------------------
370
Sub Footer()
371
    NewTextFile.WriteLine("</body>")
372
    NewTextFile.WriteLine("</html>")
373
End Sub
374
'--------------------------------------------------------------------------------------------------------------------------
375
Sub Styles()
376
  NewTextFile.WriteLine("<style type="&chr(34)&"text/css"&chr(34)&">")
377
  NewTextFile.WriteLine("body { font-family:Verdana,Arial,Helvetica,sans-serif; }")
378
  NewTextFile.WriteLine("table { border-collapse:collapse; }")
379
  NewTextFile.WriteLine("td { border-width:1; border-style:solid; border-color:black; padding:3 5 3 5; }")
380
  NewTextFile.WriteLine(".fixed_issues { border-width:1; border-style:solid; border-color:black; }")
381
  NewTextFile.WriteLine(".page_title { color:red; font-size:110%; text-align:center; }")
382
  NewTextFile.WriteLine(".highlight_text { color:blue; }")
383
  NewTextFile.WriteLine(".form_field { background-color:#EAE5D7; font:bold 70% Tahoma,sans-serif; }")
384
  NewTextFile.WriteLine(".form_item { background-color:#EAE5D7; color:red; font:bold 70% Tahoma,sans-serif; vertical-align:top; }")
385
  NewTextFile.WriteLine("</style>")
386
End Sub
387
'--------------------------------------------------------------------------------------------------------------------------
388
Function GetIsDiffFilterInUseIcon()
389
    GetIsDiffFilterInUseIcon = LIMG_FILTER_OFF & LIMG_DROP_DOWN_ARROW
390
 
391
    If dDiffFilter.Count > 0 Then
392
        GetIsDiffFilterInUseIcon = LIMG_FILTER_ON & LIMG_DROP_DOWN_ARROW
393
    End If
394
 
395
End Function
396
'--------------------------------------------------------------------------------------------------------------------------
397
Function GetIsDiffFilterChecked( nFilterId )
398
 
399
    If dDiffFilter.Exists ( CStr(nFilterId)  ) Then
400
        GetIsDiffFilterChecked = "checked"
401
    End If
402
 
403
End Function
404
'---------------------------------------------------------------------------------------------------------------------------
405
Function  Get_CQ_Issues ( SSsql, OOrsCQ )
406
 
407
    On Error Resume Next
408
    Set OOrsCQ = OraDatabase.DbCreateDynaset( SSsql, cint(0))
409
    Get_CQ_Issues = Err.Number
410
 
411
End Function
412
'--------------------------------------------------------------------------------------------------------------------------
413
Public Function TextToHTML ( sString )
414
    Dim mString
415
 
416
    If (sString = "") OR IsNull(sString) Then Exit Function
417
 
418
    mString = Server.HTMLEncode( sString )
419
    mString = Replace(mString, VBNewLine, "<br>")
420
 
421
    TextToHTML = mString
422
End Function
423
'--------------------------------------------------------------------------------------------------------------------------
424
Sub GetFormDetails ( nSourceSBOM, ByRef outobjDetails )
425
    Dim rsQry, query
426
 
427
    ' Exit if nSourceRtagId is empty
428
    If nSourceSBOM = "" Then Exit Sub
429
 
430
    OraDatabase.Parameters.Add "SBOM",  nSourceSBOM,        ORAPARM_INPUT, ORATYPE_NUMBER
431
 
432
    query = _
433
	" SELECT pr.PROJ_NAME ||' &gt; '|| br.BRANCH_NAME ||' &gt; '|| b.BOM_VERSION ||'.'||b.BOM_LIFECYCLE  AS LOCATION, "&_
434
	"        pr.PROJ_ID, b.BOM_ID, br.BRANCH_ID, b.IS_READONLY"&_
435
	"  FROM BRANCHES br,"&_
436
	"  		BOMS b,"&_
437
	"  	    DM_PROJECTS pr"&_
438
	" WHERE br.PROJ_ID = pr.PROJ_ID"&_
439
	" 	AND b.BRANCH_ID = br.BRANCH_ID"&_
440
	"   AND b.BOM_ID = :SBOM"
441
 
442
    Set rsQry = OraDatabase.DbCreateDynaset( query, ORADYN_DEFAULT )
443
 
444
    OraDatabase.Parameters.Remove "SBOM"
445
 
446
    If rsQry.RecordCount > 0 Then
447
        outobjDetails.Item ("location") = rsQry("location")
448
        outobjDetails.Item ("official") = rsQry("IS_READONLY")
449
        outobjDetails.Item ("proj_id") = rsQry("proj_id")
450
        outobjDetails.Item ("branch_id") = rsQry("branch_id")
451
        outobjDetails.Item ("bom_id") = rsQry("bom_id")
452
    Else
453
        Err.Raise 8, "Sub GetFormDetails in "& SCRIPT_NAME, "Empty record set returned. nSourceSBOM="& nSourceSBOM
454
    End If
455
 
456
    If outobjDetails.Item ("location") = "" Then
457
        outobjDetails.Item ("location") = "N"
458
    End If
459
 
460
    rsQry.Close
461
    Set rsQry = Nothing
462
 
463
End Sub
464
'--------------------------------------------------------------------------------------------------------------------------
465
Sub GetDiffStateIcon( nDiffState, outIcon )
466
 
467
    Select Case nDiffState
468
        Case "U"
469
            outIcon  = LIMG_UPDATED
470
        Case "UW"
471
            outIcon  = LIMG_UPDATED
472
        Case "A"
473
            outIcon = LIMG_ADDED
474
        Case "R"
475
            outIcon = LIMG_REMOVED
476
        Case "UR"
477
            outIcon = LIMG_RIPPLED
478
        Case Else
479
            outIcon = ""
480
    End Select
481
 
482
End Sub
483
'--------------------------------------------------------------------------------------------------------------------------
484
%>
485
<%
486
'------------ RUN BEFORE PAGE RENDER ----------
487
If Request("btn") = "Exit" Then
488
    Call OpenInWindow ( "reports.asp" )
489
End If
490
 
491
' Get release details
492
Call GetFormDetails ( parSBOMA, objRelCollectorA )
493
Call GetFormDetails ( parSBOMB, objRelCollectorB )
494
 
495
If Request("btn") = "Swap Compare" Then
496
    Call OpenInWindow ( SCRIPT_NAME &"?sbomA="& parSBOMB &"&sbomB="& parSBOMA &"&rtagA="& parRtagB &"&rtagB="& parRtagA )
497
End If
498
 
499
If Request("btn") = "Hide" Then
500
    ' Store filter in cookie
501
    Response.Cookies(enum_RELMGR_COOKIE_DOMAIN)(COOKIE_HIDE_DIFF_FILTER) = Request("difilter")
502
End If
503
 
504
 
505
Call GetDiffFilterValues ( dDiffFilter )
506
'----------------------------------------------
507
%>
508
<html>
509
<head>
510
<title>Deployment Manager SBOM Differences</title>
511
<link rel="shortcut icon" href="<%=FavIcon%>"/>
512
<meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
513
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
514
<link rel="stylesheet" href="scripts/deployment_manager.css" type="text/css">
515
<link rel="stylesheet" href="images/release_manager_style.css" type="text/css">
516
<link rel="stylesheet" href="images/navigation.css" type="text/css">
517
<script language="JavaScript" src="scripts/common.js"></script>
518
<script language="JavaScript" src="scripts/remote_scripting.js"></script>
519
<script language="JavaScript" type="text/javascript">
520
<!--
521
 
522
function RequestReleaseCombo( paramString, rowId )
523
{
524
    var requestURL = 'RequestReleaseCombo.asp';
525
 
526
    // Set ajax divname
527
    ajaxdivname = rowId;
528
 
529
    //Append the name to search for to the requestURL
530
    var url = requestURL + paramString;
531
 
532
    //Progress
533
    //alert(MM_findObj( rowId ));
534
 
535
    //MM_findObj( rowId ).options[0] = new Option('Loading...','');
536
    //MM_findObj( rowId ).selectedIndex = 0;
537
    rowId.options[0] = new Option('Loading...','');
538
    rowId.selectedIndex = 0;
539
 
540
 
541
    //Create the xmlHttp object to use in the request
542
    //stateChangeHandler will fire when the state has changed, i.e. data is received back
543
    // This is non-blocking (asynchronous)
544
    xmlHttp = GetXmlHttpObject(stateComboChangeHandler);
545
 
546
    //Send the xmlHttp get to the specified url
547
    xmlHttp_Get(xmlHttp, url);
548
 
549
 
550
}
551
 
552
function RequestSBOMCombo( paramString, rowId ){
553
    var requestURL = 'RequestSBOMCombo.asp';
554
 
555
    // Set ajax divname
556
    ajaxdivname = rowId;
557
 
558
    //Append the name to search for to the requestURL
559
    var url = requestURL + paramString;
560
 
561
    //Progress
562
    //alert(MM_findObj( rowId ));
563
 
564
    //MM_findObj( rowId ).options[0] = new Option('Loading...','');
565
    //MM_findObj( rowId ).selectedIndex = 0;
566
    rowId.options[0] = new Option('Loading...','');
567
    rowId.selectedIndex = 0;
568
 
569
 
570
    //Create the xmlHttp object to use in the request
571
    //stateChangeHandler will fire when the state has changed, i.e. data is received back
572
    // This is non-blocking (asynchronous)
573
    xmlHttp = GetXmlHttpObject(stateComboChangeHandler);
574
 
575
    //Send the xmlHttp get to the specified url
576
    xmlHttp_Get(xmlHttp, url);
577
 
578
 
579
}
580
 
581
//-->
582
</script>
583
 
584
</head>
585
<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0">
586
<form name="FormName" method="post" action="<%=SCRIPT_NAME%>">
587
    <!-- HEADER -->
588
    <!--#include file="_header.asp"-->
589
    <!-- BODY ---->
590
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
591
        <tr>
592
            <td width="20%">
593
            <td width="60%">
594
            <td width="20%">
595
        </tr>
596
        <tr>
597
    <td background="images/bg_lite_blue.gif" valign="top">
598
 
599
 
600
    <!-- SELECT SBOM A ---------------------------------------------->
601
 
602
    <br>
603
      <table width="100%"  border="0" cellspacing="10" cellpadding="0">
604
 
605
        <tr>
606
          <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>
607
        </tr>
608
        <tr>
609
          <td align="left">
610
          <select name="projA" class="form_item" onChange="RequestReleaseCombo( '?proj_id='+ this.value, FormName.rtagA );">
611
              <option value="">-- Select Project --</option>
612
              <%
613
              OraDatabase.Parameters.Add "PROJ_ID",     objRelCollectorA.Item("proj_id"),   ORAPARM_INPUT, ORATYPE_NUMBER
614
 
615
              Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ProjectsCombo.sql"), cint(0))
616
 
617
              OraDatabase.Parameters.Remove "PROJ_ID"
618
 
619
              While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
620
                <option value="<%=rsQry("proj_id")%>" <%=rsQry("selected")%>><%=rsQry("proj_name")%></option>
621
              <%rsQry.MoveNext
622
              WEnd
623
 
624
              rsQry.Close
625
              Set rsQry = Nothing
626
            %>
627
          </select></td>
628
        </tr>
629
        <tr>
630
          <td align="left">
631
 
632
              <select name="rtagA" id="rtagA" class="form_item" onChange="RequestSBOMCombo( '?branch_id='+ this.value, FormName.sbomA );">
633
              <option value="">-- Select Branch --</option>
634
              <%
635
              OraDatabase.Parameters.Add "PROJ_ID",     objRelCollectorA.Item("proj_id"),   ORAPARM_INPUT,  ORATYPE_NUMBER
636
              OraDatabase.Parameters.Add "BRANCH_ID",   objRelCollectorA.Item("branch_id"), ORAPARM_INPUT, ORATYPE_NUMBER
637
 
638
              Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ReleasesCombo.sql"), cint(0))
639
 
640
              OraDatabase.Parameters.Remove "PROJ_ID"
641
              OraDatabase.Parameters.Remove "BRANCH_ID"
642
 
643
              While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
644
                <option value="<%=rsQry("branch_id")%>" <%=rsQry("selected")%>><%=rsQry("branch_name")%></option>
645
              <%rsQry.MoveNext
646
              WEnd
647
 
648
              rsQry.Close
649
              Set rsQry = Nothing
650
              %>
651
          </select></td>
652
        </tr>
653
        <tr>
654
          <td align="left">
655
 
656
 
657
          <select name="sbomA" id="sbomA" class="form_item">
658
            <%
659
              OraDatabase.Parameters.Add "BOM_ID",  objRelCollectorA.Item("bom_id"),    ORAPARM_INPUT,  ORATYPE_NUMBER
660
              OraDatabase.Parameters.Add "BRANCH_ID",   objRelCollectorA.Item("branch_id"), ORAPARM_INPUT, ORATYPE_NUMBER
661
 
662
              Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("SBOMCombo.sql"), cint(0))
663
 
664
              OraDatabase.Parameters.Remove "BOM_ID"
665
              OraDatabase.Parameters.Remove "BRANCH_ID"
666
 
667
              While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
668
            <option value="<%=rsQry("bom_id")%>" <%=rsQry("selected")%>><%=rsQry("version")%></option>
669
            <%rsQry.MoveNext
670
              WEnd
671
 
672
              rsQry.Close
673
              Set rsQry = Nothing
674
              %>
675
          </select>
676
 
677
          </td>
678
        </tr>
679
        <%If (parRtagA <> "") Then%>
680
        <tr>
681
          <td align="left"><a href="Bom_Home.asp?bom_id=<%=parSBOMA%>" class="body_txt_drk">Go To SBOM A &raquo;</a></td>
682
        </tr>
683
        <%End If%>
684
    </table>
685
 
686
    <!-- SELECT SBOM A END ---------------------------------------------->
687
    </td>
688
    <td rowspan="2" valign="top" background="images/bg_lght_gray.gif" align="center">
689
      <!-- DIFF -------------------------------------------------------->
690
      <br>
691
 
692
 
693
 
694
 
695
      <table width="100%" border="0" cellspacing="10" cellpadding="0">
696
        <tr>
697
          <td>
698
 
699
 
700
 
701
            <table width="100%" border="0" cellspacing="0" cellpadding="0">
702
              <tr>
703
                <td width="1%"></td>
704
                <td width="100%" align="left" class="form_ttl">DIFF SBOM
705
                <%If genReport Then%>
706
                &nbsp;[Generating Report]
707
                <%End If%>
708
                </td>
709
                <td width="1%"></td>
710
              </tr>
711
              <tr>
712
                <td align="left" valign="top" background="images/lbox_bg_blue.gif"><img src="images/lbox_tl_cnr_b.gif" width="13" height="13"></td>
713
                <td background="images/lbox_bg_blue.gif" align="left" class="wform_ttl">&nbsp;
714
                </td>
715
                <td align="right" valign="top" background="images/lbox_bg_blue.gif"><img src="images/lbox_tr_cnr_b.gif" width="13" height="13"></td>
716
              </tr>
717
              <tr>
718
                <td width="1%" bgcolor="#FFFFFF"><img src="images/h_trsp_dot.gif" width="10" height="100"></td>
719
                <td bgcolor="#FFFFFF" valign="top" class="form_item">
720
 
721
 
722
 
723
                <table width="100%"  border="0" cellspacing="0" cellpadding="5">
724
                  <tr>
725
                    <td width="100%" bgcolor="#DAD7C8">
726
                    <input type="submit" name="btn" value="Compare" class="form_btn_comp" style="margin-right:5px;">
727
                    <input type="submit" name="btn" value="Swap Compare" class="form_btn_comp">
728
                    <span class="body_txt">
729
                        <input name="btn" type="submit" class="form_btn" value="Mail Me Report">
730
                    <%
731
                        '<input name="btn" type="submit" class="form_btn" value="Show Me Report">
732
                    %>
733
                    </span>
734
                    </td>
735
                    <td width="1" align="right" bgcolor="#DAD7C8" nowrap>
736
                    <table width="100%"  border="0" cellspacing="0" cellpadding="0">
737
                      <tr>
738
 
739
                        <td><input type="submit" name="btn" value="Exit" class="form_btn_comp"></td>
740
                      </tr>
741
                    </table></td>
742
                  </tr>
743
                  <tr>
744
                    <td>
745
                    <%If (parRtagA <> "") AND (parRtagB <> "")Then%>
746
                        <!-- DIFF FILTER +++++++++++++++++++++++++++++++++++++++++++ -->
747
                        <fieldset style="width:150px;">
748
                        <legend><a href="javascript:;" class="body_scol" onClick="ToggleDisplay('divDiffFilter');" ><%=GetIsDiffFilterInUseIcon() %>&nbsp;Filter&nbsp;Results...</a></legend>
749
                        <div name="divDiffFilter" id="divDiffFilter" class="body_txt" style="display:none;">
750
                          <br>
751
                          <table width="100%"  border="0" cellspacing="1" cellpadding="3">
752
                            <tr>
753
                              <td width="1" background="images/bg_action_norm.gif"><input name="difilter" type="checkbox" value="<%=enumDB_DIFF_UPDATED%>" <%=GetIsDiffFilterChecked(enumDB_DIFF_UPDATED)%>></td>
754
                              <td width="50" nowrap background="images/bg_action_norm.gif" class="form_field"><%=LIMG_UPDATED%>Updated</td>
755
                            </tr>
756
                            <tr>
757
                              <td background="images/bg_action_norm.gif"><input type="checkbox" name="difilter" value="<%=enumDB_DIFF_NEW%>" <%=GetIsDiffFilterChecked(enumDB_DIFF_NEW)%>></td>
758
                              <td nowrap background="images/bg_action_norm.gif" class="form_field"><%=LIMG_ADDED%>Added</td>
759
                            </tr>
760
                            <tr>
761
                              <td background="images/bg_action_norm.gif"><input type="checkbox" name="difilter" value="<%=enumDB_DIFF_REMOVED%>" <%=GetIsDiffFilterChecked(enumDB_DIFF_REMOVED)%>></td>
762
                              <td nowrap background="images/bg_action_norm.gif" class="form_field"><%=LIMG_REMOVED%>Removed</td>
763
                            </tr>
764
                            <tr>
765
                              <td background="images/bg_action_norm.gif"><input type="checkbox" name="filter_comments" value="<%=enumDB_FILTER_COMMENTS%>" <%=GetIsDiffFilterChecked(enumDB_FILTER_COMMENTS)%>></td>
766
                              <td nowrap background="images/bg_action_norm.gif" class="form_field">Comments</td>
767
                            </tr>
768
                            <tr>
769
                              <td background="images/bg_action_norm.gif"><input type="checkbox" name="filter_issues" value="<%=enumDB_FILTER_ISSUES%>" <%=GetIsDiffFilterChecked(enumDB_FILTER_ISSUES)%>></td>
770
                              <td nowrap background="images/bg_action_norm.gif" class="form_field">Issues</td>
771
                            </tr>
772
                            <tr>
773
                              <td background="images/bg_action_norm.gif">&nbsp;</td>
774
                              <td background="images/bg_action_norm.gif"><input name="btn" type="submit" class="form_btn" value="Hide"></td>
775
                            </tr>
776
                          </table>
777
                        </div>
778
                        </fieldset>
779
                        <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
780
                    <%End If%>
781
                    </td>
782
                    <td></td>
783
                  </tr>
784
                </table>
785
 
786
                <%
787
                Set FSO=Server.CreateObject("Scripting.FileSystemObject")
788
                Set NewTextFile=FSO.CreateTextFile(Server.MapPath("docs\compareBoms_"&objAccessControl.UserName&".html"), true)
789
                Call Header()
790
 
791
                If (parRtagA <> "") AND (parRtagB <> "")Then%>
792
                <table width="100%"  border="0" cellspacing="1" cellpadding="0">
793
                  <tr>
794
                    <td width="50%" bgcolor="#E4E9EC" class="body_row" nowrap><%= ReleaseIcon(objRelCollectorA.Item("official")) & objRelCollectorA.Item("location")%> </td>
795
                    <td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="1"></td>
796
                    <td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="20"></td>
797
                    <td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="1"></td>
798
                    <td width="50%" bgcolor="#E4E9EC" class="body_row" nowrap><%= ReleaseIcon(objRelCollectorB.Item("official")) & objRelCollectorB.Item("location")%></td>
799
                  </tr>
800
                <%
801
 
802
                OraDatabase.Parameters.Add "SBOM_A",    parSBOMA,   ORAPARM_INPUT, ORATYPE_NUMBER
803
                OraDatabase.Parameters.Add "SBOM_B",    parSBOMB,   ORAPARM_INPUT, ORATYPE_NUMBER
804
                OraDatabase.Parameters.Add "NO_CHANGE", GetIsDiffFilterChecked(enumDB_DIFF_NO_CHANGE),      ORAPARM_INPUT, ORATYPE_VARCHAR2
805
                OraDatabase.Parameters.Add "ADDED",     GetIsDiffFilterChecked(enumDB_DIFF_NEW),        ORAPARM_INPUT, ORATYPE_VARCHAR2
806
                OraDatabase.Parameters.Add "UPDATED",   GetIsDiffFilterChecked(enumDB_DIFF_UPDATED),        ORAPARM_INPUT, ORATYPE_VARCHAR2
807
                OraDatabase.Parameters.Add "REMOVED",   GetIsDiffFilterChecked(enumDB_DIFF_REMOVED),        ORAPARM_INPUT, ORATYPE_VARCHAR2
808
 
809
                Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("BOMDiff.sql"), cint(0))
810
 
811
                OraDatabase.Parameters.Remove "SBOM_A"
812
                OraDatabase.Parameters.Remove "SBOM_B"
813
                OraDatabase.Parameters.Remove "NO_CHANGE"
814
                OraDatabase.Parameters.Remove "ADDED"
815
                OraDatabase.Parameters.Remove "UPDATED"
816
                OraDatabase.Parameters.Remove "REMOVED"
817
 
818
                Set rsQryA = OraDatabase.DbCreateDynaset( "SELECT pr.PROJ_NAME, br.BRANCH_NAME, b.BOM_VERSION ||'.'||b.BOM_LIFECYCLE  AS LOCATION, "&_
819
	"        pr.PROJ_ID, b.BOM_ID, br.BRANCH_ID"&_
820
	"  FROM BRANCHES br,"&_
821
	"  		BOMS b,"&_
822
	"  	    DM_PROJECTS pr"&_
823
	" WHERE br.PROJ_ID = pr.PROJ_ID"&_
824
	" 	AND b.BRANCH_ID = br.BRANCH_ID"&_
825
	"   AND b.BOM_ID ="&parSBOMA, cint(0))
826
 
827
 
828
                Set rsQryB = OraDatabase.DbCreateDynaset( "SELECT pr.PROJ_NAME, br.BRANCH_NAME, b.BOM_VERSION ||'.'||b.BOM_LIFECYCLE  AS LOCATION, "&_
829
	"        pr.PROJ_ID, b.BOM_ID, br.BRANCH_ID"&_
830
	"  FROM BRANCHES br,"&_
831
	"  		BOMS b,"&_
832
	"  	    DM_PROJECTS pr"&_
833
	" WHERE br.PROJ_ID = pr.PROJ_ID"&_
834
	" 	AND b.BRANCH_ID = br.BRANCH_ID"&_
835
	"   AND b.BOM_ID ="&parSBOMB, cint(0))
836
 
837
 
838
                NewTextFile.WriteLine("<title>Difference Report Between "&_
839
                NewTextFile.WriteLine("<link rel="shortcut icon" href="<%=FavIcon%>"/>
840
                            rsQryA("branch_name")&" "& rsQryA("location")&" and "&_
841
                            rsQryB("branch_name")&" "& rsQryB("location")&_
842
                            "</title>")
843
                Call Javascript()
844
                Call Styles()
845
                NewTextFile.WriteLine("</head>")
846
                NewTextFile.WriteLine("<body>")
847
                NewTextFile.WriteLine("<div class="&chr(34)&"page_title"&chr(34)&">Difference Report Between "&_
848
                            rsQryA("proj_name") & " > " & rsQryA("branch_name")&" > "&rsQryA("location")&" and "&_
849
                            rsQryB("proj_name") & " > " & rsQryB("branch_name")&" > "&rsQryB("location")&_
850
                            "</div><br><br>")
851
 
852
                NewTextFile.WriteLine("<b>Toggle Sections:</b><blockquote>")
853
                NewTextFile.WriteLine("<a href=""javascript:;"" onClick=""MM_toggleAll('divPkgInfo','1');"">Expand All</a>")
854
                NewTextFile.WriteLine("<a href=""javascript:;"" onClick=""MM_toggleAll('divPkgInfo','');"">Collapse All</a>")
855
                NewTextFile.WriteLine("</blockquote>")
856
 
857
                While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))
858
                VersionList = "0"
859
                errormsg = false
860
                    rowId = rsQry("pv_id_a") &"_"& rsQry("pv_id_b")
861
 
862
                    btnMerge = LIMG_MERGE
863
                    btnRemove = LIMG_REMOVE
864
                    colorA = LCOLOR_NOT_CHANGED
865
                    colorB = LCOLOR_NOT_CHANGED
866
 
867
                    Select Case rsQry("change_type")
868
                        Case "U"
869
                            colorA = LCOLOR_CHANGED
870
                            colorB = LCOLOR_CHANGED
871
                        Case "UW"
872
                            colorA = LCOLOR_CHANGED
873
                            colorB = LCOLOR_CHANGED
874
                            btnMerge = LIMG_MERGE_WARN
875
                        Case "UR"
876
                            colorA = LCOLOR_RIPPLED
877
                            colorB = LCOLOR_RIPPLED
878
                        Case "A"
879
                            colorA = LCOLOR_BLANK
880
                        Case "R"
881
                            colorB = LCOLOR_BLANK
882
                    End Select
883
 
884
                    Call GetDiffStateIcon ( rsQry("change_type"), ChangeTypeIcon )
885
                %>
886
                  <tr>
887
                    <td class="body_row" nowrap>
888
                        <DIV id="PVA<%=rowId%>" style="background:<%=colorA%>; padding:5px;">
889
                        <%=rsQry("pkg_name_a") &" "& rsQry("pkg_version_a")%>
890
                        </DIV>
891
                        <input type="hidden" id="UNDOCOLORA_<%=rowId%>" value="<%=colorA%>">
892
                    </td>
893
                    <td bgcolor="#F5F5F5"></td>
894
                    <td bgcolor="#E4E9EC"><DIV id="IMGSTATE<%=rowId%>" ><%=ChangeTypeIcon%></DIV><input type="hidden" id="CHANGETYPE_<%=rowId%>" value="<%=rsQry("change_type")%>"></td>
895
                    <td bgcolor="#F5F5F5"></td>
896
                    <td class="body_row" nowrap>
897
                        <DIV id="PVB<%=rowId%>" style="background:<%=colorB%>; padding:5px;">
898
                        <%=rsQry("pkg_name_b") &" "& rsQry("pkg_version_b")%>
899
                        </DIV>
900
                        <input type="hidden" id="UNDOCOLORB_<%=rowId%>" value="<%=colorB%>">
901
                        <input type="hidden" name="addpkg" id="ADDPKG_<%=rowId%>" value="">
902
                        <input type="hidden" name="removepkg" id="REMOVEPKG_<%=rowId%>" value="">
903
                        <input type="hidden" id="UNDOPKG_<%=rowId%>" value="<%=rsQry("pkg_name_b") &" "& rsQry("pkg_version_b")%>">
904
                    </td>
905
                  </tr>
906
<%
907
    If genReport Then
908
        If rsQry("pv_id_a") Then
909
            Set rsQryCommentsA = OraDatabase.DbCreateDynaset( "SELECT COMMENTS FROM PACKAGE_VERSIONS WHERE PV_ID="& rsQry("pv_id_a"), cint(0))
910
        End If
911
 
912
        If rsQry("pv_id_b") Then
913
            Set rsQryCommentsB = OraDatabase.DbCreateDynaset( "SELECT COMMENTS FROM PACKAGE_VERSIONS WHERE PV_ID="& rsQry("pv_id_b"), cint(0))
914
        End If
915
 
916
        pkgA = rsQry("pkg_name_a")
917
        pkgB = rsQry("pkg_name_b")
918
 
919
        If pkgA <> "" then
920
            pkgname = pkgA
921
        Else
922
            pkgname = pkgB
923
        End If
924
 
925
        If rsQry("change_type") = "U" OR rsQry("change_type") = "UW" Then
926
                NewTextFile.Write("<p><a href=""javascript:;"" class=""body_scol"" onClick=""toggleSPAN('"& rowId &"');"">"& pkgname &"</a>")
927
                NewTextFile.WriteLine("<DIV class=divPkgInfo id=""spanPkgInfo"& rowId &""" name=""spanPkgInfo"" style=""display:none;"">")
928
                NewTextFile.Write(rsQryA("location")&" uses: "&rsQry("pkg_version_a")&" ")
929
 
930
                NewTextFile.WriteLine("<br>")
931
                NewTextFile.Write(rsQryB("location")&" uses: "&rsQry("pkg_version_b")&" ")
932
 
933
                a = rsQry("pv_id_a")
934
                b = rsQry("pv_id_b")
935
                c = rsQry("pv_id_a")
936
                d = rsQry("pv_id_b")
937
 
938
                NewTextFile.WriteLine("<br><br>")
939
                NewTextFile.WriteLine()
940
                NewTextFile.WriteLine("<b>"&rsQryB("location")&"</b>")
941
                Call Comments(rsQry("pv_id_b"), Request("filter_comments"))
942
                Call GetFixedIssues(rsQry("pv_id_b"), Request("filter_issues"))
943
 
944
                Dim rsQryLast
945
                Set rsQryLast = OraDatabase.DbCreateDynaset( "SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="& rsQry("pv_id_b"), cint(0))
946
 
947
                If rsQryLast("last_pv_id") <> a Then
948
                    Call PreviousVersions(a, b, rsQry("pkg_version_a"), rsQry("pkg_version_b"), Request("filter_comments"), Request("filter_issues"))
949
                End If
950
 
951
                a = rsQry("pv_id_a")
952
                b = rsQry("pv_id_b")
953
                Call GetDependencies(a, VersionList + ","+ b, rsQry("pkg_version_a"), rsQry("pkg_version_b"), Request("filter_comments"), Request("filter_issues"))
954
                NewTextFile.WriteLine("</DIV>")
955
 
956
                rsQryLast.Close()
957
                Set rsQryLast = Nothing
958
 
959
        End If
960
 
961
        If rsQry("change_type") = "A" AND rsQry("patch_b") = "Y" Then
962
            Dim rsQryPatch
963
            OraDatabase.Parameters.Add "PV_ID",     rsQry("pv_id_b"),   ORAPARM_INPUT, ORATYPE_NUMBER
964
            Set rsQryPatch = OraDatabase.DbCreateDynaset( GetQuery("pd_patch.sql"), cint(0))
965
            OraDatabase.Parameters.Remove "PV_ID"
966
            If NOT IsNull(rsQryPatch("pv_id")) Then
967
                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>")
968
                NewTextFile.WriteLine("<DIV class=divPkgInfo id=""spanPkgInfo_p"& rowId &""" name=""spanPkgInfo"" style=""display:none;"">")
969
                Call Comments(rsQryPatch("pv_id"), Request("filter_comments"))
970
                Call GetFixedIssues(rsQryPatch("pv_id"), Request("filter_issues"))
971
            Else
972
                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>")
973
                NewTextFile.WriteLine("<DIV class=divPkgInfo  id=""spanPkgInfo_p"& rowId &""" name=""spanPkgInfo"" style=""display:none;"">")
974
                Call Comments(rsQry("pv_id_b"), Request("filter_comments"))
975
                Call GetFixedIssues(rsQry("pv_id_b"), Request("filter_issues"))
976
            End If
977
 
978
            NewTextFile.WriteLine("</DIV>")
979
            rsQryPatch.Close
980
            Set rsQryPatch = nothing
981
 
982
        End If
983
 
984
    End If
985
 
986
    rsQry.MoveNext
987
    WEnd
988
 
989
    rsQry.Close
990
    Set rsQry = Nothing
991
%>
992
<%
993
    Call Footer()
994
    NewTextFile.Close
995
    Set NewTextFile=Nothing
996
%>
997
                </table>
998
                <br>
999
            <%Else%>
1000
                <br>
1001
                <%
1002
                If (parRtagB <> "") Then
1003
                    Call Messenger ( "Select <b>SBOM A</b> to compare.", 3, "100%" )
1004
                ElseIf (parRtagA <> "") Then
1005
                    Call Messenger ( "Select <b>SBOM B</b> to compare.", 3, "100%" )
1006
                Else
1007
                    Call Messenger ( "Select <b>SBOM A</b> and <b>SBOM B</b> to compare.", 3, "100%" )
1008
                End If
1009
                %>
1010
 
1011
            <%End If%>
1012
 
1013
                </td>
1014
                <td width="1%" background="images/lbox_bgside_white.gif">&nbsp;</td>
1015
              </tr>
1016
              <tr>
1017
                <td width="1%" background="images/lbox_bg_blue.gif" valign="bottom"><img src="images/lbox_bl_cnr_b.gif" width="13" height="13"></td>
1018
                <td background="images/lbox_bg_blue.gif"></td>
1019
                <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>
1020
              </tr>
1021
            </table>
1022
          </td>
1023
        </tr>
1024
      </table>
1025
    <!-- DIFF END ---------------------------------------------------->
1026
    </td>
1027
    <td valign="top" background="images/bg_lite_blue.gif">
1028
 
1029
 
1030
      <!-- SELECT SBOM B ---------------------------------------------->
1031
      <br>
1032
      <table width="100%"  border="0" cellspacing="10" cellpadding="0">
1033
        <tr>
1034
          <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>
1035
        </tr>
1036
        <tr>
1037
          <td align="left">
1038
          <select name="projB" class="form_item" onChange="RequestReleaseCombo( '?proj_id='+ this.value, FormName.rtagB );">
1039
              <option value="">-- Select Project --</option>
1040
              <%
1041
              OraDatabase.Parameters.Add "PROJ_ID",     objRelCollectorB.Item("proj_id"),   ORAPARM_INPUT, ORATYPE_NUMBER
1042
 
1043
              Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ProjectsCombo.sql"), cint(0))
1044
 
1045
              OraDatabase.Parameters.Remove "PROJ_ID"
1046
 
1047
              While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
1048
                <option value="<%=rsQry("proj_id")%>" <%=rsQry("selected")%>><%=rsQry("proj_name")%></option>
1049
              <%rsQry.MoveNext
1050
              WEnd
1051
 
1052
              rsQry.Close
1053
              Set rsQry = Nothing
1054
            %>
1055
         </select>
1056
        </td>
1057
        </tr>
1058
        <tr>
1059
          <td align="left">
1060
 
1061
          <select name="rtagB" id="rtagB" class="form_item" onChange="RequestSBOMCombo( '?branch_id='+ this.value, FormName.sbomB );">
1062
              <option value="">-- Select Branch --</option>
1063
              <%
1064
              OraDatabase.Parameters.Add "PROJ_ID",     objRelCollectorB.Item("proj_id"),   ORAPARM_INPUT,  ORATYPE_NUMBER
1065
              OraDatabase.Parameters.Add "BRANCH_ID",   objRelCollectorB.Item("branch_id"), ORAPARM_INPUT, ORATYPE_NUMBER
1066
 
1067
              Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ReleasesCombo.sql"), cint(0))
1068
 
1069
              OraDatabase.Parameters.Remove "PROJ_ID"
1070
              OraDatabase.Parameters.Remove "BRANCH_ID"
1071
 
1072
              While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
1073
                <option value="<%=rsQry("branch_id")%>" <%=rsQry("selected")%>><%=rsQry("branch_name")%></option>
1074
              <%rsQry.MoveNext
1075
              WEnd
1076
 
1077
              rsQry.Close
1078
              Set rsQry = Nothing
1079
              %>
1080
          </select></td>
1081
        </tr>
1082
        <tr>
1083
          <td align="left">
1084
 
1085
 
1086
          <select name="sbomB" id="sbomB" class="form_item">
1087
            <%
1088
              OraDatabase.Parameters.Add "BOM_ID",  objRelCollectorB.Item("bom_id"),    ORAPARM_INPUT,  ORATYPE_NUMBER
1089
              OraDatabase.Parameters.Add "BRANCH_ID",   objRelCollectorB.Item("branch_id"), ORAPARM_INPUT, ORATYPE_NUMBER
1090
 
1091
              Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("SBOMCombo.sql"), cint(0))
1092
 
1093
              OraDatabase.Parameters.Remove "BOM_ID"
1094
              OraDatabase.Parameters.Remove "BRANCH_ID"
1095
 
1096
              While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
1097
            <option value="<%=rsQry("bom_id")%>" <%=rsQry("selected")%>><%=rsQry("version")%></option>
1098
            <%rsQry.MoveNext
1099
              WEnd
1100
 
1101
              rsQry.Close
1102
              Set rsQry = Nothing
1103
              %>
1104
          </select>
1105
 
1106
 
1107
          </td>
1108
        </tr>
1109
        <%If (parRtagB <> "") Then%>
1110
        <tr>
1111
          <td align="left"><a href="Bom_home.asp?bom_id=<%=parSBOMB%>" class="body_txt_drk">Go To SBOM B &raquo;</a></td>
1112
        </tr>
1113
        <%End If%>
1114
                </table>
1115
                <!-- SELECT RELEASE B END ---------------------------------------------->
1116
            </td>
1117
        </tr>
1118
        <tr>
1119
            <td valign="bottom" align="center" background="images/bg_lite_blue.gif">
1120
                <img src="images/img_vtree.gif" width="86" height="99" vspace="20" hspace="30">
1121
            </td>
1122
            <td valign="bottom" background="images/bg_lite_blue.gif" align="center">
1123
                <img src="images/img_vtree.gif" width="86" height="99" vspace="20" hspace="30">
1124
            </td>
1125
        </tr>
1126
    </table>
1127
</form>
1128
<!-- FOOTER -->
1129
<!--#include file="_footer.asp"-->
1130
<%
1131
If email Then
1132
 
1133
    Dim myMail, LocalPath
1134
    Set myMail=Server.CreateObject("Persits.MailSender")
1135
    LocalPath = Server.MapPath("docs\compareBoms_"&objAccessControl.UserName&".html")
1136
 
1137
    myMail.Host = SMTP_HOST
1138
    myMail.Subject="BOM Comparisons from Deployment Manager"
1139
    myMail.From="releasem@erggroup.com"
1140
    myMail.AddAddress objAccessControl.UserEmail
1141
    ' Attach the file
1142
    myMail.AddAttachment LocalPath
1143
    myMail.Body = "Your requested report..."
1144
    myMail.Send
1145
 
1146
    set myMail=nothing
1147
 
1148
End If
1149
%>
1150
</body>
1151
</html>
1152
<%
1153
Call Destroy_All_Objects
1154
%>
13 rsolanki 1155
<!--#include file="common/globals_destructor.asp"-->