Subversion Repositories DevTools

Rev

Rev 3938 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
13 rsolanki 1
<%@LANGUAGE="VBSCRIPT"%>
2
<%
3
'=====================================================
4
'|                                                   |
4020 dpurdie 5
'|                      BOM DIFF                     |
13 rsolanki 6
'|                                                   |
7
'=====================================================
8
%>
9
<%
10
Option explicit
11
' Good idea to set when using redirect
4020 dpurdie 12
Response.Expires = 0    ' always load the page, dont store
13 rsolanki 13
%>
14
 
15
<%
1371 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"-->
34
<%
35
'------------ Variable Definition -------------
36
Dim rsQry
37
Dim objRelCollectorA
38
Dim objRelCollectorB
39
Dim parRtagA
40
Dim parRtagB
41
Dim parSBOMA
42
Dim parSBOMB
43
Dim dDiffFilter
44
Dim colorA, colorB, ChangeTypeIcon
45
Dim btnMerge, btnRemove
46
Dim rowId
47
Dim email
4020 dpurdie 48
Dim genReport
13 rsolanki 49
Dim FSO
50
Dim NewTextFile
17 rsolanki 51
Dim pkgA, pkgB, pkgname, delimiter, rsQryA, rsQryB, rsQryCommentsA, rsQryCommentsB, sqlstrA, counterA, sqlstrB, sqlstrC, counterB
3938 dpurdie 52
Dim SSsql, retVal, rsCQ, DEVIiss
4020 dpurdie 53
Dim a, b, c, d, pkgversion, errormsg
23 rsolanki 54
Dim VersionList
13 rsolanki 55
 
56
 
57
'------------ Constants Declaration -----------
58
Const LIMG_UPDATED = "<img src='images/i_updated.gif' width='11' height='11' border='0' hspace='5' align='absmiddle' title='Updated'>"
4020 dpurdie 59
Const LIMG_RIPPLED = "<img src='images/i_rippled.gif' width='11' height='11' border='0' hspace='5' align='absmiddle' title='Rippled'>"
13 rsolanki 60
Const LIMG_ADDED = "<img src='images/i_added.gif' width='11' height='11' border='0' hspace='5' align='absmiddle' title='Added'>"
61
Const LIMG_REMOVED = "<img src='images/i_removed.gif' width='11' height='11' border='0' hspace='5' align='absmiddle' title='Removed'>"
62
Const LIMG_FILTER_ON = "<img src='images/i_data_table.gif' border='0' align='absmiddle' hspace='0' title='Filter in use.'>"
63
Const LIMG_FILTER_OFF = "<img src='images/i_data_table_off.gif' border='0' align='absmiddle' hspace='0' title='Filter not in use.'>"
64
Const LIMG_DROP_DOWN_ARROW = "<img src='images/i_drop_down_arrow.gif' width='5' height='15' hspace='1' border='0' align='absmiddle'>"
65
Const LCOLOR_NOT_CHANGED = "#F5F5F5"
66
Const LCOLOR_CHANGED = "#d2f7c9"
4020 dpurdie 67
Const LCOLOR_RIPPLED = "#D8F8F8"
13 rsolanki 68
Const LCOLOR_BLANK = "#FFFFFF"
69
Const LIMG_MERGE = "<img src='images/bt_move_all_right.gif' title='Click to merge.' border='0'>"
70
Const LIMG_MERGE_WARN = "<img src='images/bt_move_warn_right.gif' title='Right hand side version is newer.' border='0'>"
71
Const LIMG_REMOVE = "<img src='images/bt_remove.gif' title='Remove this version from release.' border='0'>"
72
Const LIMG_UNDO = "<img src='images/bt_undo.gif' title='Undo merge/remove.' border='0'>"
73
'------------ Variable Init -------------------
74
Set rsCQ = Server.CreateObject("ADODB.Recordset")
75
parRtagA = Request("rtagA")
76
parRtagB = Request("rtagB")
77
parSBOMA = Request("sbomA")
78
parSBOMB = Request("sbomB")
79
Set objRelCollectorA = CreateObject("Scripting.Dictionary")
80
Set objRelCollectorB = CreateObject("Scripting.Dictionary")
81
Set dDiffFilter = CreateObject("Scripting.Dictionary")
82
 
83
'----------------------------------------------
84
If Request("btn") = "Mail Me Report" Then
4020 dpurdie 85
    email = true
86
    genReport = true
13 rsolanki 87
End If
4020 dpurdie 88
If Request("btn") = "Show Me Report" Then
89
    genReport = true
90
End If
13 rsolanki 91
%>
92
<%
93
'--------------------------------------------------------------------------------------------------------------------------
94
Sub GetDiffFilterValues ( outDepFilter )
4020 dpurdie 95
    Dim FilterVal, aFilterValues
29 jtweddle 96
 
4020 dpurdie 97
    If Request.Cookies(enum_RELMGR_COOKIE_DOMAIN)(COOKIE_HIDE_DIFF_FILTER) <> "" Then
98
        aFilterValues = Split( Replace( Request.Cookies(enum_RELMGR_COOKIE_DOMAIN)(COOKIE_HIDE_DIFF_FILTER), " ", ""), ",")
99
 
100
        For Each FilterVal In aFilterValues
101
            outDepFilter.Item (CStr( FilterVal )) = ""
102
        Next
103
 
104
    End If
105
 
13 rsolanki 106
End Sub
107
'--------------------------------------------------------------------------------------------------------------------------
15 rsolanki 108
Sub Javascript()
4020 dpurdie 109
    NewTextFile.WriteLine("<script language=""JavaScript"" type=""text/javascript"">")
110
    NewTextFile.WriteLine("function MM_findObj(n, d) { //v4.0")
111
    NewTextFile.WriteLine("  var p,i,x;")
112
    NewTextFile.WriteLine("  if(!d) d=document; ")
113
    NewTextFile.WriteLine("  if((p=n.indexOf(""?""))>0&&parent.frames.length) {")
114
    NewTextFile.WriteLine("  	d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);")
115
    NewTextFile.WriteLine("  }")
116
    NewTextFile.WriteLine("  if(!(x=d[n])&&d.all) x=d.all[n]; ")
117
    NewTextFile.WriteLine("  for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];")
118
    NewTextFile.WriteLine("  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);")
119
    NewTextFile.WriteLine("  if(!x && document.getElementById) x=document.getElementById(n); ")
120
    NewTextFile.WriteLine("  return x;")
121
    NewTextFile.WriteLine("}")
122
 
123
    NewTextFile.WriteLine("function toggleSPAN(x) {")
124
    NewTextFile.WriteLine("    var el = MM_findObj('spanPkgInfo' + x);")
125
    NewTextFile.WriteLine("    if (el.style.display != ""block"") {")
126
    NewTextFile.WriteLine("        el.style.display = ""block"";")
127
    NewTextFile.WriteLine("    } else {")
128
    NewTextFile.WriteLine("        el.style.display = ""none"";")
129
    NewTextFile.WriteLine("    }")
