Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

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