Subversion Repositories DevTools

Rev

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

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