130
    NewTextFile.WriteLine("}")
131
 
132
    NewTextFile.WriteLine("function MM_getElementsByClassName(cn) {")
133
    NewTextFile.WriteLine("    var allT=document.getElementsByTagName('*'), allCN=[], i=0, a;")
134
    NewTextFile.WriteLine("    while(a=allT[i++]) {")
135
    NewTextFile.WriteLine("        a.className==cn ? allCN[allCN.length]=a : null;")
136
    NewTextFile.WriteLine("    }")
137
    NewTextFile.WriteLine("    return allCN")
138
    NewTextFile.WriteLine("}")
139
 
140
    NewTextFile.WriteLine("    function MM_toggleAll(cn, show){")
141
    NewTextFile.WriteLine("        var allEl = MM_getElementsByClassName(cn);")
142
    NewTextFile.WriteLine("        for (var ii=0; ii<allEl.length;ii++){")
143
    NewTextFile.WriteLine("            var el = allEl[ii];")
144
    NewTextFile.WriteLine("            if(show) {")
145
    NewTextFile.WriteLine("                el.style.display = ""block"";")
146
    NewTextFile.WriteLine("            } else {")
147
    NewTextFile.WriteLine("                el.style.display = ""none"";")
148
    NewTextFile.WriteLine("            }")
149
    NewTextFile.WriteLine("        }")
150
    NewTextFile.WriteLine("    }")
151
 
152
    NewTextFile.WriteLine("</script>")
15 rsolanki 153
End Sub
154
'--------------------------------------------------------------------------------------------------------------------------
29 jtweddle 155
Sub GetFixedIssues(pv_id, issues)
4020 dpurdie 156
    If issues <> "Filter Issues" Then
157
        Set sqlstrC = OraDatabase.DbCreateDynaset("SELECT iss_db, iss_id, iss_state, notes FROM CQ_ISSUES" &_
158
                " WHERE pv_id="& pv_id &" AND iss_state = "& enumISSUES_STATE_FIXED &_
159
                " UNION SELECT iss_db, iss_id, iss_state, notes FROM ARCHIVE_MANAGER.CQ_ISSUES" &_
160
                " WHERE pv_id="& pv_id &" AND iss_state = "& enumISSUES_STATE_FIXED, cint(0))
3938 dpurdie 161
 
4020 dpurdie 162
        If sqlstrC.RecordCount <> 0 Then
163
            NewTextFile.WriteLine()
164
            NewTextFile.WriteLine("<blockquote><blockquote>Fixed Issues:</blockquote></blockquote>")
165
            NewTextFile.WriteLine("<blockquote><blockquote><blockquote><table class='fixed_issues' width='100%'>")
166
            NewTextFile.WriteLine("<tr>")
167
            NewTextFile.WriteLine("<td width='10%' class='form_field'>Issue Id</td>")
168
            NewTextFile.WriteLine("<td width='55%' class='form_field'>Summary</td>")
169
            NewTextFile.WriteLine("<td width='10%' class='form_field'>Issue Type</td>")
170
            NewTextFile.WriteLine("<td width='15%' class='form_field'>Priority</td>")
171
            NewTextFile.WriteLine("<td width='10%' class='form_field'>Status</td>")
172
            NewTextFile.WriteLine("</tr>")
13 rsolanki 173
 
4020 dpurdie 174
            While ((NOT sqlstrC.BOF) AND (NOT sqlstrC.EOF))
175
                DEVIiss = "-1"
13 rsolanki 176
 
4020 dpurdie 177
                If CInt(sqlstrC("iss_db")) = CInt(enumCLEARQUEST_DEVI_ID) Then
178
                    DEVIiss = DEVIiss &","& sqlstrC("iss_id")
179
                End If
17 rsolanki 180
 
4020 dpurdie 181
                SSsql = ReadFile( QUERIES_PATH & "\cq_issues.sql" )
182
                SSsql = Replace( SSsql, "/*enumCLEARQUEST_DEVI_ID*/", enumCLEARQUEST_DEVI_ID)
183
                SSsql = Replace( SSsql, "/*DEVIiss*/", DEVIiss)
17 rsolanki 184
 
4020 dpurdie 185
                retVal = Get_CQ_Issues ( SSsql, rsCQ )
29 jtweddle 186
 
4020 dpurdie 187
                NewTextFile.WriteLine("<tr>")
188
                NewTextFile.WriteLine("<td nowrap class='form_item'>"&rsCQ("iss_num")&"</td>")
29 jtweddle 189
 
4020 dpurdie 190
                NewTextFile.WriteLine("<td class='form_item'>"&NewLine_To_BR ( To_HTML ( rsCQ("summary") ) )&"</td>")
191
                NewTextFile.WriteLine("<td class='form_item'>"&rsCQ("issue_type")&"</td>")
192
                NewTextFile.WriteLine("<td class='form_item'>"&rsCQ("priority")&"</td>")
193
                NewTextFile.WriteLine("<td class='form_item'>"&rsCQ("Status")&"</td>")
194
                NewTextFile.WriteLine("</tr>")
195
 
196
                sqlstrC.MoveNext
197
 
198
            Wend
199
 
200
            NewTextFile.WriteLine( "                        </table></blockquote></blockquote></blockquote> 		")
201
        End If
202
 
203
        '
204
        ' Must also handle Jira Issues
205
        '
206
        Dim SQLstr
207
        retVal = Get_JIRA_Package_Issues ( pv_id, SQLstr )
208
        If retVal > 0 Then
209
            retVal = Get_JIRA_Issues ( SQLstr, rsCQ )
210
            If (retVal = 0 AND rsCQ.RecordCount > 0) Then
211
                NewTextFile.WriteLine()
212
                NewTextFile.WriteLine("<blockquote><blockquote>Jira Issues:</blockquote></blockquote>")
213
                NewTextFile.WriteLine("<blockquote><blockquote><blockquote><table class='fixed_issues' width='100%'>")
214
                NewTextFile.WriteLine("<tr>")
215
                NewTextFile.WriteLine("<td width='8%' class='form_field'>Issue Id</td>")
216
                NewTextFile.WriteLine("<td width='58%' class='form_field'>Summary</td>")
217
                NewTextFile.WriteLine("<td width='8%' class='form_field'>Issue Type</td>")
218
                NewTextFile.WriteLine("<td width='10%' class='form_field'>Priority</td>")
219
                NewTextFile.WriteLine("<td width='8%' class='form_field'>Status</td>")
220
                NewTextFile.WriteLine("<td width='8%' class='form_field'>Resolution</td>")
221
                NewTextFile.WriteLine("</tr>")
222
 
223
                While ((NOT rsCQ.BOF) AND (NOT rsCQ.EOF))
224
                    NewTextFile.WriteLine("<tr>")
225
                    NewTextFile.WriteLine("<td nowrap class='form_item'>"&rsCQ("iss_num")&"</td>")
226
                    NewTextFile.WriteLine("<td class='form_item'>"&NewLine_To_BR ( To_HTML ( rsCQ("summary") ) )&"</td>")
