Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

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