Subversion Repositories DevTools

Rev

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

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