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"-->
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
4027 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
3947 dpurdie 52
Dim SSsql, retVal, rsCQ, DEVIiss
4027 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'>"
4027 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"
4027 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
4027 dpurdie 85
    email = true
86
    genReport = true
13 rsolanki 87
End If
4027 dpurdie 88
If Request("btn") = "Show Me Report" Then
89
    genReport = true
90
End If
13 rsolanki 91
%>
92
<%
93
'--------------------------------------------------------------------------------------------------------------------------
94
Sub GetDiffFilterValues ( outDepFilter )
4027 dpurdie 95
    Dim FilterVal, aFilterValues
29 jtweddle 96
 
4027 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()
4027 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)
4027 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))
3947 dpurdie 161
 
4027 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
 
4027 dpurdie 174
            While ((NOT sqlstrC.BOF) AND (NOT sqlstrC.EOF))
175
                DEVIiss = "-1"
13 rsolanki 176
 
4027 dpurdie 177
                If CInt(sqlstrC("iss_db")) = CInt(enumCLEARQUEST_DEVI_ID) Then
178
                    DEVIiss = DEVIiss &","& sqlstrC("iss_id")
179
                End If
17 rsolanki 180
 
4027 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
 
4027 dpurdie 185
                retVal = Get_CQ_Issues ( SSsql, rsCQ )
29 jtweddle 186
 
4027 dpurdie 187
                NewTextFile.WriteLine("<tr>")
188
                NewTextFile.WriteLine("<td nowrap class='form_item'>"&rsCQ("iss_num")&"</td>")
29 jtweddle 189
 
4027 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>")
4177 dpurdie 225
                    NewTextFile.WriteLine("<td nowrap class='form_item'>"&rsCQ("project")&"-"&rsCQ("iss_num")&"</td>")
4027 dpurdie 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)
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
4027 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 )
4177 dpurdie 498
   Dim rsTemp, sqlstr, JIRAIss, retVal, joiner
4027 dpurdie 499
 
4177 dpurdie 500
   JIRAIss = ""
501
   joiner = ""
502
 
4027 dpurdie 503
   sqlstr = "SELECT iss_key FROM JIRA_ISSUES WHERE pv_id="& NNpv_id
504
 
505
   Set rsTemp = OraDatabase.DbCreateDynaset( sqlstr, cint(0))
506
   retVal = rsTemp.RecordCount
507
 
4177 dpurdie 508
    if retVal > 0 then
4027 dpurdie 509
 
4177 dpurdie 510
       ' Convert the Jira Issue of the form (PRJ-NNNN) into parts of an SQL expression
511
       ' that looks like (PRJ = match AND NNNN = match
512
       '
513
       While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))
514
          dim bits
515
          bits = Split( rsTemp("iss_key"), "-" ,2)
516
          JIRAIss = JIRAIss & joiner & "(P.pkey = '" & bits(0) & "' AND I.issuenum = " & bits(1) & ")"
517
          joiner = " OR "
518
          rsTemp.MoveNext
519
       WEnd
4027 dpurdie 520
 
4177 dpurdie 521
       ' If there is no resolution for an issue, then it will not be picked up by this query
522
       SSsql = "SELECT P.pkey AS project, I.issuenum AS iss_num, I.summary, ISS.pname AS Status,  IT.pname as issue_type, PR.pname as Priority, R.PNAME as RESOLUTION"&_
523
               " FROM jiraissue I, issuestatus ISS, issuetype IT, resolution R, priority PR, project P "&_
524
               " WHERE (" & JIRAIss & ")"&_
525
               " AND I.issuestatus = ISS.ID "&_
526
               " AND I.RESOLUTION = R.ID "&_
527
               " AND IT.ID = I.issuetype "&_
528
               " AND PR.ID = I.PRIORITY " &_
529
               " AND P.ID  = I.project"
530
 
531
   End If
4027 dpurdie 532
   rsTemp.Close()
533
   Set rsTemp = nothing
534
 
535
   Get_JIRA_Package_Issues = retVal
536
 
537
End Function
538
 
539
'----------------------------------------------------------------------------------------------------------------------------------------
540
Function  Get_JIRA_Issues ( SSsql, OOrsCQ )
541
   If OOrsCQ.State = 1 Then
542
      OOrsCQ.Close()
543
   End If
544
 
545
   On Error Resume Next
546
   OOrsCQ.ActiveConnection = JIRA_conn
547
   OOrsCQ.Source = SSsql
548
   OOrsCQ.CursorType = 0
549
   OOrsCQ.CursorLocation = 3
550
   OOrsCQ.LockType = 3
551
   OOrsCQ.Open()
552
 
553
   Get_JIRA_Issues = Err.Number
554
 
555
End Function
13 rsolanki 556
'--------------------------------------------------------------------------------------------------------------------------
557
%>
558
<%
559
'------------ RUN BEFORE PAGE RENDER ----------
560
If Request("btn") = "Exit" Then
4027 dpurdie 561
    Call OpenInWindow ( "reports.asp" )
13 rsolanki 562
End If
563
 
564
' Get release details
565
Call GetFormDetails ( parSBOMA, objRelCollectorA )
566
Call GetFormDetails ( parSBOMB, objRelCollectorB )
567
 
