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
486
    If releaseMode <> enumDB_RELEASE_IN_CLOSED_MODE  AND releaseMode <> enumDB_RELEASE_IN_ARCHIVE_MODE _
5061 dpurdie 487
    AND (canActionControlInProject("MergeRelease")) THEN
119 ghuddy 488
 
4028 dpurdie 489
        Set dAddPkgList = CreateObject("Scripting.Dictionary")
490
        Set dRemovePkgList = CreateObject("Scripting.Dictionary")
119 ghuddy 491
 
4028 dpurdie 492
        '--- Get Add Packages ---
493
        ' Get full list of "addpkg" parameter
494
        aFullList = Split ( Replace( Request("addpkg"), " ", "" ), "," )
119 ghuddy 495
 
4028 dpurdie 496
        ' Clean empty parameters
497
        For Each PvId In aFullList
498
            If PvId <> "" Then
499
                dAddPkgList.Add CStr( PvId ), Empty
500
            End If
501
        Next
119 ghuddy 502
 
4028 dpurdie 503
        aFullList = NULL
504
        aAddPkgList = dAddPkgList.Keys
119 ghuddy 505
 
4028 dpurdie 506
        '--- Get Remove Packages ---
507
        ' Get full list of "removepkg" parameter
508
        aFullList = Split ( Replace( Request("removepkg"), " ", "" ), "," )
119 ghuddy 509
 
4028 dpurdie 510
        ' Clean empty parameters
511
        For Each PvId In aFullList
512
            If PvId <> "" Then
513
                dRemovePkgList.Add CStr( PvId ), Empty
514
            End If
515
        Next
119 ghuddy 516
 
4028 dpurdie 517
        aFullList = NULL
518
        aRemovePkgList = dRemovePkgList.Keys
119 ghuddy 519
 
4028 dpurdie 520
        '-- Add package List to release --
521
        OraDatabase.Parameters.Add "PV_ID",     NULL, ORAPARM_INPUT, ORATYPE_NUMBER
522
        OraDatabase.Parameters.Add "VIEW_ID",  NULL, ORAPARM_BOTH, ORATYPE_NUMBER
523
        OraDatabase.Parameters.Add "RTAG_A",    Request("rtagA"), ORAPARM_INPUT, ORATYPE_NUMBER
524
        OraDatabase.Parameters.Add "RTAG_B",    Request("rtagB"), ORAPARM_INPUT, ORATYPE_NUMBER
525
        OraDatabase.Parameters.Add "PROJB",     objRelCollectorB.Item("proj_id"), ORAPARM_INPUT, ORATYPE_NUMBER
526
        OraDatabase.Parameters.Add "COMMENTS", "Merging from "& objRelCollectorA.Item("location") &" to "& objRelCollectorB.Item("location"), ORAPARM_INPUT, ORATYPE_VARCHAR2
527
        OraDatabase.Parameters.Add "USER_ID",  objAccessControl.UserId, ORAPARM_INPUT, ORATYPE_NUMBER
528
        OraDatabase.Parameters.Add "OPERATION",NULL, ORAPARM_INPUT, ORATYPE_CHAR
119 ghuddy 529
 
4028 dpurdie 530
        Set OraParameter = OraDatabase.Parameters
119 ghuddy 531
 
532
 
4028 dpurdie 533
        On Error Resume Next
119 ghuddy 534
 
535
 
4028 dpurdie 536
        ' Begin Database entry
537
        objEH.TryORA ( OraSession )
119 ghuddy 538
 
4028 dpurdie 539
        '-- Add Packages --
540
        OraParameter("OPERATION").Value = "A"
541
        For Each PvId In aAddPkgList
129 ghuddy 542
            OraParameter("PV_ID").Value = PvId
4028 dpurdie 543
            ' DEVI-45275, Merge into Planned (pending) table instead of release_content table.
544
            If Err.Number = 0 Then
545
                OraDatabase.ExecuteSQL _
546
                "BEGIN  "&_
547
                "  :VIEW_ID := PK_RELEASE.GET_PACKAGE_VIEW ( :PV_ID, :RTAG_A ); "&_
548
                "  PK_PLANNED.MERGE_PACKAGE ( :PV_ID, :VIEW_ID, :RTAG_B, :USER_ID, :OPERATION );  "&_
549
                "END;"
550
            End If
551
        Next
119 ghuddy 552
 
4028 dpurdie 553
        '-- Remove Packages --
554
        If Err.Number = 0 Then
555
            OraParameter("OPERATION").Value = "S"
556
            For Each PvId In aRemovePkgList
557
                OraParameter("PV_ID").Value = PvId
558
 
559
                If Err.Number = 0 Then
560
                    ' Does this PV_ID exist in the destination release's planned table?
561
                    rc = Get_Record_Count ("PLANNED pl WHERE pl.pv_id = " & PvId & " AND pl.rtag_id = " & Request("rtagB") )
562
                    If  rc > 0 Then
563
                        ' Given that merging now merges into pending, the merge page may be used to remove items that have
564
                        ' previously been merged but have not yet been committed to the destination release. For these,
565
                        ' we cannot call PK_RELEASE.GET_PACKAGE_VIEW(). We have to call PK_PLANNED.GET_PACKAGE_VIEW() instead.
566
                        OraDatabase.ExecuteSQL _
567
                        "BEGIN  "&_
568
                        "  :VIEW_ID := PK_PLANNED.GET_PACKAGE_VIEW ( :PV_ID, :RTAG_B ); "&_
569
                        "  PK_PLANNED.MERGE_PACKAGE ( :PV_ID, :VIEW_ID, :RTAG_B, :USER_ID, :OPERATION );  "&_
570
                        "END;"
571
                    Else
572
                        ' DEVI-45275, Merge into Planned (pending) table instead of release_content table.
573
                        OraDatabase.ExecuteSQL _
574
                        "BEGIN  "&_
575
                        "  :VIEW_ID := PK_RELEASE.GET_PACKAGE_VIEW ( :PV_ID, :RTAG_B ); "&_
576
                        "  PK_PLANNED.MERGE_PACKAGE ( :PV_ID, :VIEW_ID, :RTAG_B, :USER_ID, :OPERATION );  "&_
577
                        "END;"
578
                    End If
579
                End If
580
            Next
581
 
582
            '-- Log Project Merge Action
129 ghuddy 583
            If Err.Number = 0 Then
4028 dpurdie 584
                OraDatabase.ExecuteSQL _
585
                "BEGIN  LOG_PROJECT_ACTION ( :PROJB, 'merge_release', :USER_ID, :COMMENTS, :RTAG_B );  END;"
129 ghuddy 586
            End If
119 ghuddy 587
 
4028 dpurdie 588
        End If
123 ghuddy 589
 
4028 dpurdie 590
        objEH.CatchORA ( OraSession )     ' sets up LastOraFailed as appropriate
123 ghuddy 591
 
4028 dpurdie 592
        ' NOTE, The Touch_Release stored procedure does a commit itself, so we should not do it unless all the ExecuteSQL's we
593
        ' have just performed, were successful
594
        If objEH.LastOraFailed = FALSE Then
595
            '-- Force package state recalculate
596
            objEH.TryORA ( OraSession )
597
            OraDatabase.ExecuteSQL _
598
                "BEGIN  "&_
599
                "  TOUCH_RELEASE ( :RTAG_B );  "&_
600
                "END;"
601
            objEH.CatchORA ( OraSession )
602
        End If
129 ghuddy 603
 
4028 dpurdie 604
        Set OraParameter = Nothing
605
        OraDatabase.Parameters.Remove "PV_ID"
606
        OraDatabase.Parameters.Remove "VIEW_ID"
607
        OraDatabase.Parameters.Remove "RTAG_A"
608
        OraDatabase.Parameters.Remove "RTAG_B"
609
        OraDatabase.Parameters.Remove "USER_ID"
610
        OraDatabase.Parameters.Remove "PROJB"
611
        OraDatabase.Parameters.Remove "COMMENTS"
612
        OraDatabase.Parameters.Remove "OPERATION"
613
        'Response.write "<br>"& sAddPkgList &"-"& dAddPkgList.Count &"-"& UBound( aFullList )
614
    End If
