Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
119 ghuddy 1
<%@LANGUAGE="VBSCRIPT"%>
2
<%
3
'=====================================================
4
'|                                                   |
123 ghuddy 5
'|                       DIFF                        |
119 ghuddy 6
'|                                                   |
7
'=====================================================
8
%>
9
<%
10
Option explicit
11
' Good idea to set when using redirect
123 ghuddy 12
Response.Expires = 0   ' always load the page, dont store
119 ghuddy 13
%>
14
 
15
<%
16
'To enable the script timeout to 20 mins
17
Server.ScriptTimeout=1200
18
%>
19
<!--#include file="common/conf.asp"-->
20
<!--#include file="common/globals.asp"-->
21
<!--#include file="common/formating.asp"-->
22
<!--#include file="common/qstr.asp"-->
23
<!--#include file="common/common_subs.asp"-->
24
<!--#include file="common/common_dbedit.asp"-->
25
<!--#include file="common/_form_window_common.asp"-->
26
<!--#include file="common/_rtree_common.asp"-->
27
<%
28
' Set rfile parameter. This is a return page after Login
29
'Call objPMod.StoreParameter ( "rfile", "rtree.asp" )
30
'objPMod.PersistInQryString("proj_id")
31
'------------ ACCESS CONTROL ------------------
32
%>
33
<!--#include file="_access_control_login.asp"-->
34
<!--#include file="_access_control_general.asp"-->
35
<%
36
'------------ Variable Definition -------------
37
Dim rsQry
38
Dim objRelCollectorA
39
Dim objRelCollectorB
40
Dim parRtagA
41
Dim parRtagB
42
Dim dDiffFilter
43
Dim colorA, colorB, ChangeTypeIcon
44
Dim btnMerge, btnRemove
45
Dim rowId
46
Dim email
47
Dim FSO
48
Dim NewTextFile
49
Dim pkgA, pkgB, pkgname, delimiter, rsQryA, rsQryB, rsQryCommentsA, rsQryCommentsB, sqlstrA, counterA, sqlstrB, counterB
50
Dim SSsql, retVal, rsCQ, DEVIiss, TDSEiss, VT5DMiss, VTSUPiss
51
Dim a, b, c, d, pkgversion, errormsg, source_change, ChangeASource, ChangeAUpdate, ChangeBSource, ChangeBUpdate, pvCollectionA, pvCollectionB
52
Dim changeType
123 ghuddy 53
Dim pendingAdditions
119 ghuddy 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_RIPPLED = "<img src='images/i_rippled.gif' width='11' height='11' border='0' hspace='5' align='absmiddle' title='Rippled'>"
58
Const LIMG_ADDED = "<img src='images/i_added.gif' width='11' height='11' border='0' hspace='5' align='absmiddle' title='Added'>"
59
Const LIMG_REMOVED = "<img src='images/i_removed.gif' width='11' height='11' border='0' hspace='5' align='absmiddle' title='Removed'>"
60
Const LIMG_FILTER_ON = "<img src='images/i_data_table.gif' border='0' align='absmiddle' hspace='0' title='Filter in use.'>"
61
Const LIMG_FILTER_OFF = "<img src='images/i_data_table_off.gif' border='0' align='absmiddle' hspace='0' title='Filter not in use.'>"
62
Const LIMG_DROP_DOWN_ARROW = "<img src='images/i_drop_down_arrow.gif' width='5' height='15' hspace='1' border='0' align='absmiddle'>"
63
Const LCOLOR_NOT_CHANGED = "#F5F5F5"
64
Const LCOLOR_CHANGED = "#d2f7c9"
65
Const LCOLOR_RIPPLED = "#D8F8F8"
66
Const LCOLOR_BLANK = "#FFFFFF"
67
Const LIMG_MERGE = "<img src='images/bt_move_all_right.gif' title='Click to merge.' border='0'>"
68
Const LIMG_MERGE_WARN = "<img src='images/bt_move_warn_right.gif' title='Right hand side version is newer.' border='0'>"
69
Const LIMG_REMOVE = "<img src='images/bt_remove.gif' title='Remove this version from release.' border='0'>"
70
Const LIMG_UNDO = "<img src='images/bt_undo.gif' title='Undo merge/remove.' border='0'>"
71
'------------ Variable Init -------------------
72
Set rsCQ = Server.CreateObject("ADODB.Recordset")
73
parRtagA = Request("rtagA")
74
parRtagB = Request("rtagB")
75
Set objRelCollectorA = CreateObject("Scripting.Dictionary")
76
Set objRelCollectorB = CreateObject("Scripting.Dictionary")
77
Set dDiffFilter = CreateObject("Scripting.Dictionary")
123 ghuddy 78
Set pendingAdditions = CreateObject("Scripting.Dictionary")
119 ghuddy 79
'----------------------------------------------
80
If Request("btn") = "Mail Me Report" Then
123 ghuddy 81
   email = true
119 ghuddy 82
End If
83
%>
84
<%
85
'--------------------------------------------------------------------------------------------------------------------------
86
Sub GetDiffFilterValues ( outDepFilter )
123 ghuddy 87
   Dim FilterVal, aFilterValues
119 ghuddy 88
 
123 ghuddy 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), " ", ""), ",")
119 ghuddy 91
 
123 ghuddy 92
      For Each FilterVal In aFilterValues
93
         outDepFilter.Item (CStr( FilterVal )) = ""
94
      Next
119 ghuddy 95
 
123 ghuddy 96
   End If
119 ghuddy 97
 
98
End Sub
99
'--------------------------------------------------------------------------------------------------------------------------
100
Sub GetFixedIssues(pv_id)
123 ghuddy 101
   Set sqlstrA = OraDatabase.DbCreateDynaset("SELECT iss_db, iss_id, iss_state, notes FROM CQ_ISSUES WHERE pv_id="& pv_id &"  AND iss_state = "& enumISSUES_STATE_FIXED &_
102
   " UNION SELECT iss_db, iss_id, iss_state, notes FROM ARCHIVE_MANAGER.CQ_ISSUES WHERE pv_id="& pv_id &"  AND iss_state = "& enumISSUES_STATE_FIXED, cint(0))
119 ghuddy 103
 
123 ghuddy 104
      If sqlstrA.RecordCount <> 0 Then
105
         NewTextFile.WriteLine()
106
         NewTextFile.WriteLine("<blockquote><blockquote>Fixed Issues:</blockquote></blockquote>")
107
      End If
119 ghuddy 108
 
123 ghuddy 109
      For counterA=1 to sqlstrA.RecordCount
110
         DEVIiss = "-1"
111
         TDSEiss = "-1"
112
         VT5DMiss = "-1"
113
         VTSUPiss = "-1"
119 ghuddy 114
 
123 ghuddy 115
         If CInt(sqlstrA("iss_db")) = CInt(enumCLEARQUEST_DEVI_ID) Then
116
            DEVIiss = DEVIiss &","& sqlstrA("iss_id")
117
         ElseIf CInt(sqlstrA("iss_db")) = CInt(enumCLEARQUEST_TDSE_ID) Then
118
            TDSEiss = TDSEiss &","& sqlstrA("iss_id")
119
         ElseIf CInt(sqlstrA("iss_db")) = CInt(enumCLEARQUEST_VT5DM_ID) Then
120
            VT5DMiss = VT5DMiss &","& sqlstrA("iss_id")
121
         ElseIf CInt(sqlstrA("iss_db")) = CInt(enumCLEARQUEST_VTSUP_ID) Then
122
            VTSUPiss = VTSUPiss &","& sqlstrA("iss_id")
123
         End If
119 ghuddy 124
 
123 ghuddy 125
         SSsql = ReadFile( rootPath & "queries\cq_issues.sql" )
126
         SSsql = Replace( SSsql, "/*enumCLEARQUEST_DEVI_ID*/", enumCLEARQUEST_DEVI_ID)
127
         SSsql = Replace( SSsql, "/*enumCLEARQUEST_TDSE_ID*/", enumCLEARQUEST_TDSE_ID)
128
         SSsql = Replace( SSsql, "/*enumCLEARQUEST_VT5DM_ID*/", enumCLEARQUEST_VT5DM_ID)
129
         SSsql = Replace( SSsql, "/*enumCLEARQUEST_VTSUP_ID*/", enumCLEARQUEST_VTSUP_ID)
130
         SSsql = Replace( SSsql, "/*DEVIiss*/", DEVIiss)
131
         SSsql = Replace( SSsql, "/*TDSEiss*/", TDSEiss)
132
         SSsql = Replace( SSsql, "/*VT5DMiss*/", VT5DMiss)
133
         SSsql = Replace( SSsql, "/*VTSUPiss*/", VTSUPiss)
134
         retVal = Get_CQ_Issues ( SSsql, rsCQ )
119 ghuddy 135
 
123 ghuddy 136
         If rsCQ("iss_num") <> "" Then
137
            NewTextFile.Write("<blockquote><blockquote><blockquote>"&rsCQ("iss_num")&": ")
138
         End If
119 ghuddy 139
 
123 ghuddy 140
         If rsCQ("summary") <> "" Then
141
            NewTextFile.WriteLine(rsCQ("summary")&"</blockquote></blockquote></blockquote>")
142
         End If
119 ghuddy 143
 
123 ghuddy 144
         sqlstrA.MoveNext
145
      Next
146
      sqlstrA.Close()
119 ghuddy 147
End Sub
148
'--------------------------------------------------------------------------------------------------------------------------
149
Sub LastPvIdA(a)
150
 
123 ghuddy 151
   Dim qryA
152
   Set qryA = OraDatabase.DbCreateDynaset("SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="&a &_
153
   " UNION SELECT LAST_PV_ID FROM ARCHIVE_MANAGER.PACKAGE_VERSIONS WHERE PV_ID="&a, cint(0))
119 ghuddy 154
 
123 ghuddy 155
   'If a <> qryA("last_pv_id") Then
156
      a = qryA("last_pv_id")
157
   'Else
158
   '   errormsg = true
159
   'End If
119 ghuddy 160
 
123 ghuddy 161
   If pvCollectionA.Exists(CStr(a)) Then
162
      errormsg = true
163
      Exit Sub
164
   End If
119 ghuddy 165
 
123 ghuddy 166
   qryA.Close()
119 ghuddy 167
End Sub
168
'--------------------------------------------------------------------------------------------------------------------------
169
Sub LastPvIdB(b)
123 ghuddy 170
   Dim qryB
171
   Set qryB = OraDatabase.DbCreateDynaset("SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="&b &_
172
   " UNION SELECT LAST_PV_ID FROM ARCHIVE_MANAGER.PACKAGE_VERSIONS WHERE PV_ID="&b, cint(0))
119 ghuddy 173
 
123 ghuddy 174
   'If b <> qryB("last_pv_id") Then
175
      b = qryB("last_pv_id")
176
   'Else
177
   '   errormsg = true
178
   'End If
119 ghuddy 179
 
123 ghuddy 180
   If pvCollectionB.Exists(CStr(b)) Then
181
      errormsg = true
182
      Exit Sub
183
   End If
119 ghuddy 184
 
123 ghuddy 185
   qryB.Close()
119 ghuddy 186
End Sub
187
'--------------------------------------------------------------------------------------------------------------------------
188
Sub pkg_Version(pv)
123 ghuddy 189
   Dim qry
190
   Set qry = OraDatabase.DbCreateDynaset("SELECT PKG_VERSION FROM PACKAGE_VERSIONS WHERE PV_ID="&pv &_
191
   " UNION SELECT PKG_VERSION FROM ARCHIVE_MANAGER.PACKAGE_VERSIONS WHERE PV_ID="&pv, cint(0))
