Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
119 ghuddy 1
<%@LANGUAGE="VBSCRIPT"%>
2
<%
3
'=====================================================
4
'|                                                   |
121 hknight 5
'|              Build Status Information             |
119 ghuddy 6
'|                                                   |
7
'=====================================================
8
%>
9
<%
10
Option explicit
11
' Good idea to set when using redirect
121 hknight 12
Response.Expires = 0  ' always load the page, dont store
119 ghuddy 13
%>
14
<!--#include file="common/conf.asp"-->
15
<!--#include file="common/globals.asp"-->
16
<!--#include file="common/formating.asp"-->
17
<!--#include file="common/qstr.asp"-->
18
<!--#include file="common/common_subs.asp"-->
19
<!--#include file="common/_form_window_common.asp"-->
20
<!--#include file="_action_buttons.asp"-->
21
<!--#include file="class/classActionButtonControl.asp"-->
147 ghuddy 22
<!--#include file="common/daemon_instructions.asp"-->
119 ghuddy 23
<%
24
'------------ ACCESS CONTROL ------------------
4756 dpurdie 25
'Let users view the build status without being logged in, but as soon as they try and 
26
'submit the form, check their login status.
133 ghuddy 27
If Request("action") <> "" AND NOT objAccessControl.UserLogedIn Then%>
28
<!--#include file="_access_control_login.asp"-->
29
<!--#include file="_access_control_project.asp"-->
30
<%End If%>
119 ghuddy 31
<!--#include file="_access_control_general.asp"-->
3959 dpurdie 32
<% '------------ Scripts -------------------------- %>
119 ghuddy 33
<%
34
'------------ Variable Definition -------------
35
Dim objSortHelper
36
Dim rsQry
37
Dim parRtagId
38
Dim query_string
133 ghuddy 39
Dim rcon_id
177 brianf 40
Dim shref_base
119 ghuddy 41
'------------ Constants Declaration -----------
42
'------------ Variable Init -------------------
43
parRtagId = Request("rtag_id")
44
objPMod.PersistInQryString("rtag_id")
3959 dpurdie 45
 
119 ghuddy 46
'----------------------------------------------
47
%>
48
<%
49
'--------------------------------------------------------------------------------------------------------------------------
50
Sub GetFormDetails ( parRtagId, ByRef outobjDetails )
133 ghuddy 51
   Dim rsQry, query
52
   OraDatabase.Parameters.Add "RTAG_ID",   parRtagId,    ORAPARM_INPUT, ORATYPE_NUMBER
53
   query = _
54
   " SELECT * "&_
55
   "  FROM RELEASE_TAGS rt"&_
56
   " WHERE rt.RTAG_ID = :RTAG_ID"
127 ghuddy 57
 
133 ghuddy 58
   Set rsQry = OraDatabase.DbCreateDynaset( query, ORADYN_DEFAULT )
127 ghuddy 59
 
133 ghuddy 60
   OraDatabase.Parameters.Remove "RTAG_ID"
127 ghuddy 61
 
133 ghuddy 62
   If rsQry.RecordCount > 0 Then
63
      outobjDetails.Item ("rtag_id") = rsQry("rtag_id")
64
      outobjDetails.Item ("rtag_name") = rsQry("rtag_name")
65
   Else
66
      Err.Raise 8, "Sub GetFormDetails in "& ScriptName, "Empty record set returned. parRtagId="& parRtagId
67
   End If
127 ghuddy 68
 
133 ghuddy 69
   rsQry.Close
70
   Set rsQry = Nothing
119 ghuddy 71
End Sub
72
'--------------------------------------------------------------------------------------------------------------------------
73
Sub RipplePackage (flag)
127 ghuddy 74
 
133 ghuddy 75
   On Error Resume Next
76
   objEH.ErrorRedirect = TRUE
77
   OraDatabase.Parameters.Add "PV_ID_LIST",  Request("pv_id_list"),  ORAPARM_INPUT, ORATYPE_VARCHAR2
78
   OraDatabase.Parameters.Add "RTAG_ID",     parRtag_id,  ORAPARM_INPUT, ORATYPE_NUMBER
79
   OraDatabase.Parameters.Add "USER_ID",     objAccessControl.UserId,  ORAPARM_INPUT, ORATYPE_NUMBER
119 ghuddy 80
 
133 ghuddy 81
   objEH.TryORA ( OraSession )
127 ghuddy 82
 
133 ghuddy 83
   If flag Then
84
      OraDatabase.ExecuteSQL _
85
      "BEGIN  Ripple_Package( :PV_ID_LIST, :RTAG_ID, :USER_ID );  END;"
86
   Else
87
      OraDatabase.ExecuteSQL _
88
      "BEGIN  UnRipple_Package( :PV_ID_LIST, :RTAG_ID, :USER_ID );  END;"
89
   End If
127 ghuddy 90
 
133 ghuddy 91
   objEH.CatchORA ( OraSession )
127 ghuddy 92
 
133 ghuddy 93
   OraDatabase.Parameters.Remove "PV_ID_LIST"
94
   OraDatabase.Parameters.Remove "RTAG_ID"
95
   OraDatabase.Parameters.Remove "USER_ID"
119 ghuddy 96
 
97
End Sub
98
'--------------------------------------------------------------------------------------------------------------------------
4028 dpurdie 99
Function PrettyDelta( delta, daemonState,pkgId )
100
    Dim style
101
    style = ""
102
 
103
    If (delta > 600) AND (IsNull(pkgId) OR pkgId = "") Then
104
      style = "style=color:Red"
105
      If (delta > 86400 ) Then
106
        Dim bdate, dd,mm,yy
107
        bdate = DateAdd("s", - delta,Now())
108
        dd = Day(bdate)
109
        mm = MonthName(Month(bdate),1)
110
        yy = Year( bdate)
111
        delta = dd & "-" & mm & "-" & yy
112
        If ( daemonState >= 2 ) Then
113
            style = ""
114
        End If
115
      ElseIf ( delta > 60*60 ) Then
116
        'Dim bdate, hh, mins, ss
117
        bdate = DateAdd("s", - delta,Now())
118
        delta = TimeValue( bdate)
119
        'delta = hh & ":" & mins & ":" & ss
120
      End If
121
    End If
122
 
123
    If style <> "" Then
124
        delta = "<span " & style & ">" & delta & "</span>"
125
    End If
126
    PrettyDelta = delta
127
End Function
128
'--------------------------------------------------------------------------------------------------------------------------
119 ghuddy 129
Function Get_Daemon_Mode( cMode )
130
 