227
                    NewTextFile.WriteLine("<td class='form_item'>"&rsCQ("issue_type")&"</td>")
228
                    NewTextFile.WriteLine("<td class='form_item'>"&rsCQ("priority")&"</td>")
229
                    NewTextFile.WriteLine("<td class='form_item'>"&rsCQ("Status")&"</td>")
230
                    NewTextFile.WriteLine("<td class='form_item'>"&rsCQ("RESOLUTION")&"</td>")
231
                    NewTextFile.WriteLine("</tr>")
232
 
233
                    rsCQ.MoveNext
234
                Wend
235
                NewTextFile.WriteLine( "                        </table></blockquote></blockquote></blockquote> 		")
236
            End If
237
        End If
238
 
239
        sqlstrC.Close()
240
        Set sqlstrC = Nothing
241
    End If
242
 
17 rsolanki 243
End Sub
244
'--------------------------------------------------------------------------------------------------------------------------
29 jtweddle 245
Function LastPvId(pvId)
4020 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
 
4020 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)
4020 dpurdie 264
    NewTextFile.WriteLine()
265
    NewTextFile.WriteLine("<b>Versions Between: "&versionA&" and "&versionB&"</b>")
27 rsolanki 266
 
4020 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)
4020 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
 
4020 dpurdie 297
    If sqlstrA.RecordCount <> 0 Then
298
        NewTextFile.WriteLine()
299
        NewTextFile.WriteLine("<b>Dependencies Changed Between "&versionA&" and "&versionB&":</b>")
13 rsolanki 300
 
4020 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
 
4020 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
 
4020 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)
4020 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)
4020 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)
4020 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
 
4020 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
'--------------------------------------------------------------------------------------------------------------------------
4020 dpurdie 366
Sub Header()
367
    NewTextFile.WriteLine("<html>")
368
    NewTextFile.WriteLine("<head>")
13 rsolanki 369
End Sub
370
'--------------------------------------------------------------------------------------------------------------------------
371
Sub Footer()
4020 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()
4020 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 )
4020 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
 
4020 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 )
4020 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 )
4020 dpurdie 435
    Dim rsQry, query
13 rsolanki 436
 
4020 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,"&_
4020 dpurdie 446
	"  		BOMS b,"&_
13 rsolanki 447
	"  	    DM_PROJECTS pr"&_
448
	" WHERE br.PROJ_ID = pr.PROJ_ID"&_
4020 dpurdie 449
	" 	AND b.BRANCH_ID = br.BRANCH_ID"&_
13 rsolanki 450
	"   AND b.BOM_ID = :SBOM"
4020 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
 
4020 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
4020 dpurdie 493
 
494
'----------------------------------------------------------------------------------------------------------------------------------------
495
' Function returns the number of imported jira issues
496
' and builds a string suitable for querying the jira issues database
497
Function Get_JIRA_Package_Issues ( NNpv_id, SSsql )
498
   Dim rsTemp, sqlstr, JIRAIss, retVal
499
 
500
   JIRAIss = "'-1'"
501
   sqlstr = "SELECT iss_key FROM JIRA_ISSUES WHERE pv_id="& NNpv_id
502
 
503
   Set rsTemp = OraDatabase.DbCreateDynaset( sqlstr, cint(0))
504
   retVal = rsTemp.RecordCount
505
 
506
   While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))
507
      JIRAIss = JIRAIss &",'"& rsTemp("iss_key")&"'"
508
      rsTemp.MoveNext
509
   WEnd
510
 
511
   SSsql = "SELECT I.pkey AS iss_num, I.summary, ISS.pname AS Status,  IT.pname as issue_type, PR.pname as Priority, R.PNAME as RESOLUTION"&_
512
           " FROM jiraissue I, issuestatus ISS, issuetype IT, resolution R, priority PR "&_
513
           " WHERE I.pkey IN ("& JIRAIss &") "&_
514
           " AND I.issuestatus = ISS.ID "&_
515
           " AND I.RESOLUTION = R.ID "&_
516
           " AND IT.ID = I.issuetype "&_
517
           " AND PR.ID = I.PRIORITY "
518
 
519
   rsTemp.Close()
520
   Set rsTemp = nothing
521
 
522
   Get_JIRA_Package_Issues = retVal
523
 
524
End Function
525
 
526
'----------------------------------------------------------------------------------------------------------------------------------------
527
Function  Get_JIRA_Issues ( SSsql, OOrsCQ )
528
   If OOrsCQ.State = 1 Then
529
      OOrsCQ.Close()
530
   End If
531
 
532
   On Error Resume Next
533
   OOrsCQ.ActiveConnection = JIRA_conn
534
   OOrsCQ.Source = SSsql
535
   OOrsCQ.CursorType = 0
536
   OOrsCQ.CursorLocation = 3
537
   OOrsCQ.LockType = 3
538
   OOrsCQ.Open()
539
 
540
   Get_JIRA_Issues = Err.Number
541
 
542
End Function
13 rsolanki 543
'--------------------------------------------------------------------------------------------------------------------------
544
%>
545
<%
546
'------------ RUN BEFORE PAGE RENDER ----------
547
If Request("btn") = "Exit" Then
4020 dpurdie 548
    Call OpenInWindow ( "reports.asp" )
13 rsolanki 549
End If
550
 
551
' Get release details
552
Call GetFormDetails ( parSBOMA, objRelCollectorA )
553
Call GetFormDetails ( parSBOMB, objRelCollectorB )
554
 
15 rsolanki 555
If Request("btn") = "Swap Compare" Then
4020 dpurdie 556
    Call OpenInWindow ( SCRIPT_NAME &"?sbomA="& parSBOMB &"&sbomB="& parSBOMA &"&rtagA="& parRtagB &"&rtagB="& parRtagA )
15 rsolanki 557
End If
13 rsolanki 558
 
559
If Request("btn") = "Hide" Then
4020 dpurdie 560
    ' Store filter in cookie
561
    Response.Cookies(enum_RELMGR_COOKIE_DOMAIN)(COOKIE_HIDE_DIFF_FILTER) = Request("difilter")
13 rsolanki 562
End If
563
 
564
 
565
Call GetDiffFilterValues ( dDiffFilter )
566
'----------------------------------------------
567
%>
568
<html>
569
<head>
570
<title>Deployment Manager SBOM Differences</title>
571
<meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
572
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
29 jtweddle 573
<link rel="stylesheet" href="scripts/deployment_manager.css" type="text/css">
13 rsolanki 574
<link rel="stylesheet" href="images/release_manager_style.css" type="text/css">
575
<link rel="stylesheet" href="images/navigation.css" type="text/css">
29 jtweddle 576
<script language="JavaScript" src="scripts/common.js"></script>
13 rsolanki 577
<script language="JavaScript" src="scripts/remote_scripting.js"></script>
578
<script language="JavaScript" type="text/javascript">
579
<!--
580
 
