Subversion Repositories DevTools

Rev

Rev 6646 | Rev 6649 | Go to most recent revision | 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
5355 dpurdie 96
If Request("btn") = "Show Me Report" Then
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">
570
<link rel="stylesheet" href="scripts/deployment_manager.css" type="text/css">
571
<link rel="stylesheet" href="images/release_manager_style.css" type="text/css">
572
<link rel="stylesheet" href="images/navigation.css" type="text/css">
573
<script language="JavaScript" src="scripts/common.js"></script>
574
<script language="JavaScript" src="scripts/remote_scripting.js"></script>
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>
5355 dpurdie 783
                    <%
784
                        '<input name="btn" type="submit" class="form_btn" value="Show Me Report">
785
                    %>
786
                    </span>
787
                    </td>
788
                    <td width="1" align="right" bgcolor="#DAD7C8" nowrap>
789
                    <table width="100%"  border="0" cellspacing="0" cellpadding="0">
790
                      <tr>
791
 
792
                        <td><input type="submit" name="btn" value="Exit" class="form_btn_comp"></td>
793
                      </tr>
794
                    </table></td>
795
                  </tr>
796
                </table>
797
                <%
6646 dpurdie 798
                If genReport Then
799
                    Set FSO=Server.CreateObject("Scripting.FileSystemObject")
800
                    NewTextFilePath = Server.MapPath("docs\compareBoms_"&objAccessControl.UserName&".html")
801
                    Set NewTextFile=FSO.CreateTextFile(NewTextFilePath, true)
802
                    Call Header()
803
                End If
5355 dpurdie 804
 
805
                If (parRtagA <> "") AND (parRtagB <> "")Then%>
806
                <table width="100%"  border="0" cellspacing="1" cellpadding="0">
807
                  <tr>
808
                    <td width="50%" bgcolor="#E4E9EC" class="body_row" nowrap><%= ReleaseIcon(objRelCollectorA.Item("official")) & objRelCollectorA.Item("location")%> </td>
809
                    <td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="1"></td>
810
                    <td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="20"></td>
811
                    <td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="1"></td>
812
                    <td width="50%" bgcolor="#E4E9EC" class="body_row" nowrap><%= ReleaseIcon(objRelCollectorB.Item("official")) & objRelCollectorB.Item("location")%></td>
813
                  </tr>
814
                <%
815
 
816
                OraDatabase.Parameters.Add "SBOM_A",    parSBOMA,   ORAPARM_INPUT, ORATYPE_NUMBER
817
                OraDatabase.Parameters.Add "SBOM_B",    parSBOMB,   ORAPARM_INPUT, ORATYPE_NUMBER
818
                OraDatabase.Parameters.Add "NO_CHANGE", GetIsDiffFilterChecked(enumDB_DIFF_NO_CHANGE),      ORAPARM_INPUT, ORATYPE_VARCHAR2
819
                OraDatabase.Parameters.Add "ADDED",     GetIsDiffFilterChecked(enumDB_DIFF_NEW),        ORAPARM_INPUT, ORATYPE_VARCHAR2
820
                OraDatabase.Parameters.Add "UPDATED",   GetIsDiffFilterChecked(enumDB_DIFF_UPDATED),        ORAPARM_INPUT, ORATYPE_VARCHAR2
821
                OraDatabase.Parameters.Add "REMOVED",   GetIsDiffFilterChecked(enumDB_DIFF_REMOVED),        ORAPARM_INPUT, ORATYPE_VARCHAR2
822
 
823
                Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("BOMDiff.sql"), cint(0))
824
 
825
                OraDatabase.Parameters.Remove "SBOM_A"
826
                OraDatabase.Parameters.Remove "SBOM_B"
827
                OraDatabase.Parameters.Remove "NO_CHANGE"
828
                OraDatabase.Parameters.Remove "ADDED"
829
                OraDatabase.Parameters.Remove "UPDATED"