127 ghuddy 131
   If cMode = "S" Then
132
      Get_Daemon_Mode = "Slave"
133
   ElseIf cMode = "M" Then
134
      Get_Daemon_Mode = "Master"
135
   End If
136
 
119 ghuddy 137
End Function
138
'--------------------------------------------------------------------------------------------------------------------------
171 brianf 139
Function Get_Run_Level( nLevel, indefinitePause, astate)
119 ghuddy 140
 
127 ghuddy 141
   If indefinitePause Then
142
      Get_Run_Level = "<span class='err_alert'>Stopped</span>"
171 brianf 143
   ElseIf astate = 1 Then      ' if build daemon paused
144
      Get_Run_Level = "Paused"
145
   ElseIf astate = 2 Then      ' if build daemon disabled
146
      Get_Run_Level = "Disabled"
4487 dpurdie 147
   ElseIf astate = 0 Then     ' if build daemon enabled
133 ghuddy 148
      If nLevel = 1 Then
127 ghuddy 149
         Get_Run_Level = "Cannot Continue"
150
      ElseIf nLevel = 2 Then
151
         Get_Run_Level = "Paused"
152
      ElseIf nLevel = 3 Then
1326 dpurdie 153
         Get_Run_Level = "Building"
127 ghuddy 154
      ElseIf nLevel = 4 Then
155
         Get_Run_Level = "Idle"
133 ghuddy 156
      ElseIf nLevel = 5 Then
127 ghuddy 157
         Get_Run_Level = "Waiting"
135 mhunt 158
      ElseIf nLevel = 6 Then
159
         Get_Run_Level = "Publishing"
127 ghuddy 160
      Else
161
         Get_Run_Level = "<span class='err_alert'>Unknown!</span>"
162
      End If
163
   End If
119 ghuddy 164
 
165
End Function
177 brianf 166
 
119 ghuddy 167
'--------------------------------------------------------------------------------------------------------------------------
4431 dpurdie 168
Function Get_Package_Name( sPackageName,nRtagId,nPkgPvid )
119 ghuddy 169
 
121 hknight 170
  If IsNull(sPackageName) Then
171
    Get_Package_Name = "None"
4431 dpurdie 172
  ElseIf IsNull(nPkgPvid) or nPkgPvid <= 0 Then
173
    Get_Package_Name = sPackageName
121 hknight 174
  Else
