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
                            rsQryA("branch_name")&" "& rsQryA("location")&" and "&_
840
                            rsQryB("branch_name")&" "& rsQryB("location")&_
841
                            "</title>")
842
                Call Javascript()
843
                Call Styles()
844
                NewTextFile.WriteLine("</head>")
845
                NewTextFile.WriteLine("<body>")
846
                NewTextFile.WriteLine("<div class="&chr(34)&"page_title"&chr(34)&">Difference Report Between "&_
847
                            rsQryA("proj_name") & " > " & rsQryA("branch_name")&" > "&rsQryA("location")&" and "&_
848
                            rsQryB("proj_name") & " > " & rsQryB("branch_name")&" > "&rsQryB("location")&_
849
                            "</div><br><br>")
850
 
851
                NewTextFile.WriteLine("<b>Toggle Sections:</b><blockquote>")
852
                NewTextFile.WriteLine("<a href=""javascript:;"" onClick=""MM_toggleAll('divPkgInfo','1');"">Expand All</a>")
853
                NewTextFile.WriteLine("<a href=""javascript:;"" onClick=""MM_toggleAll('divPkgInfo','');"">Collapse All</a>")
854
                NewTextFile.WriteLine("</blockquote>")
855
 
856
                While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))
857
                VersionList = "0"
858
                errormsg = false
859
                    rowId = rsQry("pv_id_a") &"_"& rsQry("pv_id_b")
860
 
861
                    btnMerge = LIMG_MERGE
862
                    btnRemove = LIMG_REMOVE
863
                    colorA = LCOLOR_NOT_CHANGED
864
                    colorB = LCOLOR_NOT_CHANGED
865
 
866
                    Select Case rsQry("change_type")
867
                        Case "U"
868
                            colorA = LCOLOR_CHANGED
869
                            colorB = LCOLOR_CHANGED
870
                        Case "UW"
871
                            colorA = LCOLOR_CHANGED
872
                            colorB = LCOLOR_CHANGED
873
                            btnMerge = LIMG_MERGE_WARN
874
                        Case "UR"
875
                            colorA = LCOLOR_RIPPLED
876
                            colorB = LCOLOR_RIPPLED
877
                        Case "A"
878
                            colorA = LCOLOR_BLANK
879
                        Case "R"
880
                            colorB = LCOLOR_BLANK
881
                    End Select
882
 
883
                    Call GetDiffStateIcon ( rsQry("change_type"), ChangeTypeIcon )
884
                %>
885
                  <tr>
886
                    <td class="body_row" nowrap>
887
                        <DIV id="PVA<%=rowId%>" style="background:<%=colorA%>; padding:5px;">
888
                        <%=rsQry("pkg_name_a") &" "& rsQry("pkg_version_a")%>
889
                        </DIV>
890
                        <input type="hidden" id="UNDOCOLORA_<%=rowId%>" value="<%=colorA%>">
891
                    </td>
892
                    <td bgcolor="#F5F5F5"></td>
893
                    <td bgcolor="#E4E9EC"><DIV id="IMGSTATE<%=rowId%>" ><%=ChangeTypeIcon%></DIV><input type="hidden" id="CHANGETYPE_<%=rowId%>" value="<%=rsQry("change_type")%>"></td>
894
                    <td bgcolor="#F5F5F5"></td>
895
                    <td class="body_row" nowrap>
896
                        <DIV id="PVB<%=rowId%>" style="background:<%=colorB%>; padding:5px;">
897
                        <%=rsQry("pkg_name_b") &" "& rsQry("pkg_version_b")%>
898
                        </DIV>
899
                        <input type="hidden" id="UNDOCOLORB_<%=rowId%>" value="<%=colorB%>">
900
                        <input type="hidden" name="addpkg" id="ADDPKG_<%=rowId%>" value="">
901
                        <input type="hidden" name="removepkg" id="REMOVEPKG_<%=rowId%>" value="">
902
                        <input type="hidden" id="UNDOPKG_<%=rowId%>" value="<%=rsQry("pkg_name_b") &" "& rsQry("pkg_version_b")%>">