192
   pkgversion = qry("pkg_version")
193
   qry.Close()
119 ghuddy 194
End Sub
195
'--------------------------------------------------------------------------------------------------------------------------
196
Sub LastPvIdAa(a)
123 ghuddy 197
   Dim qryA
198
   Set qryA = OraDatabase.DbCreateDynaset("SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="&a &_
199
   " UNION SELECT LAST_PV_ID FROM ARCHIVE_MANAGER.PACKAGE_VERSIONS WHERE PV_ID="&a, cint(0))
200
   c = qryA("last_pv_id")
201
   qryA.Close()
119 ghuddy 202
End Sub
203
'--------------------------------------------------------------------------------------------------------------------------
204
Sub LastPvIdBb(b)
123 ghuddy 205
   Dim qryB
206
   Set qryB = OraDatabase.DbCreateDynaset("SELECT LAST_PV_ID FROM PACKAGE_VERSIONS WHERE PV_ID="&b &_
207
   " UNION SELECT LAST_PV_ID FROM ARCHIVE_MANAGER.PACKAGE_VERSIONS WHERE PV_ID="&b, cint(0))
208
   d = qryB("last_pv_id")
209
   qryB.Close()
119 ghuddy 210
End Sub
211
'--------------------------------------------------------------------------------------------------------------------------
212
Sub Comments(Pv_Id)
123 ghuddy 213
   Dim comments
214
   Set comments = OraDatabase.DbCreateDynaset("SELECT COMMENTS, PKG_VERSION FROM PACKAGE_VERSIONS WHERE PV_ID="&Pv_id &_
215
   " UNION SELECT COMMENTS, PKG_VERSION FROM ARCHIVE_MANAGER.PACKAGE_VERSIONS WHERE PV_ID="&Pv_id, cint(0))
119 ghuddy 216
 
123 ghuddy 217
   If comments("comments") <> "Rippled Build." Then
218
      NewTextFile.WriteLine("<blockquote><blockquote><font color="&chr(34)&"blue"&chr(34)&">Version: "& comments("pkg_version")&"</font></blockquote></blockquote>")
219
      If comments("comments") <> "" Then
220
         NewTextFile.WriteLine("<blockquote><blockquote>Comments: </blockquote></blockquote>")
221
         NewTextFile.WriteLine("<blockquote><blockquote><blockquote>"& TextToHTML(comments("comments")) &"</blockquote></blockquote></blockquote>")
222
         source_change = true
223
      End If
224
   End If
119 ghuddy 225
 
226
End Sub
227
'--------------------------------------------------------------------------------------------------------------------------
228
Sub Release(pvId)
123 ghuddy 229
   Dim release
230
   Set release = OraDatabase.DbCreateDynaset("SELECT INSERT_STAMP FROM RELEASE_CONTENT WHERE PV_ID="&pvId &_
231
   " UNION SELECT INSERT_STAMP FROM ARCHIVE_MANAGER.RELEASE_CONTENT WHERE PV_ID="&pvId, cint(0))
119 ghuddy 232
 
123 ghuddy 233
   If release("insert_stamp") <> "" Then
234
      NewTextFile.Write(release("insert_stamp"))
235
   Else
236
      NewTextFile.Write("Version Not Used.")
237
   End If
119 ghuddy 238
 
239
End Sub
240
'--------------------------------------------------------------------------------------------------------------------------
241
Sub Header()
123 ghuddy 242
   NewTextFile.WriteLine("<html>")
119 ghuddy 243
End Sub
244
'--------------------------------------------------------------------------------------------------------------------------
245
Sub Footer()
123 ghuddy 246
   NewTextFile.WriteLine("</html>")
119 ghuddy 247
End Sub
248
'--------------------------------------------------------------------------------------------------------------------------
249
Sub Javascript()
123 ghuddy 250
   NewTextFile.WriteLine("<script language=""JavaScript"" type=""text/javascript"">")
251
   NewTextFile.WriteLine("function MM_findObj(n, d) { //v4.0")
252
   NewTextFile.WriteLine("  var p,i,x;")
253
   NewTextFile.WriteLine("  if(!d) d=document; ")
254
   NewTextFile.WriteLine("  if((p=n.indexOf(""?""))>0&&parent.frames.length) {")
255
   NewTextFile.WriteLine("     d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);")
256
   NewTextFile.WriteLine("  }")
257
   NewTextFile.WriteLine("  if(!(x=d[n])&&d.all) x=d.all[n]; ")
258
   NewTextFile.WriteLine("  for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];")
259
   NewTextFile.WriteLine("  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);")
260
   NewTextFile.WriteLine("  if(!x && document.getElementById) x=document.getElementById(n); ")
261
   NewTextFile.WriteLine("  return x;")
262
   NewTextFile.WriteLine("}")
263
   NewTextFile.WriteLine("function DisplaySPAN(show, x) {")
264
   NewTextFile.WriteLine("   if (show) {")
265
   NewTextFile.WriteLine("      MM_findObj(""spanHideDetails"" + x).style.display = ""block"";")
266
   NewTextFile.WriteLine("      MM_findObj(""spanPkgInfo"" + x).style.display = ""block"";")
267
   NewTextFile.WriteLine("      MM_findObj(""spanShowDetails"" + x).style.display = ""none"";")
268
   NewTextFile.WriteLine("   } else {")
269
   NewTextFile.WriteLine("      MM_findObj(""spanHideDetails"" + x).style.display = ""none"";")
270
   NewTextFile.WriteLine("      MM_findObj(""spanPkgInfo"" + x).style.display = ""none"";")
271
   NewTextFile.WriteLine("      MM_findObj(""spanShowDetails"" + x).style.display = ""block"";")
272
   NewTextFile.WriteLine("   }")
273
   NewTextFile.WriteLine("}")
274
   NewTextFile.WriteLine("</script>")
119 ghuddy 275
End Sub
276
'--------------------------------------------------------------------------------------------------------------------------
277
Function GetIsDiffFilterInUseIcon()
123 ghuddy 278
   GetIsDiffFilterInUseIcon = LIMG_FILTER_OFF & LIMG_DROP_DOWN_ARROW
119 ghuddy 279
 
123 ghuddy 280
   If dDiffFilter.Count > 0 Then
281
      GetIsDiffFilterInUseIcon = LIMG_FILTER_ON & LIMG_DROP_DOWN_ARROW
282
   End If
119 ghuddy 283
 
284
End Function
285
'--------------------------------------------------------------------------------------------------------------------------
286
Function GetIsDiffFilterChecked( nFilterId )
287
 
123 ghuddy 288
   If dDiffFilter.Exists ( CStr(nFilterId)  ) Then
289
      GetIsDiffFilterChecked = "checked"
290
   End If
119 ghuddy 291
 
292
End Function
293
'---------------------------------------------------------------------------------------------------------------------------
294
Function  Get_CQ_Issues ( SSsql, OOrsCQ )
295
 
123 ghuddy 296
   If OOrsCQ.State = 1 Then
297
      OOrsCQ.Close
298
   End If
119 ghuddy 299
 
123 ghuddy 300
   On Error Resume Next
301
   OOrsCQ.ActiveConnection = CQ_conn
302
   OOrsCQ.Source = SSsql
303
   OOrsCQ.CursorType = 0
304
   OOrsCQ.CursorLocation = 2
305
   OOrsCQ.LockType = 3
306
   OOrsCQ.Open()
307
   Get_CQ_Issues = Err.Number
119 ghuddy 308
 
309
End Function
310
'--------------------------------------------------------------------------------------------------------------------------
311
Public Function TextToHTML ( sString )
123 ghuddy 312
   Dim mString
119 ghuddy 313
 
123 ghuddy 314
   If (sString = "") OR IsNull(sString) Then Exit Function
119 ghuddy 315
 
123 ghuddy 316
   mString = Server.HTMLEncode( sString )
317
   mString = Replace(mString, VBNewLine, "<br>")
119 ghuddy 318
 
123 ghuddy 319
   TextToHTML = mString
119 ghuddy 320
End Function
321
'--------------------------------------------------------------------------------------------------------------------------
322
 
323
Sub GetFormDetails ( nSourceRtagId, ByRef outobjDetails )
123 ghuddy 324
   Dim rsQry, query
119 ghuddy 325
 
123 ghuddy 326
   ' Exit if nSourceRtagId is empty
327
   If nSourceRtagId = "" Then Exit Sub
119 ghuddy 328
 
123 ghuddy 329
   OraDatabase.Parameters.Add "SOURCE_RTAG_ID",    nSourceRtagId,      ORAPARM_INPUT, ORATYPE_NUMBER
119 ghuddy 330
 
123 ghuddy 331
   query = _
332
   " SELECT pr.PROJ_NAME ||' &gt; '|| rt.RTAG_NAME   AS LOCATION, "&_
333
   "        rt.OFFICIAL, pr.PROJ_ID, rt.RTAG_ID"&_
334
   "  FROM RELEASE_TAGS rt,"&_
335
   "         PROJECTS pr"&_
336
   " WHERE rt.PROJ_ID = pr.PROJ_ID"&_
337
   "   AND rt.RTAG_ID = :SOURCE_RTAG_ID"
119 ghuddy 338
 
123 ghuddy 339
   Set rsQry = OraDatabase.DbCreateDynaset( query, ORADYN_DEFAULT )
119 ghuddy 340
 
123 ghuddy 341
   OraDatabase.Parameters.Remove "SOURCE_RTAG_ID"
119 ghuddy 342
 
123 ghuddy 343
   If rsQry.RecordCount > 0 Then
344
      outobjDetails.Item ("location") = rsQry("location")
345
      outobjDetails.Item ("official") = rsQry("official")
346
      outobjDetails.Item ("proj_id") = rsQry("proj_id")
347
      outobjDetails.Item ("rtag_id") = rsQry("rtag_id")
348
   Else
349
      Err.Raise 8, "Sub GetFormDetails in "& ScriptName, "Empty record set returned. nSourceRtagId="& nSourceRtagId
350
   End If
119 ghuddy 351
 
123 ghuddy 352
   rsQry.Close
353
   Set rsQry = Nothing
119 ghuddy 354
End Sub
355
'--------------------------------------------------------------------------------------------------------------------------
356
Sub GetDiffStateIcon( nDiffState, outIcon )
357
 
123 ghuddy 358
   Select Case nDiffState
359
      Case "U"
360
         outIcon  = LIMG_UPDATED
361
      Case "UW"
362
         outIcon  = LIMG_UPDATED
363
      Case "A"
364
         outIcon = LIMG_ADDED
365
      Case "R"
366
         outIcon = LIMG_REMOVED
367
      Case "UR"
368
         outIcon = LIMG_RIPPLED
369
      Case Else
370
         outIcon = ""
371
   End Select
119 ghuddy 372
 
373
End Sub
374
'--------------------------------------------------------------------------------------------------------------------------
123 ghuddy 375
Function Get_Record_Count ( SSsql )
376
	Dim rsTemp
377
   Set rsTemp = OraDatabase.DbCreateDynaset( "SELECT COUNT(*) as record_count FROM "& SSsql , cint(0))
378
 
379
	If (NOT rsTemp.BOF) AND (NOT rsTemp.EOF) Then
380
		Get_Record_Count = rsTemp("record_count")
381
	Else
382
		Get_Record_Count = 0
383
	End If
384
	rsTemp.Close
385
	Set rsTemp = nothing