4431 dpurdie 175
    Get_Package_Name = "<a class=""txt_linked"" href=""dependencies.asp?pv_id=" +  nPkgPvid + "&rtag_id=" + nRtagId + """>" + sPackageName + "</a>"
121 hknight 176
  End If
119 ghuddy 177
 
178
End Function
179
'--------------------------------------------------------------------------------------------------------------------------
4525 dpurdie 180
Function GetLastBuildAge( rtagid)
181
   Dim  query_string, rsQry
182
       query_string = "SELECT TRUNC (86400*(SYSDATE - rl.LAST_BUILD)) as delta," &_
5157 dpurdie 183
                      "       TO_CHAR(rl.LAST_BUILD, 'DD-Mon-YYYY') as last_build," &_
4525 dpurdie 184
                      "       TO_CHAR(rl.LAST_BUILD, 'HH:MM:SS PM') as last_build_hours," &_
185
                      "       TRUNC (SYSDATE - rl.LAST_BUILD) as last_build_days" &_
186
                      " FROM RELEASE_CONFIG rc, RUN_LEVEL rl, BUILD_MACHINE_CONFIG bm " &_
187
                      " WHERE rc.RTAG_ID =" &rtagid &_
188
                      "   AND rc.bmcon_id is not null" &_
189
                      "   AND rl.RCON_ID = rc.RCON_ID" &_
190
                      "   AND rc.bmcon_id = bm.bmcon_id(+)"
177 brianf 191
 
4525 dpurdie 192
        Set rsQry = OraDatabase.DbCreateDynaset( query_string, ORADYN_DEFAULT )
193
        If (NOT rsQry.BOF) AND (NOT rsQry.EOF) Then
194
            Dim delta, last_build, last_build_time, last_build_days
195
            If IsNull(rsQry("delta")) Then
196
                delta = 0
197
            Else
198
                delta = CLng(rsQry("delta"))
199
            End If
200
            last_build = rsQry("last_build")
201
            last_build_time = rsQry("last_build_hours")
202
            last_build_days = rsQry("last_build_days")
203
            If delta < (60*60*24) Then
204
                GetLastBuildAge = last_build_time  
205
            Else     
206
                GetLastBuildAge = last_build
207
            End If
208
        End If
209
        rsQry.Close()
210
        Set rsQry = nothing
177 brianf 211
 
4525 dpurdie 212
End Function
213
 
214
'--------------------------------------------------------------------------------------------------------------------------
5157 dpurdie 215
Function GetModifiedSeqNo( rtagid)
216
   Dim  query_string, rsQry
217
       query_string = "SELECT SEQNUM FROM RELEASE_MODIFIED WHERE RTAG_ID = " & rtagid
218
 
219
        Set rsQry = OraDatabase.DbCreateDynaset( query_string, ORADYN_DEFAULT )
220
        If (NOT rsQry.BOF) AND (NOT rsQry.EOF) Then
221
            GetModifiedSeqNo = rsQry("SEQNUM")
222
        Else
223
            GetModifiedSeqNo = "-"
224
        End If
225
        rsQry.Close()
226
        Set rsQry = nothing
227
 
228
End Function
229
 
230
'--------------------------------------------------------------------------------------------------------------------------
119 ghuddy 231
%>
232
<%
233
'------------ RUN BEFORE PAGE RENDER ----------
181 brianf 234
shref_base = "http://" & archive_server & "/devl/abtlog/"
177 brianf 235
 
119 ghuddy 236
' --- Get Form details from DB ---
237
Call GetFormDetails ( Request("rtag_id"), objFormCollector )
238
 
239
' --- Load Validation Rules ---
121 hknight 240
'Call objForm.LoadValidationRules ( Array("rtag_name","rtag_description", "config_spec_branch"), OraDatabase )    ' Load Validation Rules
119 ghuddy 241
 
242
' --- Enter Form Validation Rule Changes here... ----
243
'----------------------------------------------------
244
 
245
' --- RUN onPostBack ---
133 ghuddy 246
If Request("action") <> "" AND objAccessControl.UserLogedIn Then
119 ghuddy 247
 
121 hknight 248
  If objEH.Finally Then
249
    If Request("action") = "include" Then
250
      Call RipplePackage (True)
4061 dpurdie 251
      ' Redirect to the current page so that a refesh will not
252
      ' cause a form re-submit.
253
      Response.Redirect(ScriptName & "?rtag_id=" & parRtagId)
121 hknight 254
    Else
255
      Call OpenInWindow ( "dependencies.asp?rtag_id="& parRtagId )
256
    End If
257
  End If
127 ghuddy 258
 
119 ghuddy 259
End If
260
 
261
'----------------------------------------------
262
%>
3959 dpurdie 263
<script language="JavaScript" type="text/JavaScript">
264
 
265
window.addEventListener ?
266
window.addEventListener("load",InitShow,false) :
267
window.attachEvent && window.attachEvent("onload",InitShow);
268
 
269
function InitShow(e)
270
{
271
    toggleDispClass('rootCause',0);
5305 dpurdie 272
    toggleDispClass('rootNoEnv',0);
3959 dpurdie 273
    toggleDispClass('rootFile',0);
4525 dpurdie 274
    toggleDispClass('rootIndirect',0);
275
    toggleDispClass('manualCause',0);
3959 dpurdie 276
}
277
 
278
function toggleDispClass(cname,flip)
279
{
280
    var cookieName = 'RELMGR_BUILDSTATUS';
281
    var cv = JSON.parse(getCookie(cookieName));
282
    if (!cv)
283
        cv = new Object;
284
    if (!cv.BuildStatus)
285
        cv.BuildStatus = new Object;
286
 
287
    var state = cv.BuildStatus[cname];
288
    if (state === undefined)
289
        state = true;
290
 
291
    if (flip>0)
292
        state = !state;
293
 
294
    cv.BuildStatus[cname] = state;
295
 
296
    // Reflect the current state in the checkbox
297
    var de = document.getElementById(cname);
298
    if (de)
299
        de.checked = state;
300
 
301
    var elements = new Array();
302
    elements = getElementsByClassName(cname);
303
    for(i in elements ){
304
        if (state) {
305
            elements[i].style.display = "";
306
        }
307
        else {
308
            elements[i].style.display = "none";
309
        }
310
    }
311
    setCookie(cookieName, JSON.stringify(cv), 365 );
312
}
313
 
314
</script>
315
 
119 ghuddy 316
<html>
127 ghuddy 317
   <head>
318
      <title>Release Manager</title>
319
      <meta http-equiv="Pragma" content="no-cache">
320
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
321
      <link rel="stylesheet" href="images/release_manager_style.css" type="text/css">
322
      <link rel="stylesheet" href="images/navigation.css" type="text/css">
323
      <script language="JavaScript" src="images/common.js"></script>
5190 dpurdie 324
      <!--#include file="_jquery_includes.asp"-->
157 ghuddy 325
      <!-- TIPS -->
4061 dpurdie 326
      <script type="text/javascript" src="scripts/json2.js"></script>
157 ghuddy 327
      <script language="JavaScript" src="images/tipster.js"></script>
328
      <script language="JavaScript" src="images/_help_tips.js"></script>
5096 dpurdie 329
      <script language="JavaScript" type="text/JavaScript">
330
      formTips.tips.h_shedtime       = stdTip(200, 'Color Code', '<SPAN style=color:Red>Red</SPAN> = overdue<br><SPAN style=color:Green>Green</SPAN> = ready' );
331
      </script>
127 ghuddy 332
      <!-- DROPDOWN MENUS -->
333
      <!--#include file="_menu_def.asp"-->
334
      <script language="JavaScript1.2" src="images/popup_menu.js"></script>
335
   </head>
336
   <body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0" onload="isChecked('pv_id_list','submit');">
337
      <!-- MENU LAYERS -------------------------------------->
338
      <div id="popmenu" class="menuskin" onmouseover="clearhidemenu();highlightmenu(event,'on')" onmouseout="highlightmenu(event,'off');dynamichide(event)"></div>
339
      <!-- TIPS LAYERS -------------------------------------->
340
      <div id="formTipsLayer" style="position: absolute; z-index: 1000; visibility: hidden; left:0; top: 0; width: 10">&nbsp;</div>
341
      <!----------------------------------------------------->
342
      <!-- HEADER -->
343
      <!--#include file="_header.asp"-->
344
      <!-- BODY ---->
345
      <table width="100%" border="0" cellspacing="0" cellpadding="0">
346
         <tr>
347
            <td width="1" background="images/bg_home_orange.gif" valign="top"></td>
348
            <td width="100%" rowspan="1" align="center" valign="top" bgcolor="#EEEFEF">
5190 dpurdie 349
               <!-- FORM START -->
350
               <%
351
               objFormComponent.FormName = "FormName"
352
               objFormComponent.Action = ScriptName &"?rtag_id="& parRtagId
353
               Call objFormComponent.FormStart()
354
               %>
127 ghuddy 355
               <table width="10" border="0" cellspacing="0" cellpadding="0">
121 hknight 356
                  <tr>
127 ghuddy 357
                     <td width="1%"></td>
358
                     <td width="100%">
359
                        <table width="100%" border="0" cellspacing="0" cellpadding="0">
360
                           <tr>
361
                              <td nowrap class="body_txt"></td>
362
                           </tr>
363
                        </table>
364
                        <table width="100%" border="0" cellspacing="0" cellpadding="0">
365
                           <tr>
366
                              <td nowrap class="form_ttl"><p>&nbsp;</p>
367
                                 <p>BUILD STATUS INFORMATION</p>
368
                              </td>
369
                              <td align="right" valign="bottom"></td>
370
                           </tr>
371
                        </table>
372
                     </td>
373
                     <td width="1%"></td>
121 hknight 374
                  </tr>
375
                  <tr>
127 ghuddy 376
                     <td align="left" valign="top" background="images/lbox_bg_blue.gif"><img src="images/lbox_tl_cnr_b.gif" width="13" height="13"></td>
377
                     <td background="images/lbox_bg_blue.gif" class="lbox_ttl_w"><img src="images/h_trsp_dot.gif" width="600" height="15"></td>
378
                     <td align="right" valign="top" background="images/lbox_bg_blue.gif"><img src="images/lbox_tr_cnr_b.gif" width="13" height="13"></td>
121 hknight 379
                  </tr>
380
                  <tr>
127 ghuddy 381
                     <td bgcolor="#FFFFFF"><img src="images/h_trsp_dot.gif" width="10" height="100"></td>
382
                     <td bgcolor="#FFFFFF" valign="top">
383
                        <!-- MESSAGE +++++++++++++++++++++++++++++++++++++++++++++++++++ -->
384
                        <!--#include file="messages/_msg_inline.asp"-->
385
                        <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
386
                        <br>
387
                        <table width="100%" border="0" cellspacing="2" cellpadding="0">
4525 dpurdie 388
                        <tr><td colspan=4 class='err_alert'>
389
                              <font size='2'><b>Packages Excluded From Build</b></font>
390
                           </td>
391
                           </tr>
392
                           <td></td>
393
                           <td  colspan=3 class="body_row">
394
                           <fieldset class="fset" align="right" style=" border: 1px groove; ">
395
                                Show
396
                                <input type="checkbox" checked value=0 name="showManual"   id="manualCause"   onClick="toggleDispClass('manualCause',1);">Manual Exclusions
397
                                <input type="checkbox" checked value=0 name="showCause"    id="rootCause"     onClick="toggleDispClass('rootCause',1);">Config Errors
5305 dpurdie 398
                                <input type="checkbox" checked value=0 name="showNoEnv"    id="rootNoEnv"     onClick="toggleDispClass('rootNoEnv',1);">Env Errors
4525 dpurdie 399
                                <input type="checkbox" checked value=0 name="showFile"     id="rootFile"      onClick="toggleDispClass('rootFile',1);">Build Errors
400
                                <input type="checkbox" checked value=0 name="showIndirect" id="rootIndirect"  onClick="toggleDispClass('rootIndirect',1);">Indirect Exclusions
401
                           </fieldset>
402
                           </td>
403
                           </tr>
404
 
127 ghuddy 405
                           <tr>
406
                              <td background="images/bg_table_col.gif" class="err_alert"><b>Directly</b></td>
5096 dpurdie 407
                              <td valign="top" nowrap background="images/bg_table_col.gif" class="body_col">Package</td>
408
                              <td valign="top" nowrap background="images/bg_table_col.gif" class="body_col">Version</td>
409
                              <td valign="top" nowrap background="images/bg_table_col.gif" class="body_col">Root Cause</td>
127 ghuddy 410
                           </tr>
3959 dpurdie 411
                           <tr>
127 ghuddy 412
                           <%
413
                           query_string = " select pkg.pkg_name, pv.pkg_version, pv.pv_id, dnr.rtag_id, dnr.root_cause, dnr.root_file, pv.pv_description"&_
414
                                          "   from do_not_ripple dnr, package_versions pv, packages pkg"&_
415
                                          "  where dnr.rtag_id = "& parRtagId &_
416
                                          "    and pv.pv_id    = dnr.pv_id"&_
417
                                          "    and pkg.pkg_id  = pv.pkg_id"&_
418
                                          "    and dnr.root_pv_id is null"&_
419
                                          "  order by pkg_name"
420
                           Set rsQry = OraDatabase.DbCreateDynaset( query_string, ORADYN_DEFAULT )
421
                           '--- Render rows ---
422
                           Do While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
3959 dpurdie 423
                            Dim rowClass
424
                            Dim rowData
4525 dpurdie 425
                            '
426
                            ' Manually excluded packages have no root_cause or root_file or root_pv_id
427
                            '
3959 dpurdie 428
                            ' root_file, if supplied, indicates a build failure log file exists
429
                            ' this should always prevail over the textual root_cause
4525 dpurdie 430
                            '
431
                            If (IsNull(rsQry("root_file")) AND IsNull(rsQry("root_cause"))) Then
432
                                rowData = "Manually Excluded"
433
                                rowClass = "manualCause"
434
 
435
                            ElseIf IsNull(rsQry("root_file")) Then
3959 dpurdie 436
                               rowData = rsQry("root_cause")
5305 dpurdie 437
                               If InStr(rowData, "no build env") Then
438
                                   rowClass = "rootNoEnv"
439
                               Else
440
                                   rowClass = "rootCause"
441
                               End If
4525 dpurdie 442
 
3959 dpurdie 443
                            Else
444
                                rowClass = "rootFile"
445
                                rowData = "<a class=""txt_linked"" title=""" & rsQry("root_file") &_
