Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

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