386
End Function
387
'--------------------------------------------------------------------------------------------------------------------------
388
' We need a way of discriminating between versions in the destination release that are pending, and those that are officially
389
' in the release. This function allows us to do that on the fly within the VBSCRIPT HTML generating code, indicating specifically
390
' if the given PV_ID reflects a pending additive merge.
391
Function Is_Pending_Add(NNrtag_id, NNpv_id)
392
   If IsNull(NNrtag_id) OR IsNull(NNpv_id) Then
393
      Is_Pending_Add = 0
394
   Else
395
      Is_Pending_Add = Get_Record_Count( "PLANNED pl WHERE pl.rtag_id = " & NNrtag_id & " AND pl.pv_id = " & NNpv_id & " AND pl.operation = 'A'" )
396
	End If
397
End Function
398
'--------------------------------------------------------------------------------------------------------------------------
399
' We need a way of discriminating between versions in the destination release that are pending, and those that are officially
400
' in the release. This function allows us to do that on the fly within the VBSCRIPT HTML generating code, indicating specifically
401
' if the given PV_ID reflects a pending subtractive merge.
402
Function Is_Pending_Sub(NNrtag_id, NNpv_id)
403
   If IsNull(NNrtag_id) OR IsNull(NNpv_id) Then
404
      Is_Pending_Sub = 0
405
   Else
406
      Is_Pending_Sub = Get_Record_Count( "PLANNED pl WHERE pl.rtag_id = " & NNrtag_id & " AND pl.pv_id = " & NNpv_id & " AND pl.operation = 'S'" )
407
   End If
408
End Function
409
 
410
'--------------------------------------------------------------------------------------------------------------------------
411
 
412
 
119 ghuddy 413
Sub MergePackages (releaseMode)
123 ghuddy 414
   Dim aFullList, aAddPkgList, aRemovePkgList, dAddPkgList, dRemovePkgList, PvId
415
   Dim OraParameter
416
   Dim rc
119 ghuddy 417
 
123 ghuddy 418
   ' Business Rules restricting the use of the merge feature...
419
   ' Bypass merge if the destination release is in closed or archive mode, or if user does not have
420
   ' merge permissions
421
   If releaseMode <> enumDB_RELEASE_IN_CLOSED_MODE  AND releaseMode <> enumDB_RELEASE_IN_ARCHIVE_MODE _
422
   AND (objAccessControl.IsActive("MergeRelease")) THEN
119 ghuddy 423
 
123 ghuddy 424
      Set dAddPkgList = CreateObject("Scripting.Dictionary")
425
      Set dRemovePkgList = CreateObject("Scripting.Dictionary")
119 ghuddy 426
 
123 ghuddy 427
      '--- Get Add Packages ---
428
      ' Get full list of "addpkg" parameter
429
      aFullList = Split ( Replace( Request("addpkg"), " ", "" ), "," )
119 ghuddy 430
 
123 ghuddy 431
      ' Clean empty parameters
432
      For Each PvId In aFullList
433
         If PvId <> "" Then
434
            dAddPkgList.Add CStr( PvId ), Empty
435
         End If
436
      Next
119 ghuddy 437
 
123 ghuddy 438
      aFullList = NULL
439
      aAddPkgList = dAddPkgList.Keys
119 ghuddy 440
 
123 ghuddy 441
      '--- Get Remove Packages ---
442
      ' Get full list of "removepkg" parameter
443
      aFullList = Split ( Replace( Request("removepkg"), " ", "" ), "," )
119 ghuddy 444
 
123 ghuddy 445
      ' Clean empty parameters
446
      For Each PvId In aFullList
447
         If PvId <> "" Then
448
            dRemovePkgList.Add CStr( PvId ), Empty
449
         End If
450
      Next
119 ghuddy 451
 
123 ghuddy 452
      aFullList = NULL
453
      aRemovePkgList = dRemovePkgList.Keys
119 ghuddy 454
 
123 ghuddy 455
      '-- Add package List to release --
456
      OraDatabase.Parameters.Add "PV_ID",    NULL, ORAPARM_INPUT, ORATYPE_NUMBER
457
      OraDatabase.Parameters.Add "VIEW_ID",  NULL, ORAPARM_BOTH, ORATYPE_NUMBER
458
      OraDatabase.Parameters.Add "RTAG_A",   Request("rtagA"), ORAPARM_INPUT, ORATYPE_NUMBER
459
      OraDatabase.Parameters.Add "RTAG_B",   Request("rtagB"), ORAPARM_INPUT, ORATYPE_NUMBER
460
      OraDatabase.Parameters.Add "PROJB",    objRelCollectorB.Item("proj_id"), ORAPARM_INPUT, ORATYPE_NUMBER
461
      OraDatabase.Parameters.Add "COMMENTS", "Merging from "& objRelCollectorA.Item("location") &" to "& objRelCollectorB.Item("location"), ORAPARM_INPUT, ORATYPE_VARCHAR2
462
      OraDatabase.Parameters.Add "USER_ID",  objAccessControl.UserId, ORAPARM_INPUT, ORATYPE_NUMBER
463
      OraDatabase.Parameters.Add "OPERATION",NULL, ORAPARM_INPUT, ORATYPE_CHAR
119 ghuddy 464
 
123 ghuddy 465
      Set OraParameter = OraDatabase.Parameters
119 ghuddy 466
 
467
 
123 ghuddy 468
      On Error Resume Next
119 ghuddy 469
 
470
 
123 ghuddy 471
      ' Begin Database entry
472
      objEH.TryORA ( OraSession )
119 ghuddy 473
 
123 ghuddy 474
      OraSession.BeginTrans
119 ghuddy 475
 
123 ghuddy 476
      '-- Add Packages --
477
      OraParameter("OPERATION").Value = "A"
478
      For Each PvId In aAddPkgList
479
         OraParameter("PV_ID").Value = PvId
480
         ' DEVI-45275, Merge into Planned (pending) table instead of release_content table.
481
         OraDatabase.ExecuteSQL _
482
         "BEGIN  "&_
483
         "  :VIEW_ID := PK_RELEASE.GET_PACKAGE_VIEW ( :PV_ID, :RTAG_A ); "&_
484
         "  PK_PLANNED.MERGE_PACKAGE ( :PV_ID, :VIEW_ID, :RTAG_B, :USER_ID, :OPERATION );  "&_
485
         "END;"
486
      Next
119 ghuddy 487
 
123 ghuddy 488
      '-- Remove Packages --
489
      OraParameter("OPERATION").Value = "S"
490
      For Each PvId In aRemovePkgList
491
         OraParameter("PV_ID").Value = PvId
119 ghuddy 492
 
123 ghuddy 493
         ' Does this PV_ID exist in the destination release's planned table?
494
         rc = Get_Record_Count ("PLANNED pl WHERE pl.pv_id = " & PvId & " AND pl.rtag_id = " & Request("rtagB") )
495
         If  rc > 0 Then
496
            ' Given that merging now merges into pending, the merge page may be used to remove items that have
497
            ' previously been merged but have not yet been committed to the destination release. For these,
498
            ' we cannot call PK_RELEASE.GET_PACKAGE_VIEW(). We have to call PK_PLANNED.GET_PACKAGE_VIEW() instead.
499
            OraDatabase.ExecuteSQL _
500
            "BEGIN  "&_
501
            "  :VIEW_ID := PK_PLANNED.GET_PACKAGE_VIEW ( :PV_ID, :RTAG_B ); "&_
502
            "  PK_PLANNED.MERGE_PACKAGE ( :PV_ID, :VIEW_ID, :RTAG_B, :USER_ID, :OPERATION );  "&_
503
            "END;"
504
         Else
505
            ' DEVI-45275, Merge into Planned (pending) table instead of release_content table.
506
            OraDatabase.ExecuteSQL _
507
            "BEGIN  "&_
508
            "  :VIEW_ID := PK_RELEASE.GET_PACKAGE_VIEW ( :PV_ID, :RTAG_B ); "&_
509
            "  PK_PLANNED.MERGE_PACKAGE ( :PV_ID, :VIEW_ID, :RTAG_B, :USER_ID, :OPERATION );  "&_
510
            "END;"
511
         End If
119 ghuddy 512
 
123 ghuddy 513
         OraDatabase.Parameters.Remove "RECORD_COUNT"
514
      Next
119 ghuddy 515
 
123 ghuddy 516
      '-- Log Project Merge Action
517
      OraDatabase.ExecuteSQL _
518
      "BEGIN  LOG_PROJECT_ACTION ( :PROJB, 'merge_release', :USER_ID, :COMMENTS, :RTAG_B );  END;"
119 ghuddy 519
 
123 ghuddy 520
      '-- Force package state recalculate
521
      OraDatabase.ExecuteSQL _
522
      "BEGIN  "&_
523
      "  TOUCH_RELEASE ( :RTAG_B );  "&_
524
      "END;"
119 ghuddy 525
 
123 ghuddy 526
      OraSession.CommitTrans
527
 
528
      objEH.CatchORA ( OraSession )
529
 
530
      Set OraParameter = Nothing
531
      OraDatabase.Parameters.Remove "PV_ID"
532
      OraDatabase.Parameters.Remove "VIEW_ID"
533
      OraDatabase.Parameters.Remove "RTAG_A"
534
      OraDatabase.Parameters.Remove "RTAG_B"
535
      OraDatabase.Parameters.Remove "USER_ID"
536
      OraDatabase.Parameters.Remove "PROJB"
537
      OraDatabase.Parameters.Remove "COMMENTS"
538
      OraDatabase.Parameters.Remove "OPERATION"
539
      'Response.write "<br>"& sAddPkgList &"-"& dAddPkgList.Count &"-"& UBound( aFullList )
540
   End If
119 ghuddy 541
End Sub
542
'--------------------------------------------------------------------------------------------------------------------------
543
Function AddTrailingZeros(byval n, byval count)
123 ghuddy 544
   if len(n) >= count then
545
      AddTrailingZeros = n
546
      exit function
547
   end if
119 ghuddy 548
 
123 ghuddy 549
   dim c, s, i
550
   c = count - len(n)
119 ghuddy 551
 
123 ghuddy 552
   for i = 1 to c
553
      s = s & "0"
554
   next
555
   s = cstr(n) & s
119 ghuddy 556
 
123 ghuddy 557
   AddTrailingZeros = s
119 ghuddy 558
End function
559
'--------------------------------------------------------------------------------------------------------------------------
560
%>
561
<%
562
'------------ RUN BEFORE PAGE RENDER ----------
563
If Request("btn") = "Exit" Then
123 ghuddy 564
   Call OpenInWindow ( "index.asp" )
119 ghuddy 565
End If
566
 
567
' Get release details
568
Call GetFormDetails ( parRtagA, objRelCollectorA )
569
Call GetFormDetails ( parRtagB, objRelCollectorB )
570
 
571
 
572
 
573
 
574
If (Request("btn") = "Merge") Then
123 ghuddy 575
   Call MergePackages ( objRelCollectorB.Item("official") )
119 ghuddy 576
End If
577
 
578
If Request("btn") = "Swap Compare" Then
123 ghuddy 579
   Call OpenInWindow ( ScriptName &"?rtagA="& parRtagB &"&rtagB="& parRtagA )
119 ghuddy 580
End If
581
 
582
If Request("btn") = "Hide" Then
123 ghuddy 583
   ' Store filter in cookie
584
   Response.Cookies(enum_RELMGR_COOKIE_DOMAIN)(COOKIE_HIDE_DIFF_FILTER) = Request("difilter")
119 ghuddy 585
End If
586
 
587
 