830
                OraDatabase.Parameters.Remove "REMOVED"
831
 
832
                Set rsQryA = OraDatabase.DbCreateDynaset( "SELECT pr.PROJ_NAME, br.BRANCH_NAME, b.BOM_VERSION ||'.'||b.BOM_LIFECYCLE  AS LOCATION, "&_
833
	"        pr.PROJ_ID, b.BOM_ID, br.BRANCH_ID"&_
834
	"  FROM BRANCHES br,"&_
835
	"  		BOMS b,"&_
836
	"  	    DM_PROJECTS pr"&_
837
	" WHERE br.PROJ_ID = pr.PROJ_ID"&_
838
	" 	AND b.BRANCH_ID = br.BRANCH_ID"&_
839
	"   AND b.BOM_ID ="&parSBOMA, cint(0))
840
 
841
 
842
                Set rsQryB = OraDatabase.DbCreateDynaset( "SELECT pr.PROJ_NAME, br.BRANCH_NAME, b.BOM_VERSION ||'.'||b.BOM_LIFECYCLE  AS LOCATION, "&_
843
	"        pr.PROJ_ID, b.BOM_ID, br.BRANCH_ID"&_
844
	"  FROM BRANCHES br,"&_
845
	"  		BOMS b,"&_
846
	"  	    DM_PROJECTS pr"&_
847
	" WHERE br.PROJ_ID = pr.PROJ_ID"&_
848
	" 	AND b.BRANCH_ID = br.BRANCH_ID"&_
849
	"   AND b.BOM_ID ="&parSBOMB, cint(0))
850
 
851
 
6646 dpurdie 852
                If genReport Then
853
                    NewTextFile.WriteLine("<title>Difference Report Between "&_
854
                                rsQryA("branch_name")&" "& rsQryA("location")&" and "&_
855
                                rsQryB("branch_name")&" "& rsQryB("location")&_
856
                                "</title>")
857
                    Call Javascript()
858
                    Call Styles()
859
                    NewTextFile.WriteLine("</head>")
860
                    NewTextFile.WriteLine("<body>")
861
                    NewTextFile.WriteLine("<div class="&chr(34)&"page_title"&chr(34)&">Difference Report Between "&_
862
                                rsQryA("proj_name") & " > " & rsQryA("branch_name")&" > "&rsQryA("location")&" and "&_
863
                                rsQryB("proj_name") & " > " & rsQryB("branch_name")&" > "&rsQryB("location")&_
864
                                "</div><br><br>")
865
                End If
5355 dpurdie 866
 
6646 dpurdie 867
                Summary("<table style='border:1px solid black;border-collapse: collapse;'")
868
                Summary("<tr>")
869
                Summary("<td colspan=2 style='border: 1px solid black;'>"&rsQryA("proj_name") & " > " & rsQryA("branch_name")&" > "&rsQryA("location")&"</td>")
870
                Summary("<td colspan=2 style='border: 1px solid black;'>"&rsQryB("proj_name") & " > " & rsQryB("branch_name")&" > "&rsQryB("location")&"</td>")
871
                Summary("</tr>")
5355 dpurdie 872
 
6646 dpurdie 873
                If genReport Then
874
                    NewTextFile.WriteLine("<b>Toggle Sections:</b><blockquote>")
875
                    NewTextFile.WriteLine("<a href=""javascript:;"" onClick=""MM_toggleAll('divPkgInfo','1');"">Expand All</a>")
876
                    NewTextFile.WriteLine("<a href=""javascript:;"" onClick=""MM_toggleAll('divPkgInfo','');"">Collapse All</a>")
877
                    NewTextFile.WriteLine("</blockquote>")
878
                End If
879
 
5355 dpurdie 880
                While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))
6646 dpurdie 881
                    VersionList = "0"
882
                    errormsg = false
5355 dpurdie 883
                    rowId = rsQry("pv_id_a") &"_"& rsQry("pv_id_b")