119 ghuddy 615
End Sub
616
'--------------------------------------------------------------------------------------------------------------------------
617
Function AddTrailingZeros(byval n, byval count)
4028 dpurdie 618
    if len(n) >= count then
619
        AddTrailingZeros = n
620
        exit function
621
    end if
119 ghuddy 622
 
4028 dpurdie 623
    dim c, s, i
624
    c = count - len(n)
119 ghuddy 625
 
4028 dpurdie 626
    for i = 1 to c
627
        s = s & "0"
628
    next
629
    s = cstr(n) & s
119 ghuddy 630
 
4028 dpurdie 631
    AddTrailingZeros = s
119 ghuddy 632
End function
633
'--------------------------------------------------------------------------------------------------------------------------
634
'------------ RUN BEFORE PAGE RENDER ----------
635
If Request("btn") = "Exit" Then
4028 dpurdie 636
    Call OpenInWindow ( "index.asp" )
119 ghuddy 637
End If
638
 
639
' Get release details
640
Call GetFormDetails ( parRtagA, objRelCollectorA )
641
Call GetFormDetails ( parRtagB, objRelCollectorB )
5072 dpurdie 642
setActiveProject (objRelCollectorB.Item("proj_id"))
119 ghuddy 643
 
644
If (Request("btn") = "Merge") Then
4028 dpurdie 645
    Call MergePackages ( objRelCollectorB.Item("official") )
119 ghuddy 646
End If
647
 
648
If Request("btn") = "Swap Compare" Then
4028 dpurdie 649
    Call OpenInWindow ( ScriptName &"?rtagA="& parRtagB &"&rtagB="& parRtagA )
119 ghuddy 650
End If
651
 
652
If Request("btn") = "Hide" Then
4028 dpurdie 653
    ' Store filter in cookie
654
    Response.Cookies(enum_RELMGR_COOKIE_DOMAIN)(COOKIE_HIDE_DIFF_FILTER) = Request("difilter")
119 ghuddy 655
End If
656
 
657
Call GetDiffFilterValues ( dDiffFilter )
658
'----------------------------------------------
659
%>
660
<html>
661
<head>
662
<title>Release Manager</title>
663
<meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
664
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
665
<link rel="stylesheet" href="images/release_manager_style.css" type="text/css">
666
<link rel="stylesheet" href="images/navigation.css" type="text/css">
667
<script language="JavaScript" src="images/common.js"></script>
668
<script language="JavaScript" src="scripts/remote_scripting.js"></script>
123 ghuddy 669
 
670
<!-- TIPS -->
671
<script language="JavaScript" src="images/tipster.js"></script>
672
<script language="JavaScript" src="images/_help_tips.js"></script>
119 ghuddy 673
<script language="JavaScript" type="text/javascript">
674
<!--
675
 
123 ghuddy 676
function RequestReleaseCombo( paramString, rowId )
677
{
4028 dpurdie 678
    var requestURL = 'RequestReleaseCombo.asp';
119 ghuddy 679
 
4028 dpurdie 680
    // Set ajax divname
681
    ajaxdivname = rowId;
119 ghuddy 682
 
4028 dpurdie 683
    //Append the name to search for to the requestURL
684
    var url = requestURL + paramString;
119 ghuddy 685
 
4028 dpurdie 686
    //Progress
687
    //alert(MM_findObj( rowId ));
119 ghuddy 688
 
4028 dpurdie 689
    //MM_findObj( rowId ).options[0] = new Option('Loading...','');
690
    //MM_findObj( rowId ).selectedIndex = 0;
691
    rowId.options[0] = new Option('Loading...','');
692
    rowId.selectedIndex = 0;
119 ghuddy 693
 
694
 
4028 dpurdie 695
    //Create the xmlHttp object to use in the request
696
    //stateChangeHandler will fire when the state has changed, i.e. data is received back
697
    // This is non-blocking (asynchronous)
698
    xmlHttp = GetXmlHttpObject(stateComboChangeHandler);
119 ghuddy 699
 
4028 dpurdie 700
    //Send the xmlHttp get to the specified url
701
    xmlHttp_Get(xmlHttp, url);
119 ghuddy 702
}
703
 
704
 
705
function MergePackage ( pkga, pkgb, rowId )
706
{
4028 dpurdie 707
    // Set merge hidden field with new value
708
    MM_findObj( 'ADDPKG_' + rowId ).value = pkga;
119 ghuddy 709
 
4028 dpurdie 710
    var divA = MM_findObj( 'PVA' + rowId );
711
    var divB = MM_findObj( 'PVB' + rowId );
119 ghuddy 712
 
4028 dpurdie 713
    // Set text equal
714
    divB.innerHTML = divA.innerHTML;
119 ghuddy 715
 
4028 dpurdie 716
    // Set highlight to blank
717
    divA.style.backgroundColor = '<%=LCOLOR_NOT_CHANGED%>';
718
    divB.style.backgroundColor = '<%=LCOLOR_NOT_CHANGED%>';
119 ghuddy 719
 
4028 dpurdie 720
     // Set Change state icon to blank
721
    MM_findObj( 'IMGSTATE' + rowId ).style.display = 'none';
119 ghuddy 722
 
4028 dpurdie 723
    // Remove Merge Button
724
    MM_findObj( 'IMGMERGE' + rowId ).style.display = 'none';
725
    MM_findObj( 'IMGREMOVE' + rowId ).style.display = 'none';
119 ghuddy 726
 
4028 dpurdie 727
    // Show undo button
728
    MM_findObj( 'IMGUNDO' + rowId ).style.display = 'block';
119 ghuddy 729
}
730
 
731
 
732
function RemovePackage ( pkga, pkgb, rowId )
733
{
4028 dpurdie 734
    // Set remove hidden field with new value
735
    MM_findObj( 'REMOVEPKG_' + rowId ).value = pkgb;
119 ghuddy 736
 
4028 dpurdie 737
    var divA = MM_findObj( 'PVA' + rowId );
738
    var divB = MM_findObj( 'PVB' + rowId );
119 ghuddy 739
 
4028 dpurdie 740
    // Set text equal
741
    divB.style.textDecoration = 'line-through';
119 ghuddy 742
 
4028 dpurdie 743
    // Set highlight to blank
744
    if (MM_findObj( 'CHANGETYPE_' + rowId ).value != "A")
745
    {
746
        divA.style.backgroundColor = '<%=LCOLOR_NOT_CHANGED%>';
747
    }
748
    divB.style.backgroundColor = '<%=LCOLOR_NOT_CHANGED%>';
119 ghuddy 749
 
4028 dpurdie 750
     // Set Change state icon to blank
751
    MM_findObj( 'IMGSTATE' + rowId ).style.display = 'none';
119 ghuddy 752
 
4028 dpurdie 753
    // Remove Merge Button
754
    MM_findObj( 'IMGMERGE' + rowId ).style.display = 'none';
755
    MM_findObj( 'IMGREMOVE' + rowId ).style.display = 'none';
119 ghuddy 756
 
4028 dpurdie 757
    // Show undo button
758
    MM_findObj( 'IMGUNDO' + rowId ).style.display = 'block';
119 ghuddy 759
}
760
 
761
 
762
 
