Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
147 ghuddy 1
 
2
<%@LANGUAGE="VBSCRIPT"%>
3
<%
4
'=====================================================
5
'|                                                   |
6
'|         ADMIN Build Status Information            |
7
'|                                                   |
8
'=====================================================
9
%>
10
<%
11
Option explicit
12
' Good idea to set when using redirect
13
Response.Expires = 0  ' always load the page, dont store
14
%>
15
<!--#include file="common/conf.asp"-->
16
<!--#include file="common/globals.asp"-->
17
<!--#include file="common/formating.asp"-->
18
<!--#include file="common/qstr.asp"-->
19
<!--#include file="common/common_subs.asp"-->
20
<!--#include file="common/_form_window_common.asp"-->
21
<!--#include file="_action_buttons.asp"-->
22
<!--#include file="class/classActionButtonControl.asp"-->
23
<%
24
' Set rfile parameter. This is a return page after Login
25
Call objPMod.StoreParameter ( "rfile", "rtree.asp" )
26
%>
27
<%
28
'------------ ACCESS CONTROL ------------------
29
%>
30
<!--#include file="_access_control_general.asp"-->
31
<%
32
'------------ Variable Definition -------------
33
Dim rsQry
34
Dim query_string
35
Dim styleAlt1
36
Dim styleAlt2
37
Dim styleNow
38
Dim param_refreshPeriod
39
Dim param_refreshEnabled
40
Dim bIndefinitelyPaused
41
'------------ Constants Declaration -----------
42
Const Min_Refresh_Time = 10
43
'------------ Variable Init -------------------
44
 
45
styleAlt1="class='body_rowg1'"
46
styleAlt2="class='body_rowg2'"
47
styleNow = styleAlt1
48
 
49
 
50
'----------------------------------------------
51
%>
52
<%
53
'--------------------------------------------------------------------------------------------------------------------------
54
 
55
'--------------------------------------------------------------------------------------------------------------------------
56
' Toggle row style between the two alternative styles
57
Sub ToggleStyleNow
58
   If styleNow = styleAlt1 Then
59
      styleNow = styleAlt2
60
   Else
61
      styleNow = styleAlt1
62
   End If
63
End Sub
64
'--------------------------------------------------------------------------------------------------------------------------
65
' Convert run level into a meaningful string
66
Function Get_Run_Level( nLevel, indefinitePause )
67
 
68
   If indefinitePause Then
69
      Get_Run_Level = "<span class='err_alert'>Stopped</span>"
70
   Else
71
      If nLevel = 1 Then
72
         Get_Run_Level = "Cannot Continue"
73
      ElseIf nLevel = 2 Then
74
         Get_Run_Level = "Paused"
75
      ElseIf nLevel = 3 Then
76
         Get_Run_Level = "Actively engaged in a build"
77
      ElseIf nLevel = 4 Then
78
         Get_Run_Level = "Idle"
79
      ElseIf nLevel = 5 Then
80
         Get_Run_Level = "Waiting"
81
      ElseIf nLevel = 6 Then
82
         Get_Run_Level = "Publishing"
83
      Else
84
         Get_Run_Level = "<span class='err_alert'>Unknown!</span>"
85
      End If
86
   End If
87
End Function
88
'--------------------------------------------------------------------------------------------------------------------------
89
' Is a build occurring for this dataset/row ?
90
Function Is_Actively_Building( nPkgId )
91
   Is_Actively_Building = False
92
   If (NOT IsNull(nPkgId)) AND (nPkgId <> "") Then
93
      Is_Actively_Building = True
94
   End If
95
End Function
96
'--------------------------------------------------------------------------------------------------------------------------
97
' Return True if the paramter values represent a possibly hung daemon
98
Function Daemon_Delta_Threshold_Exceeded( nDelta )
99
   Daemon_Delta_Threshold_Exceeded = False
100
   If (nDelta > 600) Then
101
      Daemon_Delta_Threshold_Exceeded = True
102
   End If
103
End Function
104
 
105
'--------------------------------------------------------------------------------------------------------------------------
106
' Return True if the paramter values represent a paused daemon
107
Function Is_Paused( nLevel, indefinitePause )
108
   If indefinitePause Then
109
      Is_Paused = True
110
   Else
111
      If nLevel = 2 Then
112
         Is_Paused = True
113
      Else
114
         Is_Paused = False
115
      End If
116
   End If
117
End Function
118
'--------------------------------------------------------------------------------------------------------------------------
119
' Convert daemon mode into a meaningful string
120
Function Get_Daemon_Mode( nMode )
121
   If nMode = "M" Then
122
      Get_Daemon_Mode = "Master"
123
   ElseIf nMode = "S" Then
124
      Get_Daemon_Mode = "Slave"
125
   Else
126
      Get_Daemon_Mode = "?"
127
   End If
128
End Function
129
 
130
'--------------------------------------------------------------------------------------------------------------------------
131
' Return HTML for a seperator line between rows in the table
132
Function HTML_Row_Divider( projectChanged, projectChecked, releaseChanged, last_row_displayed )
133
   Dim s
134
   s = ""
135
   If projectChanged Then
136
      s = s + "<tr>"
