Subversion Repositories DevTools

Rev

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
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
4556 dpurdie 270
    Set OOrsCQ = OraDatabase.DbCreateDynaset( SSsql, cint(0))
62 rsolanki 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
<meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
539
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
540
<link rel="stylesheet" href="images/release_manager_style.css" type="text/css">
541
<link rel="stylesheet" href="images/navigation.css" type="text/css">
542
<script language="JavaScript" src="images/common.js"></script>
543
<script language="JavaScript" src="scripts/remote_scripting.js"></script>
544
<script language="JavaScript" type="text/javascript">
545
<!--
546
 
547
function RequestReleaseCombo( paramString, rowId ){
548
	var requestURL = 'RequestReleaseCombo.asp';
549
 
550
	// Set ajax divname
551
	ajaxdivname = rowId;
552
 
553
	//Append the name to search for to the requestURL
554
	var url = requestURL + paramString;
555
 
556
	//Progress
557
	//alert(MM_findObj( rowId ));
558
 
559
	//MM_findObj( rowId ).options[0] = new Option('Loading...','');
560
	//MM_findObj( rowId ).selectedIndex = 0;
561
	rowId.options[0] = new Option('Loading...','');
562
	rowId.selectedIndex = 0;
563
 
564
 
565
	//Create the xmlHttp object to use in the request
566
	//stateChangeHandler will fire when the state has changed, i.e. data is received back
567
	// This is non-blocking (asynchronous)
568
	xmlHttp = GetXmlHttpObject(stateComboChangeHandler);
569
 
570
	//Send the xmlHttp get to the specified url
571
	xmlHttp_Get(xmlHttp, url);
572
 
573
 
574
}
575
 
576
function RequestSBOMCombo( paramString, rowId ){
577
	var requestURL = 'RequestSBOMCombo.asp';
578
 
579
	// Set ajax divname
580
	ajaxdivname = rowId;
581
 
582
	//Append the name to search for to the requestURL
583
	var url = requestURL + paramString;
584
 
585
	//Progress
586
	//alert(MM_findObj( rowId ));
587
 
588
	//MM_findObj( rowId ).options[0] = new Option('Loading...','');
589
	//MM_findObj( rowId ).selectedIndex = 0;
590
	rowId.options[0] = new Option('Loading...','');
591
	rowId.selectedIndex = 0;
592
 
593
 
594
	//Create the xmlHttp object to use in the request
595
	//stateChangeHandler will fire when the state has changed, i.e. data is received back
596
	// This is non-blocking (asynchronous)
597
	xmlHttp = GetXmlHttpObject(stateComboChangeHandler);
598
 
599
	//Send the xmlHttp get to the specified url
600
	xmlHttp_Get(xmlHttp, url);
601
 
602
 
603
}
604
 
605
 
606
function MergePackage ( pkga, pkgb, rowId )
607
{
608
 
609
	// Set merge hidden field with new value
610
	MM_findObj( 'ADDPKG_' + rowId ).value = pkga;
611
 
612
	var divA = MM_findObj( 'PVA' + rowId );
613
	var divB = MM_findObj( 'PVB' + rowId );
614
 
615
	// Set text equal
616
	divB.innerHTML = divA.innerHTML;
617
 
618
	// Set highlight to blank
619
	divA.style.backgroundColor = '<%=LCOLOR_NOT_CHANGED%>';
620
	divB.style.backgroundColor = '<%=LCOLOR_NOT_CHANGED%>';
621
 
622
    // Set Change state icon to blank
623
	MM_findObj( 'IMGSTATE' + rowId ).style.display = 'none';
624
 
625
	// Remove Merge Button
626
	MM_findObj( 'IMGMERGE' + rowId ).style.display = 'none';
627
	MM_findObj( 'IMGREMOVE' + rowId ).style.display = 'none';
628
 
629
	// Show undo button
630
	MM_findObj( 'IMGUNDO' + rowId ).style.display = 'block';
631
 
632
 
633
}
634
 
635
 