588
Call GetDiffFilterValues ( dDiffFilter )
589
'----------------------------------------------
590
%>
591
<html>
592
<head>
593
<title>Release Manager</title>
594
<meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
595
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
596
<link rel="stylesheet" href="images/release_manager_style.css" type="text/css">
597
<link rel="stylesheet" href="images/navigation.css" type="text/css">
598
<script language="JavaScript" src="images/common.js"></script>
599
<script language="JavaScript" src="scripts/remote_scripting.js"></script>
123 ghuddy 600
 
601
<!-- TIPS -->
602
<script language="JavaScript" src="images/tipster.js"></script>
603
<script language="JavaScript" src="images/_help_tips.js"></script>
119 ghuddy 604
<script language="JavaScript" type="text/javascript">
605
<!--
606
 
123 ghuddy 607
function RequestReleaseCombo( paramString, rowId )
608
{
609
   var requestURL = 'RequestReleaseCombo.asp';
119 ghuddy 610
 
123 ghuddy 611
   // Set ajax divname
612
   ajaxdivname = rowId;
119 ghuddy 613
 
123 ghuddy 614
   //Append the name to search for to the requestURL
615
   var url = requestURL + paramString;
119 ghuddy 616
 
123 ghuddy 617
   //Progress
618
   //alert(MM_findObj( rowId ));
119 ghuddy 619
 
123 ghuddy 620
   //MM_findObj( rowId ).options[0] = new Option('Loading...','');
621
   //MM_findObj( rowId ).selectedIndex = 0;
622
   rowId.options[0] = new Option('Loading...','');
623
   rowId.selectedIndex = 0;
119 ghuddy 624
 
625
 
123 ghuddy 626
   //Create the xmlHttp object to use in the request
627
   //stateChangeHandler will fire when the state has changed, i.e. data is received back
628
   // This is non-blocking (asynchronous)
629
   xmlHttp = GetXmlHttpObject(stateComboChangeHandler);
119 ghuddy 630
 
123 ghuddy 631
   //Send the xmlHttp get to the specified url
632
   xmlHttp_Get(xmlHttp, url);
119 ghuddy 633
}
634
 
635
 
636
function MergePackage ( pkga, pkgb, rowId )
637
{
123 ghuddy 638
   // Set merge hidden field with new value
639
   MM_findObj( 'ADDPKG_' + rowId ).value = pkga;
119 ghuddy 640
 
123 ghuddy 641
   var divA = MM_findObj( 'PVA' + rowId );
642
   var divB = MM_findObj( 'PVB' + rowId );
119 ghuddy 643
 
123 ghuddy 644
   // Set text equal
645
   divB.innerHTML = divA.innerHTML;
119 ghuddy 646
 
123 ghuddy 647
   // Set highlight to blank
648
   divA.style.backgroundColor = '<%=LCOLOR_NOT_CHANGED%>';
649
   divB.style.backgroundColor = '<%=LCOLOR_NOT_CHANGED%>';
119 ghuddy 650
 
651
    // Set Change state icon to blank
123 ghuddy 652
   MM_findObj( 'IMGSTATE' + rowId ).style.display = 'none';
119 ghuddy 653
 
123 ghuddy 654
   // Remove Merge Button
655
   MM_findObj( 'IMGMERGE' + rowId ).style.display = 'none';
656
   MM_findObj( 'IMGREMOVE' + rowId ).style.display = 'none';
119 ghuddy 657
 
123 ghuddy 658
   // Show undo button
659
   MM_findObj( 'IMGUNDO' + rowId ).style.display = 'block';
119 ghuddy 660
}
661
 
662
 
663
function RemovePackage ( pkga, pkgb, rowId )
664
{
123 ghuddy 665
   // Set remove hidden field with new value
666
   MM_findObj( 'REMOVEPKG_' + rowId ).value = pkgb;
119 ghuddy 667
 
123 ghuddy 668
   var divA = MM_findObj( 'PVA' + rowId );
669
   var divB = MM_findObj( 'PVB' + rowId );
119 ghuddy 670
 
123 ghuddy 671
   // Set text equal
672
   divB.style.textDecoration = 'line-through';
119 ghuddy 673
 
123 ghuddy 674
   // Set highlight to blank
675
   if (MM_findObj( 'CHANGETYPE_' + rowId ).value != "A")
676
   {
677
      divA.style.backgroundColor = '<%=LCOLOR_NOT_CHANGED%>';
678
   }
679
   divB.style.backgroundColor = '<%=LCOLOR_NOT_CHANGED%>';
119 ghuddy 680
 
681
    // Set Change state icon to blank
123 ghuddy 682
   MM_findObj( 'IMGSTATE' + rowId ).style.display = 'none';
119 ghuddy 683
 
123 ghuddy 684
   // Remove Merge Button
685
   MM_findObj( 'IMGMERGE' + rowId ).style.display = 'none';
686
   MM_findObj( 'IMGREMOVE' + rowId ).style.display = 'none';
119 ghuddy 687
 
123 ghuddy 688
   // Show undo button
689
   MM_findObj( 'IMGUNDO' + rowId ).style.display = 'block';
119 ghuddy 690
}
691
 
692
 
693
 
694
function UndoPackage ( rowId )
695
{
123 ghuddy 696
   // Set merge/remove hidden field with new value
697
   MM_findObj( 'ADDPKG_' + rowId ).value = '';
698
   MM_findObj( 'REMOVEPKG_' + rowId ).value = '';
119 ghuddy 699
 
123 ghuddy 700
   var divA = MM_findObj( 'PVA' + rowId );
701
   var divB = MM_findObj( 'PVB' + rowId );
119 ghuddy 702
 
123 ghuddy 703
   // Set text equal
704
   divB.innerHTML = MM_findObj( 'UNDOPKG_' + rowId ).value;
705
   divB.style.textDecoration = 'none';
119 ghuddy 706
 
707
 
123 ghuddy 708
   // Set highlight to blank
709
   divA.style.backgroundColor = MM_findObj( 'UNDOCOLORA_' + rowId ).value;
710
   divB.style.backgroundColor = MM_findObj( 'UNDOCOLORB_' + rowId ).value;
119 ghuddy 711
 
712
    // Set Change state icon to blank
123 ghuddy 713
   MM_findObj( 'IMGSTATE' + rowId ).style.display = 'block';
119 ghuddy 714
 
123 ghuddy 715
   // Remove Merge Button
716
   var cht = MM_findObj( 'CHANGETYPE_' + rowId );
119 ghuddy 717
 
123 ghuddy 718
   if (cht.value == "R")
719
   {
720
      MM_findObj( 'IMGMERGE' + rowId ).style.display = 'block';
721
   }
722
   else if ( (cht.value == "A") || (cht.value == "") )
723
   {
724
      MM_findObj( 'IMGREMOVE' + rowId ).style.display = 'block';
725
   }
726
   else
727
   {
728
      MM_findObj( 'IMGMERGE' + rowId ).style.display = 'block';
729
      MM_findObj( 'IMGREMOVE' + rowId ).style.display = 'block';
730
   }
119 ghuddy 731
 
123 ghuddy 732
   // Show undo button
733
   MM_findObj( 'IMGUNDO' + rowId ).style.display = 'none';
119 ghuddy 734
}
735
 
736
 
737
function MergeAll()
738
{
123 ghuddy 739
   var elem
119 ghuddy 740
 
123 ghuddy 741
   if (document.all)
742
   {
743
      // Run this for IE
744
      elem = document.all;
745
   } else {
746
      // Run this for other browsers
747
      elem = document.getElementsByTagName('div');
748
   }
119 ghuddy 749
 
123 ghuddy 750
   for (i in elem)
751
   {
752
      if (elem[i].id)
753
      {
754
         if (elem[i].id.indexOf('SHORT_') == 0) elem[i].style.display = 'none';
755
         if (elem[i].id.indexOf('LONG_') == 0) elem[i].style.display = 'block';
756
      }
757
   }
119 ghuddy 758
}
759
 
760
//-->
761
</script>
762
 
763
</head>
123 ghuddy 764
<!-- TIPS LAYERS -------------------------------------->
765
<div id="formTipsLayer" style="position: absolute; z-index: 1000; visibility: hidden; left:0; top: 0; width: 10">&nbsp;</div>
119 ghuddy 766
<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0">
767
<form name="FormName" method="post" action="<%=ScriptName%>">
123 ghuddy 768
   <!-- HEADER -->
769
   <table width="100%" border="0" cellspacing="0" cellpadding="0">
770
      <tr>
771
         <td><a href="index.asp" alt="Home" title="Home"><img src="images/b_release_manager.jpg" width="467" height="50" border="0"></a></td>
772
         <td valign="bottom" align="right">&nbsp;</td>
773
      </tr>
774
      <tr>
775
         <td align=left noWrap valign=center width=150 background="images/h_dot.gif" height="1"></td>
776
         <td background="images/h_dot.gif" height="1"></td>
777
      </tr>
778
   </table>
779
   <!-- BODY ---->
780
   <table width="100%" border="0" cellspacing="0" cellpadding="0">
781
      <tr>
782
         <td width="1%" background="images/bg_home_orange.gif" valign="top">
783
            <!-- SELECT RELEASE A ---------------------------------------------->
784
            <br>
785
            <table width="100%"  border="0" cellspacing="10" cellpadding="0">
786
               <tr>
787
                  <td align="left" class="body_col"><img src="images/i_rtag_open_mode.gif" border="0" align="absmiddle" width="15" height="13">&nbsp;Select Release A<hr size="1px" color="Olive" noshade></td>
788
               </tr>
789
               <tr>
790
                  <td align="left">
791
                     <select name="projA" class="form_item" onChange="RequestReleaseCombo( '?proj_id='+ this.value, FormName.rtagA );">
792
                        <option value="">-- Select Project --</option>
793
                        <%
794
                        OraDatabase.Parameters.Add "PROJ_ID",    objRelCollectorA.Item("proj_id"),   ORAPARM_INPUT, ORATYPE_NUMBER
119 ghuddy 795
 
123 ghuddy 796
                        Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ProjectsCombo.sql"), cint(0))
119 ghuddy 797
 
123 ghuddy 798
                        OraDatabase.Parameters.Remove "PROJ_ID"
119 ghuddy 799
 
123 ghuddy 800
                        While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
801
                           <option value="<%=rsQry("proj_id")%>" <%=rsQry("selected")%>><%=rsQry("proj_name")%></option>
802
                           <%rsQry.MoveNext
803
                        WEnd
119 ghuddy 804
 
123 ghuddy 805
                        rsQry.Close
806
                        Set rsQry = Nothing
807
                        %>
808
                     </select>
809
                  </td>
810
               </tr>
811
               <tr>
812
                  <td align="left">
813
                     <select name="rtagA" id="rtagA" class="form_item">
814
                        <%
815
                        OraDatabase.Parameters.Add "PROJ_ID",    objRelCollectorA.Item("proj_id"),   ORAPARM_INPUT,  ORATYPE_NUMBER
816
                        OraDatabase.Parameters.Add "RTAG_ID",    objRelCollectorA.Item("rtag_id"),   ORAPARM_INPUT, ORATYPE_NUMBER
119 ghuddy 817
 
123 ghuddy 818
                        Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ReleasesCombo.sql"), cint(0))
119 ghuddy 819
 
123 ghuddy 820
                        OraDatabase.Parameters.Remove "PROJ_ID"
821
                        OraDatabase.Parameters.Remove "RTAG_ID"
119 ghuddy 822
 
123 ghuddy 823
                        While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
824
                              <option value="<%=rsQry("rtag_id")%>" <%=rsQry("selected")%>><%=rsQry("rtag_name")%></option>
825
                           <%rsQry.MoveNext
826
                        WEnd
119 ghuddy 827
 
123 ghuddy 828
                        rsQry.Close
829
                        Set rsQry = Nothing
830
                        %>
