Subversion Repositories DevTools

Rev

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