15 rsolanki 568
If Request("btn") = "Swap Compare" Then
4027 dpurdie 569
    Call OpenInWindow ( SCRIPT_NAME &"?sbomA="& parSBOMB &"&sbomB="& parSBOMA &"&rtagA="& parRtagB &"&rtagB="& parRtagA )
15 rsolanki 570
End If
13 rsolanki 571
 
572
If Request("btn") = "Hide" Then
4027 dpurdie 573
    ' Store filter in cookie
574
    Response.Cookies(enum_RELMGR_COOKIE_DOMAIN)(COOKIE_HIDE_DIFF_FILTER) = Request("difilter")
13 rsolanki 575
End If
576
 
577
 
578
Call GetDiffFilterValues ( dDiffFilter )
579
'----------------------------------------------
580
%>
581
<html>
582
<head>
583
<title>Deployment Manager SBOM Differences</title>
584
<meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
585
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
29 jtweddle 586
<link rel="stylesheet" href="scripts/deployment_manager.css" type="text/css">
13 rsolanki 587
<link rel="stylesheet" href="images/release_manager_style.css" type="text/css">
588
<link rel="stylesheet" href="images/navigation.css" type="text/css">
29 jtweddle 589
<script language="JavaScript" src="scripts/common.js"></script>
13 rsolanki 590
<script language="JavaScript" src="scripts/remote_scripting.js"></script>
591
<script language="JavaScript" type="text/javascript">
592
<!--
593
 
4027 dpurdie 594
function RequestReleaseCombo( paramString, rowId )
595
{
596
    var requestURL = 'RequestReleaseCombo.asp';
13 rsolanki 597
 
4027 dpurdie 598
    // Set ajax divname
599
    ajaxdivname = rowId;
600
 
601
    //Append the name to search for to the requestURL
602
    var url = requestURL + paramString;
603
 
604
    //Progress
605
    //alert(MM_findObj( rowId ));
606
 
607
    //MM_findObj( rowId ).options[0] = new Option('Loading...','');
608
    //MM_findObj( rowId ).selectedIndex = 0;
609
    rowId.options[0] = new Option('Loading...','');
610
    rowId.selectedIndex = 0;
611
 
612
 
613
    //Create the xmlHttp object to use in the request
614
    //stateChangeHandler will fire when the state has changed, i.e. data is received back
615
    // This is non-blocking (asynchronous)
616
    xmlHttp = GetXmlHttpObject(stateComboChangeHandler);
617
 
618
    //Send the xmlHttp get to the specified url
619
    xmlHttp_Get(xmlHttp, url);
620
 
621
 
13 rsolanki 622
}
623
 
624
function RequestSBOMCombo( paramString, rowId ){
4027 dpurdie 625
    var requestURL = 'RequestSBOMCombo.asp';
13 rsolanki 626
 
4027 dpurdie 627
    // Set ajax divname
628
    ajaxdivname = rowId;
629
 
630
    //Append the name to search for to the requestURL
631
    var url = requestURL + paramString;
632
 
633
    //Progress
634
    //alert(MM_findObj( rowId ));
635
 
636
    //MM_findObj( rowId ).options[0] = new Option('Loading...','');
637
    //MM_findObj( rowId ).selectedIndex = 0;
638
    rowId.options[0] = new Option('Loading...','');
639
    rowId.selectedIndex = 0;
640
 
641
 
642
    //Create the xmlHttp object to use in the request
643
    //stateChangeHandler will fire when the state has changed, i.e. data is received back
644
    // This is non-blocking (asynchronous)
645
    xmlHttp = GetXmlHttpObject(stateComboChangeHandler);
646
 
647
    //Send the xmlHttp get to the specified url
648
    xmlHttp_Get(xmlHttp, url);
649
 
650
 
13 rsolanki 651
}
652
 
653
//-->
654
</script>
655
 
656
</head>
657
<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0">
658
<form name="FormName" method="post" action="<%=SCRIPT_NAME%>">
4027 dpurdie 659
    <!-- HEADER -->
660
    <!--#include file="_header.asp"-->
661
    <!-- BODY ---->
662
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
663
        <tr>
664
            <td width="20%">
665
            <td width="60%">
666
            <td width="20%">
667
        </tr>
668
        <tr>
669
    <td background="images/bg_lite_blue.gif" valign="top">
670
 
671
 
672
    <!-- SELECT SBOM A ---------------------------------------------->
673
 
674
    <br>
13 rsolanki 675
      <table width="100%"  border="0" cellspacing="10" cellpadding="0">
4027 dpurdie 676
 
677
        <tr>
13 rsolanki 678
          <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>
679
        </tr>
680
        <tr>
681
          <td align="left">
4027 dpurdie 682
          <select name="projA" class="form_item" onChange="RequestReleaseCombo( '?proj_id='+ this.value, FormName.rtagA );">
13 rsolanki 683
              <option value="">-- Select Project --</option>
4027 dpurdie 684
              <%
685
              OraDatabase.Parameters.Add "PROJ_ID",     objRelCollectorA.Item("proj_id"),   ORAPARM_INPUT, ORATYPE_NUMBER
686
 
687
              Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ProjectsCombo.sql"), cint(0))
688
 
689
              OraDatabase.Parameters.Remove "PROJ_ID"
