Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

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