636
function RemovePackage ( pkga, pkgb, rowId )
637
{
638
 
639
	// Set remove hidden field with new value
640
	MM_findObj( 'REMOVEPKG_' + rowId ).value = pkgb;
641
 
642
	var divA = MM_findObj( 'PVA' + rowId );
643
	var divB = MM_findObj( 'PVB' + rowId );
644
 
645
	// Set text equal
646
	divB.style.textDecoration = 'line-through';
647
 
648
	// Set highlight to blank
649
	if (MM_findObj( 'CHANGETYPE_' + rowId ).value != "A")
650
	{
651
		divA.style.backgroundColor = '<%=LCOLOR_NOT_CHANGED%>';
652
	}
653
	divB.style.backgroundColor = '<%=LCOLOR_NOT_CHANGED%>';
654
 
655
    // Set Change state icon to blank
656
	MM_findObj( 'IMGSTATE' + rowId ).style.display = 'none';
657
 
658
	// Remove Merge Button
659
	MM_findObj( 'IMGMERGE' + rowId ).style.display = 'none';
660
	MM_findObj( 'IMGREMOVE' + rowId ).style.display = 'none';
661
 
662
	// Show undo button
663
	MM_findObj( 'IMGUNDO' + rowId ).style.display = 'block';
664
 
665
 
666
}
667
 
668
 
669
 
670
function UndoPackage ( rowId )
671
{
672
 
673
	// Set merge/remove hidden field with new value
674
	MM_findObj( 'ADDPKG_' + rowId ).value = '';
675
	MM_findObj( 'REMOVEPKG_' + rowId ).value = '';
676
 
677
	var divA = MM_findObj( 'PVA' + rowId );
678
	var divB = MM_findObj( 'PVB' + rowId );
679
 
680
	// Set text equal
681
	divB.innerHTML = MM_findObj( 'UNDOPKG_' + rowId ).value;
682
	divB.style.textDecoration = 'none';
683
 
684
 
685
	// Set highlight to blank
686
	divA.style.backgroundColor = MM_findObj( 'UNDOCOLORA_' + rowId ).value;
687
	divB.style.backgroundColor = MM_findObj( 'UNDOCOLORB_' + rowId ).value;
688
 
689
 
690
    // Set Change state icon to blank
691
	MM_findObj( 'IMGSTATE' + rowId ).style.display = 'block';
692
 
693
 
694
	// Remove Merge Button
695
	var cht = MM_findObj( 'CHANGETYPE_' + rowId );
696
 
697
	if (cht.value == "R")
698
	{
699
		MM_findObj( 'IMGMERGE' + rowId ).style.display = 'block';
700
	} 
701
	else if ( (cht.value == "A") || (cht.value == "") ) 
702
	{
703
		MM_findObj( 'IMGREMOVE' + rowId ).style.display = 'block';
704
	} 
705
	else 
706
	{
707
		MM_findObj( 'IMGMERGE' + rowId ).style.display = 'block';
708
		MM_findObj( 'IMGREMOVE' + rowId ).style.display = 'block';
709
	}
710
 
711
	// Show undo button
712
	MM_findObj( 'IMGUNDO' + rowId ).style.display = 'none';
713
 
714
}
715
 
716
 
717
function MergeAll()
718
{
719
	var elem
720
 
721
	if (document.all)
722
	{
723
		// Run this for IE
724
		elem = document.all;
725
	} else {
726
		// Run this for other browsers
727
		elem = document.getElementsByTagName('div');
728
	}
729
 
730
	for (i in elem)
731
	{
732
		if (elem[i].id)
733
		{	
734
			if (elem[i].id.indexOf('SHORT_') == 0) elem[i].style.display = 'none';
735
			if (elem[i].id.indexOf('LONG_') == 0) elem[i].style.display = 'block';
736
		}
737
	}
738
 
739
}
740
 
741
//-->
742
</script>
743
 
744
</head>
745
<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0">
746
<form name="FormName" method="post" action="<%=SCRIPT_NAME%>">
747
<!-- HEADER -->
748
<!--#include file="_header.asp"-->
749
<!-- BODY ---->
750
<table width="100%" border="0" cellspacing="0" cellpadding="0">
751
  <tr> 
752
    <td width="1%" background="images/bg_lite_blue.gif" valign="top">
753
 
754
 
755
	<!-- SELECT SBOM A ---------------------------------------------->
756
 
757
	<br>
758
      <table width="100%"  border="0" cellspacing="10" cellpadding="0">
759
 
760
		<tr>
761
          <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>
762
        </tr>
763
        <tr>
764
          <td align="left">
765
		  <select name="projA" class="form_item" onChange="RequestReleaseCombo( '?proj_id='+ this.value, FormName.rtagA );">
766
              <option value="">-- Select Project --</option>
767
			  <%
768
			  OraDatabase.Parameters.Add "PROJ_ID", 	objRelCollectorA.Item("proj_id"),	ORAPARM_INPUT, ORATYPE_NUMBER 
769
 
