Subversion Repositories DevTools

Rev

Rev 6190 | Rev 6196 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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