Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

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