137
      s = s + "   <td colspan='8'><img src='images/spacer.gif' width='1' height='5'></td>"
138
      s = s + "</tr>"
139
      s = s + "<tr>"
140
      s = s + "   <td colspan='8' background='images/bg_rep_line.gif'><img src='images/spacer.gif' width='1' height='5'></td>"
141
      s = s + "</tr>"
142
   Else
143
      if projectChecked = "checked" AND last_row_displayed = True Then
144
         s = s + "<tr>"
145
         If releaseChanged Then
146
            s = s + "<td></td>"
147
            s = s + "<td colspan='7' background='images/bg_rep_line.gif'><img src='images/spacer.gif' width='1' height='1'></td>"
148
         Else
149
            s = s + "<td></td>"
150
            s = s + "<td colspan='7' background='images/bg_rep_line.gif'><img src='images/spacer.gif' width='1' height='1'></td>"
151
         End If
152
         s = s + "</tr>"
153
      End If
154
   End If
155
   HTML_Row_Divider = s
156
End Function
157
'--------------------------------------------------------------------------------------------------------------------------
158
' Use this function to determine the state of a specified project checkbox
159
Function Is_Project_Checked( nProjId )
160
   Dim hiddenProjects_arr
161
   Dim hiddenProjects
162
   Dim str
163
 
164
   hiddenProjects = Request("HideProj")
165
   Is_Project_Checked = "checked"
166
 
167
   hiddenProjects_arr = Split(hiddenProjects, ",")
168
   For Each str in hiddenProjects_arr
169
      If str = nProjId Then
170
         Is_Project_Checked = ""
171
         Exit For
172
      End If
173
   Next
174
End Function
175
'--------------------------------------------------------------------------------------------------------------------------
176
' Use this function to set/clear the filter on/off radio button checked state
177
' Format of Filter Param : Filter=ON,[problemDaemonSets}[,ActiveBuilds] | OFF
178
Function Display_Filtered(id)
179
   Dim filter
180
 
181
   Display_Filtered = ""
182
 
183
   filter  = Request("Filter")
184
   If NOT IsNull(filter) AND filter <> "" Then
185
      If InStr(filter, id) > 0 Then
186
         Display_Filtered = "checked"
187
      End If
188
   Else
189
      If id = "OFF" Then
190
         Display_Filtered = "checked"
191
      End If
192
   End If
193
End Function
194
 
195
Function Display_Filter_Is_On()
196
   If Display_Filtered("ON") = "checked" Then
197
      Display_Filter_Is_On = True
198
   Else
199
      Display_Filter_Is_On = False
200
   End If
201
End Function
202
'--------------------------------------------------------------------------------------------------------------------------
203
' Use this function to set/clear a filter option check box with the given ID
204
Function Filter_Checked(id)
205
   Dim filter
206
 
207
   Filter_Checked = ""
208
 
209
   filter  = Request("Filter")
210
   If NOT IsNull(filter) AND filter <> "" Then
211
      If InStr(filter, id) > 0 Then
212
         Filter_Checked = "checked"
213
      End If
214
   End If
215
End Function
216
'--------------------------------------------------------------------------------------------------------------------------
217
' Test to see if a particular filter option is on
218
Function Filter_Is_On(id)
219
   If Display_Filter_Is_On() Then
220
      If Filter_Checked(id) = "checked" Then
221
         Filter_Is_On = True
222
      Else
223
         Filter_Is_On = False
224
      End If
225
   Else
226
      Filter_Is_On = False
227
   End If
228
End Function
229
'--------------------------------------------------------------------------------------------------------------------------
230
' Get name of package given its ID. Return empty string if not able to do so.
231
Function Get_Pkg_Name( nPkgId )
232
   Dim rsQry2
233
   Dim query_string2
234
 
235
   Get_Pkg_Name = ""
236
   If (NOT IsNull(nPkgId)) AND (nPkgId <> "") Then
237
 
238
      query_string2 = "SELECT pkg.PKG_NAME " &_
239
                     "  FROM PACKAGES pkg" &_
240
                     " WHERE pkg.PKG_ID = " & nPkgId
241
 
242
      Set rsQry2 = OraDatabase.DbCreateDynaset( query_string2, ORADYN_DEFAULT )
243
      If rsQry2.RecordCount > 0 Then
244
         Get_Pkg_Name = rsQry2("pkg_name")
245
      End If
246
      rsQry2.Close()
247
      Set rsQry2 = nothing
248
   End If
249
End Function
250
'--------------------------------------------------------------------------------------------------------------------------
251
Function Indefinitely_Paused()
252
   Dim rsQry2
253
   Dim query_string2
254
 
255
   Indefinitely_Paused = False
256
 
257
   query_string2 = " select * from run_level_schedule rls where rls.indefinite_pause = 'P'"
258
 
259
   Set rsQry2 = OraDatabase.DbCreateDynaset( query_string2, ORADYN_DEFAULT )
260
   If rsQry2.RecordCount > 0 Then
261
      Indefinitely_Paused = True
262
   End If
263
End Function
264
'--------------------------------------------------------------------------------------------------------------------------
265
 