831
                     </select>
832
                  </td>
833
               </tr>
834
               <%If (parRtagA <> "") Then%>
119 ghuddy 835
                  <tr>
123 ghuddy 836
                     <td align="left"><a href="dependencies.asp?rtag_id=<%=parRtagA%>" class="body_txt_drk">Go To Release A &raquo;</a></td>
119 ghuddy 837
                  </tr>
123 ghuddy 838
               <%End If%>
839
            </table>
119 ghuddy 840
 
123 ghuddy 841
            <!-- SELECT RELEASE A END ---------------------------------------------->
842
         </td>
119 ghuddy 843
 
123 ghuddy 844
         <td width="1%" valign="top" background="images/bg_lght_gray.gif">&nbsp;</td>
119 ghuddy 845
 
123 ghuddy 846
         <td rowspan="2" valign="top" width="100%" background="images/bg_lght_gray.gif" align="center">
847
            <!-- DIFF -------------------------------------------------------->
848
            <br>
849
            <table width="100%" border="0" cellspacing="10" cellpadding="0">
850
               <tr>
851
                  <td>
852
                     <table width="100%" border="0" cellspacing="0" cellpadding="0">
853
                        <tr>
854
                           <td width="1%"></td>
855
                           <td width="100%" align="left" class="form_ttl">DIFF / MERGE RELEASE</td>
856
                           <td width="1%"></td>
857
                        </tr>
858
                        <tr>
859
                           <td align="left" valign="top" background="images/lbox_bg_blue.gif"><img src="images/lbox_tl_cnr_b.gif" width="13" height="13"></td>
860
                           <td background="images/lbox_bg_blue.gif" align="left" class="wform_ttl">&nbsp;</td>
861
                           <td align="right" valign="top" background="images/lbox_bg_blue.gif"><img src="images/lbox_tr_cnr_b.gif" width="13" height="13"></td>
862
                        </tr>
863
                        <tr>
864
                           <td width="1%" bgcolor="#FFFFFF"><img src="images/h_trsp_dot.gif" width="10" height="100"></td>
865
                           <td bgcolor="#FFFFFF" valign="top" class="form_item">
866
                              <table width="100%"  border="0" cellspacing="0" cellpadding="5">
867
                                 <tr>
868
                                    <td width="100%" bgcolor="#DAD7C8">
869
                                       <input type="submit" name="btn" value="Compare" class="form_btn_comp" style="margin-right:5px;">
870
                                       <input type="submit" name="btn" value="Swap Compare" class="form_btn_comp">
871
                                       <span class="body_txt">
872
                                          <input name="btn" type="submit" class="form_btn" value="Mail Me Report">
873
                                       </span>
874
                                    </td>
875
                                    <td width="1" align="right" bgcolor="#DAD7C8" nowrap>
876
                                       <table width="100%"  border="0" cellspacing="0" cellpadding="0">
877
                                          <tr>
878
                                             <td>
879
                                                <%If (objRelCollectorB.Item("official") <> "Y" AND objRelCollectorB.Item("official") <> "C" ) AND (objAccessControl.IsActive("MergeRelease")) Then%>
880
                                                   <input type="submit" name="btn" value="Merge" class="form_btn_comp" style="margin-right:10px;" <%If (parRtagA = "") OR (parRtagB = "")Then%>disabled<%End If%>>
881
                                                <%End If%>
882
                                             </td>
883
                                             <td>
884
                                                <%If (objRelCollectorB.Item("official") = "C" ) AND (objAccessControl.IsActive("MergeReleaseForCCB")) Then%>
885
                                                   <input type="submit" name="btn" value="Merge" class="form_btn_comp" style="margin-right:10px;" <%If (parRtagA = "") OR (parRtagB = "")Then%>disabled<%End If%>>
886
                                                <%End If%>
887
                                             </td>
888
                                             <td>
889
                                                <input type="submit" name="btn" value="Exit" class="form_btn_comp">
890
                                             </td>
891
                                          </tr>
892
                                       </table>
893
                                    </td>
894
                                 </tr>
895
                                 <tr>
896
                                    <td>
897
                                       <%If (parRtagA <> "") AND (parRtagB <> "")Then%>
898
                                          <!-- DIFF FILTER +++++++++++++++++++++++++++++++++++++++++++ -->
899
                                          <fieldset style="width:150px;">
900
                                             <legend><a href="javascript:;" class="body_scol" onClick="ToggleDisplay('divDiffFilter');" ><%=GetIsDiffFilterInUseIcon() %>&nbsp;Filter&nbsp;Results...</a></legend>
901
                                             <div name="divDiffFilter" id="divDiffFilter" class="body_txt" style="display:none;">
902
                                                <br>
903
                                                <table width="100%"  border="0" cellspacing="1" cellpadding="3">
904
                                                   <tr>
905
                                                      <td width="1" background="images/bg_action_norm.gif"><input name="difilter" type="checkbox" value="<%=enumDB_NUM_DIFF_UPDATED%>" <%=GetIsDiffFilterChecked(enumDB_NUM_DIFF_UPDATED)%>></td>
906
                                                      <td width="50" nowrap background="images/bg_action_norm.gif" class="form_field"><%=LIMG_UPDATED%>Updated</td>
907
                                                   </tr>
908
                                                   <tr>
909
                                                      <td background="images/bg_action_norm.gif"><input type="checkbox" name="difilter" value="<%=enumDB_NUM_DIFF_NEW%>" <%=GetIsDiffFilterChecked(enumDB_NUM_DIFF_NEW)%>></td>
910
                                                      <td nowrap background="images/bg_action_norm.gif" class="form_field"><%=LIMG_ADDED%>Added</td>
911
                                                   </tr>
912
                                                   <tr>
913
                                                      <td background="images/bg_action_norm.gif"><input type="checkbox" name="difilter" value="<%=enumDB_NUM_DIFF_REMOVED%>" <%=GetIsDiffFilterChecked(enumDB_NUM_DIFF_REMOVED)%>></td>
914
                                                      <td nowrap background="images/bg_action_norm.gif" class="form_field"><%=LIMG_REMOVED%>Removed</td>
915
                                                   </tr>
916
                                                   <tr>
917
                                                      <td background="images/bg_action_norm.gif"><input type="checkbox" name="difilter" value="<%=enumDB_NUM_DIFF_RIPPLE%>" <%=GetIsDiffFilterChecked(enumDB_NUM_DIFF_RIPPLE)%>></td>
918
                                                      <td nowrap background="images/bg_action_norm.gif" class="form_field"><%=LIMG_RIPPLED%>Rippled</td>
919
                                                   </tr>
920
                                                   <tr>
921
                                                      <td background="images/bg_action_norm.gif"><input type="checkbox" name="difilter" value="<%=enumDB_NUM_DIFF_NO_CHANGE%>" <%=GetIsDiffFilterChecked(enumDB_NUM_DIFF_NO_CHANGE)%>></td>
922
                                                      <td nowrap background="images/bg_action_norm.gif" class="form_field">Unchanged</td>
923
                                                   </tr>
924
                                                   <tr>
925
                                                      <td background="images/bg_action_norm.gif">&nbsp;</td>
926
                                                      <td background="images/bg_action_norm.gif"><input name="btn" type="submit" class="form_btn" value="Hide"></td>
927
                                                   </tr>
928
                                                </table>
929
                                             </div>
930
                                          </fieldset>
931
                                          <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
932
                                       <%End If%>
933
                                    </td>
934
                                    <td></td>
935
                                 </tr>
936
                              </table>
119 ghuddy 937
 
123 ghuddy 938
                              <%
939
                              ' Successfull Merge
940
                              If (Request("btn") = "Merge") Then
941
                                 Call Messenger ( "Merge has completed successfully.", 3, "100%" )
942
                              End If
119 ghuddy 943
 
123 ghuddy 944
                              Set FSO=Server.CreateObject("Scripting.FileSystemObject")
945
                              Set NewTextFile=FSO.CreateTextFile(Server.MapPath("docs\compareReleases_"&objAccessControl.UserName&".html"), true)
119 ghuddy 946
 
123 ghuddy 947
                              Call Header()
119 ghuddy 948
 
123 ghuddy 949
                              If (parRtagA <> "") AND (parRtagB <> "")Then%>
950
                                 <table width="100%"  border="0" cellspacing="1" cellpadding="0">
951
                                    <tr>
952
                                       <td width="50%" bgcolor="#E4E9EC" class="body_row" nowrap><%= ReleaseIcon(objRelCollectorA.Item("official")) & objRelCollectorA.Item("location")%> </td>
953
                                       <td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="1"></td>
954
                                       <td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="20"></td>
955
                                       <td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="1"></td>
956
                                       <td width="50%" bgcolor="#E4E9EC" class="body_row" nowrap><%= ReleaseIcon(objRelCollectorB.Item("official")) & objRelCollectorB.Item("location")%></td>
957
                                       <td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="1"></td>
958
                                    </tr>
959
                                    <%
960
                                    OraDatabase.Parameters.Add "RTAG_A",    parRtagA,   ORAPARM_INPUT, ORATYPE_NUMBER
961
                                    OraDatabase.Parameters.Add "RTAG_B",    parRtagB,   ORAPARM_INPUT, ORATYPE_NUMBER
962
                                    OraDatabase.Parameters.Add "NO_CHANGE", GetIsDiffFilterChecked(enumDB_NUM_DIFF_NO_CHANGE), ORAPARM_INPUT, ORATYPE_VARCHAR2
963
                                    OraDatabase.Parameters.Add "ADDED",     GetIsDiffFilterChecked(enumDB_NUM_DIFF_NEW),       ORAPARM_INPUT, ORATYPE_VARCHAR2
964
                                    OraDatabase.Parameters.Add "UPDATED",   GetIsDiffFilterChecked(enumDB_NUM_DIFF_UPDATED),   ORAPARM_INPUT, ORATYPE_VARCHAR2
965
                                    OraDatabase.Parameters.Add "REMOVED",   GetIsDiffFilterChecked(enumDB_NUM_DIFF_REMOVED),   ORAPARM_INPUT, ORATYPE_VARCHAR2
119 ghuddy 966
 
123 ghuddy 967
                                    Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ReleaseDiff.sql"), cint(0))
119 ghuddy 968
 
123 ghuddy 969
                                    OraDatabase.Parameters.Remove "RTAG_A"
970
                                    OraDatabase.Parameters.Remove "RTAG_B"
971
                                    OraDatabase.Parameters.Remove "NO_CHANGE"
972
                                    OraDatabase.Parameters.Remove "ADDED"
973
                                    OraDatabase.Parameters.Remove "UPDATED"
974
                                    OraDatabase.Parameters.Remove "REMOVED"
119 ghuddy 975
 
123 ghuddy 976
                                    Set rsQryA = OraDatabase.DbCreateDynaset( "SELECT RT.RTAG_NAME, PRJ.PROJ_NAME FROM RELEASE_TAGS RT, PROJECTS PRJ WHERE RTAG_ID="& parRtagA &" AND RT.PROJ_ID=PRJ.PROJ_ID", cint(0))
977
                                    Set rsQryB = OraDatabase.DbCreateDynaset( "SELECT RT.RTAG_NAME, PRJ.PROJ_NAME FROM RELEASE_TAGS RT, PROJECTS PRJ WHERE RTAG_ID="& parRtagB &" AND RT.PROJ_ID=PRJ.PROJ_ID", cint(0))
119 ghuddy 978
 
123 ghuddy 979
                                    Call Javascript()
119 ghuddy 980
 