4020 dpurdie 581
function RequestReleaseCombo( paramString, rowId )
582
{
583
    var requestURL = 'RequestReleaseCombo.asp';
13 rsolanki 584
 
4020 dpurdie 585
    // Set ajax divname
586
    ajaxdivname = rowId;
587
 
588
    //Append the name to search for to the requestURL
589
    var url = requestURL + paramString;
590
 
591
    //Progress
592
    //alert(MM_findObj( rowId ));
593
 
594
    //MM_findObj( rowId ).options[0] = new Option('Loading...','');
595
    //MM_findObj( rowId ).selectedIndex = 0;
596
    rowId.options[0] = new Option('Loading...','');
597
    rowId.selectedIndex = 0;
598
 
599
 
600
    //Create the xmlHttp object to use in the request
601
    //stateChangeHandler will fire when the state has changed, i.e. data is received back
602
    // This is non-blocking (asynchronous)
603
    xmlHttp = GetXmlHttpObject(stateComboChangeHandler);
604
 
605
    //Send the xmlHttp get to the specified url
606
    xmlHttp_Get(xmlHttp, url);
607
 
608
 
13 rsolanki 609
}
610
 
611
function RequestSBOMCombo( paramString, rowId ){
4020 dpurdie 612
    var requestURL = 'RequestSBOMCombo.asp';
13 rsolanki 613
 
4020 dpurdie 614
    // Set ajax divname
615
    ajaxdivname = rowId;
616
 
617
    //Append the name to search for to the requestURL
618
    var url = requestURL + paramString;
619
 
620
    //Progress
621
    //alert(MM_findObj( rowId ));
622
 
623
    //MM_findObj( rowId ).options[0] = new Option('Loading...','');
624
    //MM_findObj( rowId ).selectedIndex = 0;
625
    rowId.options[0] = new Option('Loading...','');
626
    rowId.selectedIndex = 0;
627
 
628
 
629
    //Create the xmlHttp object to use in the request
630
    //stateChangeHandler will fire when the state has changed, i.e. data is received back
631
    // This is non-blocking (asynchronous)
632
    xmlHttp = GetXmlHttpObject(stateComboChangeHandler);
633
 
634
    //Send the xmlHttp get to the specified url
635
    xmlHttp_Get(xmlHttp, url);
636
 
637
 
13 rsolanki 638
}
639
 
640
//-->
641
</script>
642
 
643
</head>
644
<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0">
645
<form name="FormName" method="post" action="<%=SCRIPT_NAME%>">
4020 dpurdie 646
    <!-- HEADER -->
647
    <!--#include file="_header.asp"-->
648
    <!-- BODY ---->
649
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
650
        <tr>
651
            <td width="20%">
652
            <td width="60%">
653
            <td width="20%">
654
        </tr>
655
        <tr>
656
    <td background="images/bg_lite_blue.gif" valign="top">
657
 
658
 
659
    <!-- SELECT SBOM A ---------------------------------------------->
660
 
661
    <br>
13 rsolanki 662
      <table width="100%"  border="0" cellspacing="10" cellpadding="0">
4020 dpurdie 663
 
664
        <tr>
13 rsolanki 665
          <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>
666
        </tr>
667
        <tr>
668
          <td align="left">
4020 dpurdie 669
          <select name="projA" class="form_item" onChange="RequestReleaseCombo( '?proj_id='+ this.value, FormName.rtagA );">
13 rsolanki 670
              <option value="">-- Select Project --</option>
4020 dpurdie 671
              <%
672
              OraDatabase.Parameters.Add "PROJ_ID",     objRelCollectorA.Item("proj_id"),   ORAPARM_INPUT, ORATYPE_NUMBER
673
 
674
              Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ProjectsCombo.sql"), cint(0))
675
 
676
              OraDatabase.Parameters.Remove "PROJ_ID"
677
 
678
              While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
13 rsolanki 679
                <option value="<%=rsQry("proj_id")%>" <%=rsQry("selected")%>><%=rsQry("proj_name")%></option>
680
              <%rsQry.MoveNext
4020 dpurdie 681
              WEnd
682
 
683
              rsQry.Close
684
              Set rsQry = Nothing
685
            %>
13 rsolanki 686
          </select></td>
687
        </tr>
688
        <tr>
689
          <td align="left">
4020 dpurdie 690
 
691
              <select name="rtagA" id="rtagA" class="form_item" onChange="RequestSBOMCombo( '?branch_id='+ this.value, FormName.sbomA );">
692
              <option value="">-- Select Branch --</option>
693
              <%
694
              OraDatabase.Parameters.Add "PROJ_ID",     objRelCollectorA.Item("proj_id"),   ORAPARM_INPUT,  ORATYPE_NUMBER
695
              OraDatabase.Parameters.Add "BRANCH_ID",   objRelCollectorA.Item("branch_id"), ORAPARM_INPUT, ORATYPE_NUMBER
696
 
697
              Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ReleasesCombo.sql"), cint(0))
698
 
699
              OraDatabase.Parameters.Remove "PROJ_ID"
700
              OraDatabase.Parameters.Remove "BRANCH_ID"
701
 
702
              While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
13 rsolanki 703
                <option value="<%=rsQry("branch_id")%>" <%=rsQry("selected")%>><%=rsQry("branch_name")%></option>
704
              <%rsQry.MoveNext
4020 dpurdie 705
              WEnd
706
 
707
              rsQry.Close
708
              Set rsQry = Nothing
709
              %>
710
          </select></td>
13 rsolanki 711
        </tr>
712
        <tr>
713
          <td align="left">
714
 
715
 
4020 dpurdie 716
          <select name="sbomA" id="sbomA" class="form_item">
13 rsolanki 717
            <%
4020 dpurdie 718
              OraDatabase.Parameters.Add "BOM_ID",  objRelCollectorA.Item("bom_id"),    ORAPARM_INPUT,  ORATYPE_NUMBER
719
              OraDatabase.Parameters.Add "BRANCH_ID",   objRelCollectorA.Item("branch_id"), ORAPARM_INPUT, ORATYPE_NUMBER
13 rsolanki 720
 
4020 dpurdie 721
              Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("SBOMCombo.sql"), cint(0))
722
 
723
              OraDatabase.Parameters.Remove "BOM_ID"
724
              OraDatabase.Parameters.Remove "BRANCH_ID"
725
 
726
              While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
13 rsolanki 727
            <option value="<%=rsQry("bom_id")%>" <%=rsQry("selected")%>><%=rsQry("version")%></option>
728
            <%rsQry.MoveNext
4020 dpurdie 729
              WEnd
730
 
731
              rsQry.Close
732
              Set rsQry = Nothing
733
              %>
13 rsolanki 734
          </select>
4020 dpurdie 735
 
736
          </td>
13 rsolanki 737
        </tr>
4020 dpurdie 738
        <%If (parRtagA <> "") Then%>
739
        <tr>
13 rsolanki 740
          <td align="left"><a href="Bom_Home.asp?bom_id=<%=parSBOMA%>" class="body_txt_drk">Go To SBOM A &raquo;</a></td>