266
%>
267
<%
268
'------------ RUN BEFORE PAGE RENDER ----------
269
 
270
' Default values for Auto Refresh checkbox and edit input box
271
param_refreshEnabled = False
272
param_refreshPeriod  = "0"
273
 
274
' Read the Refresh parameter which is of the form Refresh=<time-period>,ON|OFF
275
Dim param_refresh
276
param_refresh = Request("Refresh")
277
If param_refresh <> "" Then
278
   Dim pr_arr
279
   pr_arr = Split(param_refresh,",")
280
   param_refreshPeriod = pr_arr(0)
281
 
282
   ' Range check and end-stop the refresh period if necessary
283
   If CInt(param_refreshPeriod)  < Min_Refresh_Time Then
284
      param_refreshPeriod  = CStr(Min_Refresh_Time)
285
   End If
286
 
287
   ' determine checkbox state
288
   If UBound(pr_arr) >= 1 Then
289
      If InStr(UCase(pr_arr(1)), "ON") > 0 Then
290
         param_refreshEnabled = True
291
      Else
292
         param_refreshEnabled = False
293
      End If
294
   End If
295
End If
296
 
297
' Get indefinite pause status
298
bIndefinitelyPaused = Indefinitely_Paused()
299
 
300
'----------------------------------------------
301
%>
302
<script language="JavaScript" type="text/javascript">
303
<!--
304
 
305
//////////////////////////////////////////////////////////////////////////////////////////////////
306
// This function rebuilds the query string so that it either adds or removes the specified project ID from
307
// the HideProj= part of it, whilst leaving the rest of the string intact. The browser location is then
308
// updated and the server made to re-render the page. This function must be used from the project checkboxes
309
// to show/hide daemon status informaton for specific projects.
310
//////////////////////////////////////////////////////////////////////////////////////////////////
311
function toggle_project( proj_id )
312
{
313
   var found = false;
314
   var new_url_query_string = '';
315
   var new_hp_list = '';
316
 
317
   // get the full query string
318
   var url_query_string = '<%=Request.ServerVariables("QUERY_STRING")%>';
319
 
320
   // split it into each parameter
321
   var qs_arr = url_query_string.split('&');
322
   var i_qs_arr;
323
   for (i_qs_arr in qs_arr)
324
   {
325
      var qs_str = qs_arr[i_qs_arr];
326
 
327
      if (qs_str.length > 0)
328
      {
329
         // if we have found the HideProj parameter
330
         if (qs_str.indexOf('HideProj') >= 0)
331
         {
332
            // Split the HideProj parameter at the = symbol in order to process the comma seperated list of project IDs
333
            var qs_hp_arr;
334
            qs_hp_arr = qs_str.split('=');
335
            if (qs_hp_arr.length > 1)
336
            {
337
               // Split the comma seperated list of project IDs, and iterate through each item
338
               var hp_arr = qs_hp_arr[1].split(',');
339
               var i_hp_arr;
340
               for (i_hp_arr in hp_arr)
341
               {
342
                  var hp_str = hp_arr[i_hp_arr];
343
 
344
                  // If the item matches the specified project ID and the checkbox for that project is unchecked
345
                  if (hp_str == proj_id)
346
                  {
347
                     found = true;
348
                  }
349
                  else
350
                  {
351
                     // retain this other project ID in the list
352
                     if (new_hp_list != '')
353
                        new_hp_list += ',';
354
                     new_hp_list += hp_str;
355
                  }
356
               }
357
            }
358
         }
359
         else
360
         {
361
            // feed the existing paramter to the new query string
362
            if (new_url_query_string == '')
363
               new_url_query_string += '?';
364
            else
365
               new_url_query_string += '&';
366
            new_url_query_string += qs_str
367
         }
368
      }
369
   }
370
 
371
   // If the specified project ID was not found, then that project is not currently hidden
372
   // and must now be hidden, so add its number to the list to hide it on the next server side
373
   // page render operation
374
   if (!found)
375
   {
376
      if (new_hp_list != '')
377
         new_hp_list += ',';
378
      new_hp_list += proj_id
379
   }
380
 
381
   // Prepare the new query string
382
   if (new_url_query_string == '')
383
      new_url_query_string += '\?';
384
   else
385
      new_url_query_string += '\&';
386
 
387
   new_url_query_string += 'HideProj=';
388
   new_url_query_string += new_hp_list;
389
 
390
   // reload the page with the new query string
391
   var url = location.pathname + new_url_query_string;
392
   window.location.assign(url);
393
}
394
 