123 ghuddy 981
                                    NewTextFile.WriteLine("<title>Difference Report Between "&rsQryA("proj_name")&" "&rsQryA("rtag_name")&" and "&rsQryB("proj_name")&" "&rsQryB("rtag_name")&"</title>")
982
                                    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("proj_name")&" "&rsQryA("rtag_name")&" and "&rsQryB("proj_name")&" "&rsQryB("rtag_name")&"</font></div><br>")
983
                                    NewTextFile.WriteLine("<b>Key:</b><br><blockquote><font style="&chr(34)&"background-color:red"&chr(34)&"><b> SOURCE CODE CHANGES</b></font><font color="&chr(34)&"red"&chr(34)&"> Indicates Changes to a Package in "& rsQryA("rtag_name") &"</font>. <br><font style="&chr(34)&"background-color:#FF9933"&chr(34)&"><b> SOURCE CODE CHANGES</b></font><font color="&chr(34)&"#FF9933"&chr(34)&"> Indicates Changes to a Package in "& rsQryB("rtag_name") &"</font>. <br><font color="&chr(34)&"#999999"&chr(34)&">Grey Text Indicates No Source Code Changes to a Package in either Release</font>.</blockquote>")
119 ghuddy 984
 
123 ghuddy 985
                                    Dim currView_id
986
                                    currView_id = -1
119 ghuddy 987
 
123 ghuddy 988
                                    While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))
989
                                       errormsg = false
990
                                       rowId = rsQry("pv_id_a") &"_"& rsQry("pv_id_b")
119 ghuddy 991
 
123 ghuddy 992
                                       btnMerge = LIMG_MERGE
993
                                       btnRemove = LIMG_REMOVE
994
                                       colorA = LCOLOR_NOT_CHANGED
995
                                       colorB = LCOLOR_NOT_CHANGED
119 ghuddy 996
 
123 ghuddy 997
                                       changeType = rsQry("change_type")
119 ghuddy 998
 
123 ghuddy 999
                                       Select Case changeType
1000
                                          Case "U"
1001
                                             colorA = LCOLOR_CHANGED
1002
                                             colorB = LCOLOR_CHANGED
1003
                                          Case "UW"
1004
                                             colorA = LCOLOR_CHANGED
1005
                                             colorB = LCOLOR_CHANGED
1006
                                             btnMerge = LIMG_MERGE_WARN
1007
                                          Case "UR"
1008
                                             colorA = LCOLOR_RIPPLED
1009
                                             colorB = LCOLOR_RIPPLED
1010
                                          Case "A"
1011
                                             colorA = LCOLOR_BLANK
1012
                                          Case "R"
1013
                                             colorB = LCOLOR_BLANK
1014
                                       End Select
119 ghuddy 1015
 
123 ghuddy 1016
                                       Call GetDiffStateIcon ( changeType, ChangeTypeIcon )
119 ghuddy 1017
 
123 ghuddy 1018
                                       If changeType = "U" OR changeType = "UW" OR changeType = "UR" Then
1019
                                          Dim MajorA, MajorB, MinorA, MinorB, PatchA, PatchB, BuildA, BuildB, pos, pkgVersionA, pkgVersionB, majMinA, majMinB
1020
                                          MajorA = NULL
1021
                                          MajorB = NULL
1022
                                          MinorA = NULL
1023
                                          MinorB = NULL
119 ghuddy 1024
 
123 ghuddy 1025
                                          pkgVersionA = rsQry("pkg_version_a")
1026
                                          pkgVersionB = rsQry("pkg_version_b")
119 ghuddy 1027
 
123 ghuddy 1028
                                          PatchA = rsQry("patch_number_a")
1029
                                          PatchB = rsQry("patch_number_b")
1030
                                          BuildA = rsQry("build_number_a")
1031
                                          BuildB = rsQry("build_number_b")
119 ghuddy 1032
 
1033
 
123 ghuddy 1034
                                          ' Find the first occurence of the dot in package version A
1035
                                          pos = InStr(pkgVersionA, ".")
1036
                                          If pos <> 0 Then
1037
                                             ' Extract the Major Version for A
1038
                                             MajorA = Mid(pkgVersionA, 1, pos - 1)
1039
                                             ' Delete the Major Version Value from the string to get the minor and patch version
1040
                                             pkgVersionA = Mid(pkgVersionA, pos + 1, Len(pkgVersionA))
1041
                                             ' Find the second occurence of the dot in package version A
1042
                                             pos = InStr(pkgVersionA, ".")
1043
                                             ' Extract the Minor Version for A
1044
                                             If pos <> 0 Then
1045
                                                MinorA = Mid(pkgVersionA, 1, pos - 1)
1046
                                             End If
1047
                                          End If
119 ghuddy 1048
 
123 ghuddy 1049
                                          ' Find the first occurence of the dot in package version B
1050
                                          pos = InStr(pkgVersionB, ".")
1051
                                          If pos <> 0 Then
1052
                                             ' Extract the Major Version for B
1053
                                             MajorB = Mid(pkgVersionB, 1, pos - 1)
1054
                                             ' Delete the Major Version Value from the string to get the minor and patch version
1055
                                             pkgVersionB = Mid(pkgVersionB, pos + 1, Len(pkgVersionB))
1056
                                             ' Find the second occurence of the dot in package version B
1057
                                             pos = InStr(pkgVersionB, ".")
1058
                                             ' Extract the Minor Version for B
1059
                                             If pos <> 0 Then
1060
                                                MinorB = Mid(pkgVersionB, 1, pos - 1)
1061
                                             End If
1062
                                          End If
119 ghuddy 1063
 
123 ghuddy 1064
                                          If MajorA = MajorB Then
1065
                                             If MinorA = MinorB Then
1066
                                                If IsNumeric(PatchA) AND IsNumeric(PatchB) Then
1067
                                                   If CInt(PatchB) > CInt(PatchA) Then
1068
                                                      btnMerge = LIMG_MERGE_WARN
1069
                                                   Else
1070
                                                      btnMerge = LIMG_MERGE
1071
                                                   End If
1072
                                                End If
1073
                                             Else
1074
                                                If IsNumeric(MinorA) AND IsNumeric(MinorB) Then
1075
                                                   If CInt(MinorB) > CInt(MinorA) Then
1076
                                                      btnMerge = LIMG_MERGE_WARN
1077
                                                   Else
1078
                                                      btnMerge = LIMG_MERGE
1079
                                                   End If
1080
                                                End If
1081
                                             End If
1082
                                          Else
1083
                                             If IsNumeric(MajorA) AND IsNumeric(MajorB) Then
1084
                                                If    CInt(MajorB) > CInt(MajorA) Then
1085
                                                   btnMerge = LIMG_MERGE_WARN
1086
                                                Else
1087
                                                   btnMerge = LIMG_MERGE
1088
                                                End If
1089
                                             End If
1090
                                          End If
1091
                                       End If
119 ghuddy 1092
 
123 ghuddy 1093
                                       ' -------- FILTERS RIPPLE BUILDS WHEN CHECKED -----------------
1094
                                       If NOT (GetIsDiffFilterChecked(enumDB_NUM_DIFF_RIPPLE) = "checked" AND changeType = "UR") THEN
119 ghuddy 1095
 
123 ghuddy 1096
                                          ' -------- GROUP BY BASE VIEW  -----------------
1097
                                          If CDbl(currView_id) <> CDbl(rsQry("view_id")) Then%>
1098
                                             <tr>
1099
                                                <td valign="top" nowrap class="form_ttl"><b><%=rsQry("view_name")%></b></td>
1100
                                                <td class="form_ttl">&nbsp;</td>
1101
                                                <td class="form_ttl">&nbsp;</td>
1102
                                                <td class="form_ttl">&nbsp;</td>
1103
                                                <td class="form_ttl">&nbsp;</td>
1104
                                                <td class="form_ttl">&nbsp;</td>
1105
                                             </tr>
1106
                                             <%
1107
                                             currView_id = CDbl(rsQry("view_id"))
1108
                                          End If
1109
                                          ' -------- END GROUP ------------------------
1110
                                          %>
1111
                                          <%
1112
                                          'Determine if we are dealing with a PV_ID that we have already encountered and displayed as a pending addition
1113
                                          'If we are, we do not need to display anything more about it, so skip the row.
1114
                                          ' NOTE. the result set is sorted by change type (see releasediff.sql) such that if there are multiple entries
1115
                                          '       for the same PV_ID, they are sorted in the following order: unchanged, additions, removals, updates.
1116
                                          '       This is important to the row skip filtering carried out below.
1117
                                          Dim skipRow
1118
                                          If rsQry("pv_id_a") Then
1119
                                             skipRow = pendingAdditions.Exists(CStr(rsQry("pv_id_a")))
1120
                                          Else
1121
                                             skipRow = FALSE
1122
                                          End If
1123
                                          %>
1124
                                          <%If NOT skipRow Then%>
1125
                                             <tr>
1126
                                                <td class="body_row" nowrap>
1127
                                                   <DIV id="PVA<%=rowId%>" style="background:<%=colorA%>; padding:5px;">
1128
                                                      <%=rsQry("pkg_name_a") &" "& rsQry("pkg_version_a")%>
1129
                                                   </DIV>
1130
                                                   <input type="hidden" id="UNDOCOLORA_<%=rowId%>" value="<%=colorA%>">
1131
                                                </td>
1132
                                                <td bgcolor="#F5F5F5">
1133
                                                   <%If objRelCollectorB.Item("official") <> "Y" Then%>
1134
                                                      <DIV id="IMGMERGE<%=rowId%>" <%If (changeType = "A")  OR IsNull( changeType ) Then%>style="display:none;"<%End If%>><a href="javascript:;" onClick="MergePackage( '<%=rsQry("pv_id_a")%>', '<%=rsQry("pv_id_b")%>', '<%=rowId%>' );"><%=btnMerge%></a></DIV>
1135
                                                   <%End If%>
1136
                                                </td>
1137
                                                <td bgcolor="#E4E9EC">
1138
                                                   <DIV id="IMGSTATE<%=rowId%>" ><%=ChangeTypeIcon%></DIV>
1139
                                                   <input type="hidden" id="CHANGETYPE_<%=rowId%>" value="<%=changeType%>">
1140
                                                </td>
1141
                                                <td bgcolor="#F5F5F5">
1142
                                                   <%If objRelCollectorB.Item("official") <> "Y" Then%>
1143
                                                      <DIV id="IMGREMOVE<%=rowId%>" <%If changeType = "R" Then%>style="display:none;"<%End If%>><a href="javascript:;" onClick="RemovePackage( '<%=rsQry("pv_id_a")%>', '<%=rsQry("pv_id_b")%>', '<%=rowId%>' );"><%=btnRemove%></a></DIV>
1144
                                                   <%End If%>
1145
                                                </td>
1146
                                                <td class="body_row" nowrap>
1147
                                                   <DIV id="PVB<%=rowId%>" style="background:<%=colorB%>; padding:5px;">
1148
                                                      <%If IsNull(rsQry("pv_id_b")) Then %>
1149
                                                         <%If Is_Pending_Sub(Request("rtagB"), rsQry("pv_id_a")) Then%>
1150
                                                            (removal pending<%=Quick_Help("RemovalPending")%>)
1151
                                                         <%End If %>
1152
                                                      <%Else%>
1153
                                                         <%=rsQry("pkg_name_b") &" "& rsQry("pkg_version_b")%>
1154
                                                         <%If Is_Pending_Add(Request("rtagB"), rsQry("pv_id_b")) Then%>
1155
                                                            (addition pending<%=Quick_Help("AdditionPending")%>)
1156
                                                            <% 'Add this pending addition to the dictionary so that we can filter out REMOVED entries
