Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

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