395
//////////////////////////////////////////////////////////////////////////////////////////////////
396
// This function rebuilds the query string to either hide all projects, or unhide all projects
397
// fromt he display
398
//////////////////////////////////////////////////////////////////////////////////////////////////
399
function toggle_all_projects(bAll)
400
{
401
   var new_url_query_string = '';
402
   var list_proj_ids = '';
403
 
404
   // If hiding all, then find all of the project enable/disable checkboxes, get the project ID
405
   // values from each one and accumulate them into a comma seperated list
406
   if (!bAll)
407
   {
408
      var inputs = document.getElementsByTagName('input');
409
      var i;
410
      for (i = 0; i < inputs.length; i++)
411
      {
412
         var str = inputs[i].name;
413
         if (str.indexOf("DIS_PRJ_") >= 0)
414
         {
415
            str = str.replace("DIS_PRJ_","");
416
            if (list_proj_ids != '')
417
               list_proj_ids += ',' + str;
418
            else
419
               list_proj_ids += str;
420
         }
421
      }
422
   }
423
 
424
   // get the full query string
425
   var url_query_string = '<%=Request.ServerVariables("QUERY_STRING")%>';
426
 
427
   // split it into each parameter
428
   var qs_arr = url_query_string.split('&');
429
   var i_qs_arr;
430
   for (i_qs_arr in qs_arr)
431
   {
432
      var qs_str = qs_arr[i_qs_arr];
433
 
434
      if (qs_str.length > 0)
435
      {
436
         // if we have found the HideProj parameter
437
         if (qs_str.indexOf('HideProj') >= 0)
438
         {
439
            // do nothing
440
         }
441
         else
442
         {
443
            // feed the existing paramter to the new query string
444
            if (new_url_query_string == '')
445
               new_url_query_string += '?';
446
            else
447
               new_url_query_string += '&';
448
            new_url_query_string += qs_str
449
         }
450
      }
451
   }
452
 
453
   // Prepare the new query string, only adding the HideProj parameter if the function is being
454
   // used to hide all projects
455
   if (!bAll)
456
   {
457
      if (new_url_query_string == '')
458
         new_url_query_string += '\?';
459
      else
460
         new_url_query_string += '\&';
461
 
462
      new_url_query_string += 'HideProj=' + list_proj_ids;
463
   }
464
   // reload the page with the new query string
465
   var url = location.pathname + new_url_query_string;
466
   window.location.assign(url);
467
}
468
 
469
//////////////////////////////////////////////////////////////////////////////////////////////////
470
// This function rebuilds the query string so that it either adds or removes the Refresh parameter
471
//////////////////////////////////////////////////////////////////////////////////////////////////
472
function toggle_refresh()
473
{
474
   var new_url_query_string = '';
475
 
476
   // get the full query string
477
   var url_query_string = '<%=Request.ServerVariables("QUERY_STRING")%>';
478
 
479
   // split it into each parameter
480
   var qs_arr = url_query_string.split('&');
481
   var i_qs_arr;
482
   for (i_qs_arr in qs_arr)
483
   {
484
      var qs_str = qs_arr[i_qs_arr];
485
 
486
      if (qs_str.length > 0)
487
      {
488
         // if we have found the Refresh parameter
489
         if (qs_str.indexOf('Refresh') >= 0)
490
         {
491
            // do nothing
492
         }
493
         else
494
         {
495
            // feed the existing paramter to the new query string
496
            if (new_url_query_string == '')
497
               new_url_query_string += '?';
498
            else
499
               new_url_query_string += '&';
500
            new_url_query_string += qs_str
501
         }
502
      }
503
   }
504
 
505
   // Prepare the new query string
506
 
507
   if (new_url_query_string == '')
508
      new_url_query_string += '\?';
509
   else
510
      new_url_query_string += '\&';
511
 
512
   new_url_query_string += 'Refresh=';
513
   if (document.getElementById('refreshPeriod').value < <%=Min_Refresh_Time%>)
514
   {
515
      document.getElementById('refreshPeriod').value = <%=Min_Refresh_Time%>;
516
      new_url_query_string += <%=Min_Refresh_Time%>;
517
   }
518
   else
519
      new_url_query_string += document.getElementById('refreshPeriod').value;
520
 
521
   if (document.getElementById('autoRefresh').checked)
522
      new_url_query_string += ',ON';
523
   else
524
      new_url_query_string += ',OFF';
525
 
526
 
527
   // reload the page with the new query string
528
   var url = location.pathname + new_url_query_string;
529
   window.location.assign(url);
530
}
531
 
532
//////////////////////////////////////////////////////////////////////////////////////////////////
533
// This function rebuilds the query string so that it either adds the Filter parameter
534
// according to the value of the radio button set used to control it
535
//////////////////////////////////////////////////////////////////////////////////////////////////
536
function toggle_Display_Filtered(newValue)
537
{
538
   var new_url_query_string = '';
539
 
540
   // get the full query string
541
   var url_query_string = '<%=Request.ServerVariables("QUERY_STRING")%>';
542
 
543
   // split it into each parameter
544
   var qs_arr = url_query_string.split('&');
545
   var i_qs_arr;
546
   for (i_qs_arr in qs_arr)
547
   {
548
      var qs_str = qs_arr[i_qs_arr];
549
 
550
      if (qs_str.length > 0)
551
      {
552
         // if we have found the Display parameter
553
         if (qs_str.indexOf('Filter') >= 0)
554
         {
555
            // do nothing
556
         }
557
         else
558
         {
559
            // feed the existing paramter to the new query string
560
            if (new_url_query_string == '')
561
               new_url_query_string += '?';
562
            else
563
               new_url_query_string += '&';
564
            new_url_query_string += qs_str
565
         }
566
      }
567
   }
568
 
569
   // Prepare the new query string
570
   if (new_url_query_string == '')
571
      new_url_query_string += '\?';
572
   else
573
      new_url_query_string += '\&';
574
 
575
   new_url_query_string += 'Filter=';
576
   new_url_query_string += newValue;
577
 
578
   if (document.getElementById('problemDaemonSets').checked)
579
   {
580
      new_url_query_string += ',problemDaemonSets';
581
   }
582
 
583
   if (document.getElementById('activeBuilds').checked)
584
   {
585
      new_url_query_string += ',activeBuilds';
586
   }
587
 
588
   // reload the page with the new query string
589
   var url = location.pathname + new_url_query_string;
590
   window.location.assign(url);
591
}
592
 
