Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

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