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