Subversion Repositories DevTools

Rev

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