690
 
691
              While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
13 rsolanki 692
                <option value="<%=rsQry("proj_id")%>" <%=rsQry("selected")%>><%=rsQry("proj_name")%></option>
693
              <%rsQry.MoveNext
4027 dpurdie 694
              WEnd
695
 
696
              rsQry.Close
697
              Set rsQry = Nothing
698
            %>
13 rsolanki 699
          </select></td>
700
        </tr>
701
        <tr>
702
          <td align="left">
4027 dpurdie 703
 
704
              <select name="rtagA" id="rtagA" class="form_item" onChange="RequestSBOMCombo( '?branch_id='+ this.value, FormName.sbomA );">
705
              <option value="">-- Select Branch --</option>
706
              <%
707
              OraDatabase.Parameters.Add "PROJ_ID",     objRelCollectorA.Item("proj_id"),   ORAPARM_INPUT,  ORATYPE_NUMBER
708
              OraDatabase.Parameters.Add "BRANCH_ID",   objRelCollectorA.Item("branch_id"), ORAPARM_INPUT, ORATYPE_NUMBER
709
 
710
              Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ReleasesCombo.sql"), cint(0))
711
 
712
              OraDatabase.Parameters.Remove "PROJ_ID"
713
              OraDatabase.Parameters.Remove "BRANCH_ID"
714
 
715
              While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
13 rsolanki 716
                <option value="<%=rsQry("branch_id")%>" <%=rsQry("selected")%>><%=rsQry("branch_name")%></option>
717
              <%rsQry.MoveNext
4027 dpurdie 718
              WEnd
719
 
720
              rsQry.Close
721
              Set rsQry = Nothing
722
              %>
723
          </select></td>
13 rsolanki 724
        </tr>
725
        <tr>
726
          <td align="left">
727
 
728
 
4027 dpurdie 729
          <select name="sbomA" id="sbomA" class="form_item">
13 rsolanki 730
            <%
4027 dpurdie 731
              OraDatabase.Parameters.Add "BOM_ID",  objRelCollectorA.Item("bom_id"),    ORAPARM_INPUT,  ORATYPE_NUMBER
732
              OraDatabase.Parameters.Add "BRANCH_ID",   objRelCollectorA.Item("branch_id"), ORAPARM_INPUT, ORATYPE_NUMBER
13 rsolanki 733
 
4027 dpurdie 734
              Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("SBOMCombo.sql"), cint(0))
735
 
736
              OraDatabase.Parameters.Remove "BOM_ID"
737
              OraDatabase.Parameters.Remove "BRANCH_ID"
738
 
739
              While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
13 rsolanki 740
            <option value="<%=rsQry("bom_id")%>" <%=rsQry("selected")%>><%=rsQry("version")%></option>
741
            <%rsQry.MoveNext
4027 dpurdie 742
              WEnd
743
 
744
              rsQry.Close
745
              Set rsQry = Nothing
746
              %>
13 rsolanki 747
          </select>
4027 dpurdie 748
 
749
          </td>
13 rsolanki 750
        </tr>
4027 dpurdie 751
        <%If (parRtagA <> "") Then%>
752
        <tr>
13 rsolanki 753
          <td align="left"><a href="Bom_Home.asp?bom_id=<%=parSBOMA%>" class="body_txt_drk">Go To SBOM A &raquo;</a></td>
754
        </tr>
4027 dpurdie 755
        <%End If%>
13 rsolanki 756
    </table>
4027 dpurdie 757
 
758
    <!-- SELECT SBOM A END ---------------------------------------------->
759
    </td>
760
    <td rowspan="2" valign="top" background="images/bg_lght_gray.gif" align="center">
13 rsolanki 761
      <!-- DIFF -------------------------------------------------------->
762
      <br>
4027 dpurdie 763
 
764
 
765
 
766
 
13 rsolanki 767
      <table width="100%" border="0" cellspacing="10" cellpadding="0">
768
        <tr>
769
          <td>
4027 dpurdie 770
 
771
 
772
 
13 rsolanki 773
            <table width="100%" border="0" cellspacing="0" cellpadding="0">
4027 dpurdie 774
              <tr>
13 rsolanki 775
                <td width="1%"></td>
4027 dpurdie 776
                <td width="100%" align="left" class="form_ttl">DIFF SBOM
777
                <%If genReport Then%>
778
                &nbsp;[Generating Report]
779
                <%End If%>
780
                </td>
13 rsolanki 781
                <td width="1%"></td>
782
              </tr>
4027 dpurdie 783
              <tr>
13 rsolanki 784
                <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 785
                <td background="images/lbox_bg_blue.gif" align="left" class="wform_ttl">&nbsp;
13 rsolanki 786
                </td>
787
                <td align="right" valign="top" background="images/lbox_bg_blue.gif"><img src="images/lbox_tr_cnr_b.gif" width="13" height="13"></td>
788
              </tr>
4027 dpurdie 789
              <tr>
13 rsolanki 790
                <td width="1%" bgcolor="#FFFFFF"><img src="images/h_trsp_dot.gif" width="10" height="100"></td>
791
                <td bgcolor="#FFFFFF" valign="top" class="form_item">
4027 dpurdie 792
 
793
 
794
 