593
//////////////////////////////////////////////////////////////////////////////////////////////////
594
// Rebuild the query string and reload the page based on the current setting of the filter
595
// radio buttons
596
//////////////////////////////////////////////////////////////////////////////////////////////////
597
function update_Display_Filter()
598
{
599
   if (document.getElementById('displayfiltered_off').checked)
600
      toggle_Display_Filtered("OFF");
601
   else
602
      toggle_Display_Filtered("ON");
603
}
604
 
605
//-->
606
</script>
607
 
608
<html>
609
   <head>
610
      <title>Release Manager</title>
611
      <meta http-equiv="Pragma" content="no-cache">
612
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
613
      <%If param_refreshEnabled AND param_RefreshPeriod <> 0 Then%>
614
         <META HTTP-EQUIV=REFRESH CONTENT=<%=param_RefreshPeriod%>>
615
      <%End If%>
616
      <link rel="stylesheet" href="images/release_manager_style.css" type="text/css">
617
      <link rel="stylesheet" href="images/navigation.css" type="text/css">
618
      <script language="JavaScript" src="images/common.js"></script>
619
      <!-- DROPDOWN MENUS -->
620
      <!--#include file="_menu_def.asp"-->
621
      <script language="JavaScript1.2" src="images/popup_menu.js"></script>
622
   </head>
623
   <body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0" >
624
      <!-- MENU LAYERS -------------------------------------->
625
      <div id="popmenu" class="menuskin" onmouseover="clearhidemenu();highlightmenu(event,'on')" onmouseout="highlightmenu(event,'off');dynamichide(event)"></div>
626
      <!-- TIPS LAYERS -------------------------------------->
627
      <div id="formTipsLayer" style="position: absolute; z-index: 1000; visibility: hidden; left:0; top: 0; width: 10">&nbsp;</div>
628
      <!----------------------------------------------------->
629
      <!-- HEADER -->
630
      <!--#include file="_header.asp"-->
631
      <!-- BODY ---->
632
      <table width="100%" border="0" cellspacing="0" cellpadding="0">
633
         <tr>
634
            <td width="1" background="images/bg_home_orange.gif" valign="top"></td>
635
            <td width="100%" rowspan="2" align="center" valign="top" bgcolor="#EEEFEF">
636
 
637
               <table width="10" border="0" cellspacing="0" cellpadding="0">
638
                  <tr>
639
                     <td width="1%"></td>
640
                     <td width="100%">
641
                        <table width="100%" border="0" cellspacing="0" cellpadding="0">
642
                           <tr>
643
                              <td nowrap class="form_ttl"><p>&nbsp;</p>
644
                                 <p>BUILD DAEMON STATUS INFORMATION</p>
645
                              </td>
646
                              <td align="right" valign="bottom"></td>
647
                           </tr>
648
 
649
                           <tr>
650
                              <td width="100%">
651
                                 <fieldset style="width:700px;">
652
                                    <legend><a href="javascript:;" class="body_scol" >&nbsp;Monitoring&nbsp;Options</a></legend>
653
                                    <table width="100%" border="0" cellspacing="1" cellpadding="3">
654
                                       <tr>
655
                                          <td valign="top" width="200px" nowrap background="images/bg_table_col.gif" class="body_col">Auto Refresh</td>
656
                                          <td valign="top" width="100px" nowrap background="images/bg_table_col.gif" class="body_col">Filter</td>
657
                                          <td valign="top" width="200px" nowrap background="images/bg_table_col.gif" class="body_col">Filter Options</td>
658
                                       </tr>
659
 
660
                                       <tr>
661
                                          <td class="body_rowg">
662
                                             <input name="autoRefresh" id="autoRefresh" type="checkbox" <%If param_refreshEnabled Then%>checked<%End If%> value="1" onclick='toggle_refresh()'>
663
                                             <input style="width:50px" name="refreshPeriod" id="refreshPeriod" type="input" maxlength="3" value=<%=param_refreshPeriod%> onchange='toggle_refresh()' >Seconds (min. 10)
664
                                          </td>
665
                                          <td class="body_rowg">
666
                                             <input type="radio" name="displayfiltered" id="displayfiltered_off" value="OFF" <%=Display_Filtered("OFF")%> onclick="toggle_Display_Filtered('OFF')" >Off
667
                                             <input type="radio" name="displayfiltered" id="displayfiltered_on"  value="ON"  <%=Display_Filtered("ON")%>  onclick="toggle_Display_Filtered('ON')"  >On