903
                    </td>
904
                  </tr>
905
<%
906
    If genReport Then
907
        If rsQry("pv_id_a") Then
908
            Set rsQryCommentsA = OraDatabase.DbCreateDynaset( "SELECT COMMENTS FROM PACKAGE_VERSIONS WHERE PV_ID="& rsQry("pv_id_a"), cint(0))
909
        End If
910
 
911
        If rsQry("pv_id_b") Then
912
            Set rsQryCommentsB = OraDatabase.DbCreateDynaset( "SELECT COMMENTS FROM PACKAGE_VERSIONS WHERE PV_ID="& rsQry("pv_id_b"), cint(0))
913
        End If
914
 
915
        pkgA = rsQry("pkg_name_a")
916
        pkgB = rsQry("pkg_name_b")
917
 
918
        If pkgA <> "" then
919
            pkgname = pkgA
920
        Else
921
            pkgname = pkgB
922
        End If
923
 
924
        If rsQry("change_type") = "U" OR rsQry("change_type") = "UW" Then
925
                NewTextFile.Write("<p><a href=""javascript:;"" class=""body_scol"" onClick=""toggleSPAN('"& rowId &"');"">"& pkgname &"</a>")
926
                NewTextFile.WriteLine("<DIV class=divPkgInfo id=""spanPkgInfo"& rowId &""" name=""spanPkgInfo"" style=""display:none;"">")
927
                NewTextFile.Write(rsQryA("location")&" uses: "&rsQry("pkg_version_a")&" ")
928
 
929
                NewTextFile.WriteLine("<br>")
930
                NewTextFile.Write(rsQryB("location")&" uses: "&rsQry("pkg_version_b")&" ")
931
 
932
                a = rsQry("pv_id_a")
933
                b = rsQry("pv_id_b")
934
                c = rsQry("pv_id_a")
935
                d = rsQry("pv_id_b")
936
 
937
                NewTextFile.WriteLine("<br><br>")
938
                NewTextFile.WriteLine()
939
                NewTextFile.WriteLine("<b>"&rsQryB("location")&"</b>")
940
                Call Comments(rsQry("pv_id_b"), Request("filter_comments"))
941
                Call GetFixedIssues(rsQry("pv_id_b"), Request("filter_issues"))
942
 
943
                Dim rsQryLast
944
                Set rsQryLast = OraDatabase.DbCreateDynaset( "SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="& rsQry("pv_id_b"), cint(0))
945
 
946
                If rsQryLast("last_pv_id") <> a Then
947
                    Call PreviousVersions(a, b, rsQry("pkg_version_a"), rsQry("pkg_version_b"), Request("filter_comments"), Request("filter_issues"))
948
                End If
949
 
950
                a = rsQry("pv_id_a")
951
                b = rsQry("pv_id_b")
952
                Call GetDependencies(a, VersionList + ","+ b, rsQry("pkg_version_a"), rsQry("pkg_version_b"), Request("filter_comments"), Request("filter_issues"))
953
                NewTextFile.WriteLine("</DIV>")
954
 
955
                rsQryLast.Close()
956
                Set rsQryLast = Nothing
957
 
958
        End If
959
 
960
        If rsQry("change_type") = "A" AND rsQry("patch_b") = "Y" Then
961
            Dim rsQryPatch
962
            OraDatabase.Parameters.Add "PV_ID",     rsQry("pv_id_b"),   ORAPARM_INPUT, ORATYPE_NUMBER
963
            Set rsQryPatch = OraDatabase.DbCreateDynaset( GetQuery("pd_patch.sql"), cint(0))
964
            OraDatabase.Parameters.Remove "PV_ID"
965
            If NOT IsNull(rsQryPatch("pv_id")) Then
966
                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>")
967
                NewTextFile.WriteLine("<DIV class=divPkgInfo id=""spanPkgInfo_p"& rowId &""" name=""spanPkgInfo"" style=""display:none;"">")
968
                Call Comments(rsQryPatch("pv_id"), Request("filter_comments"))
969
                Call GetFixedIssues(rsQryPatch("pv_id"), Request("filter_issues"))
970
            Else
971
                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>")
972
                NewTextFile.WriteLine("<DIV class=divPkgInfo  id=""spanPkgInfo_p"& rowId &""" name=""spanPkgInfo"" style=""display:none;"">")
973
                Call Comments(rsQry("pv_id_b"), Request("filter_comments"))
974
                Call GetFixedIssues(rsQry("pv_id_b"), Request("filter_issues"))
975
            End If
976
 
977
            NewTextFile.WriteLine("</DIV>")
978
            rsQryPatch.Close
979
            Set rsQryPatch = nothing
980
 
981
        End If
982
 
983
    End If
984
 
985
    rsQry.MoveNext
986
    WEnd
987
 
988
    rsQry.Close
989
    Set rsQry = Nothing
990
%>
991
<%
992
    Call Footer()
993
    NewTextFile.Close
994
    Set NewTextFile=Nothing
995
%>
996
                </table>
997
                <br>
998
            <%Else%>
999
                <br>
1000
                <%
1001
                If (parRtagB <> "") Then
1002
                    Call Messenger ( "Select <b>SBOM A</b> to compare.", 3, "100%" )
1003
                ElseIf (parRtagA <> "") Then
1004
                    Call Messenger ( "Select <b>SBOM B</b> to compare.", 3, "100%" )
1005
                Else
1006
                    Call Messenger ( "Select <b>SBOM A</b> and <b>SBOM B</b> to compare.", 3, "100%" )
1007
                End If
1008
                %>
1009
 
1010
            <%End If%>
1011
 
1012
                </td>
1013
                <td width="1%" background="images/lbox_bgside_white.gif">&nbsp;</td>
1014
              </tr>
1015
              <tr>
1016
                <td width="1%" background="images/lbox_bg_blue.gif" valign="bottom"><img src="images/lbox_bl_cnr_b.gif" width="13" height="13"></td>
1017
                <td background="images/lbox_bg_blue.gif"></td>
1018
                <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>
1019
              </tr>
1020
            </table>
1021
          </td>
1022
        </tr>
1023
      </table>
1024
    <!-- DIFF END ---------------------------------------------------->
1025
    </td>
1026
    <td valign="top" background="images/bg_lite_blue.gif">
1027
 
1028
 
1029
      <!-- SELECT SBOM B ---------------------------------------------->
1030
      <br>
1031
      <table width="100%"  border="0" cellspacing="10" cellpadding="0">
1032
        <tr>
1033
          <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>
1034
        </tr>
1035
        <tr>
1036
          <td align="left">
1037
          <select name="projB" class="form_item" onChange="RequestReleaseCombo( '?proj_id='+ this.value, FormName.rtagB );">
1038
              <option value="">-- Select Project --</option>
1039
              <%
1040
              OraDatabase.Parameters.Add "PROJ_ID",     objRelCollectorB.Item("proj_id"),   ORAPARM_INPUT, ORATYPE_NUMBER
1041
 
1042
              Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ProjectsCombo.sql"), cint(0))
1043
 
1044
              OraDatabase.Parameters.Remove "PROJ_ID"
1045
 
1046
              While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
1047
                <option value="<%=rsQry("proj_id")%>" <%=rsQry("selected")%>><%=rsQry("proj_name")%></option>
1048
              <%rsQry.MoveNext
1049
              WEnd
1050
 
1051
              rsQry.Close
1052
              Set rsQry = Nothing
1053
            %>
1054
         </select>
1055
        </td>
1056
        </tr>
1057
        <tr>
1058
          <td align="left">
1059
 
1060
          <select name="rtagB" id="rtagB" class="form_item" onChange="RequestSBOMCombo( '?branch_id='+ this.value, FormName.sbomB );">
1061
              <option value="">-- Select Branch --</option>
1062
              <%
1063
              OraDatabase.Parameters.Add "PROJ_ID",     objRelCollectorB.Item("proj_id"),   ORAPARM_INPUT,  ORATYPE_NUMBER
1064
              OraDatabase.Parameters.Add "BRANCH_ID",   objRelCollectorB.Item("branch_id"), ORAPARM_INPUT, ORATYPE_NUMBER
1065
 
1066
              Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ReleasesCombo.sql"), cint(0))
1067
 
1068
              OraDatabase.Parameters.Remove "PROJ_ID"
1069
              OraDatabase.Parameters.Remove "BRANCH_ID"
1070
 
1071
              While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
1072
                <option value="<%=rsQry("branch_id")%>" <%=rsQry("selected")%>><%=rsQry("branch_name")%></option>
1073
              <%rsQry.MoveNext
1074
              WEnd
1075
 
1076
              rsQry.Close
1077
              Set rsQry = Nothing
1078
              %>
1079
          </select></td>
1080
        </tr>
1081
        <tr>
1082
          <td align="left">
1083
 
1084
 
1085
          <select name="sbomB" id="sbomB" class="form_item">
1086
            <%
1087
              OraDatabase.Parameters.Add "BOM_ID",  objRelCollectorB.Item("bom_id"),    ORAPARM_INPUT,  ORATYPE_NUMBER
1088
              OraDatabase.Parameters.Add "BRANCH_ID",   objRelCollectorB.Item("branch_id"), ORAPARM_INPUT, ORATYPE_NUMBER
1089
 
1090
              Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("SBOMCombo.sql"), cint(0))
1091
 
1092
              OraDatabase.Parameters.Remove "BOM_ID"
1093
              OraDatabase.Parameters.Remove "BRANCH_ID"
1094
 
1095
              While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
1096
            <option value="<%=rsQry("bom_id")%>" <%=rsQry("selected")%>><%=rsQry("version")%></option>
1097
            <%rsQry.MoveNext
1098
              WEnd
1099
 
1100
              rsQry.Close
1101
              Set rsQry = Nothing
1102
              %>
1103
          </select>
1104
 
1105
 
1106
          </td>
1107
        </tr>
1108
        <%If (parRtagB <> "") Then%>
1109
        <tr>
1110
          <td align="left"><a href="Bom_home.asp?bom_id=<%=parSBOMB%>" class="body_txt_drk">Go To SBOM B &raquo;</a></td>
1111
        </tr>
1112
        <%End If%>
1113
                </table>
1114
                <!-- SELECT RELEASE B END ---------------------------------------------->
1115
            </td>
1116
        </tr>
1117
        <tr>
1118
            <td valign="bottom" align="center" background="images/bg_lite_blue.gif">
1119
                <img src="images/img_vtree.gif" width="86" height="99" vspace="20" hspace="30">
1120
            </td>
1121
            <td valign="bottom" background="images/bg_lite_blue.gif" align="center">
1122
                <img src="images/img_vtree.gif" width="86" height="99" vspace="20" hspace="30">
1123
            </td>
1124
        </tr>
1125
    </table>
1126
</form>
1127
<!-- FOOTER -->
1128
<!--#include file="_footer.asp"-->
1129
<%
1130
If email Then
1131
 
1132
    Dim myMail, LocalPath
1133
    Set myMail=Server.CreateObject("Persits.MailSender")
1134
    LocalPath = Server.MapPath("docs\compareBoms_"&objAccessControl.UserName&".html")
1135
 
1136
    myMail.Host = SMTP_HOST
1137
    myMail.Subject="BOM Comparisons from Deployment Manager"
1138
    myMail.From="releasem@erggroup.com"
1139
    myMail.AddAddress objAccessControl.UserEmail
1140
    ' Attach the file
1141
    myMail.AddAttachment LocalPath
1142
    myMail.Body = "Your requested report..."
1143
    myMail.Send
1144
 
1145
    set myMail=nothing
1146
 
1147
End If
1148
%>
1149
</body>
1150
</html>
1151
<%
1152
Call Destroy_All_Objects
1153
%>
13 rsolanki 1154
<!--#include file="common/globals_destructor.asp"-->