Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

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