668
                                          </td>
669
                                          <td class="body_rowg">
670
                                             <input name="activeBuilds" id="activeBuilds" type="checkbox" <%=Filter_Checked("activeBuilds")%> value="activeBuilds" onclick='update_Display_Filter()'>Active Builds
671
                                             <input name="problemDaemonSets"  id="problemDaemonSets"  type="checkbox" <%=Filter_Checked("problemDaemonSets")%>  value="problemDaemonSets"  onclick='update_Display_Filter()'>Problem Daemon Sets
672
                                          </td>
673
                                       </tr>
674
                                       <tr>
675
                                          <td class="body_rowg">
676
                                          </td>
677
                                          <td class="body_rowg">
678
                                          </td>
679
                                       </tr>
680
                                    </table>
681
                                 </fieldset>
682
                              </td>
683
                           </tr>
684
                           <%If bIndefinitelyPaused Then%>
685
                              <tr>
686
                                 <td>
687
                                    <span class='err_alert'>
688
                                       <font size='2'><b>WARNING: Indefinite Pause, Build Daemons are all stopped - please contact an administrator</b></font>
689
                                    </span>
690
                                 </td>
691
                              </tr>
692
                           <%End If%>
693
                        </table>
694
                     </td>
695
                     <td width="1%"></td>
696
                  </tr>
697
                  <tr>
698
                     <td align="left" valign="top" background="images/lbox_bg_blue.gif"><img src="images/lbox_tl_cnr_b.gif" width="13" height="13"></td>
699
                     <td background="images/lbox_bg_blue.gif" class="lbox_ttl_w"><img src="images/h_trsp_dot.gif" width="600" height="15"></td>
700
                     <td align="right" valign="top" background="images/lbox_bg_blue.gif"><img src="images/lbox_tr_cnr_b.gif" width="13" height="13"></td>
701
                  </tr>
702
                  <tr>
703
                     <td bgcolor="#FFFFFF"><img src="images/h_trsp_dot.gif" width="10" height="100"></td>
704
                     <td bgcolor="#FFFFFF" valign="top">
705
                        <!-- MESSAGE +++++++++++++++++++++++++++++++++++++++++++++++++++ -->
706
                        <!--#include file="messages/_msg_inline.asp"-->
707
                        <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
708
                        <br>
709
                        <table width="100%" border="0" cellspacing="0" cellpadding="0">
710
                           <td width="9%" valign="top"></td>
711
                           <tr>
712
                              <td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Project
713
                                 <input name="NOPRJ" id="NOPRJ" type="Button" value="All" onclick="toggle_all_projects(1)">
714
                                 <input name="NOPRJ" id="NOPRJ" type="Button" value="None" onclick="toggle_all_projects(0)">
715
                              </td>
716
                              <td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Release</td>
717
                              <td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Release<br>Mode</td>
718
                              <td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Daemon<br>Mode</td>
719
                              <td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Daemon<br>Hostname</td>
720
                              <td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Daemon<br>State</td>
721
                              <td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Building<br>Package</td>
722
                              <td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Last Change<br>Delta (secs)</td>
723
                           </tr>
724
                           <%
725
 
726
                           query_string = "SELECT rc.RCON_ID, " &_
727
                                          "       rc.RTAG_ID, " &_
728
                                          "       rc.DAEMON_HOSTNAME, " &_
729
                                          "       rc.DAEMON_MODE, "&_
730
                                          "       rt.RTAG_NAME, " &_
731
                                          "       rt.OFFICIAL, " &_
732
                                          "       p.PROJ_ID, " &_
733
                                          "       p.PROJ_NAME, " &_
734
                                          "       rl.CURRENT_PKG_ID_BEING_BUILT, "&_
735
                                          "       rl.CURRENT_RUN_LEVEL, "&_
736
                                          "       rl.PAUSE, " &_
737
                                          "       TRUNC (86400*(SYSDATE - rl.KEEP_ALIVE)) as delta" &_
738
                                          "  FROM release_config rc, release_tags rt, projects p, run_level rl " &_
739
                                          " WHERE rt.RTAG_ID = rc.RTAG_ID " &_
740
                                          "   AND rc.DAEMON_HOSTNAME is not null" &_
741
                                          "   AND rt.PROJ_ID = p.PROJ_ID " &_
742
                                          "   AND rt.OFFICIAL != 'A' " &_
743
                                          "   AND rt.OFFICIAL != 'Y' " &_
744
                                          "   AND rl.RCON_ID = rc.RCON_ID" &_
745
                                          " ORDER BY p.PROJ_NAME, rt.RTAG_NAME, rc.DAEMON_MODE, rc.DAEMON_HOSTNAME"
746
 
747
                           Set rsQry = OraDatabase.DbCreateDynaset( query_string, ORADYN_DEFAULT )
748
 
749
                           ' String variables
750
                           Dim strProject_checked        ' Can be "" or "checked". Determines appearance of project enable checkbox
751
 
752
                           ' Boolean variables
753
                           Dim bProject_changed          ' signals a row change due to a different project
754
                           Dim bRelease_changed          ' signals a row change due to a different release
755
                           Dim bRow_displayed            ' signals whether a row should be displayed or not