741
        </tr>
4020 dpurdie 742
        <%End If%>
13 rsolanki 743
    </table>
4020 dpurdie 744
 
745
    <!-- SELECT SBOM A END ---------------------------------------------->
746
    </td>
747
    <td rowspan="2" valign="top" background="images/bg_lght_gray.gif" align="center">
13 rsolanki 748
      <!-- DIFF -------------------------------------------------------->
749
      <br>
4020 dpurdie 750
 
751
 
752
 
753
 
13 rsolanki 754
      <table width="100%" border="0" cellspacing="10" cellpadding="0">
755
        <tr>
756
          <td>
4020 dpurdie 757
 
758
 
759
 
13 rsolanki 760
            <table width="100%" border="0" cellspacing="0" cellpadding="0">
4020 dpurdie 761
              <tr>
13 rsolanki 762
                <td width="1%"></td>
4020 dpurdie 763
                <td width="100%" align="left" class="form_ttl">DIFF SBOM
764
                <%If genReport Then%>
765
                &nbsp;[Generating Report]
766
                <%End If%>
767
                </td>
13 rsolanki 768
                <td width="1%"></td>
769
              </tr>
4020 dpurdie 770
              <tr>
13 rsolanki 771
                <td align="left" valign="top" background="images/lbox_bg_blue.gif"><img src="images/lbox_tl_cnr_b.gif" width="13" height="13"></td>
4020 dpurdie 772
                <td background="images/lbox_bg_blue.gif" align="left" class="wform_ttl">&nbsp;
13 rsolanki 773
                </td>
774
                <td align="right" valign="top" background="images/lbox_bg_blue.gif"><img src="images/lbox_tr_cnr_b.gif" width="13" height="13"></td>
775
              </tr>
4020 dpurdie 776
              <tr>
13 rsolanki 777
                <td width="1%" bgcolor="#FFFFFF"><img src="images/h_trsp_dot.gif" width="10" height="100"></td>
778
                <td bgcolor="#FFFFFF" valign="top" class="form_item">
4020 dpurdie 779
 
780
 
781
 
782
                <table width="100%"  border="0" cellspacing="0" cellpadding="5">
13 rsolanki 783
                  <tr>
784
                    <td width="100%" bgcolor="#DAD7C8">
4020 dpurdie 785
                    <input type="submit" name="btn" value="Compare" class="form_btn_comp" style="margin-right:5px;">
786
                    <input type="submit" name="btn" value="Swap Compare" class="form_btn_comp">
787
                    <span class="body_txt">
788
                        <input name="btn" type="submit" class="form_btn" value="Mail Me Report">
789
                    <%
790
                        '<input name="btn" type="submit" class="form_btn" value="Show Me Report">
791
                    %>
792
                    </span>
793
                    </td>
13 rsolanki 794
                    <td width="1" align="right" bgcolor="#DAD7C8" nowrap>
4020 dpurdie 795
                    <table width="100%"  border="0" cellspacing="0" cellpadding="0">
13 rsolanki 796
                      <tr>
797
 
798
                        <td><input type="submit" name="btn" value="Exit" class="form_btn_comp"></td>
799
                      </tr>
800
                    </table></td>
801
                  </tr>
4020 dpurdie 802
                  <tr>
13 rsolanki 803
                    <td>
4020 dpurdie 804
                    <%If (parRtagA <> "") AND (parRtagB <> "")Then%>
805
                        <!-- DIFF FILTER +++++++++++++++++++++++++++++++++++++++++++ -->
806
                        <fieldset style="width:150px;">
807
                        <legend><a href="javascript:;" class="body_scol" onClick="ToggleDisplay('divDiffFilter');" ><%=GetIsDiffFilterInUseIcon() %>&nbsp;Filter&nbsp;Results...</a></legend>
808
                        <div name="divDiffFilter" id="divDiffFilter" class="body_txt" style="display:none;">
809
                          <br>
810
                          <table width="100%"  border="0" cellspacing="1" cellpadding="3">
811
                            <tr>
812
                              <td width="1" background="images/bg_action_norm.gif"><input name="difilter" type="checkbox" value="<%=enumDB_DIFF_UPDATED%>" <%=GetIsDiffFilterChecked(enumDB_DIFF_UPDATED)%>></td>
813
                              <td width="50" nowrap background="images/bg_action_norm.gif" class="form_field"><%=LIMG_UPDATED%>Updated</td>
814
                            </tr>
815
                            <tr>
816
                              <td background="images/bg_action_norm.gif"><input type="checkbox" name="difilter" value="<%=enumDB_DIFF_NEW%>" <%=GetIsDiffFilterChecked(enumDB_DIFF_NEW)%>></td>
817
                              <td nowrap background="images/bg_action_norm.gif" class="form_field"><%=LIMG_ADDED%>Added</td>
818
                            </tr>
819
                            <tr>
820
                              <td background="images/bg_action_norm.gif"><input type="checkbox" name="difilter" value="<%=enumDB_DIFF_REMOVED%>" <%=GetIsDiffFilterChecked(enumDB_DIFF_REMOVED)%>></td>
821
                              <td nowrap background="images/bg_action_norm.gif" class="form_field"><%=LIMG_REMOVED%>Removed</td>
822
                            </tr>
823
                            <tr>
824
                              <td background="images/bg_action_norm.gif"><input type="checkbox" name="filter_comments" value="<%=enumDB_FILTER_COMMENTS%>" <%=GetIsDiffFilterChecked(enumDB_FILTER_COMMENTS)%>></td>
825
                              <td nowrap background="images/bg_action_norm.gif" class="form_field">Comments</td>
826
                            </tr>
827
                            <tr>
828
                              <td background="images/bg_action_norm.gif"><input type="checkbox" name="filter_issues" value="<%=enumDB_FILTER_ISSUES%>" <%=GetIsDiffFilterChecked(enumDB_FILTER_ISSUES)%>></td>
829
                              <td nowrap background="images/bg_action_norm.gif" class="form_field">Issues</td>
830
                            </tr>
831
                            <tr>
832
                              <td background="images/bg_action_norm.gif">&nbsp;</td>
833
                              <td background="images/bg_action_norm.gif"><input name="btn" type="submit" class="form_btn" value="Hide"></td>
834
                            </tr>
835
                          </table>
836
                        </div>
837
                        </fieldset>
838
                        <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
839
                    <%End If%>
840
                    </td>
13 rsolanki 841
                    <td></td>
842
                  </tr>
843
                </table>
844
 
4020 dpurdie 845
                <%
846
                Set FSO=Server.CreateObject("Scripting.FileSystemObject")
847
                Set NewTextFile=FSO.CreateTextFile(Server.MapPath("docs\compareBoms_"&objAccessControl.UserName&".html"), true)
848
                Call Header()
849
 
850
                If (parRtagA <> "") AND (parRtagB <> "")Then%>
13 rsolanki 851
                <table width="100%"  border="0" cellspacing="1" cellpadding="0">
852
                  <tr>