1157
                                                               'with identical PV_ID's that we might encounter further on in the result set
1158
                                                            If NOT pendingAdditions.Exists(rsQry("pv_id_b")) Then
1159
                                                               pendingAdditions.Add CStr(rsQry("pv_id_b")), CStr(rsQry("pkg_version_b"))
1160
                                                            End If%>
1161
                                                         <%ElseIf Is_Pending_Sub(Request("rtagB"), rsQry("pv_id_b")) Then%>
1162
                                                            (removal pending<%=Quick_Help("RemovalPending")%>)
1163
                                                         <%End If %>
1164
                                                      <%End If %>
1165
                                                   </DIV>
1166
                                                   <input type="hidden" id="UNDOCOLORB_<%=rowId%>" value="<%=colorB%>">
1167
                                                   <input type="hidden" name="addpkg" id="ADDPKG_<%=rowId%>" value="">
1168
                                                   <input type="hidden" name="removepkg" id="REMOVEPKG_<%=rowId%>" value="">
1169
                                                   <input type="hidden" id="UNDOPKG_<%=rowId%>" value="<%=rsQry("pkg_name_b") &" "& rsQry("pkg_version_b")%>">
1170
                                                </td>
1171
                                                <td bgcolor="#F5F5F5">
1172
                                                   <DIV id="IMGUNDO<%=rowId%>" style="display:none;" >
1173
                                                      <a href="javascript:;" onClick="UndoPackage( '<%=rowId%>' );"><%=LIMG_UNDO%></a>
1174
                                                   </DIV>
1175
                                                </td>
1176
                                             </tr>
1177
                                          <%End If %>
119 ghuddy 1178
 
123 ghuddy 1179
                                          <%
1180
                                          If email AND NOT skipRow  Then
1181
                                             If rsQry("pv_id_a") Then
1182
                                                Set rsQryCommentsA = OraDatabase.DbCreateDynaset( "SELECT COMMENTS FROM PACKAGE_VERSIONS WHERE PV_ID="& rsQry("pv_id_a"), cint(0))
1183
                                             End If
119 ghuddy 1184
 
123 ghuddy 1185
                                             If rsQry("pv_id_b") Then
1186
                                                Set rsQryCommentsB = OraDatabase.DbCreateDynaset( "SELECT COMMENTS FROM PACKAGE_VERSIONS WHERE PV_ID="& rsQry("pv_id_b"), cint(0))
1187
                                             End If
119 ghuddy 1188
 
123 ghuddy 1189
                                             pkgA = rsQry("pkg_name_a")
1190
                                             pkgB = rsQry("pkg_name_b")
119 ghuddy 1191
 
123 ghuddy 1192
                                             If pkgA <> "" then
1193
                                                pkgname = pkgA
1194
                                             Else
1195
                                                pkgname = pkgB
1196
                                             End If
119 ghuddy 1197
 
123 ghuddy 1198
                                             If changeType = "U" OR  changeType = "UW" Then
1199
                                                ChangeASource = false
1200
                                                ChangeAUpdate = false
1201
                                                ChangeBSource = false
1202
                                                ChangeBUpdate = false
119 ghuddy 1203
 
123 ghuddy 1204
                                                'NewTextFile.WriteLine("<br><b><font face="&chr(34)&"arial"&chr(34)&">"&pkgname&"</font></b>")