446
                                          " Log file may have expired."" " &_
447
                                          "href=""" & shref_base & rsQry("root_file") & """>" &_
448
                                          "Build Failure Log File</a>"
449
                            End If
127 ghuddy 450
                           %>
3959 dpurdie 451
                              <tr class="<%=rowClass%>">
127 ghuddy 452
                                 <td colspan="5" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
453
                              </tr>
3959 dpurdie 454
                              <tr class="<%=rowClass%>">
127 ghuddy 455
                                 <td nowrap width="1%">
456
                                    <!-- The use of the isChecked() javascript function below, enables the submit button if any checkboxes are checked, -->
457
                                    <!-- else it will disable the submit button. The function is badly named, but nevertheless, that is what it does.   -->
4444 dpurdie 458
                                    <a name="PkgName_<%=rsQry("pkg_name")%>">
5190 dpurdie 459
                                    <input type="checkbox" value="<%=rsQry("pv_id")%>" name="pv_id_list" id="pv_id_list" onClick="isChecked('pv_id_list','IncludeSubmit');">
4444 dpurdie 460
                                    </a>
127 ghuddy 461
                                 </td>
462
                                 <td nowrap class="body_rowg"><a class="txt_linked" href="dependencies.asp?pv_id=<%=rsQry("pv_id")%>&rtag_id=<%=rsQry("rtag_id")%>" title="<%=rsQry("pv_description")%>"><%=rsQry("pkg_name")%></a></td>
463
                                 <td nowrap class="body_rowg"><%=rsQry("pkg_version")%></td>
3959 dpurdie 464
                                 <td nowrap class="body_rowg"><%=rowData%></td>
127 ghuddy 465
                              </tr>
3959 dpurdie 466
                           <%
467
                            rsQry.MoveNext
127 ghuddy 468
                           Loop%>
469
                           <tr>
470
                              <td background="images/bg_table_col.gif" class="err_alert"><b>Indirectly</b></td>
5096 dpurdie 471
                              <td valign="top" nowrap background="images/bg_table_col.gif" class="body_col">Package</td>
472
                              <td valign="top" nowrap background="images/bg_table_col.gif" class="body_col">Version</td>
473
                              <td valign="top" nowrap background="images/bg_table_col.gif" class="body_col">Root Cause Package</td>
127 ghuddy 474
                           </tr>
475
                           <%
476
                           query_string = " select pv.pv_id, pkg.pkg_name, pv.pkg_version, qkg.pkg_name, dnr.rtag_id, pv.pv_description"&_
477
                                          "   from do_not_ripple dnr, package_versions pv, package_versions qv, packages pkg, packages qkg"&_
478
                                          "  where dnr.rtag_id = "& parRtagId &_
479
                                          "    and pv.pv_id    = dnr.pv_id"&_
480
                                          "    and pkg.pkg_id  = pv.pkg_id"&_
481
                                          "    and qv.pv_id    = dnr.root_pv_id"&_
482
                                          "    and qkg.pkg_id  = qv.pkg_id"&_
483
                                          "    and dnr.root_pv_id is not null"&_
484
                                          "  order by pkg.pkg_name"
485
                           Dim rsQry2
486
                           Set rsQry2 = OraDatabase.DbCreateDynaset( query_string, ORADYN_DEFAULT )
487
                           '--- Render rows ---
488
                           Do While (NOT rsQry2.BOF) AND (NOT rsQry2.EOF)%>
4630 dpurdie 489
                              <tr class="rootIndirect">
127 ghuddy 490
                                 <td colspan="5" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
491
                              </tr>
4525 dpurdie 492
                              <tr class="rootIndirect">
493
 
127 ghuddy 494
                                 <td nowrap width="1%">
495
                                    <input type="checkbox" value=0 disabled=true name="notused" id="notused">
496
                                 </td>
497
                                 <td nowrap class="body_rowg"><a class="txt_linked" href="dependencies.asp?pv_id=<%=rsQry2(0)%>&rtag_id=<%=rsQry2(4)%>" title="<%=rsQry2(5)%>"><%=rsQry2(1)%></a></td>
498
                                 <td nowrap class="body_rowg"><%=rsQry2(2)%></td>
4444 dpurdie 499
                                 <td nowrap class="body_rowg"><a href="#PkgName_<%=rsQry2(3)%>" style="text-decoration: none;">&raquo;&nbsp;<%=rsQry2(3)%></a></td>
127 ghuddy 500
                              </tr>
501
                              <%
502
                              rsQry2.MoveNext
503
                           Loop%>
504
                        </table>
505
                     </td>
506
                     <td background="images/lbox_bgside_white.gif">&nbsp;</td>
121 hknight 507
                  </tr>
127 ghuddy 508
                  <%If rsQry.RecordCount > 0 Then%>
509
                     <tr>
510
                        <td background="images/bg_action_norm.gif"></td>
511
                        <td align="right" background="images/bg_action_norm.gif">
512
                           <%
5190 dpurdie 513
                           Response.Write(objFormComponent.SubmitButton ( "Include", "name='IncludeSubmit' id='IncludeSubmit' class='form_btn' disabled style='color:silver' onClick=""return vixConfirm('Are you sure you want to include these packages for building?',{title:'Include Packages', post : 'FormName'})""" ))
