Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

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