Subversion Repositories DevTools

Rev

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