756
                           Dim bRelease_link_displayed   ' indicates whether the release name has been rendered yet
757
                           Dim bDisplay_whole_set        ' forces the whole daemon set for a release to be displayed
758
                           Dim bDisplayFilterIsOn        ' Indicates if Filtering is on or off
759
                           Dim bShowProblemDaemonSets    ' Indicates if problem daemons must be shown during filtering
760
                           Dim bShowActiveBuilds         ' Indicates if active builds must be shown during filtering
761
 
762
                           ' Integer variables
763
                           Dim pkgId
764
                           Dim lastProjID                ' Used to detect project changes from one row to the next
765
                           Dim lastRtagId                ' Used to detect release changes from one row to the next
766
 
767
                           ' Initialise variables
768
                           strProject_checked = ""
769
 
770
                           bProject_changed = True
771
                           bRelease_changed = True
772
                           bRow_displayed   = True
773
                           bRelease_link_displayed = False
774
                           bDisplay_whole_set  = False
775
                           bDisplayFilterIsOn  = Display_Filter_Is_On()
776
                           bShowProblemDaemonSets = Filter_Is_On("problemDaemonSets")
777
                           bShowActiveBuilds   = Filter_Is_On("activeBuilds")
778
 
779
                           lastProjID = 0
780
                           lastRtagId = 0
781
 
782
                           Do While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
783
                              pkgId = rsQry("current_pkg_id_being_built")
784
 
785
                              ' determine if user has checked the project checkbox
786
                              strProject_checked = Is_Project_Checked(rsQry("proj_id"))
787
 
788
 
789
                              ' Has the project changed since the last row. If so, signal it via bProject_changed variable, and
790
                              ' reset the bRelease_link_displayed variable to force the display of the release column value on the
791
                              ' render of the next unfiltered row
792
                              bProject_changed = False
793
                              If lastProjID <> rsQry("proj_id") Then
794
                                 lastProjID =  rsQry("proj_id")
795
                                 bProject_changed = True
796
                                 bRelease_link_displayed = False
797
                                 bDisplay_whole_set = False
798
                              End If
799
 
800
                              ' Has the release changed since the last row of displayed data. If so, signal it via the bRelease_changed variable,
801
                              ' and reset the bRelease_link_displayed variable to force the display of the release column value on the
802
                              ' render of the next unfiltered row.
803
                              bRelease_changed = False
804
                              If lastRtagId <> rsQry("rtag_id") Then
805
                                 lastRtagId =  rsQry("rtag_id")
806
                                 bRelease_changed = True
807
                                 bRelease_link_displayed = False
808
                                 bDisplay_whole_set = False
809
                              End If
810
 
811
                              ' generate the table row divider - this uses the bRow_displayed value from the previous iteration in order
812
                              ' to prevent dividers being drawn between rows that were not actually rendered due to any filtering that
813
                              ' may be in effect.
814
                              %>
815
                              <%=HTML_Row_Divider( bProject_changed, strProject_checked, bRelease_changed, bRow_displayed )%>
816
                              <%
817
 
818
                              ' If this is a Master Daemon, look ahead at all the slaves and evaluate if any daemons in the set appear to
819
                              ' be having a problem. If any are and the user has turned the "Show Problem Daemon Sets" filter on then
820
                              ' set the bDisplay_whole_set variable to True else set it to False
821
                              If rsQry("daemon_mode") = "M" Then
822
 
823
                                 ' Initial default value is to not show the entire daemon set
824
                                 bDisplay_whole_set = False
825
 
826
                                 ' If the filter is turned on and master daemon is NOT actively building a package and it is NOT paused...
827
                                 If bDisplayFilterIsOn _
828
                                    AND bShowProblemDaemonSets _
829
                                    AND (NOT Is_Actively_Building(rsQry("current_pkg_id_being_built"))) _
830
                                    AND (NOT Is_Paused(rsQry("current_run_level"), bIndefinitelyPaused) ) Then
831
 
832
                                    ' Display the whole set if the master daemons delta exceeds the threshold
833
                                    bDisplay_whole_set = Daemon_Delta_Threshold_Exceeded(rsQry("delta"))
834
 
835
                                    ' If nothing appears wrong with the Master Daemon, look ahead at all the slaves in the set
836
                                    If NOT bDisplay_whole_set Then
837
                                       Dim thisRtagId
838
                                       Dim rtag_id_set_count
839
                                       Dim i
840
 
841
                                       thisRtagId = rsQry("rtag_id")
842
                                       rtag_id_set_count = 1
843
 
844
                                       rsQry.MoveNext
845
                                       Do While (NOT rsQry.BOF) AND (NOT rsQry.EOF) AND rsQry("rtag_id") = thisRtagId
846
                                          rtag_id_set_count = rtag_id_set_count + 1
847
 
848
                                          ' If this slave daemon is NOT actively building a package and it is NOT paused and its Delta exceeds the threshold...
849
                                          If (NOT Is_Actively_Building(rsQry("current_pkg_id_being_built"))) _
850
                                             AND (NOT Is_Paused(rsQry("current_run_level"), bIndefinitelyPaused)) _