853
                    <td width="50%" bgcolor="#E4E9EC" class="body_row" nowrap><%= ReleaseIcon(objRelCollectorA.Item("official")) & objRelCollectorA.Item("location")%> </td>
854
                    <td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="1"></td>
855
                    <td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="20"></td>
856
                    <td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="1"></td>
857
                    <td width="50%" bgcolor="#E4E9EC" class="body_row" nowrap><%= ReleaseIcon(objRelCollectorB.Item("official")) & objRelCollectorB.Item("location")%></td>
858
                  </tr>
4020 dpurdie 859
                <%
13 rsolanki 860
 
4020 dpurdie 861
                OraDatabase.Parameters.Add "SBOM_A",    parSBOMA,   ORAPARM_INPUT, ORATYPE_NUMBER
862
                OraDatabase.Parameters.Add "SBOM_B",    parSBOMB,   ORAPARM_INPUT, ORATYPE_NUMBER
863
                OraDatabase.Parameters.Add "NO_CHANGE", GetIsDiffFilterChecked(enumDB_DIFF_NO_CHANGE),      ORAPARM_INPUT, ORATYPE_VARCHAR2
864
                OraDatabase.Parameters.Add "ADDED",     GetIsDiffFilterChecked(enumDB_DIFF_NEW),        ORAPARM_INPUT, ORATYPE_VARCHAR2
865
                OraDatabase.Parameters.Add "UPDATED",   GetIsDiffFilterChecked(enumDB_DIFF_UPDATED),        ORAPARM_INPUT, ORATYPE_VARCHAR2
866
                OraDatabase.Parameters.Add "REMOVED",   GetIsDiffFilterChecked(enumDB_DIFF_REMOVED),        ORAPARM_INPUT, ORATYPE_VARCHAR2
867
 
868
                Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("BOMDiff.sql"), cint(0))
869
 
870
                OraDatabase.Parameters.Remove "SBOM_A"
871
                OraDatabase.Parameters.Remove "SBOM_B"
872
                OraDatabase.Parameters.Remove "NO_CHANGE"
873
                OraDatabase.Parameters.Remove "ADDED"
874
                OraDatabase.Parameters.Remove "UPDATED"
875
                OraDatabase.Parameters.Remove "REMOVED"
876
 
877
                Set rsQryA = OraDatabase.DbCreateDynaset( "SELECT pr.PROJ_NAME, br.BRANCH_NAME, b.BOM_VERSION ||'.'||b.BOM_LIFECYCLE  AS LOCATION, "&_
13 rsolanki 878
	"        pr.PROJ_ID, b.BOM_ID, br.BRANCH_ID"&_
879
	"  FROM BRANCHES br,"&_
4020 dpurdie 880
	"  		BOMS b,"&_
13 rsolanki 881
	"  	    DM_PROJECTS pr"&_
882
	" WHERE br.PROJ_ID = pr.PROJ_ID"&_
4020 dpurdie 883
	" 	AND b.BRANCH_ID = br.BRANCH_ID"&_
13 rsolanki 884
	"   AND b.BOM_ID ="&parSBOMA, cint(0))
885
 
886
 
4020 dpurdie 887
                Set rsQryB = OraDatabase.DbCreateDynaset( "SELECT pr.PROJ_NAME, br.BRANCH_NAME, b.BOM_VERSION ||'.'||b.BOM_LIFECYCLE  AS LOCATION, "&_
13 rsolanki 888
	"        pr.PROJ_ID, b.BOM_ID, br.BRANCH_ID"&_
889
	"  FROM BRANCHES br,"&_
4020 dpurdie 890
	"  		BOMS b,"&_
13 rsolanki 891
	"  	    DM_PROJECTS pr"&_
892
	" WHERE br.PROJ_ID = pr.PROJ_ID"&_
4020 dpurdie 893
	" 	AND b.BRANCH_ID = br.BRANCH_ID"&_
13 rsolanki 894
	"   AND b.BOM_ID ="&parSBOMB, cint(0))
4020 dpurdie 895
 
896
 
897
                NewTextFile.WriteLine("<title>Difference Report Between "&_
898
                            rsQryA("branch_name")&" "& rsQryA("location")&" and "&_
899
                            rsQryB("branch_name")&" "& rsQryB("location")&_
900
                            "</title>")
901
                Call Javascript()
902
                Call Styles()
903
                NewTextFile.WriteLine("</head>")
904
                NewTextFile.WriteLine("<body>")
905
                NewTextFile.WriteLine("<div class="&chr(34)&"page_title"&chr(34)&">Difference Report Between "&_
906
                            rsQryA("proj_name") & " > " & rsQryA("branch_name")&" > "&rsQryA("location")&" and "&_
907
                            rsQryB("proj_name") & " > " & rsQryB("branch_name")&" > "&rsQryB("location")&_
908
                            "</div><br><br>")
909
 
910
                NewTextFile.WriteLine("<b>Toggle Sections:</b><blockquote>")
911
                NewTextFile.WriteLine("<a href=""javascript:;"" onClick=""MM_toggleAll('divPkgInfo','1');"">Expand All</a>")
912
                NewTextFile.WriteLine("<a href=""javascript:;"" onClick=""MM_toggleAll('divPkgInfo','');"">Collapse All</a>")
913
                NewTextFile.WriteLine("</blockquote>")
914
 
915
                While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))
916
                VersionList = "0"
917
                errormsg = false
918
                    rowId = rsQry("pv_id_a") &"_"& rsQry("pv_id_b")
919
 
920
                    btnMerge = LIMG_MERGE
921
                    btnRemove = LIMG_REMOVE
922
                    colorA = LCOLOR_NOT_CHANGED
923
                    colorB = LCOLOR_NOT_CHANGED
924
 
925
                    Select Case rsQry("change_type")
926
                        Case "U"
927
                            colorA = LCOLOR_CHANGED
928
                            colorB = LCOLOR_CHANGED
929
                        Case "UW"
930
                            colorA = LCOLOR_CHANGED
931
                            colorB = LCOLOR_CHANGED
932
                            btnMerge = LIMG_MERGE_WARN
933
                        Case "UR"
934
                            colorA = LCOLOR_RIPPLED
935
                            colorB = LCOLOR_RIPPLED
936
                        Case "A"
937
                            colorA = LCOLOR_BLANK
938
                        Case "R"
939
                            colorB = LCOLOR_BLANK
940
                    End Select
941
 
942
                    Call GetDiffStateIcon ( rsQry("change_type"), ChangeTypeIcon )
943
                %>
944
                  <tr>
13 rsolanki 945
                    <td class="body_row" nowrap>
4020 dpurdie 946
                        <DIV id="PVA<%=rowId%>" style="background:<%=colorA%>; padding:5px;">
947
                        <%=rsQry("pkg_name_a") &" "& rsQry("pkg_version_a")%>
948
                        </DIV>
949
                        <input type="hidden" id="UNDOCOLORA_<%=rowId%>" value="<%=colorA%>">
950
                    </td>
13 rsolanki 951
                    <td bgcolor="#F5F5F5"></td>