884
 
885
                    btnMerge = LIMG_MERGE
886
                    btnRemove = LIMG_REMOVE
887
                    colorA = LCOLOR_NOT_CHANGED
888
                    colorB = LCOLOR_NOT_CHANGED
889
 
890
                    Select Case rsQry("change_type")
891
                        Case "U"
892
                            colorA = LCOLOR_CHANGED
893
                            colorB = LCOLOR_CHANGED
894
                        Case "UW"
895
                            colorA = LCOLOR_CHANGED
896
                            colorB = LCOLOR_CHANGED
897
                            btnMerge = LIMG_MERGE_WARN
898
                        Case "UR"
899
                            colorA = LCOLOR_RIPPLED
900
                            colorB = LCOLOR_RIPPLED
901
                        Case "A"
902
                            colorA = LCOLOR_BLANK
903
                        Case "R"
904
                            colorB = LCOLOR_BLANK
905
                    End Select
906
 
907
                    Call GetDiffStateIcon ( rsQry("change_type"), ChangeTypeIcon )
908
                %>
909
                  <tr>
910
                    <td class="body_row" nowrap>
911
                        <DIV id="PVA<%=rowId%>" style="background:<%=colorA%>; padding:5px;">
912
                        <%=rsQry("pkg_name_a") &" "& rsQry("pkg_version_a")%>
913
                        </DIV>
914
                        <input type="hidden" id="UNDOCOLORA_<%=rowId%>" value="<%=colorA%>">
915
                    </td>
916
                    <td bgcolor="#F5F5F5"></td>
917
                    <td bgcolor="#E4E9EC"><DIV id="IMGSTATE<%=rowId%>" ><%=ChangeTypeIcon%></DIV><input type="hidden" id="CHANGETYPE_<%=rowId%>" value="<%=rsQry("change_type")%>"></td>
918
                    <td bgcolor="#F5F5F5"></td>
919
                    <td class="body_row" nowrap>
920
                        <DIV id="PVB<%=rowId%>" style="background:<%=colorB%>; padding:5px;">
921
                        <%=rsQry("pkg_name_b") &" "& rsQry("pkg_version_b")%>
922
                        </DIV>
923
                        <input type="hidden" id="UNDOCOLORB_<%=rowId%>" value="<%=colorB%>">
924
                        <input type="hidden" name="addpkg" id="ADDPKG_<%=rowId%>" value="">
925
                        <input type="hidden" name="removepkg" id="REMOVEPKG_<%=rowId%>" value="">
926
                        <input type="hidden" id="UNDOPKG_<%=rowId%>" value="<%=rsQry("pkg_name_b") &" "& rsQry("pkg_version_b")%>">
927
                    </td>
928
                  </tr>
929
<%
6646 dpurdie 930
    Summary("<tr>")
931
    Summary("<td style='border: 1px solid black;'>"&rsQry("pkg_name_a")&"</td>")
932
    Summary("<td style='border: 1px solid black;'>"&rsQry("pkg_version_a")&"</td>")
933
    Summary("<td style='border: 1px solid black;'>"&rsQry("pkg_name_b")&"</td>")
934
    Summary("<td style='border: 1px solid black;'>"&rsQry("pkg_version_b")&"</td>")
935
    Summary("</tr>")
5355 dpurdie 936
    If genReport Then
937
        If rsQry("pv_id_a") Then
938
            Set rsQryCommentsA = OraDatabase.DbCreateDynaset( "SELECT COMMENTS FROM PACKAGE_VERSIONS WHERE PV_ID="& rsQry("pv_id_a"), cint(0))
939
        End If
940
 
941
        If rsQry("pv_id_b") Then
942
            Set rsQryCommentsB = OraDatabase.DbCreateDynaset( "SELECT COMMENTS FROM PACKAGE_VERSIONS WHERE PV_ID="& rsQry("pv_id_b"), cint(0))
943
        End If
944
 