763
function UndoPackage ( rowId )
764
{
4028 dpurdie 765
    // Set merge/remove hidden field with new value
766
    MM_findObj( 'ADDPKG_' + rowId ).value = '';
767
    MM_findObj( 'REMOVEPKG_' + rowId ).value = '';
119 ghuddy 768
 
4028 dpurdie 769
    var divA = MM_findObj( 'PVA' + rowId );
770
    var divB = MM_findObj( 'PVB' + rowId );
119 ghuddy 771
 
4028 dpurdie 772
    // Set text equal
773
    divB.innerHTML = MM_findObj( 'UNDOPKG_' + rowId ).value;
774
    divB.style.textDecoration = 'none';
119 ghuddy 775
 
776
 
4028 dpurdie 777
    // Set highlight to blank
778
    divA.style.backgroundColor = MM_findObj( 'UNDOCOLORA_' + rowId ).value;
779
    divB.style.backgroundColor = MM_findObj( 'UNDOCOLORB_' + rowId ).value;
119 ghuddy 780
 
4028 dpurdie 781
     // Set Change state icon to blank
782
    MM_findObj( 'IMGSTATE' + rowId ).style.display = 'block';
119 ghuddy 783
 
4028 dpurdie 784
    // Remove Merge Button
785
    var cht = MM_findObj( 'CHANGETYPE_' + rowId );
119 ghuddy 786
 
4028 dpurdie 787
    if (cht.value == "R")
788
    {
789
        MM_findObj( 'IMGMERGE' + rowId ).style.display = 'block';
790
    }
791
    else if ( (cht.value == "A") || (cht.value == "") )
792
    {
793
        MM_findObj( 'IMGREMOVE' + rowId ).style.display = 'block';
794
    }
795
    else
796
    {
797
        MM_findObj( 'IMGMERGE' + rowId ).style.display = 'block';
798
        MM_findObj( 'IMGREMOVE' + rowId ).style.display = 'block';
799
    }
119 ghuddy 800
 
4028 dpurdie 801
    // Show undo button
802
    MM_findObj( 'IMGUNDO' + rowId ).style.display = 'none';
119 ghuddy 803
}
804
 
805
 
806
function MergeAll()
807
{
4028 dpurdie 808
    var elem
119 ghuddy 809
 
4028 dpurdie 810
    if (document.all)
811
    {
812
        // Run this for IE
813
        elem = document.all;
814
    } else {
815
        // Run this for other browsers
816
        elem = document.getElementsByTagName('div');
817
    }
119 ghuddy 818
 
4028 dpurdie 819
    for (i in elem)
820
    {
821
        if (elem[i].id)
822
        {
823
            if (elem[i].id.indexOf('SHORT_') == 0) elem[i].style.display = 'none';
824
            if (elem[i].id.indexOf('LONG_') == 0) elem[i].style.display = 'block';
825
        }
826
    }
119 ghuddy 827
}
828
 
829
//-->
830
</script>
831
 
832
</head>
123 ghuddy 833
<!-- TIPS LAYERS -------------------------------------->
834
<div id="formTipsLayer" style="position: absolute; z-index: 1000; visibility: hidden; left:0; top: 0; width: 10">&nbsp;</div>
119 ghuddy 835
<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0">
836
<form name="FormName" method="post" action="<%=ScriptName%>">
4028 dpurdie 837
    <!-- HEADER -->
838
    <!--#include file="_header.asp"-->
839
    <!-- BODY ---->
840
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
841
        <tr>
842
            <td width="20%">
843
            <td width="60%">
844
            <td width="20%">
845
        </tr>
846
        <tr>
847
            <td background="images/bg_home_orange.gif" valign="top">
848
                <!-- SELECT RELEASE A ---------------------------------------------->
849
                <br>
850
                <table width="100%"  border="0" cellspacing="10" cellpadding="0">
851
                    <tr>
852
                        <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>
853
                    </tr>
854
                    <tr>
855
                        <td align="left">
856
                            <select name="projA" class="form_item" onChange="RequestReleaseCombo( '?proj_id='+ this.value, FormName.rtagA );">
857
                                <option value="">-- Select Project --</option>
858
                                <%
859
                                OraDatabase.Parameters.Add "PROJ_ID",     objRelCollectorA.Item("proj_id"),    ORAPARM_INPUT, ORATYPE_NUMBER
119 ghuddy 860
 
4028 dpurdie 861
                                Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ProjectsCombo.sql"), cint(0))
119 ghuddy 862
 
4028 dpurdie 863
                                OraDatabase.Parameters.Remove "PROJ_ID"
119 ghuddy 864
 
4028 dpurdie 865
                                While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
866
                                    <option value="<%=rsQry("proj_id")%>" <%=rsQry("selected")%>><%=rsQry("proj_name")%></option>
867
                                    <%rsQry.MoveNext
868
                                WEnd
119 ghuddy 869
 
4028 dpurdie 870
                                rsQry.Close
871
                                Set rsQry = Nothing
872
                                %>
873
                            </select>
874
                        </td>
875
                    </tr>
876
                    <tr>
877
                        <td align="left">
878
                            <select name="rtagA" id="rtagA" class="form_item">
879
                                <%
880
                                OraDatabase.Parameters.Add "PROJ_ID",     objRelCollectorA.Item("proj_id"),    ORAPARM_INPUT,  ORATYPE_NUMBER
881
                                OraDatabase.Parameters.Add "RTAG_ID",     objRelCollectorA.Item("rtag_id"),    ORAPARM_INPUT, ORATYPE_NUMBER
119 ghuddy 882
 
4028 dpurdie 883
                                Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ReleasesCombo.sql"), cint(0))
119 ghuddy 884
 
4028 dpurdie 885
                                OraDatabase.Parameters.Remove "PROJ_ID"
886
                                OraDatabase.Parameters.Remove "RTAG_ID"
119 ghuddy 887
 
4028 dpurdie 888
                                While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
889
                                        <option value="<%=rsQry("rtag_id")%>" <%=rsQry("selected")%>><%=rsQry("rtag_name")%></option>
890
                                    <%rsQry.MoveNext
891
                                WEnd
119 ghuddy 892
 
4028 dpurdie 893
                                rsQry.Close
894
                                Set rsQry = Nothing
895
                                %>
896
                            </select>
897
                        </td>
898
                    </tr>
899
                    <%If (parRtagA <> "") Then%>
900
                        <tr>
901
                            <td align="left"><a href="dependencies.asp?rtag_id=<%=parRtagA%>" class="body_txt_drk">Go To Release A &raquo;</a></td>
902
                        </tr>
903
                    <%End If%>
904
                </table>
119 ghuddy 905
 
4028 dpurdie 906
                <!-- SELECT RELEASE A END ---------------------------------------------->
907
            </td>
119 ghuddy 908
 
4028 dpurdie 909
            <td rowspan="2" valign="top" background="images/bg_lght_gray.gif" align="center">
910
                <!-- DIFF -------------------------------------------------------->
911
                <br>
912
                <table width="100%" border="0" cellspacing="10" cellpadding="0">
913
                    <tr>
914
                        <td>
915
                            <table width="100%" border="0" cellspacing="0" cellpadding="0">
916
                                <tr>
917
                                    <td width="1%"></td>
918
                                    <td width="100%" align="left" class="form_ttl">DIFF / MERGE RELEASE
919
                                        <%If genReport Then%>
920
                                        &nbsp;[Generating Report]
921
                                        <%End If%>
922
                                        </td>
923
                                    <td width="1%"></td>
924
                                </tr>
925
                                <tr>
926
                                    <td align="left" valign="top" background="images/lbox_bg_blue.gif"><img src="images/lbox_tl_cnr_b.gif" width="13" height="13"></td>
927
                                    <td background="images/lbox_bg_blue.gif" align="left" class="wform_ttl">&nbsp;</td>
928
                                    <td align="right" valign="top" background="images/lbox_bg_blue.gif"><img src="images/lbox_tr_cnr_b.gif" width="13" height="13"></td>
929
                                </tr>
930
                                <tr>
931
                                    <td width="1%" bgcolor="#FFFFFF"><img src="images/h_trsp_dot.gif" width="10" height="100"></td>
932
                                    <td bgcolor="#FFFFFF" valign="top" class="form_item">
933
                                        <table width="100%"  border="0" cellspacing="0" cellpadding="5">
934
                                            <tr>
935
                                                <td width="100%" bgcolor="#DAD7C8">
936
                                                    <input type="submit" name="btn" value="Compare" class="form_btn_comp" style="margin-right:5px;">
937
                                                    <input type="submit" name="btn" value="Swap Compare" class="form_btn_comp">
938
                                                    <span class="body_txt">
939
                                                        <input name="btn" type="submit" class="form_btn" value="Mail Me Report">
940
                                                        <% '<input name="btn" type="submit" class="form_btn" value="Show Me Report"> %>
941
                                                    </span>
942
                                                </td>
943
                                                <td width="1" align="right" bgcolor="#DAD7C8" nowrap>
944
                                                    <table width="100%"  border="0" cellspacing="0" cellpadding="0">
945
                                                        <tr>
946
                                                            <td>