795
                <table width="100%"  border="0" cellspacing="0" cellpadding="5">
13 rsolanki 796
                  <tr>
797
                    <td width="100%" bgcolor="#DAD7C8">
4027 dpurdie 798
                    <input type="submit" name="btn" value="Compare" class="form_btn_comp" style="margin-right:5px;">
799
                    <input type="submit" name="btn" value="Swap Compare" class="form_btn_comp">
800
                    <span class="body_txt">
801
                        <input name="btn" type="submit" class="form_btn" value="Mail Me Report">
802
                    <%
803
                        '<input name="btn" type="submit" class="form_btn" value="Show Me Report">
804
                    %>
805
                    </span>
806
                    </td>
13 rsolanki 807
                    <td width="1" align="right" bgcolor="#DAD7C8" nowrap>
4027 dpurdie 808
                    <table width="100%"  border="0" cellspacing="0" cellpadding="0">
13 rsolanki 809
                      <tr>
810
 
811
                        <td><input type="submit" name="btn" value="Exit" class="form_btn_comp"></td>
812
                      </tr>
813
                    </table></td>
814
                  </tr>
4027 dpurdie 815
                  <tr>
13 rsolanki 816
                    <td>
4027 dpurdie 817
                    <%If (parRtagA <> "") AND (parRtagB <> "")Then%>
818
                        <!-- DIFF FILTER +++++++++++++++++++++++++++++++++++++++++++ -->
819
                        <fieldset style="width:150px;">
820
                        <legend><a href="javascript:;" class="body_scol" onClick="ToggleDisplay('divDiffFilter');" ><%=GetIsDiffFilterInUseIcon() %>&nbsp;Filter&nbsp;Results...</a></legend>
821
                        <div name="divDiffFilter" id="divDiffFilter" class="body_txt" style="display:none;">
822
                          <br>
823
                          <table width="100%"  border="0" cellspacing="1" cellpadding="3">
824
                            <tr>
825
                              <td width="1" background="images/bg_action_norm.gif"><input name="difilter" type="checkbox" value="<%=enumDB_DIFF_UPDATED%>" <%=GetIsDiffFilterChecked(enumDB_DIFF_UPDATED)%>></td>
826
                              <td width="50" nowrap background="images/bg_action_norm.gif" class="form_field"><%=LIMG_UPDATED%>Updated</td>
827
                            </tr>
828
                            <tr>
829
                              <td background="images/bg_action_norm.gif"><input type="checkbox" name="difilter" value="<%=enumDB_DIFF_NEW%>" <%=GetIsDiffFilterChecked(enumDB_DIFF_NEW)%>></td>
830
                              <td nowrap background="images/bg_action_norm.gif" class="form_field"><%=LIMG_ADDED%>Added</td>
831
                            </tr>
832
                            <tr>
833
                              <td background="images/bg_action_norm.gif"><input type="checkbox" name="difilter" value="<%=enumDB_DIFF_REMOVED%>" <%=GetIsDiffFilterChecked(enumDB_DIFF_REMOVED)%>></td>
834
                              <td nowrap background="images/bg_action_norm.gif" class="form_field"><%=LIMG_REMOVED%>Removed</td>
835
                            </tr>
836
                            <tr>
837
                              <td background="images/bg_action_norm.gif"><input type="checkbox" name="filter_comments" value="<%=enumDB_FILTER_COMMENTS%>" <%=GetIsDiffFilterChecked(enumDB_FILTER_COMMENTS)%>></td>
838
                              <td nowrap background="images/bg_action_norm.gif" class="form_field">Comments</td>
839
                            </tr>
840
                            <tr>
841
                              <td background="images/bg_action_norm.gif"><input type="checkbox" name="filter_issues" value="<%=enumDB_FILTER_ISSUES%>" <%=GetIsDiffFilterChecked(enumDB_FILTER_ISSUES)%>></td>
842
                              <td nowrap background="images/bg_action_norm.gif" class="form_field">Issues</td>
843
                            </tr>
844
                            <tr>
845
                              <td background="images/bg_action_norm.gif">&nbsp;</td>
846
                              <td background="images/bg_action_norm.gif"><input name="btn" type="submit" class="form_btn" value="Hide"></td>
847
                            </tr>
848
                          </table>
849
                        </div>
850
                        </fieldset>
851
                        <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
852
                    <%End If%>
853
                    </td>
13 rsolanki 854
                    <td></td>
855
                  </tr>
856
                </table>
857
 
4027 dpurdie 858
                <%
859
                Set FSO=Server.CreateObject("Scripting.FileSystemObject")
860
                Set NewTextFile=FSO.CreateTextFile(Server.MapPath("docs\compareBoms_"&objAccessControl.UserName&".html"), true)
861
                Call Header()
862
 
863
                If (parRtagA <> "") AND (parRtagB <> "")Then%>
13 rsolanki 864
                <table width="100%"  border="0" cellspacing="1" cellpadding="0">
865
                  <tr>
866
                    <td width="50%" bgcolor="#E4E9EC" class="body_row" nowrap><%= ReleaseIcon(objRelCollectorA.Item("official")) & objRelCollectorA.Item("location")%> </td>
867
                    <td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="1"></td>
868
                    <td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="20"></td>