1205
                                                NewTextFile.Write("<SPAN id=""spanShowDetails"& rowId &""" name=""spanShowDetails""><a href=""javascript:;"" class=""body_scol"" onClick=""DisplaySPAN(true,'"& rowId &"');"">"& pkgname &"</a></SPAN>")
1206
                                                NewTextFile.Write("<SPAN id=""spanHideDetails"& rowId &""" name=""spanHideDetails"" style=""display:none;""><a href=""javascript:;"" class=""body_scol"" onClick=""DisplaySPAN(false,'"& rowId &"');"">"& pkgname &"</a></SPAN>")
1207
                                                NewTextFile.WriteLine("<SPAN id=""spanPkgInfo"& rowId &""" name=""spanPkgInfo"" style=""display:none;"">")
1208
                                                NewTextFile.Write(rsQryA("rtag_name")&" uses: "&rsQry("pkg_version_a")&" (")
1209
                                                Call Release(rsQry("pv_id_a"))
1210
                                                NewTextFile.WriteLine(")<br>")
1211
                                                NewTextFile.Write(rsQryB("rtag_name")&" uses: "&rsQry("pkg_version_b")&" (")
1212
                                                Call Release(rsQry("pv_id_b"))
1213
                                                NewTextFile.WriteLine(")<br>")
119 ghuddy 1214
 
123 ghuddy 1215
                                                a = rsQry("pv_id_a")
1216
                                                b = rsQry("pv_id_b")
1217
                                                c = rsQry("pv_id_a")
1218
                                                d = rsQry("pv_id_b")
119 ghuddy 1219
 
123 ghuddy 1220
                                                Set pvCollectionA = CreateObject("Scripting.Dictionary")
1221
                                                Set pvCollectionB = CreateObject("Scripting.Dictionary")
1222
                                                On Error Resume Next
1223
                                                While CLng(a) <> CLng(b) and NOT errormsg
119 ghuddy 1224
 
123 ghuddy 1225
                                                   'NewTextFile.WriteLine("A: "&a)
1226
                                                   'NewTextFile.WriteLine("B: "&b)
1227
                                                   pvCollectionA.Add CStr(a), Empty
1228
                                                   pvCollectionB.Add CStr(b), Empty
1229
                                                   If CLng(a) > CLng(b) Then
1230
                                                      'NewTextFile.WriteLine("TestA")
1231
                                                      Call LastPvIdA(a)
1232
                                                   ElseIf CLng(b) > CLng(a) Then
1233
                                                      'NewTextFile.WriteLine("TestB")
1234
                                                      Call LastPvIdB(b)
1235
                                                   End If
1236
                                                Wend
119 ghuddy 1237
 
123 ghuddy 1238
                                                Set pvCollectionA = Nothing
1239
                                                Set pvCollectionB = Nothing
119 ghuddy 1240
 
123 ghuddy 1241
                                                Call pkg_Version(a)
1242
                                                NewTextFile.Write("Common PARENT package version: "&pkgversion&" (")
1243
                                                Call Release(a)
1244
                                                NewTextFile.WriteLine(")<br><br>")
1245
                                                NewTextFile.WriteLine()
1246
                                                NewTextFile.WriteLine("<b>"&rsQryA("rtag_name")&"</b>")
119 ghuddy 1247
 
123 ghuddy 1248
                                                If pkgversion <> rsQry("pkg_version_a") Then
1249
                                                   NewTextFile.WriteLine("<blockquote><b><i>Versions between "& pkgversion &" and "& rsQry("pkg_version_a")&"</i></b></blockquote>")
119 ghuddy 1250
 
123 ghuddy 1251
                                                   If errormsg Then
1252
                                                      NewTextFile.WriteLine("Error determining root!<br>")
1253
                                                      NewTextFile.WriteLine()
1254
                                                   End If
119 ghuddy 1255
 
123 ghuddy 1256
                                                   source_change = false
119 ghuddy 1257
 
123 ghuddy 1258
                                                   While CLng(a) <> CLng(c) and NOT errormsg
1259
                                                      Call Comments(c)
1260
                                                      Call GetFixedIssues(c)
1261
                                                      Call LastPvIdAa(c)
1262
                                                      NewTextFile.WriteLine()
1263
                                                   Wend
119 ghuddy 1264
 
123 ghuddy 1265
                                                   If source_change = false Then
1266
                                                      NewTextFile.WriteLine("<blockquote><b><i>No source changes to "& rsQryA("rtag_name")&". Only Rippled Builds.</i></b></blockquote><br>")
1267
                                                      ChangeASource = true
1268
                                                   End If
119 ghuddy 1269
 
123 ghuddy 1270
                                                   Call pkg_Version(b)
1271
                                                   NewTextFile.WriteLine()
1272
                                                   NewTextFile.WriteLine()
119 ghuddy 1273
 
123 ghuddy 1274
                                                ElseIf pkgversion = rsQry("pkg_version_a") Then
1275
                                                   NewTextFile.WriteLine("<blockquote><b><i>No updates to "& rsQryA("rtag_name")&"</i></b></blockquote><br>")
1276
                                                   ChangeAUpdate = true
1277
                                                   NewTextFile.WriteLine()
1278
                                                End If
119 ghuddy 1279
 
123 ghuddy 1280
                                                NewTextFile.WriteLine("<b>"&rsQryB("rtag_name")&"</b>")
119 ghuddy 1281
 
123 ghuddy 1282
                                                If pkgversion <> rsQry("pkg_version_b") Then
1283
                                                   NewTextFile.WriteLine("<blockquote><b><i>Versions between "& pkgversion &" and "& rsQry("pkg_version_b")&"</i></b></blockquote>")
119 ghuddy 1284
 
123 ghuddy 1285
                                                   If errormsg Then
1286
                                                      NewTextFile.WriteLine("Error determining root!<br>")
1287
                                                      NewTextFile.WriteLine()
1288
                                                   End If
119 ghuddy 1289
 
123 ghuddy 1290
                                                   source_change = false
119 ghuddy 1291
 
123 ghuddy 1292
                                                   While CLng(b) <> CLng(d) and NOT errormsg
1293
                                                      Call Comments(d)
1294
                                                      Call GetFixedIssues(d)
1295
                                                      Call LastPvIdBb(d)
1296
                                                      NewTextFile.WriteLine()
1297
                                                   Wend
119 ghuddy 1298
 
123 ghuddy 1299
                                                   If source_change = false Then
1300
                                                      NewTextFIle.WriteLine("<blockquote><b><i>No source changes to "& rsQryB("rtag_name")&". Only Rippled Builds.</i></b></blockquote><br>")
1301
                                                      ChangeBSource = true
1302
                                                   End If
119 ghuddy 1303
 
123 ghuddy 1304
                                                ElseIf pkgversion = rsQry("pkg_version_b") Then
1305
                                                   NewTextFile.WriteLine("<blockquote><b><i>No updates to "& rsQryB("rtag_name")&"</i></b></blockquote><br>")
1306
                                                   ChangeBUpdate = true
1307
                                                   NewTextFile.WriteLine()
1308
                                                End If
119 ghuddy 1309
 
123 ghuddy 1310
                                                NewTextFile.WriteLine("</SPAN>")
119 ghuddy 1311
 
123 ghuddy 1312
                                                If ChangeASource Then
1313
                                                   If ChangeBSource Then
1314
                                                      NewTextFile.WriteLine("<blockquote><table width=""700"" border=""0"">  <tr><td width=""335""><b>"& Ucase(rsQryA("rtag_name")) &": .</b><font color="&chr(34)&"#999999"&chr(34)&"> Ripple Builds Only.</font></td>   <td width=""349""><b>"& Ucase(rsQryB("rtag_name")) &": </b><font color="&chr(34)&"#999999"&chr(34)&"> Ripple Builds Only.</font></td>  </tr></table></blockquote>")
1315
                                                   ElseIf ChangeBUpdate Then
1316
                                                      NewTextFile.WriteLine("<blockquote><table width=""700"" border=""0"">  <tr><td width=""335""><b>"& Ucase(rsQryA("rtag_name")) &": </b><font color="&chr(34)&"#999999"&chr(34)&">Ripple Builds Only.</font></td>   <td width=""349""><b>"& Ucase(rsQryB("rtag_name")) &": </b><font color="&chr(34)&"#999999"&chr(34)&">No Updates.</font></td>  </tr></table></blockquote>")
1317
                                                   ElseIf NOT ChangeBSource AND NOT ChangeBUpdate Then
1318
                                                      NewTextFile.WriteLine("<blockquote><table width=""700"" border=""0"">  <tr><td width=""335""><b>"& Ucase(rsQryA("rtag_name")) &":</b> <font color="&chr(34)&"999999"&chr(34)&">Ripple Builds Only.</font></td>   <td width=""349"">   <b>"& Ucase(rsQryB("rtag_name")) &":</b> <b><font style="&chr(34)&"background-color:#FF9933"&chr(34)&">SOURCE CODE CHANGES.</b></font></td>  </tr></table></blockquote>")
1319
                                                   End If
1320
                                                End If
119 ghuddy 1321
 
123 ghuddy 1322
                                                If ChangeBSource Then
1323
                                                   If NOT ChangeAUpdate Then
1324
                                                      If NOT ChangeASource AND NOT ChangeBUpdate Then
1325
                                                         NewTextFile.WriteLine("<blockquote><table width=""700"" border=""0"">  <tr><td width=""335""><b>"& Ucase(rsQryA("rtag_name")) &": </b><b><font style="&chr(34)&"background-color:red"&chr(34)&"> SOURCE CODE CHANGES</font></b>.</td>   <td width=""349""> <b>"& Ucase(rsQryB("rtag_name")) &":</b> <font color="&chr(34)&"#999999"&chr(34)&">Ripple Builds Only.</font></td>  </tr></table></blockquote>")
1326
                                                      End If
1327
                                                   End If
1328
                                                End If
119 ghuddy 1329
 
123 ghuddy 1330
                                                If NOT ChangeASource Then
1331
                                                   If NOT ChangeAUpdate Then
1332
                                                      If NOT ChangeBSource AND NOT ChangeBUpdate Then
1333
                                                         NewTextFile.WriteLine("<blockquote><table width=""700"" border=""0"">  <tr><td width=""335""><b>"& Ucase(rsQryA("rtag_name")) &": </b><b><font style="&chr(34)&"background-color:red"&chr(34)&"> SOURCE CODE CHANGES</font></b>.</td>   <td width=""349""> <b>"& Ucase(rsQryB("rtag_name")) &":</b> <b><font style="&chr(34)&"background-color:#FF9933"&chr(34)&">SOURCE CODE CHANGES.</b></font></td>  </tr></table></blockquote>")
1334
                                                      ElseIf ChangeBUpdate Then
1335
                                                         NewTextFile.WriteLine("<blockquote><table width=""700"" border=""0"">  <tr><td width=""335""><b>"& Ucase(rsQryA("rtag_name")) &":</b> <b><font style="&chr(34)&"background-color:red"&chr(34)&">SOURCE CODE CHANGES.</font></b></td> <td width=""349""><b>"& Ucase(rsQryB("rtag_name")) &":</b><font color="&chr(34)&"#999999"&chr(34)&">No Updates.</font></td>  </tr></table></blockquote>")
1336
                                                      End If
1337
                                                   ElseIf ChangeAUpdate Then
1338
                                                      If NOT ChangeBSource AND NOT ChangeBUpdate Then
1339
                                                         NewTextFile.WriteLine("<blockquote><table width=""700"" border=""0"">  <tr><td width=""335""><b>"& Ucase(rsQryA("rtag_name")) &":</b> <font color="&chr(34)&"#999999"&chr(34)&">No Updates.</td> <td width=""349"">  <b></font>"& Ucase(rsQryB("rtag_name")) &":</b> <b><font style="&chr(34)&"background-color:#FF9933"&chr(34)&">SOURCE CODE CHANGES.</font></b></td>  </tr></table></blockquote>")
1340
                                                      ElseIf ChangeBSource Then
1341
                                                         NewTextFile.WriteLine("<blockquote><table width=""700"" border=""0"">  <tr><td width=""335""><b>"& Ucase(rsQryA("rtag_name")) &":</b> <font color="&chr(34)&"#999999"&chr(34)&">No Updates.</td> <td width=""349""> </font><b>"& Ucase(rsQryB("rtag_name")) &":</b> <font color="&chr(34)&"#999999"&chr(34)&">Ripple Builds Only.</font></td>  </tr></table></blockquote>")
1342
                                                      End If
1343
                                                   End If
1344
                                                End If
119 ghuddy 1345
 
123 ghuddy 1346
                                             End If  'changeType = "U" OR  changeType = "UW"
119 ghuddy 1347
 
123 ghuddy 1348
                                          End If  'email
119 ghuddy 1349
 
123 ghuddy 1350
                                       End If 'NOT (GetIsDiffFilterChecked(enumDB_NUM_DIFF_RIPPLE) = "checked" AND changeType = "UR")
119 ghuddy 1351
 
123 ghuddy 1352
                                       rsQry.MoveNext
1353
                                    WEnd
119 ghuddy 1354
 
123 ghuddy 1355
                                    rsQry.Close
1356
                                    Set rsQry = Nothing
1357
                                    %>
1358
                                    <%
1359
                                    Call Footer()
1360
                                    NewTextFile.Close
1361
                                    Set NewTextFile=Nothing
1362
                                    %>
1363
                                 </table>
1364
                                 <br>
1365
                              <%Else%>
1366
                                 <br>
1367
                                 <%
1368
                                 If (parRtagB <> "") Then
1369
                                    Call Messenger ( "Select <b>Release A</b> to compare.", 3, "100%" )
1370
                                 ElseIf (parRtagA <> "") Then
1371
                                    Call Messenger ( "Select <b>Release B</b> to compare.", 3, "100%" )
1372
                                 Else
1373
                                    Call Messenger ( "Select <b>Release A</b> and <b>Release B</b> to compare.", 3, "100%" )
1374
                                 End If
1375
                                 %>
1376
                              <%End If%>
1377
                           </td>
1378
                           <td width="1%" background="images/lbox_bgside_white.gif">&nbsp;</td>
1379
                        </tr>
1380
                        <tr>
1381
                           <td width="1%" background="images/lbox_bg_blue.gif" valign="bottom"><img src="images/lbox_bl_cnr_b.gif" width="13" height="13"></td>
1382
                           <td background="images/lbox_bg_blue.gif"></td>
1383
                           <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>
1384
                        </tr>
1385
                     </table>
1386
                  </td>
1387
               </tr>
119 ghuddy 1388
            </table>
123 ghuddy 1389
            <!-- DIFF END ---------------------------------------------------->
1390
         </td>
1391
         <td valign="top" width="1%" background="images/bg_home_orange.gif">
119 ghuddy 1392
 
123 ghuddy 1393
            <!-- SELECT RELEASE B ---------------------------------------------->
1394
            <br>
1395
            <table width="100%"  border="0" cellspacing="10" cellpadding="0">
1396
               <tr>
1397
                  <td align="left" class="body_col">
1398
                     <img src="images/i_rtag_open_mode.gif" border="0" align="absmiddle" width="15" height="13">&nbsp;Select Release B<hr size="1px" color="Olive" noshade>
1399
                  </td>
1400
               </tr>
1401
               <tr>
1402
                  <td align="left">
1403
                     <select name="projB" class="form_item" onChange="RequestReleaseCombo( '?proj_id='+ this.value, FormName.rtagB );">
1404
                        <option value="">-- Select Project --</option>
1405
                        <%
1406
                        OraDatabase.Parameters.Add "PROJ_ID",    objRelCollectorB.Item("proj_id"),   ORAPARM_INPUT, ORATYPE_NUMBER
119 ghuddy 1407
 
123 ghuddy 1408
                        Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ProjectsCombo.sql"), cint(0))
119 ghuddy 1409
 
123 ghuddy 1410
                        OraDatabase.Parameters.Remove "PROJ_ID"
119 ghuddy 1411
 
123 ghuddy 1412
                        While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
1413
                           <option value="<%=rsQry("proj_id")%>" <%=rsQry("selected")%>><%=rsQry("proj_name")%></option>
1414
                           <%rsQry.MoveNext
1415
                        WEnd
119 ghuddy 1416
 
123 ghuddy 1417
                        rsQry.Close
1418
                        Set rsQry = Nothing
1419
                        %>
1420
                     </select>
1421
                  </td>
1422
               </tr>
1423
               <tr>
1424
                  <td align="left">
1425
                     <select name="rtagB" id="rtagB" class="form_item">
1426
                        <%
1427
                        OraDatabase.Parameters.Add "PROJ_ID",    objRelCollectorB.Item("proj_id"),   ORAPARM_INPUT,  ORATYPE_NUMBER
1428
                        OraDatabase.Parameters.Add "RTAG_ID",    objRelCollectorB.Item("rtag_id"),   ORAPARM_INPUT, ORATYPE_NUMBER
119 ghuddy 1429
 
123 ghuddy 1430
                        Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ReleasesCombo.sql"), cint(0))
119 ghuddy 1431
 
123 ghuddy 1432
                        OraDatabase.Parameters.Remove "PROJ_ID"
1433
                        OraDatabase.Parameters.Remove "RTAG_ID"
119 ghuddy 1434
 
123 ghuddy 1435
                        While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
1436
                              <option value="<%=rsQry("rtag_id")%>" <%=rsQry("selected")%>><%=rsQry("rtag_name")%></option>
1437
                           <%rsQry.MoveNext
1438
                        WEnd
119 ghuddy 1439
 
123 ghuddy 1440
                        rsQry.Close
1441
                        Set rsQry = Nothing
1442
                        %>
1443
                     </select>
1444
                  </td>
1445
               </tr>
1446
               <%If (parRtagB <> "") Then%>
1447
                  <tr>
1448
                     <td align="left"><a href="dependencies.asp?rtag_id=<%=parRtagB%>" class="body_txt_drk">Go To Release B &raquo;</a></td>
1449
                  </tr>
1450
               <%End If%>
1451
            </table>
1452
            <!-- SELECT RELEASE B END ---------------------------------------------->
1453
         </td>
1454
      </tr>
1455
      <tr>
1456
         <td valign="bottom" align="center" background="images/bg_home_orange.gif">
1457
            <img src="images/img_vtree.gif" width="86" height="99" vspace="20" hspace="30">
1458
         </td>
1459
         <td background="images/bg_lght_gray.gif" valign="top">
1460
            <img src="images/h_trsp_dot.gif" width="1" height="500">
1461
         </td>
1462
         <td valign="bottom" background="images/bg_home_orange.gif" align="center">
1463
            <img src="images/img_vtree.gif" width="86" height="99" vspace="20" hspace="30">
1464
         </td>
1465
      </tr>
1466
   </table>
119 ghuddy 1467
</form>
1468
<!-- FOOTER -->
1469
<!--#include file="_footer.asp"-->
1470
<%
123 ghuddy 1471
If email Then
1472
   Dim myMail, LocalPath
1473
   Set myMail=Server.CreateObject("Persits.MailSender")
1474
   LocalPath = Server.MapPath("docs\compareReleases_"&objAccessControl.UserName&".html")
119 ghuddy 1475
 
123 ghuddy 1476
   myMail.Host = SMTP_HOST
1477
   myMail.Subject="Release Comparisons from Release Manager"
1478
   myMail.From="releasem@erggroup.com"
1479
   myMail.AddAddress objAccessControl.UserEmail
1480
   ' Attach the file
1481
   myMail.AddAttachment LocalPath
1482
   myMail.Body = "Your requested report..."
1483
   myMail.Send
119 ghuddy 1484
 
123 ghuddy 1485
   set myMail=nothing
1486
End If
119 ghuddy 1487
%>
1488
</body>
1489
</html>
1490
<%
1491
Call Destroy_All_Objects
1492
%>