770
			  Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ProjectsCombo.sql"), cint(0))
771
 
772
			  OraDatabase.Parameters.Remove "PROJ_ID"
773
 
774
			  While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
775
                <option value="<%=rsQry("proj_id")%>" <%=rsQry("selected")%>><%=rsQry("proj_name")%></option>
776
              <%rsQry.MoveNext
777
			  WEnd
778
 
779
			  rsQry.Close
780
			  Set rsQry = Nothing
781
			%>
782
          </select></td>
783
        </tr>
784
        <tr>
785
          <td align="left">
786
 
787
		  <select name="rtagA" id="rtagA" class="form_item" onChange="RequestSBOMCombo( '?branch_id='+ this.value, FormName.sbomA );">
788
              <option value="">-- Select SBOM --</option>			  
789
			  <%
790
			  OraDatabase.Parameters.Add "PROJ_ID", 	objRelCollectorA.Item("proj_id"),	ORAPARM_INPUT,  ORATYPE_NUMBER 
791
			  OraDatabase.Parameters.Add "BRANCH_ID", 	objRelCollectorA.Item("branch_id"),	ORAPARM_INPUT, ORATYPE_NUMBER 
792
 
793
			  Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ReleasesCombo.sql"), cint(0))
794
 
795
			  OraDatabase.Parameters.Remove "PROJ_ID"
796
			  OraDatabase.Parameters.Remove "BRANCH_ID"
797
 
798
			  While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
799
                <option value="<%=rsQry("branch_id")%>" <%=rsQry("selected")%>><%=rsQry("branch_name")%></option>
800
              <%rsQry.MoveNext
801
			  WEnd
802
 
803
			  rsQry.Close
804
			  Set rsQry = Nothing
805
			  %>
806
		  </select></td>
807
        </tr>
808
        <tr>
809
          <td align="left">
810
 
811
 
812
		  <select name="sbomA" id="sbomA" class="form_item">
813
            <%
814
			  OraDatabase.Parameters.Add "BOM_ID", 	objRelCollectorA.Item("bom_id"),	ORAPARM_INPUT,  ORATYPE_NUMBER 
815
			  OraDatabase.Parameters.Add "BRANCH_ID", 	objRelCollectorA.Item("branch_id"),	ORAPARM_INPUT, ORATYPE_NUMBER 
816
 
817
			  Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("SBOMCombo.sql"), cint(0))
818
 
819
			  OraDatabase.Parameters.Remove "BOM_ID"
820
			  OraDatabase.Parameters.Remove "BRANCH_ID"
821
 
822
			  While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
823
            <option value="<%=rsQry("bom_id")%>" <%=rsQry("selected")%>><%=rsQry("version")%></option>
824
            <%rsQry.MoveNext
825
			  WEnd
826
 
827
			  rsQry.Close
828
			  Set rsQry = Nothing
829
			  %>
830
          </select>
831
 
832
		  </td>
833
        </tr>
834
		<%If (parRtagA <> "") Then%>  
835
		<tr>
836
          <td align="left"><a href="Bom_Home.asp?bom_id=<%=parSBOMA%>" class="body_txt_drk">Go To SBOM A &raquo;</a></td>
837
        </tr>
838
		<%End If%>
839
    </table>
840
 
841
    <!-- SELECT SBOM A END ---------------------------------------------->	</td>
842
    <td width="1%" valign="top" background="images/bg_lght_gray.gif">&nbsp;</td>
843
    <td rowspan="2" valign="top" width="100%" background="images/bg_lght_gray.gif" align="center"> 
844
      <!-- DIFF -------------------------------------------------------->
845
      <br>
846
 
847
 
848
 
849
 
850
      <table width="100%" border="0" cellspacing="10" cellpadding="0">
851
        <tr>
852
          <td>
853
 
854
 
855
 
856
            <table width="100%" border="0" cellspacing="0" cellpadding="0">
857
			  <tr> 
858
                <td width="1%"></td>
859
                <td width="100%" align="left" class="form_ttl">MERGE SBOM</td>
860
                <td width="1%"></td>
861
              </tr>
862
              <tr> 
863
                <td align="left" valign="top" background="images/lbox_bg_green.gif"><img src="images/lbox_tl_cnr_b.gif" width="13" height="13"></td>
864
                <td background="images/lbox_bg_green.gif" align="left" class="wform_ttl">&nbsp; 
865
                </td>
866
                <td align="right" valign="top" background="images/lbox_bg_green.gif"><img src="images/lbox_tr_cnr_b.gif" width="13" height="13"></td>
