Subversion Repositories DevTools

Rev

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

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