Subversion Repositories DevTools

Rev

Rev 5514 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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