127 ghuddy 514
                           Response.Write(objPMod.ComposeHiddenTags())
515
                           %>
516
                        </td>
517
                        <td background="images/bg_action_norm.gif"><img src="images/h_trsp_dot.gif" width="5" height="30"></td>
518
                     </tr>
519
                  <%End If%>
121 hknight 520
                  <tr>
127 ghuddy 521
                     <td background="images/lbox_bg_blue.gif" valign="bottom"><img src="images/lbox_bl_cnr_b.gif" width="13" height="13"></td>
522
                     <td background="images/lbox_bg_blue.gif"></td>
523
                     <td background="images/lbox_bg_blue.gif" valign="bottom" align="right"><img src="images/lbox_br_cnr_b.gif" width="13" height="13"></td>
121 hknight 524
                  </tr>
127 ghuddy 525
               </table>
526
               <!-- ACTION BUTTONS ---------------------------------------------->
527
               <input type="hidden" name="action" value="include">
528
               <!-- ACTION BUTTONS END  ------------------------------------------>
5190 dpurdie 529
               <%Call objFormComponent.FormEnd()%>
530
               <!-- FORM END ----------------------------------------------------->
127 ghuddy 531
            </td>
532
            <td width="1" valign="top"><img src="images/h_trsp_dot.gif" width="1" height="1"></td>
533
         </tr>
534
         <%
535
         rsQry.Close()
536
         Set rsQry = nothing
537
         rsQry2.Close()
538
         Set rsQry2 = nothing
539
         %>
540
         <tr>
541
            <td width="1" background="images/bg_home_orange.gif" valign="top"></td>
542
            <td width="100%" rowspan="2" align="center" valign="top" bgcolor="#EEEFEF">
543
               <table width="10" border="0" cellspacing="0" cellpadding="0">
121 hknight 544
                  <tr>
127 ghuddy 545
                     <td width="1%"></td>
546
                     <td width="100%">
547
                        <table width="100%" border="0" cellspacing="0" cellpadding="0">
548
                           <tr>
549
                              <td nowrap class="form_ttl"><p>&nbsp;</p>
550
                                 <p>DAEMON STATUS INFORMATION</p>
551
                              </td>
4525 dpurdie 552
                              <td  valign="bottom" class="body_rowg">
553
                                Last Build: <%=GetLastBuildAge(parRtagId)%>
5157 dpurdie 554
                                 [<%=GetModifiedSeqNo(parRtagId)%>]
4525 dpurdie 555
                              </td>
2365 dpurdie 556
                              <td align="right" valign="bottom">
557
                                <a class="txt_linked" href="build_status.asp?rtag_id=<%=parRtagId%>" title="Refresh Page">[Refresh]</a></td>
558
                              </td>
127 ghuddy 559
                           </tr>
560
                        </table>
561
                     </td>
562
                     <td width="1%"></td>
121 hknight 563
                  </tr>
564
                  <tr>
127 ghuddy 565
                     <td align="left" valign="top" background="images/lbox_bg_blue.gif"><img src="images/lbox_tl_cnr_b.gif" width="13" height="13"></td>
566
                     <td background="images/lbox_bg_blue.gif" class="lbox_ttl_w"><img src="images/h_trsp_dot.gif" width="600" height="15"></td>
567
                     <td align="right" valign="top" background="images/lbox_bg_blue.gif"><img src="images/lbox_tr_cnr_b.gif" width="13" height="13"></td>
121 hknight 568
                  </tr>
569
                  <tr>