867
              </tr>
868
              <tr> 
869
                <td width="1%" bgcolor="#FFFFFF"><img src="images/h_trsp_dot.gif" width="10" height="100"></td>
870
                <td bgcolor="#FFFFFF" valign="top" class="form_item">
871
 
872
 
873
 
874
				<table width="100%"  border="0" cellspacing="0" cellpadding="5">
875
                  <tr>
876
                    <td width="100%" bgcolor="#DAD7C8">
877
					<input type="submit" name="btn" value="Compare" class="form_btn_comp" style="margin-right:5px;">
878
					<input type="submit" name="btn" value="Swap Compare" class="form_btn_comp">
879
				</td>
880
                    <td width="1" align="right" bgcolor="#DAD7C8" nowrap>
881
					<table width="100%"  border="0" cellspacing="0" cellpadding="0">
882
                      <tr>
883
						<td><%If objAccessControl.IsActive("mergeManager") Then%><input type="submit" name="btn" value="Merge" class="form_btn_comp" style="margin-right:10px;"><%End If%></td>
884
                        <td><input type="submit" name="btn" value="Exit" class="form_btn_comp"></td>
885
                      </tr>
886
                    </table></td>
887
                  </tr>
888
				  <tr>
889
                    <td>
890
					<%If (parRtagA <> "") AND (parRtagB <> "")Then%> 
891
					<!-- DIFF FILTER +++++++++++++++++++++++++++++++++++++++++++ -->   
892
					<fieldset style="width:150px;">
893
					<legend><a href="javascript:;" class="body_scol" onClick="ToggleDisplay('divDiffFilter');" ><%=GetIsDiffFilterInUseIcon() %>&nbsp;Filter&nbsp;Results...</a></legend>			            	  
894
					<div name="divDiffFilter" id="divDiffFilter" class="body_txt" style="display:none;">
895
					<br>
896
					<table width="100%"  border="0" cellspacing="1" cellpadding="3">
897
					    <tr>
898
					      <td width="1" background="images/bg_action_norm.gif"><input name="difilter" type="checkbox" value="<%=enumDB_DIFF_UPDATED%>" <%=GetIsDiffFilterChecked(enumDB_DIFF_UPDATED)%>></td>
899
					      <td width="50" nowrap background="images/bg_action_norm.gif" class="form_field"><%=LIMG_UPDATED%>Updated</td>
900
					    </tr>
901
					    <tr>
902
					      <td background="images/bg_action_norm.gif"><input type="checkbox" name="difilter" value="<%=enumDB_DIFF_NEW%>" <%=GetIsDiffFilterChecked(enumDB_DIFF_NEW)%>></td>
903
					      <td nowrap background="images/bg_action_norm.gif" class="form_field"><%=LIMG_ADDED%>Added</td>
904
					    </tr>
905
					    <tr>
906
					      <td background="images/bg_action_norm.gif"><input type="checkbox" name="difilter" value="<%=enumDB_DIFF_REMOVED%>" <%=GetIsDiffFilterChecked(enumDB_DIFF_REMOVED)%>></td>
907
					      <td nowrap background="images/bg_action_norm.gif" class="form_field"><%=LIMG_REMOVED%>Removed</td>
908
					    </tr>
909
					    <tr>
910
 
911
					    <tr>
912
					      <td background="images/bg_action_norm.gif">&nbsp;</td>
913
					      <td background="images/bg_action_norm.gif"><input name="btn" type="submit" class="form_btn" value="Hide"></td>
914
					    </tr>
915
					  </table>
916
					</div>
917
					</fieldset>
918
					<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
919
					<%End If%>
920
					</td>
921
                    <td></td>
922
                  </tr>
923
                </table>
924
 
925
				<%
926
				' Successfull Merge
927
				If (Request("btn") = "Merge") Then
928
					Call Messenger ( "Merge has completed successfully.", 3, "100%" )				
929
				End If
930
 
931
				Set FSO=Server.CreateObject("Scripting.FileSystemObject")
932
				Set NewTextFile=FSO.CreateTextFile(Server.MapPath("docs\compareReleases_"&objAccessControl.UserName&".html"), true)
933
				Call Header()				
934
 
935
				If (parRtagA <> "") AND (parRtagB <> "")Then%>  
936
                <table width="100%"  border="0" cellspacing="1" cellpadding="0">
937
                  <tr>
938
                    <td width="50%" bgcolor="#E4E9EC" class="body_row" nowrap><%= ReleaseIcon(objRelCollectorA.Item("official")) & objRelCollectorA.Item("location")%> </td>