5061 dpurdie 947
                                                                <%If (objRelCollectorB.Item("official") <> "Y" AND objRelCollectorB.Item("official") <> "C" ) AND (canActionControlInProject("MergeRelease")) Then%>
4028 dpurdie 948
                                                                    <input type="submit" name="btn" value="Merge" class="form_btn_comp" style="margin-right:10px;" <%If (parRtagA = "") OR (parRtagB = "")Then%>disabled<%End If%>>
949
                                                                <%End If%>
950
                                                            </td>
951
                                                            <td>
5061 dpurdie 952
                                                                <%If (objRelCollectorB.Item("official") = "C" ) AND (canActionControlInProject("MergeReleaseForCCB")) Then%>
4028 dpurdie 953
                                                                    <input type="submit" name="btn" value="Merge" class="form_btn_comp" style="margin-right:10px;" <%If (parRtagA = "") OR (parRtagB = "")Then%>disabled<%End If%>>
954
                                                                <%End If%>
955
                                                            </td>
956
                                                            <td>
957
                                                                <input type="submit" name="btn" value="Exit" class="form_btn_comp">
958
                                                            </td>
959
                                                        </tr>
960
                                                    </table>
961
                                                </td>
962
                                            </tr>
963
                                            <tr>
964
                                                <td>
965
                                                    <%If (parRtagA <> "") AND (parRtagB <> "")Then%>
966
                                                        <!-- DIFF FILTER +++++++++++++++++++++++++++++++++++++++++++ -->
967
                                                        <fieldset style="width:150px;">
968
                                                            <legend><a href="javascript:;" class="body_scol" onClick="ToggleDisplay('divDiffFilter');" ><%=GetIsDiffFilterInUseIcon() %>&nbsp;Filter&nbsp;Results...</a></legend>
969
                                                            <div name="divDiffFilter" id="divDiffFilter" class="body_txt" style="display:none;">
970
                                                                <br>
971
                                                                <table width="100%"  border="0" cellspacing="1" cellpadding="3">
972
                                                                    <tr>
973
                                                                        <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>
974
                                                                        <td width="50" nowrap background="images/bg_action_norm.gif" class="form_field"><%=LIMG_UPDATED%>Updated</td>
975
                                                                    </tr>
976
                                                                    <tr>
977
                                                                        <td background="images/bg_action_norm.gif"><input type="checkbox" name="difilter" value="<%=enumDB_NUM_DIFF_NEW%>" <%=GetIsDiffFilterChecked(enumDB_NUM_DIFF_NEW)%>></td>
978
                                                                        <td nowrap background="images/bg_action_norm.gif" class="form_field"><%=LIMG_ADDED%>Added</td>
979
                                                                    </tr>
980
                                                                    <tr>
981
                                                                        <td background="images/bg_action_norm.gif"><input type="checkbox" name="difilter" value="<%=enumDB_NUM_DIFF_REMOVED%>" <%=GetIsDiffFilterChecked(enumDB_NUM_DIFF_REMOVED)%>></td>
982
                                                                        <td nowrap background="images/bg_action_norm.gif" class="form_field"><%=LIMG_REMOVED%>Removed</td>
983
                                                                    </tr>
984
                                                                    <tr>
985
                                                                        <td background="images/bg_action_norm.gif"><input type="checkbox" name="difilter" value="<%=enumDB_NUM_DIFF_RIPPLE%>" <%=GetIsDiffFilterChecked(enumDB_NUM_DIFF_RIPPLE)%>></td>
986
                                                                        <td nowrap background="images/bg_action_norm.gif" class="form_field"><%=LIMG_RIPPLED%>Rippled</td>
987
                                                                    </tr>
988
                                                                    <tr>
989
                                                                        <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>
990
                                                                        <td nowrap background="images/bg_action_norm.gif" class="form_field">Unchanged</td>
991
                                                                    </tr>
992
                                                                    <tr>
993
                                                                        <td background="images/bg_action_norm.gif">&nbsp;</td>
994
                                                                        <td background="images/bg_action_norm.gif"><input name="btn" type="submit" class="form_btn" value="Hide"></td>
995
                                                                    </tr>
996
                                                                </table>
997
                                                            </div>
998
                                                        </fieldset>
999
                                                        <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
1000
                                                    <%End If%>
1001
                                                </td>
1002
                                                <td></td>
1003
                                            </tr>
1004
                                        </table>
119 ghuddy 1005
 
4028 dpurdie 1006
                                        <%
1007
                                        ' Successfull Merge
1008
                                        If (Request("btn") = "Merge") Then
1009
                                            Call Messenger ( "Merge has completed successfully.", 3, "100%" )
1010
                                        End If
119 ghuddy 1011
 
4028 dpurdie 1012
                                        Set FSO=Server.CreateObject("Scripting.FileSystemObject")
1013
                                        Set NewTextFile=FSO.CreateTextFile(Server.MapPath("docs\compareReleases_"&objAccessControl.UserName&".html"), true)
119 ghuddy 1014
 
4028 dpurdie 1015
                                        Call Header()
119 ghuddy 1016
 
4028 dpurdie 1017
                                        If (parRtagA <> "") AND (parRtagB <> "")Then%>
1018
                                            <table width="100%"  border="0" cellspacing="1" cellpadding="0">
1019
                                                <tr>
1020
                                                    <td width="50%" bgcolor="#E4E9EC" class="body_row" nowrap><%= ReleaseIcon(objRelCollectorA.Item("official")) & objRelCollectorA.Item("location")%> </td>
1021
                                                    <td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="1"></td>
1022
                                                    <td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="20"></td>
1023
                                                    <td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="1"></td>
1024
                                                    <td width="50%" bgcolor="#E4E9EC" class="body_row" nowrap><%= ReleaseIcon(objRelCollectorB.Item("official")) & objRelCollectorB.Item("location")%></td>
1025
                                                    <td width="1" bgcolor="#E4E9EC"><img src="images/spacer.gif" width="20" height="1"></td>
1026
                                                </tr>
1027
                                                <%
1028
                                                OraDatabase.Parameters.Add "RTAG_A",     parRtagA,    ORAPARM_INPUT, ORATYPE_NUMBER
1029
                                                OraDatabase.Parameters.Add "RTAG_B",     parRtagB,    ORAPARM_INPUT, ORATYPE_NUMBER
1030
                                                OraDatabase.Parameters.Add "NO_CHANGE", GetIsDiffFilterChecked(enumDB_NUM_DIFF_NO_CHANGE), ORAPARM_INPUT, ORATYPE_VARCHAR2
1031
                                                OraDatabase.Parameters.Add "ADDED",      GetIsDiffFilterChecked(enumDB_NUM_DIFF_NEW),         ORAPARM_INPUT, ORATYPE_VARCHAR2
1032
                                                OraDatabase.Parameters.Add "UPDATED",    GetIsDiffFilterChecked(enumDB_NUM_DIFF_UPDATED),    ORAPARM_INPUT, ORATYPE_VARCHAR2
1033
                                                OraDatabase.Parameters.Add "REMOVED",    GetIsDiffFilterChecked(enumDB_NUM_DIFF_REMOVED),    ORAPARM_INPUT, ORATYPE_VARCHAR2
119 ghuddy 1034
 
4028 dpurdie 1035
                                                Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ReleaseDiff.sql"), cint(0))
119 ghuddy 1036
 
4028 dpurdie 1037
                                                OraDatabase.Parameters.Remove "RTAG_A"
1038
                                                OraDatabase.Parameters.Remove "RTAG_B"
1039
                                                OraDatabase.Parameters.Remove "NO_CHANGE"
1040
                                                OraDatabase.Parameters.Remove "ADDED"
1041
                                                OraDatabase.Parameters.Remove "UPDATED"
1042
                                                OraDatabase.Parameters.Remove "REMOVED"
119 ghuddy 1043
 
4028 dpurdie 1044
                                                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))
1045
                                                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 1046
 
4028 dpurdie 1047
                                                Call Javascript()
1048
                                                Call Styles()
119 ghuddy 1049
 
4028 dpurdie 1050
                                                NewTextFile.WriteLine("<title>Difference Report Between "&rsQryA("proj_name")&" "&rsQryA("rtag_name")&" and "&rsQryB("proj_name")&" "&rsQryB("rtag_name")&"</title>")