127 ghuddy 570
                     <td bgcolor="#FFFFFF"><img src="images/h_trsp_dot.gif" width="10" height="100"></td>
571
                     <td bgcolor="#FFFFFF" valign="top">
572
                        <!-- MESSAGE +++++++++++++++++++++++++++++++++++++++++++++++++++ -->
573
                        <!--#include file="messages/_msg_inline.asp"-->
574
                        <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
575
                        <br>
576
                        <table width="100%" border="0" cellspacing="2" cellpadding="0">
577
                           <%
578
                           Dim indefinitelyPaused
579
                           indefinitelyPaused = FALSE
580
                           ' Insert a warning into the page if the build daemons are indefintely paused.
581
                           query_string = " select * from run_level_schedule rls where rls.indefinite_pause = 'P'"
582
 
583
                           Set rsQry = OraDatabase.DbCreateDynaset( query_string, ORADYN_DEFAULT )
584
                           If rsQry.RecordCount > 0 Then
585
                              indefinitelyPaused = TRUE %>
586
                              <tr>
587
                                 <span class='err_alert'>
588
                                    <font size='2'><b>WARNING: Build Daemons are all stopped - please contact an administrator</b></font>
589
                                 </span>
590
                              </tr>
591
                           <%End If
592
 
593
                           rsQry.Close()
594
                           Set rsQry = nothing
595
                           %>
596
                           <td width="9%" valign="top"></td>
597
                           <tr>
163 brianf 598
                              <td valign="top" nowrap background="images/bg_table_col.gif" class="body_col">Daemon Host</td>
5096 dpurdie 599
                              <td valign="top" nowrap background="images/bg_table_col.gif" class="body_col">Machine Type</td>
127 ghuddy 600
                              <td valign="top" nowrap background="images/bg_table_col.gif" class="body_col">Mode</td>
601
                              <td valign="top" nowrap background="images/bg_table_col.gif" class="body_col">Run Level</td>
602
                              <td valign="top" nowrap background="images/bg_table_col.gif" class="body_col">Current Package</td>
147 ghuddy 603
                              <td valign="top" nowrap background="images/bg_table_col.gif" class="body_col">Last Change<br>Delta (secs)</td>
4170 dpurdie 604
                              <td valign="top" nowrap background="images/bg_table_col.gif" class="body_col">Control State</td>
127 ghuddy 605
                           </tr>
606
                           <%
133 ghuddy 607
                           ' Get the number of release configurations for this RTAG_ID, and iterate through them
163 brianf 608
                           query_string = " select * from release_config rc, gbe_machtype gm, build_machine_config bm"&_
127 ghuddy 609
                                          "  where rc.rtag_id = "& parRtagId &_
610
                                          "    and gm.gbe_id = rc.gbe_id"&_
4293 dpurdie 611
                                          "    and rc.bmcon_id=bm.bmcon_id(+)" &_
612
                                          "  order by bm.display_name, rc.rcon_id"
133 ghuddy 613
 
127 ghuddy 614
                           Set rsQry = OraDatabase.DbCreateDynaset( query_string, ORADYN_DEFAULT )
133 ghuddy 615
 
127 ghuddy 616
                           Do While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
617
                              rcon_id = rsQry("rcon_id")
133 ghuddy 618
 
619
                              Dim pkgName
4431 dpurdie 620
                              Dim pkgPvid
133 ghuddy 621
                              Dim currentRunLevel
171 brianf 622
                              Dim daemonState
623
                              Dim delta
4487 dpurdie 624
                              Dim pkgId
133 ghuddy 625
 
626
                              ' For this release configuration, get its entry from the run_level table. This table may not
627
                              ' have an entry so we must handle that outcome too.
147 ghuddy 628
                              query_string = " select rl.pause, rl.current_run_level, rl.current_pkg_id_being_built, "&_
629
                                             "        TRUNC (86400*(SYSDATE - rl.KEEP_ALIVE)) as delta" &_
630
                                             "   from run_level rl"&_
133 ghuddy 631
                                             "  where rl.rcon_id = "& rcon_id
632
 
633
                              Set rsQry2 = OraDatabase.DbCreateDynaset( query_string, ORADYN_DEFAULT )
634
 
635
                              currentRunLevel = -1
4487 dpurdie 636
                              pkgId = Null
637
                              pkgName = NULL
638
                              pkgPvid = NULL
639
                              daemonState = 0
640
                              delta = NULL
641
 
133 ghuddy 642
                              If (rsQry2.RecordCount > 0) Then
4487 dpurdie 643
                                ' Get the run level from the run_level table
644
                                currentRunLevel = rsQry2("current_run_level")
645
                                pkgId = rsQry2("current_pkg_id_being_built")
133 ghuddy 646
 
171 brianf 647
                                daemonState = rsQry2("pause")
4487 dpurdie 648
                                If IsNull(daemonState) Then daemonState = 0
649
                                If daemonState = "2" Then pkgId = Null
171 brianf 650
 
651
                                delta = rsQry2("delta")
652
                              End If
653
 
133 ghuddy 654
                              ' If we got an entry from the run_level table, try and use the pkg_id it contains, to obtain a
655
                              ' package name from the packages table
656
                              Dim rsQry3
4487 dpurdie 657
                              If NOT IsNull(pkgId) Then
4431 dpurdie 658
                                 query_string = " select pkg_name,rl.current_pv_id from run_level rl, packages pk"&_
133 ghuddy 659
                                                "  where rl.rcon_id = "& rcon_id &_
660
                                                "   and  rl.current_pkg_id_being_built = pk.pkg_id"
661
 
662
                                 Set rsQry3 = OraDatabase.DbCreateDynaset( query_string, ORADYN_DEFAULT )
663
                                 If (rsQry3.RecordCount > 0) Then
664
                                    pkgName = rsQry3("pkg_name")
4431 dpurdie 665
                                    pkgPvid = rsQry3("current_pv_id")
133 ghuddy 666
                                 End If
667
                                 rsQry3.Close()
668
                                 Set rsQry3 = nothing
669
                              End If
670
 
671
                              ' --- Now render HTML for this release configuration ---
127 ghuddy 672
                              %>
673
                              <tr>
5096 dpurdie 674
                                 <td colspan="7" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
127 ghuddy 675
                              </tr>
676
                              <tr>
163 brianf 677
                                 <td nowrap class="body_rowg"><%=rsQry("display_name")%></td>
127 ghuddy 678
                                 <td nowrap class="body_rowg"><%=rsQry("gbe_value")%></td>