851
                                             AND Daemon_Delta_Threshold_Exceeded(rsQry("delta")) Then
852
 
853
                                             bDisplay_whole_set = True
854
                                          End If
855
                                          rsQry.MoveNext
856
                                       Loop
857
                                       For i = 1 to rtag_id_set_count
858
                                          rsQry.MovePrevious
859
                                       Next
860
                                    End If
861
                                 End If
862
                              End If
863
 
864
 
865
                              ' Now figure out if this row of data is to be displayed or not
866
                              bRow_displayed  =   ( NOT bDisplayFilterIsOn ) _
867
                                               OR ( bDisplay_whole_set ) _
868
                                               OR ( bShowActiveBuilds AND Is_Actively_Building(pkgId) )
869
 
870
 
871
                              ' If the release has changed and we are going to display this row, toggle the row style to give
872
                              ' it a slightly different look to the previous displayed row which was for a different release
873
                              If bRelease_changed AND bRow_displayed Then
874
                                 Call ToggleStyleNow
875
                              End If
876
 
877
                              ' Now we are ready to render the HTML content for the row, but we may still circumvent rendering if the user
878
                              ' has unchecked the project checkbox
879
                              %>
880
                              <tr>
881
                                 <%If bProject_changed Then%>
882
                                    <td nowrap class="body_rowg">
883
                                       <input name='DIS_PRJ_<%=rsQry("proj_id")%>' id='DIS_PRJ_<%=rsQry("proj_id")%>' type='checkbox' value=1 <%=strProject_checked%> onclick=toggle_project(<%=rsQry("proj_id")%>)>
884
                                       <a href='rtree.asp?proj_id=<%=rsQry("proj_id")%>'><%=rsQry("proj_name")%>
885
                                    </td>
886
                                 <%Else%>
887
                                    <td nowrap class="body_rowg"></td>
888
                                 <%End If%>
889
 
890
                                 <%If strProject_checked = "checked" Then%>
891
 
892
                                    <%If bRow_displayed Then%>
893
 
894
                                       <%If bRelease_changed OR NOT bRelease_link_displayed Then%>
895
                                          <%bRelease_link_displayed = True%>
896
                                          <td nowrap <%=styleNow%>><a href='build_status.asp?rtag_id=<%=rsQry("rtag_id")%>'><%=rsQry("rtag_name")%></a></td>
897
                                       <%Else%>
898
                                          <td nowrap <%=styleNow%>></td>
899
                                       <%End If%>
900
 
901
 
902
                                       <td nowrap <%=styleNow%>><%=Get_Official(rsQry("official"))%></td>
903
                                       <td nowrap <%=styleNow%>><%=Get_Daemon_Mode(rsQry("daemon_mode"))%></td>
904
                                       <td nowrap <%=styleNow%>><%=rsQry("daemon_hostname")%></td>
905
                                       <td nowrap <%=styleNow%>><%=Get_Run_Level(rsQry("current_run_level"), bIndefinitelyPaused)%></td>
906
                                       <td nowrap <%=styleNow%>><%=Get_Pkg_Name(pkgId)%></td>
907
 
908
                                       <%If (rsQry("delta") > 600) AND (IsNull(pkgId) OR pkgId = "") Then%>
909
                                          <td nowrap <%=styleNow%> style=color:Red><%=rsQry("delta")%></td>
910
                                       <%Else%>
911
                                          <td nowrap <%=styleNow%>><%=rsQry("delta")%></td>
912
                                       <%End If%>
913
                                    <%End If%>
914
 
915
                                 </tr>
916
                                 <%End If%>
917
                              <%
918
                              rsQry.MoveNext
919
                           Loop
920
                           rsQry.Close()
921
                           Set rsQry = nothing
922
 
923
                           %>
924
                        </table>
925
                     </td>
926
                     <td background="images/lbox_bgside_white.gif">&nbsp;</td>
927
                  </tr>
928
                  <tr>
929
                     <input type="hidden" name="action" value="true">
930
                     <%=objPMod.ComposeHiddenTags()%>
931
                     <td background="images/lbox_bg_blue.gif" valign="bottom"><img src="images/lbox_bl_cnr_b.gif" width="13" height="13"></td>
932
                     <td background="images/lbox_bg_blue.gif"></td>
933
                     <td background="images/lbox_bg_blue.gif" valign="bottom" align="right"><img src="images/lbox_br_cnr_b.gif" width="13" height="13"></td>
934
                  </tr>
935
               </table>
936
            </td>
937
            <td width="1" valign="top"><img src="images/h_trsp_dot.gif" width="1" height="1"></td>
938
         </tr>
939
         <tr>
940
            <td valign="bottom" align="center" background="images/bg_home_orange.gif"><img src="images/img_vtree.gif" width="86" height="99" vspace="20" hspace="30"></td>
941
            <td background="images/bg_lght_gray.gif" valign="top"><img src="images/h_trsp_dot.gif" width="1" height="350"></td>
942
         </tr>
943
      </table>
944
      <!-- FOOTER -->
945
      <!--#include file="_footer.asp"-->
946
   </body>
947
</html>
948
<%
949
Call Destroy_All_Objects
950
%>