Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

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