869
                    <td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="1"></td>
870
                    <td width="50%" bgcolor="#E4E9EC" class="body_row" nowrap><%= ReleaseIcon(objRelCollectorB.Item("official")) & objRelCollectorB.Item("location")%></td>
871
                  </tr>
4027 dpurdie 872
                <%
13 rsolanki 873
 
4027 dpurdie 874
                OraDatabase.Parameters.Add "SBOM_A",    parSBOMA,   ORAPARM_INPUT, ORATYPE_NUMBER
875
                OraDatabase.Parameters.Add "SBOM_B",    parSBOMB,   ORAPARM_INPUT, ORATYPE_NUMBER
876
                OraDatabase.Parameters.Add "NO_CHANGE", GetIsDiffFilterChecked(enumDB_DIFF_NO_CHANGE),      ORAPARM_INPUT, ORATYPE_VARCHAR2
877
                OraDatabase.Parameters.Add "ADDED",     GetIsDiffFilterChecked(enumDB_DIFF_NEW),        ORAPARM_INPUT, ORATYPE_VARCHAR2
878
                OraDatabase.Parameters.Add "UPDATED",   GetIsDiffFilterChecked(enumDB_DIFF_UPDATED),        ORAPARM_INPUT, ORATYPE_VARCHAR2
879
                OraDatabase.Parameters.Add "REMOVED",   GetIsDiffFilterChecked(enumDB_DIFF_REMOVED),        ORAPARM_INPUT, ORATYPE_VARCHAR2
880
 
881
                Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("BOMDiff.sql"), cint(0))
882
 
883
                OraDatabase.Parameters.Remove "SBOM_A"
884
                OraDatabase.Parameters.Remove "SBOM_B"
885
                OraDatabase.Parameters.Remove "NO_CHANGE"
886
                OraDatabase.Parameters.Remove "ADDED"
887
                OraDatabase.Parameters.Remove "UPDATED"
888
                OraDatabase.Parameters.Remove "REMOVED"
889
 
890
                Set rsQryA = OraDatabase.DbCreateDynaset( "SELECT pr.PROJ_NAME, br.BRANCH_NAME, b.BOM_VERSION ||'.'||b.BOM_LIFECYCLE  AS LOCATION, "&_
13 rsolanki 891
	"        pr.PROJ_ID, b.BOM_ID, br.BRANCH_ID"&_
892
	"  FROM BRANCHES br,"&_
4027 dpurdie 893
	"  		BOMS b,"&_
13 rsolanki 894
	"  	    DM_PROJECTS pr"&_
895
	" WHERE br.PROJ_ID = pr.PROJ_ID"&_
4027 dpurdie 896
	" 	AND b.BRANCH_ID = br.BRANCH_ID"&_
13 rsolanki 897
	"   AND b.BOM_ID ="&parSBOMA, cint(0))
898
 
899
 
4027 dpurdie 900
                Set rsQryB = OraDatabase.DbCreateDynaset( "SELECT pr.PROJ_NAME, br.BRANCH_NAME, b.BOM_VERSION ||'.'||b.BOM_LIFECYCLE  AS LOCATION, "&_
13 rsolanki 901
	"        pr.PROJ_ID, b.BOM_ID, br.BRANCH_ID"&_
902
	"  FROM BRANCHES br,"&_
4027 dpurdie 903
	"  		BOMS b,"&_
13 rsolanki 904
	"  	    DM_PROJECTS pr"&_
905
	" WHERE br.PROJ_ID = pr.PROJ_ID"&_
4027 dpurdie 906
	" 	AND b.BRANCH_ID = br.BRANCH_ID"&_
13 rsolanki 907
	"   AND b.BOM_ID ="&parSBOMB, cint(0))
4027 dpurdie 908
 
909
 
910
                NewTextFile.WriteLine("<title>Difference Report Between "&_
911
                            rsQryA("branch_name")&" "& rsQryA("location")&" and "&_
912
                            rsQryB("branch_name")&" "& rsQryB("location")&_
913
                            "</title>")
914
                Call Javascript()
915
                Call Styles()
916
                NewTextFile.WriteLine("</head>")
917
                NewTextFile.WriteLine("<body>")
918
                NewTextFile.WriteLine("<div class="&chr(34)&"page_title"&chr(34)&">Difference Report Between "&_
919
                            rsQryA("proj_name") & " > " & rsQryA("branch_name")&" > "&rsQryA("location")&" and "&_
920
                            rsQryB("proj_name") & " > " & rsQryB("branch_name")&" > "&rsQryB("location")&_
921
                            "</div><br><br>")
922
 
923
                NewTextFile.WriteLine("<b>Toggle Sections:</b><blockquote>")
924
                NewTextFile.WriteLine("<a href=""javascript:;"" onClick=""MM_toggleAll('divPkgInfo','1');"">Expand All</a>")
925
                NewTextFile.WriteLine("<a href=""javascript:;"" onClick=""MM_toggleAll('divPkgInfo','');"">Collapse All</a>")
926
                NewTextFile.WriteLine("</blockquote>")
927
 
928
                While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))
929
                VersionList = "0"
930
                errormsg = false
931
                    rowId = rsQry("pv_id_a") &"_"& rsQry("pv_id_b")
932
 
