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