679
                                 <td nowrap class="body_rowg"><%=Get_Daemon_Mode(rsQry("daemon_mode"))%></td>
171 brianf 680
                                 <td nowrap class="body_rowg"><%=Get_Run_Level(currentRunLevel, indefinitelyPaused,daemonState)%></td>
4431 dpurdie 681
                                 <td nowrap class="body_rowg"><%=Get_Package_Name(pkgName,parRtagId,pkgPvid)%></td>
4028 dpurdie 682
                                 <td nowrap class="body_rowg"><%=PrettyDelta(delta, daemonState,pkgName )%></td>
127 ghuddy 683
                                 <td nowrap class="body_rowg">
684
                                    <%
133 ghuddy 685
                                    If (rsQry2.RecordCount > 0) AND NOT indefinitelyPaused  Then
5061 dpurdie 686
                                       If objAccessControl.UserLogedIn AND canActionControlInProject("BuildControl") Then
4525 dpurdie 687
                                          If daemonState = 0 Then
127 ghuddy 688
                                             Call Action_Buttons ( "Daemon Pause" )
171 brianf 689
                                          ElseIf daemonState = 1 Then
690
                                             Call Action_Buttons ( "Daemon Resume" )
691
                                          ElseIf daemonState = 2 Then
692
                                             Call Action_Buttons ( "Daemon Start" )
127 ghuddy 693
                                          Else
694
                                             Call Action_Buttons ( "Daemon Resume" )
695
                                          End If
696
                                       Else
4525 dpurdie 697
                                          If daemonState = 0 Then
127 ghuddy 698
                                             Call Action_Buttons ( "Daemon Pause Disabled" )
171 brianf 699
                                          ElseIf daemonState = 1 Then
700
                                             Call Action_Buttons ( "Daemon Resume Disabled" )
701
                                          ElseIf daemonState = 2 Then
702
                                             Call Action_Buttons ( "Daemon Start Disabled" )
127 ghuddy 703
                                          Else
704
                                             Call Action_Buttons ( "Daemon Resume Disabled" )
705
                                          End If
706
                                       End If
707
                                    Else
708
                                       %>Unavailable<%
709
                                    End If
710
                                    %>
711
                                 </td>
712
                              </tr>
713
                              <%
133 ghuddy 714
                              rsQry2.Close()
715
                              Set rsQry2 = nothing
127 ghuddy 716
                              rsQry.MoveNext
717
                           Loop
718
                           %>
171 brianf 719
                           <tr>
720
                             <td valign="bottom" background="images/bg_table_col.gif" class="body_col"></td>
721
                             <td valign="bottom" nowrap background="images/bg_table_col.gif" class="body_col"></td>
722
                             <td valign="bottom" nowrap background="images/bg_table_col.gif" class="body_col"></td>
723
                             <td valign="bottom" background="images/bg_table_col.gif" class="body_col"></td>
724
                             <td valign="bottom" nowrap background="images/bg_table_col.gif" class="body_col"></td>
725
                             <td valign="bottom" nowrap background="images/bg_table_col.gif" class="body_col"></td>
726
                             <td valign="bottom" nowrap background="images/bg_table_col.gif" class="body_col">
727
                             <%
728
                               If (rsQry.RecordCount > 0) AND NOT indefinitelyPaused  Then
5061 dpurdie 729
                                 If objAccessControl.UserLogedIn AND canActionControlInProject("BuildControl") Then
171 brianf 730
                                   Call Action_Buttons ( "Daemon Control All" )
731
                                 Else 
732
                                   Call Action_Buttons ( "Daemon Control All Disabled" )
733
                                 End If
734
                               Else
735
                                 %>&nbsp<%
736
                               End If
737
                             %>
738
                             </td>
739
                           </tr>
740
                           <%
741
                             rsQry.Close()
742
                             Set rsQry = nothing
743
                           %>
127 ghuddy 744
                        </table>
745
                     </td>
746
                     <td background="images/lbox_bgside_white.gif">&nbsp;</td>
121 hknight 747
                  </tr>
748
                  <tr>
127 ghuddy 749
                     <input type="hidden" name="action" value="true">
750
                     <%=objPMod.ComposeHiddenTags()%>
751
                     <td background="images/lbox_bg_blue.gif" valign="bottom"><img src="images/lbox_bl_cnr_b.gif" width="13" height="13"></td>
752
                     <td background="images/lbox_bg_blue.gif"></td>
753
                     <td background="images/lbox_bg_blue.gif" valign="bottom" align="right"><img src="images/lbox_br_cnr_b.gif" width="13" height="13"></td>
121 hknight 754
                  </tr>
127 ghuddy 755
               </table>
147 ghuddy 756
 
4487 dpurdie 757
               <!-- Daemon Instructions Display -->
147 ghuddy 758
               <table width="10" border="0" cellspacing="0" cellpadding="0">
759
                  <tr>
760
                     <td width="1%"></td>
761
                     <td width="100%">
762
                        <table width="100%" border="0" cellspacing="0" cellpadding="0">
763
                           <tr>
764
                              <td nowrap class="form_ttl"><p>&nbsp;</p>
765
                                 <p>DAEMON INSTRUCTIONS FOR THIS RELEASE</p>
766
                              </td>
767
                              <td align="right" valign="bottom"></td>
768
                           </tr>
769
                        </table>
770
                     </td>
771
                     <td width="1%"></td>
772
                  </tr>
773
                  <tr>
774
                     <td align="left" valign="top" background="images/lbox_bg_blue.gif"><img src="images/lbox_tl_cnr_b.gif" width="13" height="13"></td>
775
                     <td background="images/lbox_bg_blue.gif" class="lbox_ttl_w"><img src="images/h_trsp_dot.gif" width="600" height="15"></td>
776
                     <td align="right" valign="top" background="images/lbox_bg_blue.gif"><img src="images/lbox_tr_cnr_b.gif" width="13" height="13"></td>
777
                  </tr>
778
                  <tr>
5096 dpurdie 779
                     <td bgcolor="#FFFFFF"><img src="images/h_trsp_dot.gif" width="10" ></td>
147 ghuddy 780
                     <td bgcolor="#FFFFFF" valign="top">
781
                        <table width="100%" border="0" cellspacing="2" cellpadding="0">
782
                           <tr>
5096 dpurdie 783
                              <td align="left" nowrap background="images/bg_table_col.gif" class="body_col">Operation</td>