952
                    <td bgcolor="#E4E9EC"><DIV id="IMGSTATE<%=rowId%>" ><%=ChangeTypeIcon%></DIV><input type="hidden" id="CHANGETYPE_<%=rowId%>" value="<%=rsQry("change_type")%>"></td>
953
                    <td bgcolor="#F5F5F5"></td>
954
                    <td class="body_row" nowrap>
4020 dpurdie 955
                        <DIV id="PVB<%=rowId%>" style="background:<%=colorB%>; padding:5px;">
956
                        <%=rsQry("pkg_name_b") &" "& rsQry("pkg_version_b")%>
957
                        </DIV>
958
                        <input type="hidden" id="UNDOCOLORB_<%=rowId%>" value="<%=colorB%>">
959
                        <input type="hidden" name="addpkg" id="ADDPKG_<%=rowId%>" value="">
960
                        <input type="hidden" name="removepkg" id="REMOVEPKG_<%=rowId%>" value="">
961
                        <input type="hidden" id="UNDOPKG_<%=rowId%>" value="<%=rsQry("pkg_name_b") &" "& rsQry("pkg_version_b")%>">
962
                    </td>
963
                  </tr>
13 rsolanki 964
<%
4020 dpurdie 965
    If genReport Then
966
        If rsQry("pv_id_a") Then
967
            Set rsQryCommentsA = OraDatabase.DbCreateDynaset( "SELECT COMMENTS FROM PACKAGE_VERSIONS WHERE PV_ID="& rsQry("pv_id_a"), cint(0))
968
        End If
969
 
970
        If rsQry("pv_id_b") Then
971
            Set rsQryCommentsB = OraDatabase.DbCreateDynaset( "SELECT COMMENTS FROM PACKAGE_VERSIONS WHERE PV_ID="& rsQry("pv_id_b"), cint(0))
972
        End If
973
 
974
        pkgA = rsQry("pkg_name_a")
975
        pkgB = rsQry("pkg_name_b")
976
 
977
        If pkgA <> "" then
978
            pkgname = pkgA
979
        Else
980
            pkgname = pkgB
981
        End If
982
 
983
        If rsQry("change_type") = "U" OR rsQry("change_type") = "UW" Then
984
                NewTextFile.Write("<p><a href=""javascript:;"" class=""body_scol"" onClick=""toggleSPAN('"& rowId &"');"">"& pkgname &"</a>")