1051
                                                NewTextFile.WriteLine("<div class=""page_title"">Difference Report Between "&rsQryA("proj_name")&" "&rsQryA("rtag_name")&" and "&rsQryB("proj_name")&" "&rsQryB("rtag_name")&"</div><br>")
1052
                                                NewTextFile.WriteLine("<b>Key:</b><br><blockquote>")
1053
                                                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>")
1054
                                                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>")
1055
                                                NewTextFile.WriteLine("<span class=changesnone><b>Grey Text</b></span><span class=textnone> No Source Code Changes to a Package in either Release.</span>")
1056
                                                NewTextFile.WriteLine("</blockquote>")
119 ghuddy 1057
 
4028 dpurdie 1058
                                                NewTextFile.WriteLine("<b>Toggle Sections:</b><blockquote>")
1059
                                                NewTextFile.WriteLine("<a href=""javascript:;"" onClick=""MM_toggleAll('divPkgInfo','1');"">Expand All</a>")
1060
                                                NewTextFile.WriteLine("<a href=""javascript:;"" onClick=""MM_toggleAll('divPkgInfo','');"">Collapse All</a>")
1061
                                                NewTextFile.WriteLine("</blockquote>")
119 ghuddy 1062
 
4028 dpurdie 1063
                                                Dim currView_id
1064
                                                currView_id = -1
119 ghuddy 1065
 
4028 dpurdie 1066
                                                While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))
1067
                                                    errormsg = false
1068
                                                    rowId = rsQry("pv_id_a") &"_"& rsQry("pv_id_b")
119 ghuddy 1069
 
4028 dpurdie 1070
                                                    btnMerge = LIMG_MERGE
1071
                                                    btnRemove = LIMG_REMOVE
1072
                                                    colorA = LCOLOR_NOT_CHANGED
1073
                                                    colorB = LCOLOR_NOT_CHANGED
119 ghuddy 1074
 
4028 dpurdie 1075
                                                    changeType = rsQry("change_type")
5081 dpurdie 1076
                                                    isaSdk = rsQry("PKG_SDK_B")
119 ghuddy 1077
 
4028 dpurdie 1078
                                                    Select Case changeType
1079
                                                        Case "U"
1080
                                                            colorA = LCOLOR_CHANGED
1081
                                                            colorB = LCOLOR_CHANGED
1082
                                                        Case "UW"
1083
                                                            colorA = LCOLOR_CHANGED
1084
                                                            colorB = LCOLOR_CHANGED
1085
                                                            btnMerge = LIMG_MERGE_WARN
1086
                                                        Case "UR"
1087
                                                            colorA = LCOLOR_RIPPLED
1088
                                                            colorB = LCOLOR_RIPPLED
1089
                                                        Case "A"
1090
                                                            colorA = LCOLOR_BLANK
1091
                                                        Case "R"
1092
                                                            colorB = LCOLOR_BLANK
1093
                                                    End Select
119 ghuddy 1094
 
4028 dpurdie 1095
                                                    Call GetDiffStateIcon ( changeType, ChangeTypeIcon )
119 ghuddy 1096
 
4028 dpurdie 1097
                                                    If changeType = "U" OR changeType = "UW" OR changeType = "UR" Then
1098
                                                        Dim MajorA, MajorB, MinorA, MinorB, PatchA, PatchB, BuildA, BuildB, pos, pkgVersionA, pkgVersionB, majMinA, majMinB
1099
                                                        MajorA = NULL
1100
                                                        MajorB = NULL
1101
                                                        MinorA = NULL
1102
                                                        MinorB = NULL
119 ghuddy 1103
 
4028 dpurdie 1104
                                                        pkgVersionA = rsQry("pkg_version_a")
1105
                                                        pkgVersionB = rsQry("pkg_version_b")
119 ghuddy 1106
 
4028 dpurdie 1107
                                                        PatchA = rsQry("patch_number_a")
1108
                                                        PatchB = rsQry("patch_number_b")
1109
                                                        BuildA = rsQry("build_number_a")
1110
                                                        BuildB = rsQry("build_number_b")
119 ghuddy 1111
 
1112
 
4028 dpurdie 1113
                                                        ' Find the first occurence of the dot in package version A
1114
                                                        pos = InStr(pkgVersionA, ".")
1115
                                                        If pos <> 0 Then
1116
                                                            ' Extract the Major Version for A
1117
                                                            MajorA = Mid(pkgVersionA, 1, pos - 1)
1118
                                                            ' Delete the Major Version Value from the string to get the minor and patch version
1119
                                                            pkgVersionA = Mid(pkgVersionA, pos + 1, Len(pkgVersionA))
1120
                                                            ' Find the second occurence of the dot in package version A
1121
                                                            pos = InStr(pkgVersionA, ".")
1122
                                                            ' Extract the Minor Version for A
1123
                                                            If pos <> 0 Then
1124
                                                                MinorA = Mid(pkgVersionA, 1, pos - 1)
1125
                                                            End If
1126
                                                        End If
119 ghuddy 1127
 
4028 dpurdie 1128
                                                        ' Find the first occurence of the dot in package version B
1129
                                                        pos = InStr(pkgVersionB, ".")
1130
                                                        If pos <> 0 Then
1131
                                                            ' Extract the Major Version for B
1132
                                                            MajorB = Mid(pkgVersionB, 1, pos - 1)
1133
                                                            ' Delete the Major Version Value from the string to get the minor and patch version
1134
                                                            pkgVersionB = Mid(pkgVersionB, pos + 1, Len(pkgVersionB))
1135
                                                            ' Find the second occurence of the dot in package version B
1136
                                                            pos = InStr(pkgVersionB, ".")
1137
                                                            ' Extract the Minor Version for B
1138
                                                            If pos <> 0 Then
1139
                                                                MinorB = Mid(pkgVersionB, 1, pos - 1)
1140
                                                            End If
1141
                                                        End If
119 ghuddy 1142
 
4028 dpurdie 1143
                                                        If MajorA = MajorB Then
1144
                                                            If MinorA = MinorB Then
1145
                                                                If IsNumeric(PatchA) AND IsNumeric(PatchB) Then
1146
                                                                    If CInt(PatchB) > CInt(PatchA) Then
1147
                                                                        btnMerge = LIMG_MERGE_WARN
1148
                                                                    Else
1149
                                                                        btnMerge = LIMG_MERGE
1150
                                                                    End If
1151
                                                                End If
1152
                                                            Else
1153
                                                                If IsNumeric(MinorA) AND IsNumeric(MinorB) Then
1154
                                                                    If CInt(MinorB) > CInt(MinorA) Then
1155
                                                                        btnMerge = LIMG_MERGE_WARN
1156
                                                                    Else
1157
                                                                        btnMerge = LIMG_MERGE
1158
                                                                    End If
1159
                                                                End If
1160
                                                            End If
1161
                                                        Else
1162
                                                            If IsNumeric(MajorA) AND IsNumeric(MajorB) Then
1163
                                                                If     CInt(MajorB) > CInt(MajorA) Then
1164
                                                                    btnMerge = LIMG_MERGE_WARN
1165
                                                                Else
1166
                                                                    btnMerge = LIMG_MERGE
1167
                                                                End If
1168
                                                            End If
1169
                                                        End If
1170
                                                    End If
119 ghuddy 1171
 
4028 dpurdie 1172
                                                    ' -------- FILTERS RIPPLE BUILDS WHEN CHECKED -----------------
1173
                                                    If NOT (GetIsDiffFilterChecked(enumDB_NUM_DIFF_RIPPLE) = "checked" AND changeType = "UR") THEN
119 ghuddy 1174
 
4028 dpurdie 1175
                                                        ' -------- GROUP BY BASE VIEW  -----------------
1176
                                                        If CDbl(currView_id) <> CDbl(rsQry("view_id")) Then%>
1177
                                                            <tr>
1178
                                                                <td valign="top" nowrap class="form_ttl"><b><%=rsQry("view_name")%></b></td>
1179
                                                                <td class="form_ttl">&nbsp;</td>
1180
                                                                <td class="form_ttl">&nbsp;</td>
1181
                                                                <td class="form_ttl">&nbsp;</td>