939
                    <td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="1"></td>
940
                    <td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="20"></td>
941
                    <td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="1"></td>
942
                    <td width="50%" bgcolor="#E4E9EC" class="body_row" nowrap><%= ReleaseIcon(objRelCollectorB.Item("official")) & objRelCollectorB.Item("location")%></td>
943
                    <td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="1"></td>
944
                  </tr>
945
			    <%
946
 
947
				OraDatabase.Parameters.Add "SBOM_A", 	parSBOMA,	ORAPARM_INPUT, ORATYPE_NUMBER 
948
				OraDatabase.Parameters.Add "SBOM_B", 	parSBOMB,	ORAPARM_INPUT, ORATYPE_NUMBER 
949
				OraDatabase.Parameters.Add "NO_CHANGE", GetIsDiffFilterChecked(enumDB_DIFF_NO_CHANGE),		ORAPARM_INPUT, ORATYPE_VARCHAR2
950
				OraDatabase.Parameters.Add "ADDED", 	GetIsDiffFilterChecked(enumDB_DIFF_NEW),		ORAPARM_INPUT, ORATYPE_VARCHAR2
951
				OraDatabase.Parameters.Add "UPDATED", 	GetIsDiffFilterChecked(enumDB_DIFF_UPDATED),		ORAPARM_INPUT, ORATYPE_VARCHAR2
952
				OraDatabase.Parameters.Add "REMOVED", 	GetIsDiffFilterChecked(enumDB_DIFF_REMOVED),		ORAPARM_INPUT, ORATYPE_VARCHAR2
953
 
954
				Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("BOMDiffMerge.sql"), cint(0))
955
 
956
				OraDatabase.Parameters.Remove "SBOM_A"
957
				OraDatabase.Parameters.Remove "SBOM_B"
958
				OraDatabase.Parameters.Remove "NO_CHANGE"
959
				OraDatabase.Parameters.Remove "ADDED"
960
				OraDatabase.Parameters.Remove "UPDATED"
961
				OraDatabase.Parameters.Remove "REMOVED"
962
 
963
				Set rsQryA = OraDatabase.DbCreateDynaset( "SELECT pr.PROJ_NAME, br.BRANCH_NAME, b.BOM_VERSION ||'.'||b.BOM_LIFECYCLE  AS LOCATION, "&_
964
	"        pr.PROJ_ID, b.BOM_ID, br.BRANCH_ID"&_
965
	"  FROM BRANCHES br,"&_
966
	"  		BOMS b,"&_	
967
	"  	    DM_PROJECTS pr"&_
968
	" WHERE br.PROJ_ID = pr.PROJ_ID"&_
969
	" 	AND b.BRANCH_ID = br.BRANCH_ID"&_	
970
	"   AND b.BOM_ID ="&parSBOMA, cint(0))
971
 
972
 
973
				Set rsQryB = 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 ="&parSBOMB, cint(0))
981
 
982
				NewTextFile.WriteLine("<title>Difference Report Between "&rsQryA("branch_name")&" "&rsQryA("location")&" and "&rsQryB("branch_name")&" "&rsQryB("location")&"</title>")
983
				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>")
984
 
985
				While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))
986
				errormsg = false
987
					rowId = rsQry("node_id_a") &"_"& rsQry("os_id_a") &"_"& rsQry("pv_id_a") &"_"& rsQry("pv_id_b")
988
 
989
					btnMerge = LIMG_MERGE
990
					btnRemove = LIMG_REMOVE
991
					colorA = LCOLOR_NOT_CHANGED
992
					colorB = LCOLOR_NOT_CHANGED
993
 
994
					Select Case rsQry("change_type")
995
						Case "U"
996
							colorA = LCOLOR_CHANGED
997
							colorB = LCOLOR_CHANGED							
998
						Case "UW"
999
							colorA = LCOLOR_CHANGED
1000
							colorB = LCOLOR_CHANGED
1001
							btnMerge = LIMG_MERGE_WARN
1002
						Case "A"
1003
							colorA = LCOLOR_BLANK
1004
						Case "R"
1005
							colorB = LCOLOR_BLANK
1006
					End Select
1007
 
1008
					Call GetDiffStateIcon ( rsQry("change_type"), ChangeTypeIcon )
1009
				%>
1010
				  <tr>
1011
                    <td class="body_row" nowrap>
1012
						<DIV id="PVA<%=rowId%>" style="background:<%=colorA%>; padding:5px;">