933
                    btnMerge = LIMG_MERGE
934
                    btnRemove = LIMG_REMOVE
935
                    colorA = LCOLOR_NOT_CHANGED
936
                    colorB = LCOLOR_NOT_CHANGED
937
 
938
                    Select Case rsQry("change_type")
939
                        Case "U"
940
                            colorA = LCOLOR_CHANGED
941
                            colorB = LCOLOR_CHANGED
942
                        Case "UW"
943
                            colorA = LCOLOR_CHANGED
944
                            colorB = LCOLOR_CHANGED
945
                            btnMerge = LIMG_MERGE_WARN
946
                        Case "UR"
947
                            colorA = LCOLOR_RIPPLED
948
                            colorB = LCOLOR_RIPPLED
949
                        Case "A"
950
                            colorA = LCOLOR_BLANK
951
                        Case "R"
952
                            colorB = LCOLOR_BLANK
953
                    End Select
954
 
955
                    Call GetDiffStateIcon ( rsQry("change_type"), ChangeTypeIcon )
956
                %>
957
                  <tr>
13 rsolanki 958
                    <td class="body_row" nowrap>
4027 dpurdie 959
                        <DIV id="PVA<%=rowId%>" style="background:<%=colorA%>; padding:5px;">
960
                        <%=rsQry("pkg_name_a") &" "& rsQry("pkg_version_a")%>
961
                        </DIV>
962
                        <input type="hidden" id="UNDOCOLORA_<%=rowId%>" value="<%=colorA%>">
963
                    </td>
13 rsolanki 964
                    <td bgcolor="#F5F5F5"></td>
965
                    <td bgcolor="#E4E9EC"><DIV id="IMGSTATE<%=rowId%>" ><%=ChangeTypeIcon%></DIV><input type="hidden" id="CHANGETYPE_<%=rowId%>" value="<%=rsQry("change_type")%>"></td>
966
                    <td bgcolor="#F5F5F5"></td>
967
                    <td class="body_row" nowrap>
4027 dpurdie 968
                        <DIV id="PVB<%=rowId%>" style="background:<%=colorB%>; padding:5px;">
969
                        <%=rsQry("pkg_name_b") &" "& rsQry("pkg_version_b")%>
970
                        </DIV>
971
                        <input type="hidden" id="UNDOCOLORB_<%=rowId%>" value="<%=colorB%>">
972
                        <input type="hidden" name="addpkg" id="ADDPKG_<%=rowId%>" value="">
973
                        <input type="hidden" name="removepkg" id="REMOVEPKG_<%=rowId%>" value="">
974
                        <input type="hidden" id="UNDOPKG_<%=rowId%>" value="<%=rsQry("pkg_name_b") &" "& rsQry("pkg_version_b")%>">
975
                    </td>
976
                  </tr>
13 rsolanki 977
<%
4027 dpurdie 978
    If genReport Then
979
        If rsQry("pv_id_a") Then
980
            Set rsQryCommentsA = OraDatabase.DbCreateDynaset( "SELECT COMMENTS FROM PACKAGE_VERSIONS WHERE PV_ID="& rsQry("pv_id_a"), cint(0))
981
        End If
982
 
983
        If rsQry("pv_id_b") Then
984
            Set rsQryCommentsB = OraDatabase.DbCreateDynaset( "SELECT COMMENTS FROM PACKAGE_VERSIONS WHERE PV_ID="& rsQry("pv_id_b"), cint(0))
985
        End If
986
 
987
        pkgA = rsQry("pkg_name_a")
988
        pkgB = rsQry("pkg_name_b")
989
 
990
        If pkgA <> "" then
991
            pkgname = pkgA
992
        Else
993
            pkgname = pkgB
994
        End If
995
 
996
        If rsQry("change_type") = "U" OR rsQry("change_type") = "UW" Then
997
                NewTextFile.Write("<p><a href=""javascript:;"" class=""body_scol"" onClick=""toggleSPAN('"& rowId &"');"">"& pkgname &"</a>")
