Subversion Repositories DevTools

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

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