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