1182
                                                                <td class="form_ttl">&nbsp;</td>
1183
                                                                <td class="form_ttl">&nbsp;</td>
1184
                                                            </tr>
1185
                                                            <%
1186
                                                            currView_id = CDbl(rsQry("view_id"))
1187
                                                        End If
1188
                                                        ' -------- END GROUP ------------------------
1189
                                                        %>
1190
                                                        <%
1191
                                                        'Determine if we are dealing with a PV_ID that we have already encountered and displayed as a pending addition
1192
                                                        'If we are, we do not need to display anything more about it, so skip the row.
1193
                                                        ' NOTE. the result set is sorted by change type (see releasediff.sql) such that if there are multiple entries
1194
                                                        '         for the same PV_ID, they are sorted in the following order: unchanged, additions, removals, updates.
1195
                                                        '         This is important to the row skip filtering carried out below.
1196
                                                        Dim skipRow
1197
                                                        If rsQry("pv_id_a") Then
1198
                                                            skipRow = pendingAdditions.Exists(CStr(rsQry("pv_id_a")))
1199
                                                        Else
1200
                                                            skipRow = FALSE
1201
                                                        End If
1202
                                                        %>
1203
                                                        <%If NOT skipRow Then%>
1204
                                                            <tr>
1205
                                                                <td class="body_row" nowrap>
1206
                                                                    <DIV id="PVA<%=rowId%>" style="background:<%=colorA%>; padding:5px;">
1207
                                                                        <%=rsQry("pkg_name_a") &" "& rsQry("pkg_version_a")%>
1208
                                                                    </DIV>
1209
                                                                    <input type="hidden" id="UNDOCOLORA_<%=rowId%>" value="<%=colorA%>">
1210
                                                                </td>
5081 dpurdie 1211
 
1212
                                                                <%
1213
                                                                Dim pkgADisplayControl
1214
                                                                pkgADisplayControl = objRelCollectorB.Item("official") <> "Y"
1215
                                                                If IsNull( changeType ) OR (changeType = "A")  OR (changeType = "0") Then pkgADisplayControl = FALSE
1216
                                                                If isaSdk Then pkgADisplayControl = FALSE
1217
                                                                %>
4028 dpurdie 1218
                                                                <td bgcolor="#F5F5F5">
5081 dpurdie 1219
                                                                    <%If pkgADisplayControl Then%>
1220
                                                                        <DIV id="IMGMERGE<%=rowId%>"><a href="javascript:;" onClick="MergePackage( '<%=rsQry("pv_id_a")%>', '<%=rsQry("pv_id_b")%>', '<%=rowId%>' );"><%=btnMerge%></a></DIV>
4028 dpurdie 1221
                                                                    <%End If%>
1222
                                                                </td>
5081 dpurdie 1223
 
4028 dpurdie 1224
                                                                <td bgcolor="#E4E9EC">
1225
                                                                    <DIV id="IMGSTATE<%=rowId%>" ><%=ChangeTypeIcon%></DIV>
1226
                                                                    <input type="hidden" id="CHANGETYPE_<%=rowId%>" value="<%=changeType%>">
1227
                                                                </td>
5081 dpurdie 1228
 
1229
                                                                <%
1230
                                                                Dim pkgBDisplayControl
1231
                                                                pkgBDisplayControl = objRelCollectorB.Item("official") <> "Y"
1232
                                                                If changeType = "R" Then pkgBDisplayControl = FALSE
1233
                                                                If isaSdk Then pkgBDisplayControl = FALSE
1234
                                                                %>
4028 dpurdie 1235
                                                                <td bgcolor="#F5F5F5">
5081 dpurdie 1236
                                                                    <%If pkgBDisplayControl Then%>
1237
                                                                        <DIV id="IMGREMOVE<%=rowId%>" ><a href="javascript:;" onClick="RemovePackage( '<%=rsQry("pv_id_a")%>', '<%=rsQry("pv_id_b")%>', '<%=rowId%>' );"><%=btnRemove%></a></DIV>
1238
                                                                    <%ElseIf isaSdk Then %> 
1239
                                                                        <DIV ><%=LIMG_SDK%></DIV>
4028 dpurdie 1240
                                                                    <%End If%>
1241
                                                                </td>
5081 dpurdie 1242
 
4028 dpurdie 1243
                                                                <td class="body_row" nowrap>
1244
                                                                    <DIV id="PVB<%=rowId%>" style="background:<%=colorB%>; padding:5px;">
1245
                                                                        <%If IsNull(rsQry("pv_id_b")) Then %>
1246
                                                                            <%If Is_Pending_Sub(Request("rtagB"), rsQry("pv_id_a")) Then%>
1247
                                                                                (removal pending<%=Quick_Help("RemovalPending")%>)
1248
                                                                            <%End If %>
1249
                                                                        <%Else%>
1250
                                                                            <%=rsQry("pkg_name_b") &" "& rsQry("pkg_version_b")%>
1251
                                                                            <%If Is_Pending_Add(Request("rtagB"), rsQry("pv_id_b")) Then%>
1252
                                                                                (addition pending<%=Quick_Help("AdditionPending")%>)
1253
                                                                                <% 'Add this pending addition to the dictionary so that we can filter out REMOVED entries
1254
                                                                                    'with identical PV_ID's that we might encounter further on in the result set
1255
                                                                                If NOT pendingAdditions.Exists(rsQry("pv_id_b")) Then
1256
                                                                                    pendingAdditions.Add CStr(rsQry("pv_id_b")), CStr(rsQry("pkg_version_b"))
1257
                                                                                End If%>
1258
                                                                            <%ElseIf Is_Pending_Sub(Request("rtagB"), rsQry("pv_id_b")) Then%>
1259
                                                                                (removal pending<%=Quick_Help("RemovalPending")%>)
1260
                                                                            <%End If %>
1261
                                                                        <%End If %>
1262
                                                                    </DIV>
1263
                                                                    <input type="hidden" id="UNDOCOLORB_<%=rowId%>" value="<%=colorB%>">
1264
                                                                    <input type="hidden" name="addpkg" id="ADDPKG_<%=rowId%>" value="">
1265
                                                                    <input type="hidden" name="removepkg" id="REMOVEPKG_<%=rowId%>" value="">
1266
                                                                    <input type="hidden" id="UNDOPKG_<%=rowId%>" value="<%=rsQry("pkg_name_b") &" "& rsQry("pkg_version_b")%>">
1267
                                                                </td>
5081 dpurdie 1268
 
4028 dpurdie 1269
                                                                <td bgcolor="#F5F5F5">
1270
                                                                    <DIV id="IMGUNDO<%=rowId%>" style="display:none;" >
1271
                                                                        <a href="javascript:;" onClick="UndoPackage( '<%=rowId%>' );"><%=LIMG_UNDO%></a>
1272
                                                                    </DIV>
1273
                                                                </td>
1274
                                                            </tr>
1275
                                                        <%End If %>
119 ghuddy 1276
 
4028 dpurdie 1277
                                                        <%
1278
                                                        If genReport AND NOT skipRow  Then
1279
                                                            If rsQry("pv_id_a") Then
1280
                                                                Set rsQryCommentsA = OraDatabase.DbCreateDynaset( "SELECT COMMENTS FROM PACKAGE_VERSIONS WHERE PV_ID="& rsQry("pv_id_a"), cint(0))
1281
                                                            End If
119 ghuddy 1282
 
4028 dpurdie 1283
                                                            If rsQry("pv_id_b") Then
1284
                                                                Set rsQryCommentsB = OraDatabase.DbCreateDynaset( "SELECT COMMENTS FROM PACKAGE_VERSIONS WHERE PV_ID="& rsQry("pv_id_b"), cint(0))
1285
                                                            End If
119 ghuddy 1286
 
4028 dpurdie 1287
                                                            pkgA = rsQry("pkg_name_a")
1288
                                                            pkgB = rsQry("pkg_name_b")
119 ghuddy 1289
 
4028 dpurdie 1290
                                                            If pkgA <> "" then
1291
                                                                pkgname = pkgA
1292
                                                            Else
1293
                                                                pkgname = pkgB
1294
                                                            End If
119 ghuddy 1295
 