998
                NewTextFile.WriteLine("<DIV class=divPkgInfo id=""spanPkgInfo"& rowId &""" name=""spanPkgInfo"" style=""display:none;"">")
999
                NewTextFile.Write(rsQryA("location")&" uses: "&rsQry("pkg_version_a")&" ")
1000
 
1001
                NewTextFile.WriteLine("<br>")
1002
                NewTextFile.Write(rsQryB("location")&" uses: "&rsQry("pkg_version_b")&" ")
1003
 
1004
                a = rsQry("pv_id_a")
1005
                b = rsQry("pv_id_b")
1006
                c = rsQry("pv_id_a")
1007
                d = rsQry("pv_id_b")
1008
 
1009
                NewTextFile.WriteLine("<br><br>")
1010
                NewTextFile.WriteLine()
1011
                NewTextFile.WriteLine("<b>"&rsQryB("location")&"</b>")
1012
                Call Comments(rsQry("pv_id_b"), Request("filter_comments"))
1013
                Call GetFixedIssues(rsQry("pv_id_b"), Request("filter_issues"))
1014
 
1015
                Dim rsQryLast
1016
                Set rsQryLast = OraDatabase.DbCreateDynaset( "SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="& rsQry("pv_id_b"), cint(0))
1017
 
1018
                If rsQryLast("last_pv_id") <> a Then
1019
                    Call PreviousVersions(a, b, rsQry("pkg_version_a"), rsQry("pkg_version_b"), Request("filter_comments"), Request("filter_issues"))
1020
                End If
1021
 
1022
                a = rsQry("pv_id_a")
1023
                b = rsQry("pv_id_b")
1024
                Call GetDependencies(a, VersionList + ","+ b, rsQry("pkg_version_a"), rsQry("pkg_version_b"), Request("filter_comments"), Request("filter_issues"))
1025
                NewTextFile.WriteLine("</DIV>")
1026
 
1027
                rsQryLast.Close()
1028
                Set rsQryLast = Nothing
1029
 
1030
        End If
1031
 
1032
        If rsQry("change_type") = "A" AND rsQry("patch_b") = "Y" Then
1033
            Dim rsQryPatch
1034
            OraDatabase.Parameters.Add "PV_ID",     rsQry("pv_id_b"),   ORAPARM_INPUT, ORATYPE_NUMBER
1035
            Set rsQryPatch = OraDatabase.DbCreateDynaset( GetQuery("pd_patch.sql"), cint(0))
1036
            OraDatabase.Parameters.Remove "PV_ID"
1037
            If NOT IsNull(rsQryPatch("pv_id")) Then
1038
                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>")
1039
                NewTextFile.WriteLine("<DIV class=divPkgInfo id=""spanPkgInfo_p"& rowId &""" name=""spanPkgInfo"" style=""display:none;"">")
1040
                Call Comments(rsQryPatch("pv_id"), Request("filter_comments"))
1041
                Call GetFixedIssues(rsQryPatch("pv_id"), Request("filter_issues"))
1042
            Else
1043
                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>")
1044
                NewTextFile.WriteLine("<DIV class=divPkgInfo  id=""spanPkgInfo_p"& rowId &""" name=""spanPkgInfo"" style=""display:none;"">")
1045
                Call Comments(rsQry("pv_id_b"), Request("filter_comments"))
1046
                Call GetFixedIssues(rsQry("pv_id_b"), Request("filter_issues"))
1047
            End If
1048
 
1049
            NewTextFile.WriteLine("</DIV>")
1050
            rsQryPatch.Close
1051
            Set rsQryPatch = nothing
1052
 
1053
        End If
1054
 
1055
    End If
1056
 
1057
    rsQry.MoveNext
1058
    WEnd
1059
 
1060
    rsQry.Close
1061
    Set rsQry = Nothing
1062
%>
13 rsolanki 1063
<%
4027 dpurdie 1064
    Call Footer()
1065
    NewTextFile.Close
1066
    Set NewTextFile=Nothing
1067
%>
13 rsolanki 1068
                </table>
1069
                <br>
4027 dpurdie 1070
            <%Else%>
1071
                <br>
1072
                <%
1073
                If (parRtagB <> "") Then
1074
                    Call Messenger ( "Select <b>SBOM A</b> to compare.", 3, "100%" )
1075
                ElseIf (parRtagA <> "") Then
1076
                    Call Messenger ( "Select <b>SBOM B</b> to compare.", 3, "100%" )
1077
                Else
1078
                    Call Messenger ( "Select <b>SBOM A</b> and <b>SBOM B</b> to compare.", 3, "100%" )
1079
                End If
1080
                %>
1081
 
1082
            <%End If%>
1083
 
1084
                </td>
13 rsolanki 1085
                <td width="1%" background="images/lbox_bgside_white.gif">&nbsp;</td>
1086
              </tr>
4027 dpurdie 1087
              <tr>
13 rsolanki 1088
                <td width="1%" background="images/lbox_bg_blue.gif" valign="bottom"><img src="images/lbox_bl_cnr_b.gif" width="13" height="13"></td>
1089
                <td background="images/lbox_bg_blue.gif"></td>
1090
                <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>
1091
              </tr>
1092
            </table>
1093
          </td>
1094
        </tr>
1095
      </table>
1096
    <!-- DIFF END ---------------------------------------------------->
1097
    </td>
4027 dpurdie 1098
    <td valign="top" background="images/bg_lite_blue.gif">
1099
 
1100
 
1101
      <!-- SELECT SBOM B ---------------------------------------------->
13 rsolanki 1102
      <br>
1103
      <table width="100%"  border="0" cellspacing="10" cellpadding="0">
4027 dpurdie 1104
        <tr>
13 rsolanki 1105
          <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>
1106
        </tr>
1107
        <tr>
1108
          <td align="left">
4027 dpurdie 1109
          <select name="projB" class="form_item" onChange="RequestReleaseCombo( '?proj_id='+ this.value, FormName.rtagB );">
13 rsolanki 1110
              <option value="">-- Select Project --</option>
4027 dpurdie 1111
              <%
1112
              OraDatabase.Parameters.Add "PROJ_ID",     objRelCollectorB.Item("proj_id"),   ORAPARM_INPUT, ORATYPE_NUMBER
1113
 
1114
              Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ProjectsCombo.sql"), cint(0))
1115
 
1116
              OraDatabase.Parameters.Remove "PROJ_ID"
1117
 
1118
              While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
13 rsolanki 1119
                <option value="<%=rsQry("proj_id")%>" <%=rsQry("selected")%>><%=rsQry("proj_name")%></option>
1120
              <%rsQry.MoveNext
4027 dpurdie 1121
              WEnd
1122
 
1123
              rsQry.Close
1124
              Set rsQry = Nothing
1125
            %>
1126
         </select>
1127
        </td>
13 rsolanki 1128
        </tr>
1129
        <tr>
1130
          <td align="left">
4027 dpurdie 1131
 
1132
          <select name="rtagB" id="rtagB" class="form_item" onChange="RequestSBOMCombo( '?branch_id='+ this.value, FormName.sbomB );">
1133
              <option value="">-- Select Branch --</option>
1134
              <%
1135
              OraDatabase.Parameters.Add "PROJ_ID",     objRelCollectorB.Item("proj_id"),   ORAPARM_INPUT,  ORATYPE_NUMBER
1136
              OraDatabase.Parameters.Add "BRANCH_ID",   objRelCollectorB.Item("branch_id"), ORAPARM_INPUT, ORATYPE_NUMBER
1137
 
1138
              Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ReleasesCombo.sql"), cint(0))
1139
 
1140
              OraDatabase.Parameters.Remove "PROJ_ID"
1141
              OraDatabase.Parameters.Remove "BRANCH_ID"
1142
 
1143
              While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
13 rsolanki 1144
                <option value="<%=rsQry("branch_id")%>" <%=rsQry("selected")%>><%=rsQry("branch_name")%></option>
1145
              <%rsQry.MoveNext
4027 dpurdie 1146
              WEnd
1147
 
1148
              rsQry.Close
1149
              Set rsQry = Nothing
1150
              %>
1151
          </select></td>
13 rsolanki 1152
        </tr>
1153
        <tr>
1154
          <td align="left">
1155
 
1156
 
4027 dpurdie 1157
          <select name="sbomB" id="sbomB" class="form_item">
13 rsolanki 1158
            <%
4027 dpurdie 1159
              OraDatabase.Parameters.Add "BOM_ID",  objRelCollectorB.Item("bom_id"),    ORAPARM_INPUT,  ORATYPE_NUMBER
1160
              OraDatabase.Parameters.Add "BRANCH_ID",   objRelCollectorB.Item("branch_id"), ORAPARM_INPUT, ORATYPE_NUMBER
13 rsolanki 1161
 
4027 dpurdie 1162
              Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("SBOMCombo.sql"), cint(0))
1163
 
1164
              OraDatabase.Parameters.Remove "BOM_ID"
1165
              OraDatabase.Parameters.Remove "BRANCH_ID"
1166
 
1167
              While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
13 rsolanki 1168
            <option value="<%=rsQry("bom_id")%>" <%=rsQry("selected")%>><%=rsQry("version")%></option>
1169
            <%rsQry.MoveNext
4027 dpurdie 1170
              WEnd
1171
 
1172
              rsQry.Close
1173
              Set rsQry = Nothing
1174
              %>
13 rsolanki 1175
          </select>
1176
 
4027 dpurdie 1177
 
1178
          </td>
13 rsolanki 1179
        </tr>
4027 dpurdie 1180
        <%If (parRtagB <> "") Then%>
1181
        <tr>
13 rsolanki 1182
          <td align="left"><a href="Bom_home.asp?bom_id=<%=parSBOMB%>" class="body_txt_drk">Go To SBOM B &raquo;</a></td>
1183
        </tr>
4027 dpurdie 1184
        <%End If%>
1185
                </table>
1186
                <!-- SELECT RELEASE B END ---------------------------------------------->
1187
            </td>
1188
        </tr>
1189
        <tr>
1190
            <td valign="bottom" align="center" background="images/bg_lite_blue.gif">
1191
                <img src="images/img_vtree.gif" width="86" height="99" vspace="20" hspace="30">
1192
            </td>
1193
            <td valign="bottom" background="images/bg_lite_blue.gif" align="center">
1194
                <img src="images/img_vtree.gif" width="86" height="99" vspace="20" hspace="30">
1195
            </td>
1196
        </tr>
1197
    </table>
13 rsolanki 1198
</form>
1199
<!-- FOOTER -->
1200
<!--#include file="_footer.asp"-->
1201
<%
4027 dpurdie 1202
If email Then
1203
 
1204
    Dim myMail, LocalPath
1205
    Set myMail=Server.CreateObject("Persits.MailSender")
1206
    LocalPath = Server.MapPath("docs\compareBoms_"&objAccessControl.UserName&".html")
1207
 
1208
    myMail.Host = SMTP_HOST
1209
    myMail.Subject="BOM Comparisons from Deployment Manager"
1210
    myMail.From="releasem@erggroup.com"
1211
    myMail.AddAddress objAccessControl.UserEmail
1212
    ' Attach the file
1213
    myMail.AddAttachment LocalPath
1214
    myMail.Body = "Your requested report..."
1215
    myMail.Send
1216
 
1217
    set myMail=nothing
1218
 
1219
End If
13 rsolanki 1220
%>
1221
</body>
1222
</html>
1223
<%
1224
Call Destroy_All_Objects
1225
%>
1226
<!--#include file="common/globals_destructor.asp"-->