784
                              <td align="left" nowrap background="images/bg_table_col.gif" class="body_col">Package</td>
785
                              <td align="left" nowrap background="images/bg_table_col.gif" class="body_col">Version</td>
786
                              <td align="left" nowrap background="images/bg_table_col.gif" class="body_col">Scheduled Time<%=Quick_Help("h_shedtime")%>
787
                              <td align="left" nowrap background="images/bg_table_col.gif" class="body_col">Repeat</td>
788
                              <td align="left" nowrap background="images/bg_table_col.gif" class="body_col">In Progress</td>
147 ghuddy 789
                           </tr>
790
                           <%
791
                           Dim PkgVersion
792
                           Dim UserName
793
                           Dim UserEmail
794
                           Dim bInProgress
795
                           Dim bIsOverdue
796
                           Dim bIsReady
797
 
798
                           Set rsQry = OraDatabase.DbCreateDynaset( "SELECT DAEMON_INSTRUCTIONS_ID,"&_
799
                                                                  "       OP_CODE,"&_
800
                                                                  "       RTAG_ID,"&_
801
                                                                  "       PV_ID,"&_
802
                                                                  "       SCHEDULED_DATETIME,"&_
803
                                                                  "       REPEAT_SECS,"&_
804
                                                                  "       ADDED_DATETIME,"&_
805
                                                                  "       USER_ID,"&_
806
                                                                  "       IN_PROGRESS,"&_
807
                                                                  "       (CASE WHEN SCHEDULED_DATETIME <= SYSDATE THEN 1 ELSE 0 END) AS READY,"&_
808
                                                                  "       (CASE WHEN (SCHEDULED_DATETIME + (1/144)) < SYSDATE THEN 1 ELSE 0 END) AS OVERDUE"&_
809
                                                                  "  FROM DAEMON_INSTRUCTIONS "&_
810
                                                                  "  WHERE RTAG_ID = "& parRtagId &_
811
                                                                  "  ORDER BY PV_ID, SCHEDULED_DATETIME, DAEMON_INSTRUCTIONS_ID", ORADYN_DEFAULT )
812
                           While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
813
 
814
                              If IsNull(rsQry("IN_PROGRESS")) OR rsQry("IN_PROGRESS") = "0" Then
815
                                 bInProgress = False
816
                              Else
817
                                 bInProgress = True
818
                              End If
819
 
820
                              ' only flag as overdue if time threshold has been met but the daemon has not marked the instruction as being in progress.
821
                              If rsQry("OVERDUE") AND NOT bInProgress Then
822
                                 bIsOverdue = True
823
                              Else
824
                                 bIsOverdue = False
825
                              End If
826
 
827
                              If rsQry("READY") Then
828
                                 bIsReady = True
829
                              Else
830
                                 bIsReady = False
831
                              End If
832
 
833
                              ' Get as much info about the package as we can
834
                              PkgId = 0
835
                              PkgName = "N/A"
836
                              PkgVersion = "N/A"
837
                              If (NOT IsNull(rsQry("PV_ID"))) AND (rsQry("PV_ID") <> "") Then
838
                                 Call Get_Pkg_Short_Info(rsQry("PV_ID"), PkgId, PkgName, PkgVersion, NULL, NULL, NULL)
839
                              End If
840
 
841
                              %>
842
                              <tr>
843
 
844
                                 <td align="left" valign="top" class="body_txt">
845
                                    <%=DaemonInstructionOperationName(rsQry("OP_CODE"))%>
846
                                 </td>
847
 
848
                                 <td align="left" valign="top" class="body_txt">
849
                                    <%If (NOT IsNull(rsQry("PV_ID"))) AND (rsQry("PV_ID") <> "") Then%>
850
                                       <a href='fixed_issues.asp?rtag_id=<%=rsQry("RTAG_ID")%>&pv_id=<%=rsQry("PV_ID")%>'><%=PkgName%>
851
                                    <%Else%>
852
                                       <%=PkgName%>
853
                                    <%End If%>
854
                                 </td>
855
 
856
                                 <td align="left" valign="top" class="body_txt">
857
                                    <%=PkgVersion%>
858
                                 </td>
859
 
860
                                 <td align="left" valign="top" class="body_txt" <%If bIsOverdue Then%>style=color:Red<%Elseif bIsReady Then%>style=color:Green<%End If%>><%=EuroDateTime(rsQry("SCHEDULED_DATETIME"))%></td>
861
 
862
                                 <td align="left" valign="top" class="body_txt"><%=DaemonInstructionRepeatString(rsQry("OP_CODE"), rsQry("REPEAT_SECS"))%></td>
863
 
864
                                 <td align="left" valign="top" class="body_txt">
865
                                    <%If bInProgress Then%>
866
                                       YES
867
                                    <%Else%>
868
                                       NO
869
                                    <%End If%>
870
                                 </td>
871
                              </tr>
872
                              <tr>
873
                                 <td colspan="6" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
874
                              </tr>
875
                              <%
876
                              rsQry.MoveNext()
877
                           Wend
878
                           rsQry.Close()
879
                           Set rsQry = nothing
880
                           %>
881
                        </table>
882
                     </td>
883
                     <td background="images/lbox_bgside_white.gif">&nbsp;</td>
884
                  </tr>
885
                  <tr>
886
                     <td background="images/lbox_bg_blue.gif" valign="bottom"><img src="images/lbox_bl_cnr_b.gif" width="13" height="13"></td>
887
                     <td background="images/lbox_bg_blue.gif"></td>
888
                     <td background="images/lbox_bg_blue.gif" valign="bottom" align="right"><img src="images/lbox_br_cnr_b.gif" width="13" height="13"></td>
889
                  </tr>
890
               </table>
891
 
127 ghuddy 892
            </td>
893
            <td width="1" valign="top"><img src="images/h_trsp_dot.gif" width="1" height="1"></td>
894
         </tr>
895
         <tr>
4756 dpurdie 896
            <td valign="bottom" align="center" background="images/bg_home_orange.gif">
897
                <img src="images/img_gear.gif" width="86" height="99" vspace="20" hspace="30">
898
            </td>
899
            <td background="images/bg_lght_gray.gif" valign="top"><img src="images/h_trsp_dot.gif" width="1" height="350">
900
            </td>
127 ghuddy 901
         </tr>
902
      </table>
903
      <!-- FOOTER -->
904
      <!--#include file="_footer.asp"-->
905
   </body>
119 ghuddy 906
</html>
907
<%
908
Call Destroy_All_Objects
909
%>