945
        pkgA = rsQry("pkg_name_a")
946
        pkgB = rsQry("pkg_name_b")
947
 
948
        If pkgA <> "" then
949
            pkgname = pkgA
950
        Else
951
            pkgname = pkgB
952
        End If
953
 
954
        If rsQry("change_type") = "U" OR rsQry("change_type") = "UW" Then
955
                NewTextFile.Write("<p><a href=""javascript:;"" class=""body_scol"" onClick=""toggleSPAN('"& rowId &"');"">"& pkgname &"</a>")
956
                NewTextFile.WriteLine("<DIV class=divPkgInfo id=""spanPkgInfo"& rowId &""" name=""spanPkgInfo"" style=""display:none;"">")
957
                NewTextFile.Write(rsQryA("location")&" uses: "&rsQry("pkg_version_a")&" ")
958
 
959
                NewTextFile.WriteLine("<br>")
960
                NewTextFile.Write(rsQryB("location")&" uses: "&rsQry("pkg_version_b")&" ")
961
 
962
                a = rsQry("pv_id_a")
963
                b = rsQry("pv_id_b")
964
                c = rsQry("pv_id_a")
965
                d = rsQry("pv_id_b")
966
 
967
                NewTextFile.WriteLine("<br><br>")
968
                NewTextFile.WriteLine()
969
                NewTextFile.WriteLine("<b>"&rsQryB("location")&"</b>")
970
                Call Comments(rsQry("pv_id_b"), Request("filter_comments"))
971
                Call GetFixedIssues(rsQry("pv_id_b"), Request("filter_issues"))
972
 
973
                Dim rsQryLast
974
                Set rsQryLast = OraDatabase.DbCreateDynaset( "SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="& rsQry("pv_id_b"), cint(0))
975
 
976
                If rsQryLast("last_pv_id") <> a Then
977
                    Call PreviousVersions(a, b, rsQry("pkg_version_a"), rsQry("pkg_version_b"), Request("filter_comments"), Request("filter_issues"))
978
                End If
979
 
980
                a = rsQry("pv_id_a")
981
                b = rsQry("pv_id_b")
982
                Call GetDependencies(a, VersionList + ","+ b, rsQry("pkg_version_a"), rsQry("pkg_version_b"), Request("filter_comments"), Request("filter_issues"))
983
                NewTextFile.WriteLine("</DIV>")
984
 
985
                rsQryLast.Close()
986
                Set rsQryLast = Nothing
987
 
988
        End If
989
 
990
        If rsQry("change_type") = "A" AND rsQry("patch_b") = "Y" Then
991
            Dim rsQryPatch
992
            OraDatabase.Parameters.Add "PV_ID",     rsQry("pv_id_b"),   ORAPARM_INPUT, ORATYPE_NUMBER
993
            Set rsQryPatch = OraDatabase.DbCreateDynaset( GetQuery("pd_patch.sql"), cint(0))
994
            OraDatabase.Parameters.Remove "PV_ID"
995
            If NOT IsNull(rsQryPatch("pv_id")) Then
996
                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>")
997
                NewTextFile.WriteLine("<DIV class=divPkgInfo id=""spanPkgInfo_p"& rowId &""" name=""spanPkgInfo"" style=""display:none;"">")
998
                Call Comments(rsQryPatch("pv_id"), Request("filter_comments"))
999
                Call GetFixedIssues(rsQryPatch("pv_id"), Request("filter_issues"))
1000
            Else
1001
                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>")
1002
                NewTextFile.WriteLine("<DIV class=divPkgInfo  id=""spanPkgInfo_p"& rowId &""" name=""spanPkgInfo"" style=""display:none;"">")
1003
                Call Comments(rsQry("pv_id_b"), Request("filter_comments"))
1004
                Call GetFixedIssues(rsQry("pv_id_b"), Request("filter_issues"))
1005
            End If
1006
 
1007
            NewTextFile.WriteLine("</DIV>")
1008
            rsQryPatch.Close
1009
            Set rsQryPatch = nothing
1010
 
1011
        End If
1012
 
1013
    End If
1014
 
1015
    rsQry.MoveNext
1016
    WEnd
1017
 
1018
    rsQry.Close
1019
    Set rsQry = Nothing
1020
%>
1021
<%
6646 dpurdie 1022
    Summary("</table>")
1023
    If genReport Then
1024
        Call Footer()
1025
        NewTextFile.Close
1026
        Set NewTextFile=Nothing
1027
    End If
5355 dpurdie 1028
%>
1029
                </table>
1030
                <br>
1031
            <%Else%>
1032
                <br>
1033
                <%
1034
                If (parRtagB <> "") Then
1035
                    Call Messenger ( "Select <b>SBOM A</b> to compare.", 3, "100%" )
1036
                ElseIf (parRtagA <> "") Then
1037
                    Call Messenger ( "Select <b>SBOM B</b> to compare.", 3, "100%" )
1038
                Else
1039
                    Call Messenger ( "Select <b>SBOM A</b> and <b>SBOM B</b> to compare.", 3, "100%" )
1040
                End If
1041
                %>
1042
 
1043
            <%End If%>
1044
 
1045
                </td>
1046
                <td width="1%" background="images/lbox_bgside_white.gif">&nbsp;</td>
1047
              </tr>
1048
              <tr>
1049
                <td width="1%" background="images/lbox_bg_blue.gif" valign="bottom"><img src="images/lbox_bl_cnr_b.gif" width="13" height="13"></td>
1050
                <td background="images/lbox_bg_blue.gif"></td>
1051
                <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>
1052
              </tr>
1053
            </table>
1054
          </td>
1055
        </tr>
1056
      </table>
1057
    <!-- DIFF END ---------------------------------------------------->
1058
    </td>
1059
    <td valign="top" background="images/bg_lite_blue.gif">
1060
 
1061
 
1062
      <!-- SELECT SBOM B ---------------------------------------------->
1063
      <br>
1064
      <table width="100%"  border="0" cellspacing="10" cellpadding="0">
1065
        <tr>
1066
          <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>
1067
        </tr>
1068
        <tr>
1069
          <td align="left">
6646 dpurdie 1070
          <select name="projB" class="form_item" onChange="RequestReleaseCombo( '?proj_id='+ this.value, FormName.rtagB, FormName.sbomB );">
5355 dpurdie 1071
              <option value="">-- Select Project --</option>
1072
              <%
1073
              OraDatabase.Parameters.Add "PROJ_ID",     objRelCollectorB.Item("proj_id"),   ORAPARM_INPUT, ORATYPE_NUMBER
1074
 
1075
              Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ProjectsCombo.sql"), cint(0))
1076
 
1077
              OraDatabase.Parameters.Remove "PROJ_ID"
1078
 
1079
              While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
1080
                <option value="<%=rsQry("proj_id")%>" <%=rsQry("selected")%>><%=rsQry("proj_name")%></option>
1081
              <%rsQry.MoveNext
1082
              WEnd
1083
 
1084
              rsQry.Close
1085
              Set rsQry = Nothing
1086
            %>
1087
         </select>
1088
        </td>
1089
        </tr>
1090
        <tr>
1091
          <td align="left">
1092
 
1093
          <select name="rtagB" id="rtagB" class="form_item" onChange="RequestSBOMCombo( '?branch_id='+ this.value, FormName.sbomB );">
1094
              <option value="">-- Select Branch --</option>
1095
              <%
1096
              OraDatabase.Parameters.Add "PROJ_ID",     objRelCollectorB.Item("proj_id"),   ORAPARM_INPUT,  ORATYPE_NUMBER
1097
              OraDatabase.Parameters.Add "BRANCH_ID",   objRelCollectorB.Item("branch_id"), ORAPARM_INPUT, ORATYPE_NUMBER
1098
 
1099
              Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ReleasesCombo.sql"), cint(0))
1100
 
1101
              OraDatabase.Parameters.Remove "PROJ_ID"
1102
              OraDatabase.Parameters.Remove "BRANCH_ID"
1103
 
1104
              While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
1105
                <option value="<%=rsQry("branch_id")%>" <%=rsQry("selected")%>><%=rsQry("branch_name")%></option>
1106
              <%rsQry.MoveNext
1107
              WEnd
1108
 
1109
              rsQry.Close
1110
              Set rsQry = Nothing
1111
              %>
1112
          </select></td>
1113
        </tr>
1114
        <tr>
1115
          <td align="left">
1116
 
1117
 
1118
          <select name="sbomB" id="sbomB" class="form_item">
1119
            <%
1120
              OraDatabase.Parameters.Add "BOM_ID",  objRelCollectorB.Item("bom_id"),    ORAPARM_INPUT,  ORATYPE_NUMBER
1121
              OraDatabase.Parameters.Add "BRANCH_ID",   objRelCollectorB.Item("branch_id"), ORAPARM_INPUT, ORATYPE_NUMBER
1122
 
1123
              Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("SBOMCombo.sql"), cint(0))
1124
 
1125
              OraDatabase.Parameters.Remove "BOM_ID"
1126
              OraDatabase.Parameters.Remove "BRANCH_ID"
1127
 
1128
              While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
1129
            <option value="<%=rsQry("bom_id")%>" <%=rsQry("selected")%>><%=rsQry("version")%></option>
1130
            <%rsQry.MoveNext
1131
              WEnd
1132
 
1133
              rsQry.Close
1134
              Set rsQry = Nothing
1135
              %>
1136
          </select>
1137
 
1138
 
1139
          </td>
1140
        </tr>
1141
        <%If (parRtagB <> "") Then%>
1142
        <tr>
1143
          <td align="left"><a href="Bom_home.asp?bom_id=<%=parSBOMB%>" class="body_txt_drk">Go To SBOM B &raquo;</a></td>
1144
        </tr>
1145
        <%End If%>
1146
                </table>
1147
                <!-- SELECT RELEASE B END ---------------------------------------------->
1148
            </td>
1149
        </tr>
1150
        <tr>
1151
            <td valign="bottom" align="center" background="images/bg_lite_blue.gif">
1152
                <img src="images/img_vtree.gif" width="86" height="99" vspace="20" hspace="30">
1153
            </td>
1154
            <td valign="bottom" background="images/bg_lite_blue.gif" align="center">
1155
                <img src="images/img_vtree.gif" width="86" height="99" vspace="20" hspace="30">
1156
            </td>
1157
        </tr>
1158
    </table>
1159
</form>
1160
<%
1161
If email Then
1162
 
6646 dpurdie 1163
    Dim myMail
5355 dpurdie 1164
    Set myMail=Server.CreateObject("Persits.MailSender")
1165
 
1166
    myMail.Host = SMTP_HOST
6646 dpurdie 1167
    myMail.From="releasem@vixtechnology.com"
1168
    myMail.AddAddress objAccessControl.UserEmail
1169
    If genReport Then
5355 dpurdie 1170
    myMail.Subject="BOM Comparisons from Deployment Manager"
6646 dpurdie 1171
        myMail.Body = "Your requested report..."
1172
        myMail.AddAttachment NewTextFilePath
1173
    Else
1174
    myMail.Subject="BOM Sumamry Comparisons from Deployment Manager"
1175
        myMail.Body = summaryText
1176
        myMail.IsHTML = True
1177
    End If
5355 dpurdie 1178
    myMail.Send
1179
 
1180
    set myMail=nothing
1181
 
1182
End If
1183
%>
5958 dpurdie 1184
<!-- FOOTER -->
1185
<!--#include file="_footer.asp"-->
5355 dpurdie 1186
</body>
1187
</html>