1013
						<%If rsQry("pkg_name_a") <> "" Then %>
1014
						<%=rsQry("node_name_a") &"/"& rsQry("os_name_a") &"/"& rsQry("pkg_name_a") &" "& rsQry("pkg_version_a")%>
1015
						<%End If%>
1016
						</DIV>
1017
						<input type="hidden" id="UNDOCOLORA_<%=rowId%>" value="<%=colorA%>">
1018
					</td>
1019
                    <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>
1020
                    <td bgcolor="#E4E9EC"><DIV id="IMGSTATE<%=rowId%>" ><%=ChangeTypeIcon%></DIV><input type="hidden" id="CHANGETYPE_<%=rowId%>" value="<%=rsQry("change_type")%>"></td>
1021
                    <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>
1022
                    <td class="body_row" nowrap>
1023
						<DIV id="PVB<%=rowId%>" style="background:<%=colorB%>; padding:5px;">
1024
						<%If rsQry("pkg_name_b") <> "" Then %>
1025
						<%=rsQry("node_name_b") &"/"& rsQry("os_name_b") &"/"& rsQry("pkg_name_b") &" "& rsQry("pkg_version_b")%>
1026
						<%End If%>
1027
						</DIV>
1028
						<input type="hidden" id="UNDOCOLORB_<%=rowId%>" value="<%=colorB%>">
1029
						<input type="hidden" name="addpkg" id="ADDPKG_<%=rowId%>" value="">
1030
						<input type="hidden" name="removepkg" id="REMOVEPKG_<%=rowId%>" value="">
1031
						<input type="hidden" id="UNDOPKG_<%=rowId%>" value="<%=rsQry("node_name_b") &"/"& rsQry("os_name_b") &"/"& rsQry("pkg_name_b") &" "& rsQry("pkg_version_b")%>">
1032
					</td>
1033
                    <td bgcolor="#F5F5F5"><DIV id="IMGUNDO<%=rowId%>" style="display:none;" ><a href="javascript:;" onClick="UndoPackage( '<%=rowId%>' );"><%=LIMG_UNDO%></a></DIV></td>
1034
                  </tr> 
1035
<%
1036
	If email then 
1037
		If rsQry("pv_id_a") Then
1038
			Set rsQryCommentsA = OraDatabase.DbCreateDynaset( "SELECT COMMENTS FROM PACKAGE_VERSIONS WHERE PV_ID="& rsQry("pv_id_a"), cint(0)) 
1039
		End If
1040
 
1041
		If rsQry("pv_id_b") Then
1042
			Set rsQryCommentsB = OraDatabase.DbCreateDynaset( "SELECT COMMENTS FROM PACKAGE_VERSIONS WHERE PV_ID="& rsQry("pv_id_b"), cint(0)) 
1043
		End If
1044
 
1045
		pkgA = rsQry("pkg_name_a")
1046
		pkgB = rsQry("pkg_name_b")
1047
 
1048
		If pkgA <> "" then 
1049
			pkgname = pkgA
1050
		Else
1051
			pkgname = pkgB
1052
		End If
1053
 
1054
		Select Case rsQry("change_type") 
1055
			Case "U" 
1056
				NewTextFile.WriteLine("<b><font face="&chr(34)&"arial"&chr(34)&">Package Name: "&pkgname&"</font></b><br>")
1057
				NewTextFile.Write(rsQryA("location")&" uses: "&rsQry("pkg_version_a")&" ")
1058
 
1059
				NewTextFile.WriteLine("<br>")
1060
				NewTextFile.Write(rsQryB("location")&" uses: "&rsQry("pkg_version_b")&" ")
1061
 
1062
				NewTextFile.WriteLine("<br><br>")
1063
				NewTextFile.WriteLine()
1064
				NewTextFile.WriteLine("<b>"&rsQryA("location")&"</b>")	
1065
				Call Comments(rsQry("pv_id_a"))
1066
				Call GetFixedIssues(rsQry("pv_id_a"))
1067
				'Call GetDependencies(rsQry("pv_id_a"), rsQry("pv_id_b"))
1068
 
1069
				NewTextFile.WriteLine("<br><br>")
1070
				NewTextFile.WriteLine()
1071
				NewTextFile.WriteLine("<b>"&rsQryB("location")&"</b>")	
1072
				Call Comments(rsQry("pv_id_b"))
1073
				Call GetFixedIssues(rsQry("pv_id_b"))