985
                NewTextFile.WriteLine("<DIV class=divPkgInfo id=""spanPkgInfo"& rowId &""" name=""spanPkgInfo"" style=""display:none;"">")
986
                NewTextFile.Write(rsQryA("location")&" uses: "&rsQry("pkg_version_a")&" ")
987
 
988
                NewTextFile.WriteLine("<br>")
989
                NewTextFile.Write(rsQryB("location")&" uses: "&rsQry("pkg_version_b")&" ")
990
 
991
                a = rsQry("pv_id_a")
992
                b = rsQry("pv_id_b")
993
                c = rsQry("pv_id_a")
994
                d = rsQry("pv_id_b")
995
 
996
                NewTextFile.WriteLine("<br><br>")
997
                NewTextFile.WriteLine()
998
                NewTextFile.WriteLine("<b>"&rsQryB("location")&"</b>")
999
                Call Comments(rsQry("pv_id_b"), Request("filter_comments"))
1000
                Call GetFixedIssues(rsQry("pv_id_b"), Request("filter_issues"))
1001
 
1002
                Dim rsQryLast
1003
                Set rsQryLast = OraDatabase.DbCreateDynaset( "SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="& rsQry("pv_id_b"), cint(0))
1004
 
1005
                If rsQryLast("last_pv_id") <> a Then
1006
                    Call PreviousVersions(a, b, rsQry("pkg_version_a"), rsQry("pkg_version_b"), Request("filter_comments"), Request("filter_issues"))
1007
                End If
1008
 
1009
                a = rsQry("pv_id_a")
1010
                b = rsQry("pv_id_b")
1011
                Call GetDependencies(a, VersionList + ","+ b, rsQry("pkg_version_a"), rsQry("pkg_version_b"), Request("filter_comments"), Request("filter_issues"))
1012
                NewTextFile.WriteLine("</DIV>")
1013
 
1014
                rsQryLast.Close()
1015
                Set rsQryLast = Nothing
1016
 
1017
        End If
1018
 
1019
        If rsQry("change_type") = "A" AND rsQry("patch_b") = "Y" Then
1020
            Dim rsQryPatch
1021
            OraDatabase.Parameters.Add "PV_ID",     rsQry("pv_id_b"),   ORAPARM_INPUT, ORATYPE_NUMBER
1022
            Set rsQryPatch = OraDatabase.DbCreateDynaset( GetQuery("pd_patch.sql"), cint(0))
1023
            OraDatabase.Parameters.Remove "PV_ID"
1024
            If NOT IsNull(rsQryPatch("pv_id")) Then
1025
                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>")
1026
                NewTextFile.WriteLine("<DIV class=divPkgInfo id=""spanPkgInfo_p"& rowId &""" name=""spanPkgInfo"" style=""display:none;"">")
1027
                Call Comments(rsQryPatch("pv_id"), Request("filter_comments"))
1028
                Call GetFixedIssues(rsQryPatch("pv_id"), Request("filter_issues"))
1029
            Else
1030
                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>")
1031
                NewTextFile.WriteLine("<DIV class=divPkgInfo  id=""spanPkgInfo_p"& rowId &""" name=""spanPkgInfo"" style=""display:none;"">")
1032
                Call Comments(rsQry("pv_id_b"), Request("filter_comments"))
1033
                Call GetFixedIssues(rsQry("pv_id_b"), Request("filter_issues"))
1034
            End If
1035
 
1036
            NewTextFile.WriteLine("</DIV>")
1037
            rsQryPatch.Close
1038
            Set rsQryPatch = nothing
1039
 
1040
        End If
1041
 
1042
    End If
1043
 
1044
    rsQry.MoveNext
1045
    WEnd
1046
 
1047
    rsQry.Close
1048
    Set rsQry = Nothing
1049
%>
13 rsolanki 1050
<%
4020 dpurdie 1051
    Call Footer()
1052
    NewTextFile.Close
1053
    Set NewTextFile=Nothing
1054
%>
13 rsolanki 1055
                </table>
1056
                <br>
4020 dpurdie 1057
            <%Else%>
1058
                <br>
1059
                <%
1060
                If (parRtagB <> "") Then
1061
                    Call Messenger ( "Select <b>SBOM A</b> to compare.", 3, "100%" )
1062
                ElseIf (parRtagA <> "") Then
1063
                    Call Messenger ( "Select <b>SBOM B</b> to compare.", 3, "100%" )
1064
                Else
1065
                    Call Messenger ( "Select <b>SBOM A</b> and <b>SBOM B</b> to compare.", 3, "100%" )
1066
                End If
1067
                %>
1068
 
1069
            <%End If%>
1070
 
1071
                </td>
13 rsolanki 1072
                <td width="1%" background="images/lbox_bgside_white.gif">&nbsp;</td>
1073
              </tr>
4020 dpurdie 1074
              <tr>
13 rsolanki 1075
                <td width="1%" background="images/lbox_bg_blue.gif" valign="bottom"><img src="images/lbox_bl_cnr_b.gif" width="13" height="13"></td>
1076
                <td background="images/lbox_bg_blue.gif"></td>
1077
                <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>
1078
              </tr>
1079
            </table>
1080
          </td>
1081
        </tr>
1082
      </table>
1083
    <!-- DIFF END ---------------------------------------------------->
1084
    </td>
4020 dpurdie 1085
    <td valign="top" background="images/bg_lite_blue.gif">
1086
 
1087
 
1088
      <!-- SELECT SBOM B ---------------------------------------------->
13 rsolanki 1089
      <br>
1090
      <table width="100%"  border="0" cellspacing="10" cellpadding="0">
4020 dpurdie 1091
        <tr>
13 rsolanki 1092
          <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>
1093
        </tr>
1094
        <tr>
1095
          <td align="left">
4020 dpurdie 1096
          <select name="projB" class="form_item" onChange="RequestReleaseCombo( '?proj_id='+ this.value, FormName.rtagB );">
13 rsolanki 1097
              <option value="">-- Select Project --</option>
4020 dpurdie 1098
              <%
1099
              OraDatabase.Parameters.Add "PROJ_ID",     objRelCollectorB.Item("proj_id"),   ORAPARM_INPUT, ORATYPE_NUMBER
1100
 
1101
              Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ProjectsCombo.sql"), cint(0))
1102
 
1103
              OraDatabase.Parameters.Remove "PROJ_ID"
1104
 
1105
              While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
13 rsolanki 1106
                <option value="<%=rsQry("proj_id")%>" <%=rsQry("selected")%>><%=rsQry("proj_name")%></option>
1107
              <%rsQry.MoveNext
4020 dpurdie 1108
              WEnd
1109
 
1110
              rsQry.Close
1111
              Set rsQry = Nothing
1112
            %>
1113
         </select>
1114
        </td>
13 rsolanki 1115
        </tr>
1116
        <tr>
1117
          <td align="left">
4020 dpurdie 1118
 
1119
          <select name="rtagB" id="rtagB" class="form_item" onChange="RequestSBOMCombo( '?branch_id='+ this.value, FormName.sbomB );">
1120
              <option value="">-- Select Branch --</option>
1121
              <%
1122
              OraDatabase.Parameters.Add "PROJ_ID",     objRelCollectorB.Item("proj_id"),   ORAPARM_INPUT,  ORATYPE_NUMBER
1123
              OraDatabase.Parameters.Add "BRANCH_ID",   objRelCollectorB.Item("branch_id"), ORAPARM_INPUT, ORATYPE_NUMBER
1124
 
1125
              Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ReleasesCombo.sql"), cint(0))
1126
 
1127
              OraDatabase.Parameters.Remove "PROJ_ID"
1128
              OraDatabase.Parameters.Remove "BRANCH_ID"
1129
 
1130
              While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
13 rsolanki 1131
                <option value="<%=rsQry("branch_id")%>" <%=rsQry("selected")%>><%=rsQry("branch_name")%></option>
1132
              <%rsQry.MoveNext
4020 dpurdie 1133
              WEnd
1134
 
1135
              rsQry.Close
1136
              Set rsQry = Nothing
1137
              %>
1138
          </select></td>
13 rsolanki 1139
        </tr>
1140
        <tr>
1141
          <td align="left">
1142
 
1143
 
4020 dpurdie 1144
          <select name="sbomB" id="sbomB" class="form_item">
13 rsolanki 1145
            <%
4020 dpurdie 1146
              OraDatabase.Parameters.Add "BOM_ID",  objRelCollectorB.Item("bom_id"),    ORAPARM_INPUT,  ORATYPE_NUMBER
1147
              OraDatabase.Parameters.Add "BRANCH_ID",   objRelCollectorB.Item("branch_id"), ORAPARM_INPUT, ORATYPE_NUMBER
13 rsolanki 1148
 
4020 dpurdie 1149
              Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("SBOMCombo.sql"), cint(0))
1150
 
1151
              OraDatabase.Parameters.Remove "BOM_ID"
1152
              OraDatabase.Parameters.Remove "BRANCH_ID"
1153
 
1154
              While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
13 rsolanki 1155
            <option value="<%=rsQry("bom_id")%>" <%=rsQry("selected")%>><%=rsQry("version")%></option>
1156
            <%rsQry.MoveNext
4020 dpurdie 1157
              WEnd
1158
 
1159
              rsQry.Close
1160
              Set rsQry = Nothing
1161
              %>
13 rsolanki 1162
          </select>
1163
 
4020 dpurdie 1164
 
1165
          </td>
13 rsolanki 1166
        </tr>
4020 dpurdie 1167
        <%If (parRtagB <> "") Then%>
1168
        <tr>
13 rsolanki 1169
          <td align="left"><a href="Bom_home.asp?bom_id=<%=parSBOMB%>" class="body_txt_drk">Go To SBOM B &raquo;</a></td>
1170
        </tr>
4020 dpurdie 1171
        <%End If%>
1172
                </table>
1173
                <!-- SELECT RELEASE B END ---------------------------------------------->
1174
            </td>
1175
        </tr>
1176
        <tr>
1177
            <td valign="bottom" align="center" background="images/bg_lite_blue.gif">
1178
                <img src="images/img_vtree.gif" width="86" height="99" vspace="20" hspace="30">
1179
            </td>
1180
            <td valign="bottom" background="images/bg_lite_blue.gif" align="center">
1181
                <img src="images/img_vtree.gif" width="86" height="99" vspace="20" hspace="30">
1182
            </td>
1183
        </tr>
1184
    </table>
13 rsolanki 1185
</form>
1186
<!-- FOOTER -->
1187
<!--#include file="_footer.asp"-->
1188
<%
4020 dpurdie 1189
If email Then
1190
 
1191
    Dim myMail, LocalPath
1192
    Set myMail=Server.CreateObject("Persits.MailSender")
1193
    LocalPath = Server.MapPath("docs\compareBoms_"&objAccessControl.UserName&".html")
1194
 
1195
    myMail.Host = SMTP_HOST
1196
    myMail.Subject="BOM Comparisons from Deployment Manager"
1197
    myMail.From="releasem@erggroup.com"
1198
    myMail.AddAddress objAccessControl.UserEmail
1199
    ' Attach the file
1200
    myMail.AddAttachment LocalPath
1201
    myMail.Body = "Your requested report..."
1202
    myMail.Send
1203
 
1204
    set myMail=nothing
1205
 
1206
End If
13 rsolanki 1207
%>
1208
</body>
1209
</html>
1210
<%
1211
Call Destroy_All_Objects
1212
%>
1213
<!--#include file="common/globals_destructor.asp"-->