4028 dpurdie 1296
                                                            If changeType = "U" OR  changeType = "UW" Then
1297
                                                                ChangeASource = false
1298
                                                                ChangeAUpdate = false
1299
                                                                ChangeBSource = false
1300
                                                                ChangeBUpdate = false
119 ghuddy 1301
 
4028 dpurdie 1302
                                                                'NewTextFile.WriteLine("<br><b><font face="&chr(34)&"arial"&chr(34)&">"&pkgname&"</font></b>")
1303
                                                                NewTextFile.Write("<a href=""javascript:;"" class=""body_scol"" onClick=""toggleSPAN('"& rowId &"');"">"& pkgname &"</a>")
1304
                                                                NewTextFile.WriteLine("<DIV class=divPkgInfo id=""spanPkgInfo"& rowId &""" name=""spanPkgInfo"" style=""display:none;"">")
1305
                                                                NewTextFile.Write(rsQryA("rtag_name")&" uses: "&rsQry("pkg_version_a")&" (")
1306
                                                                Call Release(rsQry("pv_id_a"))
1307
                                                                NewTextFile.WriteLine(")<br>")
1308
                                                                NewTextFile.Write(rsQryB("rtag_name")&" uses: "&rsQry("pkg_version_b")&" (")
1309
                                                                Call Release(rsQry("pv_id_b"))
1310
                                                                NewTextFile.WriteLine(")<br>")
119 ghuddy 1311
 
4028 dpurdie 1312
                                                                a = rsQry("pv_id_a")
1313
                                                                b = rsQry("pv_id_b")
1314
                                                                c = rsQry("pv_id_a")
1315
                                                                d = rsQry("pv_id_b")
119 ghuddy 1316
 
4028 dpurdie 1317
                                                                Set pvCollectionA = CreateObject("Scripting.Dictionary")
1318
                                                                Set pvCollectionB = CreateObject("Scripting.Dictionary")
1319
                                                                On Error Resume Next
1320
                                                                While CLng(a) <> CLng(b) and NOT errormsg
119 ghuddy 1321
 
4028 dpurdie 1322
                                                                    'NewTextFile.WriteLine("A: "&a)
1323
                                                                    'NewTextFile.WriteLine("B: "&b)
1324
                                                                    pvCollectionA.Add CStr(a), Empty
1325
                                                                    pvCollectionB.Add CStr(b), Empty
1326
                                                                    If CLng(a) > CLng(b) Then
1327
                                                                        'NewTextFile.WriteLine("TestA")
1328
                                                                        Call LastPvIdA(a)
1329
                                                                    ElseIf CLng(b) > CLng(a) Then
1330
                                                                        'NewTextFile.WriteLine("TestB")
1331
                                                                        Call LastPvIdB(b)
1332
                                                                    End If
1333
                                                                Wend
119 ghuddy 1334
 
4028 dpurdie 1335
                                                                Set pvCollectionA = Nothing
1336
                                                                Set pvCollectionB = Nothing
119 ghuddy 1337
 
4028 dpurdie 1338
                                                                Call pkg_Version(a)
1339
                                                                NewTextFile.Write("Common PARENT package version: "&pkgversion&" (")
1340
                                                                Call Release(a)
1341
                                                                NewTextFile.WriteLine(")<br><br>")
1342
                                                                NewTextFile.WriteLine()
1343
                                                                NewTextFile.WriteLine("<b>"&rsQryA("rtag_name")&"</b>")
119 ghuddy 1344
 
4028 dpurdie 1345
                                                                If pkgversion <> rsQry("pkg_version_a") Then
1346
                                                                    NewTextFile.WriteLine("<blockquote><b><i>Versions between "& pkgversion &" and "& rsQry("pkg_version_a")&"</i></b></blockquote>")
119 ghuddy 1347
 
4028 dpurdie 1348
                                                                    If errormsg Then
1349
                                                                        NewTextFile.WriteLine("Error determining root!<br>")
1350
                                                                        NewTextFile.WriteLine()
1351
                                                                    End If
119 ghuddy 1352
 
4028 dpurdie 1353
                                                                    source_change = false
119 ghuddy 1354
 
4028 dpurdie 1355
                                                                    While CLng(a) <> CLng(c) and NOT errormsg
1356
                                                                        Call Comments(c)
1357
                                                                        If scFlag = TRUE Then
1358
                                                                            Call GetFixedIssues(c)
1359
                                                                        End If
1360
                                                                        Call LastPvIdAa(c)
1361
                                                                        NewTextFile.WriteLine()
1362
                                                                    Wend
119 ghuddy 1363
 
4028 dpurdie 1364
                                                                    If source_change = false Then
1365
                                                                        NewTextFile.WriteLine("<blockquote><b><i>No source changes to "& rsQryA("rtag_name")&". Only Rippled Builds.</i></b></blockquote><br>")
1366
                                                                        ChangeASource = true
1367
                                                                    End If
119 ghuddy 1368
 
4028 dpurdie 1369
                                                                    Call pkg_Version(b)
1370
                                                                    NewTextFile.WriteLine()
1371
                                                                    NewTextFile.WriteLine()
119 ghuddy 1372
 
4028 dpurdie 1373
                                                                ElseIf pkgversion = rsQry("pkg_version_a") Then
1374
                                                                    NewTextFile.WriteLine("<blockquote><b><i>No updates to "& rsQryA("rtag_name")&"</i></b></blockquote><br>")
1375
                                                                    ChangeAUpdate = true
1376
                                                                    NewTextFile.WriteLine()
1377
                                                                End If
119 ghuddy 1378
 
4028 dpurdie 1379
                                                                NewTextFile.WriteLine("<b>"&rsQryB("rtag_name")&"</b>")
119 ghuddy 1380
 
4028 dpurdie 1381
                                                                If pkgversion <> rsQry("pkg_version_b") Then
1382
                                                                    NewTextFile.WriteLine("<blockquote><b><i>Versions between "& pkgversion &" and "& rsQry("pkg_version_b")&"</i></b></blockquote>")
119 ghuddy 1383
 
4028 dpurdie 1384
                                                                    If errormsg Then
1385
                                                                        NewTextFile.WriteLine("Error determining root!<br>")
1386
                                                                        NewTextFile.WriteLine()
1387
                                                                    End If
119 ghuddy 1388
 
4028 dpurdie 1389
                                                                    source_change = false
119 ghuddy 1390
 
4028 dpurdie 1391
                                                                    While CLng(b) <> CLng(d) and NOT errormsg
1392
                                                                        Call Comments(d)
1393
                                                                        If scFlag = TRUE Then
1394
                                                                            Call GetFixedIssues(d)
1395
                                                                        End If
1396
                                                                        Call LastPvIdBb(d)
1397
                                                                        NewTextFile.WriteLine()
1398
                                                                    Wend
119 ghuddy 1399
 
4028 dpurdie 1400
                                                                    If source_change = false Then
1401
                                                                        NewTextFIle.WriteLine("<blockquote><b><i>No source changes to "& rsQryB("rtag_name")&". Only Rippled Builds.</i></b></blockquote><br>")
1402
                                                                        ChangeBSource = true
1403
                                                                    End If
119 ghuddy 1404
 
4028 dpurdie 1405
                                                                ElseIf pkgversion = rsQry("pkg_version_b") Then
1406
                                                                    NewTextFile.WriteLine("<blockquote><b><i>No updates to "& rsQryB("rtag_name")&"</i></b></blockquote><br>")
1407
                                                                    ChangeBUpdate = true
1408
                                                                    NewTextFile.WriteLine()
1409
                                                                End If
119 ghuddy 1410
 
4028 dpurdie 1411
                                                                NewTextFile.WriteLine("</DIV>")
119 ghuddy 1412
 
4028 dpurdie 1413
                                                                If ChangeASource Then
1414
                                                                    If ChangeBSource Then
1415
                                                                        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>")
1416
                                                                    ElseIf ChangeBUpdate Then
1417
                                                                        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>")
1418
                                                                    ElseIf NOT ChangeBSource AND NOT 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> <b class=changesb> SOURCE CODE CHANGES.</b></td></tr></table></blockquote>")
1420
                                                                    End If
1421
                                                                End If
119 ghuddy 1422
 
4028 dpurdie 1423
                                                                If ChangeBSource Then
1424
                                                                    If NOT ChangeAUpdate Then
1425
                                                                        If NOT ChangeASource AND NOT ChangeBUpdate Then
1426
                                                                            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>")
1427
                                                                        End If
1428
                                                                    End If
1429
                                                                End If
119 ghuddy 1430
 
4028 dpurdie 1431
                                                                If NOT ChangeASource Then
1432
                                                                    If NOT ChangeAUpdate Then
1433
                                                                        If NOT ChangeBSource AND NOT ChangeBUpdate Then
1434
                                                                            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>")
1435
                                                                        ElseIf 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><span class=changesnone> No Updates.</span></td>  </tr></table></blockquote>")
1437
                                                                        End If
1438
                                                                    ElseIf ChangeAUpdate Then
1439
                                                                        If NOT ChangeBSource AND NOT ChangeBUpdate Then
1440
                                                                            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>")
1441
                                                                        ElseIf ChangeBSource 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%""> </font><b>"& Ucase(rsQryB("rtag_name")) &":</b> <span class=changesnone> Ripple Builds Only.</span></td>  </tr></table></blockquote>")
1443
                                                                        End If
1444
                                                                    End If
1445
                                                                End If
119 ghuddy 1446
 
4028 dpurdie 1447
                                                            End If  'changeType = "U" OR  changeType = "UW"
119 ghuddy 1448
 
4028 dpurdie 1449
                                                        End If  'email
119 ghuddy 1450
 
4028 dpurdie 1451
                                                    End If 'NOT (GetIsDiffFilterChecked(enumDB_NUM_DIFF_RIPPLE) = "checked" AND changeType = "UR")
119 ghuddy 1452
 
4028 dpurdie 1453
                                                    rsQry.MoveNext
1454
                                                WEnd
119 ghuddy 1455
 
4028 dpurdie 1456
                                                rsQry.Close
1457
                                                Set rsQry = Nothing
1458
                                                %>
1459
                                                <%
1460
                                                Call Footer()
1461
                                                NewTextFile.Close
1462
                                                Set NewTextFile=Nothing
1463
                                                %>
1464
                                            </table>
1465
                                            <br>
1466
                                        <%Else%>
1467
                                            <br>
1468
                                            <%
1469
                                            If (parRtagB <> "") Then
1470
                                                Call Messenger ( "Select <b>Release A</b> to compare.", 3, "100%" )
1471
                                            ElseIf (parRtagA <> "") Then
1472
                                                Call Messenger ( "Select <b>Release B</b> to compare.", 3, "100%" )
1473
                                            Else
1474
                                                Call Messenger ( "Select <b>Release A</b> and <b>Release B</b> to compare.", 3, "100%" )
1475
                                            End If
1476
                                            %>
1477
                                        <%End If%>
1478
                                    </td>
1479
                                    <td width="1%" background="images/lbox_bgside_white.gif">&nbsp;</td>
1480
                                </tr>
1481
                                <tr>
1482
                                    <td width="1%" background="images/lbox_bg_blue.gif" valign="bottom"><img src="images/lbox_bl_cnr_b.gif" width="13" height="13"></td>
1483
                                    <td background="images/lbox_bg_blue.gif"></td>
1484
                                    <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>
1485
                                </tr>
1486
                            </table>
1487
                        </td>
1488
                    </tr>
1489
                </table>
1490
                <!-- DIFF END ---------------------------------------------------->
1491
            </td>
1492
            <td valign="top" background="images/bg_home_orange.gif">
119 ghuddy 1493
 
4028 dpurdie 1494
                <!-- SELECT RELEASE B ---------------------------------------------->
1495
                <br>
1496
                <table width="100%"  border="0" cellspacing="10" cellpadding="0">
1497
                    <tr>
1498
                        <td align="left" class="body_col">
1499
                            <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>
1500
                        </td>
1501
                    </tr>
1502
                    <tr>
1503
                        <td align="left">
1504
                            <select name="projB" class="form_item" onChange="RequestReleaseCombo( '?proj_id='+ this.value, FormName.rtagB );">
1505
                                <option value="">-- Select Project --</option>
1506
                                <%
1507
                                OraDatabase.Parameters.Add "PROJ_ID",     objRelCollectorB.Item("proj_id"),    ORAPARM_INPUT, ORATYPE_NUMBER
119 ghuddy 1508
 
4028 dpurdie 1509
                                Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ProjectsCombo.sql"), cint(0))
119 ghuddy 1510
 
4028 dpurdie 1511
                                OraDatabase.Parameters.Remove "PROJ_ID"
119 ghuddy 1512
 
4028 dpurdie 1513
                                While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
1514
                                    <option value="<%=rsQry("proj_id")%>" <%=rsQry("selected")%>><%=rsQry("proj_name")%></option>
1515
                                    <%rsQry.MoveNext
1516
                                WEnd
119 ghuddy 1517
 
4028 dpurdie 1518
                                rsQry.Close
1519
                                Set rsQry = Nothing
1520
                                %>
1521
                            </select>
1522
                        </td>
1523
                    </tr>
1524
                    <tr>
1525
                        <td align="left">
1526
                            <select name="rtagB" id="rtagB" class="form_item">
1527
                                <%
1528
                                OraDatabase.Parameters.Add "PROJ_ID",     objRelCollectorB.Item("proj_id"),    ORAPARM_INPUT,  ORATYPE_NUMBER
1529
                                OraDatabase.Parameters.Add "RTAG_ID",     objRelCollectorB.Item("rtag_id"),    ORAPARM_INPUT, ORATYPE_NUMBER
119 ghuddy 1530
 
4028 dpurdie 1531
                                Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("ReleasesCombo.sql"), cint(0))
119 ghuddy 1532
 
4028 dpurdie 1533
                                OraDatabase.Parameters.Remove "PROJ_ID"
1534
                                OraDatabase.Parameters.Remove "RTAG_ID"
119 ghuddy 1535
 
4028 dpurdie 1536
                                While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))%>
1537
                                        <option value="<%=rsQry("rtag_id")%>" <%=rsQry("selected")%>><%=rsQry("rtag_name")%></option>
1538
                                    <%rsQry.MoveNext
1539
                                WEnd
119 ghuddy 1540
 
4028 dpurdie 1541
                                rsQry.Close
1542
                                Set rsQry = Nothing
1543
                                %>
1544
                            </select>
1545
                        </td>
1546
                    </tr>
1547
                    <%If (parRtagB <> "") Then%>
1548
                        <tr>
1549
                            <td align="left"><a href="dependencies.asp?rtag_id=<%=parRtagB%>" class="body_txt_drk">Go To Release B &raquo;</a></td>
1550
                        </tr>
1551
                    <%End If%>
1552
                </table>
1553
                <!-- SELECT RELEASE B END ---------------------------------------------->
1554
            </td>
1555
        </tr>
1556
        <tr>
1557
            <td valign="bottom" align="center" background="images/bg_home_orange.gif">
1558
                <img src="images/img_vtree.gif" width="86" height="99" vspace="20" hspace="30">
1559
            </td>
1560
            <td valign="bottom" background="images/bg_home_orange.gif" align="center">
1561
                <img src="images/img_vtree.gif" width="86" height="99" vspace="20" hspace="30">
1562
            </td>
123 ghuddy 1563
      </tr>
4028 dpurdie 1564
    </table>
119 ghuddy 1565
</form>
1566
<!-- FOOTER -->
1567
<!--#include file="_footer.asp"-->
1568
<%
123 ghuddy 1569
If email Then
4028 dpurdie 1570
    Dim LocalPath
1571
    LocalPath = Server.MapPath("docs\compareReleases_"&objAccessControl.UserName&".html")
119 ghuddy 1572
 
4028 dpurdie 1573
    Send_Email    "Release Manager Notification",_
1574
                     adminEmail, _
1575
                     objAccessControl.UserEmail,_
1576
                     "Release Comparisons from Release Manager", _
1577
                     "Your requested report...",_
1578
                     LocalPath
123 ghuddy 1579
End If
119 ghuddy 1580
%>
1581
</body>
1582
</html>
1583
<%
1584
Call Destroy_All_Objects
1585
%>