1074
				Call GetDependencies(rsQry("pv_id_a"), rsQry("pv_id_b"))		
1075
 
1076
 
1077
 
1078
 
1079
					NewTextFile.WriteLine("****************************************************************************************************************************")
1080
 
1081
			Case "UW"					
1082
				NewTextFile.WriteLine("<b><font face="&chr(34)&"arial"&chr(34)&">Package Name: "&pkgname&"</font></b><br>")
1083
				NewTextFile.Write(rsQryA("location")&" uses: "&rsQry("pkg_version_a")&" ")
1084
 
1085
				NewTextFile.WriteLine("<br>")
1086
				NewTextFile.Write(rsQryB("location")&" uses: "&rsQry("pkg_version_b")&" ")
1087
 
1088
				NewTextFile.WriteLine("<br><br>")
1089
				NewTextFile.WriteLine()
1090
				NewTextFile.WriteLine("<b>"&rsQryA("location")&"</b>")	
1091
				Call Comments(rsQry("pv_id_a"))
1092
				Call GetFixedIssues(rsQry("pv_id_a"))
1093
				'Call GetDependencies(rsQry("pv_id_a"))
1094
 
1095
				NewTextFile.WriteLine("<br><br>")
1096
				NewTextFile.WriteLine()
1097
				NewTextFile.WriteLine("<b>"&rsQryB("location")&"</b>")	
1098
				Call Comments(rsQry("pv_id_b"))
1099
				Call GetFixedIssues(rsQry("pv_id_b"))
1100
				Call GetDependencies(rsQry("pv_id_a"), rsQry("pv_id_b"))				
1101
 
1102
 
1103
 
1104
 
1105
 
1106
				NewTextFile.WriteLine("****************************************************************************************************************************")
1107
 
1108
		End Select	
1109
 
1110
	End If
1111
 
1112
	rsQry.MoveNext
1113
	WEnd
1114
 
1115
	rsQry.Close
1116
	Set rsQry = Nothing
1117
%>									  
1118
<%
1119
	Call Footer()
1120
	NewTextFile.Close
1121
	Set NewTextFile=Nothing 
1122
%>				  
1123
                </table>
1124
                <br>
1125
			<%Else%>	
1126
				<br>
1127
				<%
1128
				If (parRtagB <> "") Then
1129
					Call Messenger ( "Select <b>SBOM A</b> to compare.", 3, "100%" )					
1130
				ElseIf (parRtagA <> "") Then
1131
					Call Messenger ( "Select <b>SBOM B</b> to compare.", 3, "100%" )					
1132
				Else
1133
					Call Messenger ( "Select <b>SBOM A</b> and <b>SBOM B</b> to compare.", 3, "100%" )					
1134
				End If
1135
				%>
1136
 
1137
			<%End If%>
1138
 
1139
				</td>
1140
                <td width="1%" background="images/lbox_bgside_white.gif">&nbsp;</td>
1141
              </tr>
1142
              <tr> 
1143
                <td width="1%" background="images/lbox_bg_green.gif" valign="bottom"><img src="images/lbox_bl_cnr_b.gif" width="13" height="13"></td>
1144
                <td background="images/lbox_bg_green.gif"></td>
1145
                <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>
1146
              </tr>
1147
            </table>
1148
          </td>
1149
        </tr>
1150
      </table>
1151
    <!-- DIFF END ---------------------------------------------------->
1152
    </td>
1153
	<td valign="top" width="1%" background="images/bg_lite_blue.gif"> 
1154
 
1155
 
1156
	  <!-- SELECT SBOM B ---------------------------------------------->
1157
      <br>
1158
      <table width="100%"  border="0" cellspacing="10" cellpadding="0">
1159
		<tr>
1160
          <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>
1161
        </tr>
1162
        <tr>
1163
          <td align="left">
1164
		  <select name="projB" class="form_item" onChange="RequestReleaseCombo( '?proj_id='+ this.value, FormName.rtagB );">
1165
              <option value="">-- Select Project --</option>
1166
			  <%
1167
			  OraDatabase.Parameters.Add "PROJ_ID", 	objRelCollectorB.Item("proj_id"),	ORAPARM_INPUT, ORATYPE_NUMBER 
1168
 
1169
			  Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ProjectsCombo.sql"), cint(0))
1170
 
1171
			  OraDatabase.Parameters.Remove "PROJ_ID"
1172
 
1173
			  While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
1174
                <option value="<%=rsQry("proj_id")%>" <%=rsQry("selected")%>><%=rsQry("proj_name")%></option>
1175
              <%rsQry.MoveNext
1176
			  WEnd
1177
 
1178
			  rsQry.Close
1179
			  Set rsQry = Nothing
1180
			%>
1181
          </select></td>
1182
        </tr>
1183
        <tr>
1184
          <td align="left">
1185
 
1186
		  <select name="rtagB" id="rtagB" class="form_item" onChange="RequestSBOMCombo( '?branch_id='+ this.value, FormName.sbomB );">
1187
              <option value="">-- Select SBOM --</option>		  
1188
			  <%
1189
			  OraDatabase.Parameters.Add "PROJ_ID", 	objRelCollectorB.Item("proj_id"),	ORAPARM_INPUT,  ORATYPE_NUMBER 
1190
			  OraDatabase.Parameters.Add "BRANCH_ID", 	objRelCollectorB.Item("branch_id"),	ORAPARM_INPUT, ORATYPE_NUMBER 
1191
 
1192
			  Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ReleasesCombo.sql"), cint(0))
1193
 
1194
			  OraDatabase.Parameters.Remove "PROJ_ID"
1195
			  OraDatabase.Parameters.Remove "BRANCH_ID"
1196
 
1197
			  While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
1198
                <option value="<%=rsQry("branch_id")%>" <%=rsQry("selected")%>><%=rsQry("branch_name")%></option>
1199
              <%rsQry.MoveNext
1200
			  WEnd
1201
 
1202
			  rsQry.Close
1203
			  Set rsQry = Nothing
1204
			  %>
1205
		  </select></td>
1206
        </tr>
1207
        <tr>
1208
          <td align="left">
1209
 
1210
 
1211
		  <select name="sbomB" id="sbomB" class="form_item">
1212
            <%
1213
			  OraDatabase.Parameters.Add "BOM_ID", 	objRelCollectorB.Item("bom_id"),	ORAPARM_INPUT,  ORATYPE_NUMBER 
1214
			  OraDatabase.Parameters.Add "BRANCH_ID", 	objRelCollectorB.Item("branch_id"),	ORAPARM_INPUT, ORATYPE_NUMBER 
1215
 
1216
			  Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("SBOMCombo.sql"), cint(0))
1217
 
1218
			  OraDatabase.Parameters.Remove "BOM_ID"
1219
			  OraDatabase.Parameters.Remove "BRANCH_ID"
1220
 
1221
			  While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
1222
            <option value="<%=rsQry("bom_id")%>" <%=rsQry("selected")%>><%=rsQry("version")%></option>
1223
            <%rsQry.MoveNext
1224
			  WEnd
1225
 
1226
			  rsQry.Close
1227
			  Set rsQry = Nothing
1228
			  %>
1229
          </select>
1230
 
1231
 
1232
		  </td>
1233
        </tr>
1234
		<%If (parRtagB <> "") Then%>  
1235
		<tr>
1236
          <td align="left"><a href="Bom_home.asp?bom_id=<%=parSBOMB%>" class="body_txt_drk">Go To SBOM B &raquo;</a></td>
1237
        </tr>
1238
		<%End If%>
1239
      </table>
1240
      <!-- SELECT RELEASE B END ---------------------------------------------->	  </td>
1241
  </tr>
1242
  <tr> 
1243
    <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>
1244
    <td background="images/bg_lght_gray.gif" valign="top"><img src="images/h_trsp_dot.gif" width="1" height="500"></td>
1245
	<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>
1246
  </tr>
1247
</table>
1248
</form>
1249
<!-- FOOTER -->
1250
<!--#include file="_footer.asp"-->
1251
<%
1252
	If email Then
1253
 
1254
		Dim myMail, LocalPath
1255
		Set myMail=Server.CreateObject("Persits.MailSender")
1256
		LocalPath = Server.MapPath("docs\compareReleases_"&objAccessControl.UserName&".html")
1257
 
1258
		myMail.Host = SMTP_HOST
1259
		myMail.Subject="Release Comparisons from Release Manager"
1260
		myMail.From="releasem@erggroup.com"
1261
		myMail.AddAddress objAccessControl.UserEmail
1262
		' Attach the file
1263
		myMail.AddAttachment LocalPath
1264
		myMail.Body = "Your requested report..." 
1265
		myMail.Send
1266
 
1267
		set myMail=nothing
1268
 
1269
	End If
1270
%>
1271
</body>
1272
</html>
1273
<%
1274
Call Destroy_All_Objects
1275
%>
1276
<!--#include file="common/globals_destructor.asp"-->