| Line 1... |
Line -... |
| 1 |
|
- |
|
| 2 |
<%@LANGUAGE="VBSCRIPT"%>
|
1 |
<%@LANGUAGE="VBSCRIPT"%>
|
| 3 |
<%
|
2 |
<%
|
| 4 |
'=====================================================
|
3 |
'=====================================================
|
| 5 |
'| |
|
4 |
'| |
|
| 6 |
'| ADMIN Build Status Information |
|
5 |
'| ADMIN Build Status Information |
|
| Line 20... |
Line 19... |
| 20 |
<!--#include file="common/_form_window_common.asp"-->
|
19 |
<!--#include file="common/_form_window_common.asp"-->
|
| 21 |
<%
|
20 |
<%
|
| 22 |
'------------ ACCESS CONTROL ------------------
|
21 |
'------------ ACCESS CONTROL ------------------
|
| 23 |
%>
|
22 |
%>
|
| 24 |
<!--#include file="_access_control_general.asp"-->
|
23 |
<!--#include file="_access_control_general.asp"-->
|
| - |
|
24 |
<!-- Only used locally for display purposes -->
|
| - |
|
25 |
<SCRIPT LANGUAGE="VBScript" RUNAT=SERVER SRC="common/DictDump.vbs"></SCRIPT>
|
| 25 |
<%
|
26 |
<%
|
| 26 |
'------------ Variable Definition -------------
|
27 |
'------------ Variable Definition -------------
|
| 27 |
Dim rsQry
|
28 |
Dim rsQry
|
| 28 |
Dim query_string
|
29 |
Dim query_string
|
| 29 |
Dim styleAlt1
|
30 |
Dim styleAlt1
|
| Line 31... |
Line 32... |
| 31 |
Dim styleNow
|
32 |
Dim styleNow
|
| 32 |
Dim param_refreshPeriod
|
33 |
Dim param_refreshPeriod
|
| 33 |
Dim param_inactivity
|
34 |
Dim param_inactivity
|
| 34 |
Dim param_refreshEnabled
|
35 |
Dim param_refreshEnabled
|
| 35 |
Dim bIndefinitelyPaused
|
36 |
Dim bIndefinitelyPaused
|
| - |
|
37 |
Dim buildStatus
|
| - |
|
38 |
|
| - |
|
39 |
Dim bShowProblemDaemonSets ' Indicates if problem daemons must be shown during filtering
|
| - |
|
40 |
Dim bShowDisabledDaemons ' Indicates if a disabled daemon must be shown during filtering
|
| - |
|
41 |
Dim bShowActiveBuilds ' Indicates if active builds must be shown during filtering
|
| - |
|
42 |
Dim bShowIdleBuilds ' Indicates if idle builds must be shown during filtering
|
| - |
|
43 |
Dim bShowPausedBuilds ' Indicates if paused builds must be shown during filtering
|
| - |
|
44 |
|
| 36 |
'------------ Constants Declaration -----------
|
45 |
'------------ Constants Declaration -----------
|
| 37 |
Const Min_Refresh_Time = 10 ' Seconds
|
46 |
Const Min_Refresh_Time = 10 ' Seconds
|
| 38 |
Const Max_Delta = 600 ' Seconds
|
47 |
Const Max_Delta = 600 ' Seconds
|
| 39 |
Const Max_DeltaBuild = 31 ' Days
|
48 |
Const Max_DeltaBuild = 31 ' Days
|
| 40 |
'------------ Variable Init -------------------
|
49 |
'------------ Variable Init -------------------
|
| 41 |
|
50 |
|
| 42 |
styleAlt1="class='body_rowg1'"
|
51 |
styleAlt1="class='body_rowg1'"
|
| 43 |
styleAlt2="class='body_rowg2'"
|
52 |
styleAlt2="class='body_rowg2'"
|
| 44 |
styleNow = styleAlt1
|
53 |
styleNow = styleAlt1
|
| 45 |
|
- |
|
| 46 |
'----------------------------------------------
|
54 |
'----------------------------------------------
|
| 47 |
%>
|
55 |
%>
|
| 48 |
<%
|
56 |
<%
|
| - |
|
57 |
'------------------------------------------------------------------------------
|
| - |
|
58 |
' Populate the buildStatus dictionary
|
| - |
|
59 |
' Get all the required data into a hash of hashes
|
| - |
|
60 |
' It will make the following processing so much easier
|
| - |
|
61 |
'
|
| - |
|
62 |
Sub getBuildStatus
|
| - |
|
63 |
Dim bms
|
| - |
|
64 |
query_string = "SELECT rc.RCON_ID, " &_
|
| - |
|
65 |
" rc.RTAG_ID, " &_
|
| - |
|
66 |
" bm.DISPLAY_NAME, " &_
|
| - |
|
67 |
" rc.DAEMON_MODE, "&_
|
| - |
|
68 |
" rt.RTAG_NAME, " &_
|
| - |
|
69 |
" rt.OFFICIAL, " &_
|
| - |
|
70 |
" p.PROJ_ID, " &_
|
| - |
|
71 |
" p.PROJ_NAME, " &_
|
| - |
|
72 |
" rl.CURRENT_PKG_ID_BEING_BUILT, "&_
|
| - |
|
73 |
" rl.CURRENT_RUN_LEVEL, "&_
|
| - |
|
74 |
" NVL(rl.PAUSE,0) as PAUSE, " &_
|
| - |
|
75 |
" TRUNC (86400*(SYSDATE - rl.KEEP_ALIVE)) as delta," &_
|
| - |
|
76 |
" TO_CHAR(rl.LAST_BUILD, 'DD-MON-YYYY') as last_build," &_
|
| - |
|
77 |
" TRUNC (SYSDATE - rl.LAST_BUILD) as last_build_days," &_
|
| - |
|
78 |
" pkg.PKG_NAME" &_
|
| - |
|
79 |
" FROM RELEASE_CONFIG rc, RELEASE_TAGS rt, PROJECTS p, RUN_LEVEL rl, BUILD_MACHINE_CONFIG bm, PACKAGES pkg " &_
|
| - |
|
80 |
" WHERE rt.RTAG_ID = rc.RTAG_ID " &_
|
| - |
|
81 |
" AND rc.bmcon_id is not null" &_
|
| - |
|
82 |
" AND rt.PROJ_ID = p.PROJ_ID " &_
|
| - |
|
83 |
" AND rt.OFFICIAL != 'A' " &_
|
| - |
|
84 |
" AND rt.OFFICIAL != 'Y' " &_
|
| - |
|
85 |
" AND rl.RCON_ID = rc.RCON_ID" &_
|
| - |
|
86 |
" AND rc.bmcon_id = bm.bmcon_id(+)" &_
|
| - |
|
87 |
" AND pkg.PKG_ID(+) = rl.CURRENT_PKG_ID_BEING_BUILT" &_
|
| - |
|
88 |
" ORDER BY p.PROJ_NAME, rt.RTAG_NAME, rc.DAEMON_MODE, bm.DISPLAY_NAME, rc.DAEMON_MODE"
|
| - |
|
89 |
|
| - |
|
90 |
Set buildStatus = CreateObject("Scripting.Dictionary")
|
| - |
|
91 |
Set rsQry = OraDatabase.DbCreateDynaset( query_string, ORADYN_DEFAULT )
|
| - |
|
92 |
Do While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
|
| - |
|
93 |
Set bms = CreateObject("Scripting.Dictionary")
|
| - |
|
94 |
|
| - |
|
95 |
bms.Item("RCON_ID") = rsQry("RCON_ID")
|
| - |
|
96 |
bms.Item("RTAG_ID") = rsQry("RTAG_ID")
|
| - |
|
97 |
bms.Item("DISPLAY_NAME") = rsQry("DISPLAY_NAME")
|
| - |
|
98 |
bms.Item("RTAG_NAME") = rsQry("RTAG_NAME")
|
| - |
|
99 |
bms.Item("DAEMON_MODE") = rsQry("DAEMON_MODE")
|
| - |
|
100 |
bms.Item("OFFICIAL") = rsQry("OFFICIAL")
|
| - |
|
101 |
bms.Item("PROJ_ID") = rsQry("PROJ_ID")
|
| - |
|
102 |
bms.Item("PROJ_NAME") = rsQry("PROJ_NAME")
|
| - |
|
103 |
bms.Item("CURRENT_PKG_ID_BEING_BUILT") = rsQry("CURRENT_PKG_ID_BEING_BUILT")
|
| - |
|
104 |
bms.Item("CURRENT_RUN_LEVEL") = rsQry("CURRENT_RUN_LEVEL")
|
| - |
|
105 |
bms.Item("PAUSE") = CInt(rsQry("PAUSE"))
|
| - |
|
106 |
bms.Item("delta") = rsQry("delta")
|
| - |
|
107 |
bms.Item("last_build") = rsQry("last_build")
|
| - |
|
108 |
bms.Item("last_build_days") = NiceInt(rsQry("last_build_days"), 100)
|
| - |
|
109 |
bms.Item("PKG_NAME") = rsQry("PKG_NAME")
|
| - |
|
110 |
|
| - |
|
111 |
' Calculate some values
|
| - |
|
112 |
bms.Item("dState") = Classify_Run_Level(bms.Item("CURRENT_RUN_LEVEL"),_
|
| - |
|
113 |
bIndefinitelyPaused,_
|
| - |
|
114 |
bms.Item("PAUSE"), _
|
| - |
|
115 |
bms.Item("delta") ,_
|
| - |
|
116 |
bms.Item("CURRENT_PKG_ID_BEING_BUILT"))
|
| - |
|
117 |
|
| - |
|
118 |
bms.Item("dStateText") = Get_Run_Level(bms.Item("CURRENT_RUN_LEVEL"),_
|
| - |
|
119 |
bIndefinitelyPaused,_
|
| - |
|
120 |
bms.Item("PAUSE"))
|
| - |
|
121 |
|
| - |
|
122 |
' Kill package name on disabled daemons
|
| - |
|
123 |
If bms.Item("PAUSE") = 2 Then bms.Item("PKG_NAME") = Null
|
| - |
|
124 |
|
| - |
|
125 |
|
| - |
|
126 |
' Add to buildStatus
|
| - |
|
127 |
' This is a three level hash (Project,Release, Daemon)
|
| - |
|
128 |
|
| - |
|
129 |
Dim ProjRef, RelRef, DRef
|
| - |
|
130 |
ProjRef = bms.Item("PROJ_NAME")
|
| - |
|
131 |
RelRef = bms.Item("RTAG_NAME")
|
| - |
|
132 |
DRef = bms.Item("DISPLAY_NAME")
|
| - |
|
133 |
|
| - |
|
134 |
If Not buildStatus.Exists(ProjRef) Then
|
| - |
|
135 |
Set buildStatus(ProjRef) = CreateObject("Scripting.Dictionary")
|
| - |
|
136 |
buildStatus(ProjRef).Item("count") = 0
|
| - |
|
137 |
Set buildStatus(ProjRef).Item("data") = CreateObject("Scripting.Dictionary")
|
| - |
|
138 |
End If
|
| - |
|
139 |
|
| - |
|
140 |
If Not buildStatus(ProjRef).Item("data").Exists(RelRef) Then
|
| - |
|
141 |
Set buildStatus(ProjRef).Item("data").Item(RelRef) = CreateObject("Scripting.Dictionary")
|
| - |
|
142 |
buildStatus(ProjRef).Item("data").Item(RelRef).Item("count") = 0
|
| - |
|
143 |
Set buildStatus(ProjRef).Item("data").Item(RelRef).Item("data") = CreateObject("Scripting.Dictionary")
|
| - |
|
144 |
End If
|
| - |
|
145 |
|
| - |
|
146 |
buildStatus(ProjRef).Item("count") = buildStatus(ProjRef).Item("count") + 1
|
| - |
|
147 |
buildStatus(ProjRef).Item("data").Item(RelRef).Item("count") = buildStatus(ProjRef).Item("data").Item(RelRef).Item("count") + 1
|
| - |
|
148 |
Set buildStatus(ProjRef).Item("data").Item(RelRef).Item("data").Item(DRef) = bms
|
| - |
|
149 |
|
| - |
|
150 |
rsQry.MoveNext
|
| - |
|
151 |
Loop
|
| - |
|
152 |
rsQry.Close()
|
| - |
|
153 |
Set rsQry = nothing
|
| - |
|
154 |
|
| - |
|
155 |
' Iterate over each deamon set and flag some of its characteristics
|
| - |
|
156 |
' This could be done inline, as the data is processed from the SQL source
|
| - |
|
157 |
Dim project,release,machine
|
| - |
|
158 |
Dim eProject,eRelease,eMachine
|
| - |
|
159 |
For Each project in buildStatus
|
| - |
|
160 |
Set eProject = buildStatus.Item(project)
|
| - |
|
161 |
For Each release in eProject.Item("data")
|
| - |
|
162 |
Set eRelease = eProject.Item("data").Item(release)
|
| - |
|
163 |
For Each machine in eRelease.Item("data")
|
| - |
|
164 |
Set eMachine = eRelease.Item("data").Item(machine)
|
| - |
|
165 |
|
| - |
|
166 |
Dim dState
|
| - |
|
167 |
dState = eMachine.Item("dState")
|
| - |
|
168 |
|
| - |
|
169 |
If dState = "active" Then
|
| - |
|
170 |
If bShowActiveBuilds Then eMachine.Item("bRow_displayed") = "ShowActive"
|
| - |
|
171 |
ElseIf dState = "idle" Then
|
| - |
|
172 |
If bShowIdleBuilds Then eMachine.Item("bRow_displayed") = "ShowIdle"
|
| - |
|
173 |
ElseIf dState = "paused" Then
|
| - |
|
174 |
If bShowPausedBuilds Then eMachine.Item("bRow_displayed") = "ShowPaused"
|
| - |
|
175 |
ElseIf dState = "disabled" Then
|
| - |
|
176 |
If bShowDisabledDaemons Then eMachine.Item("bRow_displayed") = "ShowDisabled"
|
| - |
|
177 |
ElseIf dState = "problem" Then
|
| - |
|
178 |
If bShowProblemDaemonSets Then eMachine.Item("bRow_displayed") = "ShowProblem"
|
| - |
|
179 |
If bShowProblemDaemonSets Then eRelease.Item("bDisplay_whole_set") = true
|
| - |
|
180 |
Else
|
| - |
|
181 |
eRelease.Item("bDisplay_whole_set") = true
|
| - |
|
182 |
eMachine.Item("bRow_displayed") = "ShowUnknownState"
|
| - |
|
183 |
End If
|
| - |
|
184 |
|
| - |
|
185 |
If bShowProblemDaemonSets AND eMachine.Item("last_build_days") > param_inactivity Then
|
| - |
|
186 |
If dState = "active" OR dState = "idle" Then
|
| - |
|
187 |
eRelease.Item("bDisplay_whole_set") = true
|
| - |
|
188 |
eRelease.Item("bShowAge") = true
|
| - |
|
189 |
eMachine.Item("bRow_displayed") = "ShowInactiveWarning"
|
| - |
|
190 |
End If
|
| - |
|
191 |
End If
|
| - |
|
192 |
|
| - |
|
193 |
If eMachine.Exists("bRow_displayed") Then
|
| - |
|
194 |
eRelease.Item("bDisplay_some") = true
|
| - |
|
195 |
End If
|
| - |
|
196 |
|
| - |
|
197 |
Next
|
| - |
|
198 |
Next
|
| - |
|
199 |
Next
|
| - |
|
200 |
|
| - |
|
201 |
' '
|
| - |
|
202 |
' ' Iterate again and delete elements that we are not going to display
|
| - |
|
203 |
' '
|
| - |
|
204 |
' For Each project in buildStatus
|
| - |
|
205 |
' Set eProject = buildStatus.Item(project)
|
| - |
|
206 |
' For Each release in eProject.Item("data")
|
| - |
|
207 |
' Set eRelease = eProject.Item("data").Item(release)
|
| - |
|
208 |
' If NOT (eRelease.Exists("bDisplay_some") OR eRelease.Exists("bDisplay_whole_set")) Then
|
| - |
|
209 |
' eProject.Item("data").Remove(release)
|
| - |
|
210 |
' End If
|
| - |
|
211 |
' Next
|
| - |
|
212 |
' Next
|
| - |
|
213 |
|
| - |
|
214 |
'Response.Write "<br>Pretty Dictionary Display<pre>"
|
| - |
|
215 |
'Response.Write DICToutput(buildStatus)
|
| - |
|
216 |
|
| - |
|
217 |
End Sub
|
| - |
|
218 |
|
| 49 |
'--------------------------------------------------------------------------------------------------------------------------
|
219 |
'--------------------------------------------------------------------------------------------------------------------------
|
| 50 |
' Like Cint, but handles NULL by replacing it with a default value
|
220 |
' Like Cint, but handles NULL by replacing it with a default value
|
| 51 |
Function NiceInt( val, def)
|
221 |
Function NiceInt( val, def)
|
| 52 |
If isNull(val) Then
|
222 |
If isNull(val) Then
|
| 53 |
NiceInt = def
|
223 |
NiceInt = def
|
| Line 158... |
Line 328... |
| 158 |
If releaseChanged Then
|
328 |
If releaseChanged Then
|
| 159 |
s = s + "<td></td>"
|
329 |
s = s + "<td></td>"
|
| 160 |
s = s + "<td colspan='7' background='images/bg_rep_line.gif'><img src='images/spacer.gif' width='1' height='1'></td>"
|
330 |
s = s + "<td colspan='7' background='images/bg_rep_line.gif'><img src='images/spacer.gif' width='1' height='1'></td>"
|
| 161 |
Else
|
331 |
Else
|
| 162 |
s = s + "<td></td>"
|
332 |
s = s + "<td></td>"
|
| 163 |
s = s + "<td colspan='7' background='images/bg_rep_line.gif'><img src='images/spacer.gif' width='1' height='1'></td>"
|
333 |
's = s + "<td colspan='7' background='images/bg_rep_line.gif'><img src='images/spacer.gif' width='1' height='1'></td>"
|
| 164 |
End If
|
334 |
End If
|
| 165 |
s = s + "</tr>"
|
335 |
s = s + "</tr>"
|
| 166 |
End If
|
336 |
End If
|
| 167 |
End If
|
337 |
End If
|
| 168 |
HTML_Row_Divider = s
|
338 |
HTML_Row_Divider = s
|
| Line 229... |
Line 399... |
| 229 |
Else
|
399 |
Else
|
| 230 |
Filter_Is_On = False
|
400 |
Filter_Is_On = False
|
| 231 |
End If
|
401 |
End If
|
| 232 |
End Function
|
402 |
End Function
|
| 233 |
'--------------------------------------------------------------------------------------------------------------------------
|
403 |
'--------------------------------------------------------------------------------------------------------------------------
|
| 234 |
' Get name of package given its ID. Return empty string if not able to do so.
|
- |
|
| 235 |
Function Get_Pkg_Name( nPkgId )
|
- |
|
| 236 |
Dim rsQry2
|
- |
|
| 237 |
Dim query_string2
|
- |
|
| 238 |
|
- |
|
| 239 |
Get_Pkg_Name = ""
|
- |
|
| 240 |
If (NOT IsNull(nPkgId)) AND (nPkgId <> "") Then
|
- |
|
| 241 |
|
- |
|
| 242 |
query_string2 = "SELECT pkg.PKG_NAME " &_
|
- |
|
| 243 |
" FROM PACKAGES pkg" &_
|
- |
|
| 244 |
" WHERE pkg.PKG_ID = " & nPkgId
|
- |
|
| 245 |
|
- |
|
| 246 |
Set rsQry2 = OraDatabase.DbCreateDynaset( query_string2, ORADYN_DEFAULT )
|
- |
|
| 247 |
If rsQry2.RecordCount > 0 Then
|
- |
|
| 248 |
Get_Pkg_Name = rsQry2("pkg_name")
|
- |
|
| 249 |
End If
|
- |
|
| 250 |
rsQry2.Close()
|
- |
|
| 251 |
Set rsQry2 = nothing
|
- |
|
| 252 |
End If
|
- |
|
| 253 |
End Function
|
- |
|
| 254 |
'--------------------------------------------------------------------------------------------------------------------------
|
- |
|
| 255 |
Function Indefinitely_Paused()
|
404 |
Function Indefinitely_Paused()
|
| 256 |
Dim rsQry2
|
405 |
Dim rsQry2
|
| 257 |
Dim query_string2
|
406 |
Dim query_string2
|
| 258 |
|
407 |
|
| 259 |
Indefinitely_Paused = False
|
408 |
Indefinitely_Paused = False
|
| Line 335... |
Line 484... |
| 335 |
|
484 |
|
| 336 |
' Read the Inactivity Period
|
485 |
' Read the Inactivity Period
|
| 337 |
param_inactivity = NiceInt( Request("Inactivity"), Max_DeltaBuild)
|
486 |
param_inactivity = NiceInt( Request("Inactivity"), Max_DeltaBuild)
|
| 338 |
If param_inactivity = 0 Then param_inactivity = Max_DeltaBuild
|
487 |
If param_inactivity = 0 Then param_inactivity = Max_DeltaBuild
|
| 339 |
|
488 |
|
| 340 |
|
- |
|
| 341 |
' Get indefinite pause status
|
489 |
' Get indefinite pause status
|
| 342 |
bIndefinitelyPaused = Indefinitely_Paused()
|
490 |
bIndefinitelyPaused = Indefinitely_Paused()
|
| 343 |
|
491 |
|
| - |
|
492 |
' Populate display controls
|
| - |
|
493 |
bShowProblemDaemonSets = Filter_Is_On("problemBuilds")
|
| - |
|
494 |
bShowActiveBuilds = Filter_Is_On("activeBuilds")
|
| - |
|
495 |
bShowDisabledDaemons = Filter_Is_On("disabledDaemons")
|
| - |
|
496 |
bShowIdleBuilds = Filter_Is_On("idleBuilds")
|
| - |
|
497 |
bShowPausedBuilds = Filter_Is_On("pausedBuilds")
|
| - |
|
498 |
|
| 344 |
'----------------------------------------------
|
499 |
'----------------------------------------------
|
| 345 |
%>
|
500 |
%>
|
| 346 |
<script language="JavaScript" type="text/javascript">
|
501 |
<script language="JavaScript" type="text/javascript">
|
| 347 |
<!--
|
502 |
<!--
|
| 348 |
|
503 |
|
| Line 704... |
Line 859... |
| 704 |
<!-- TIPS LAYERS -------------------------------------->
|
859 |
<!-- TIPS LAYERS -------------------------------------->
|
| 705 |
<div id="formTipsLayer" style="position: absolute; z-index: 1000; visibility: hidden; left:0; top: 0; width: 10"> </div>
|
860 |
<div id="formTipsLayer" style="position: absolute; z-index: 1000; visibility: hidden; left:0; top: 0; width: 10"> </div>
|
| 706 |
<!----------------------------------------------------->
|
861 |
<!----------------------------------------------------->
|
| 707 |
<!-- HEADER -->
|
862 |
<!-- HEADER -->
|
| 708 |
<!--#include file="_header.asp"-->
|
863 |
<!--#include file="_header.asp"-->
|
| - |
|
864 |
<% getBuildStatus() %>
|
| 709 |
<!-- BODY ---->
|
865 |
<!-- BODY ---->
|
| 710 |
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
866 |
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
| 711 |
<tr>
|
867 |
<tr>
|
| 712 |
<td width="1" background="images/bg_home_orange.gif" valign="top"></td>
|
868 |
<td width="1" background="images/bg_home_orange.gif" valign="top"></td>
|
| 713 |
<td width="100%" rowspan="2" align="center" valign="top" bgcolor="#EEEFEF">
|
869 |
<td width="100%" rowspan="2" align="center" valign="top" bgcolor="#EEEFEF">
|
| Line 786... |
Line 942... |
| 786 |
<tr>
|
942 |
<tr>
|
| 787 |
<td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Project
|
943 |
<td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Project
|
| 788 |
<input name="NOPRJ" id="NOPRJ" type="Button" value="All" onclick="toggle_all_projects(1)">
|
944 |
<input name="NOPRJ" id="NOPRJ" type="Button" value="All" onclick="toggle_all_projects(1)">
|
| 789 |
<input name="NOPRJ" id="NOPRJ" type="Button" value="None" onclick="toggle_all_projects(0)">
|
945 |
<input name="NOPRJ" id="NOPRJ" type="Button" value="None" onclick="toggle_all_projects(0)">
|
| 790 |
</td>
|
946 |
</td>
|
| - |
|
947 |
<!-- Status Table Header -->
|
| 791 |
<td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Release</td>
|
948 |
<td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Release</td>
|
| 792 |
<td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Release<br>Mode</td>
|
949 |
<td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Release<br>Mode</td>
|
| 793 |
<td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Daemon<br>Mode</td>
|
950 |
<td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Daemon<br>Mode</td>
|
| 794 |
<td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Daemon<br>Host</td>
|
951 |
<td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Daemon<br>Host</td>
|
| 795 |
<td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Daemon<br>State</td>
|
952 |
<td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Daemon<br>State</td>
|
| 796 |
<td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Building<br>Package</td>
|
953 |
<td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Building<br>Package</td>
|
| 797 |
<td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Last Change<br>Delta (secs)</td>
|
954 |
<td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Last Change<br>Delta (secs)</td>
|
| 798 |
</tr>
|
955 |
</tr>
|
| 799 |
<%
|
- |
|
| 800 |
|
- |
|
| 801 |
query_string = "SELECT rc.RCON_ID, " &_
|
- |
|
| 802 |
" rc.RTAG_ID, " &_
|
- |
|
| 803 |
" bm.DISPLAY_NAME, " &_
|
- |
|
| 804 |
" rc.DAEMON_MODE, "&_
|
- |
|
| 805 |
" rt.RTAG_NAME, " &_
|
- |
|
| 806 |
" rt.OFFICIAL, " &_
|
- |
|
| 807 |
" p.PROJ_ID, " &_
|
- |
|
| 808 |
" p.PROJ_NAME, " &_
|
- |
|
| 809 |
" rl.CURRENT_PKG_ID_BEING_BUILT, "&_
|
- |
|
| 810 |
" rl.CURRENT_RUN_LEVEL, "&_
|
- |
|
| 811 |
" rl.PAUSE, " &_
|
- |
|
| 812 |
" TRUNC (86400*(SYSDATE - rl.KEEP_ALIVE)) as delta," &_
|
- |
|
| 813 |
" TO_CHAR(rl.LAST_BUILD, 'DD-MON-YYYY') as last_build," &_
|
- |
|
| 814 |
" TRUNC (SYSDATE - rl.LAST_BUILD) as last_build_days" &_
|
- |
|
| 815 |
" FROM RELEASE_CONFIG rc, RELEASE_TAGS rt, PROJECTS p, RUN_LEVEL rl, BUILD_MACHINE_CONFIG bm " &_
|
- |
|
| 816 |
" WHERE rt.RTAG_ID = rc.RTAG_ID " &_
|
- |
|
| 817 |
" AND rc.bmcon_id is not null" &_
|
- |
|
| 818 |
" AND rt.PROJ_ID = p.PROJ_ID " &_
|
- |
|
| 819 |
" AND rt.OFFICIAL != 'A' " &_
|
- |
|
| 820 |
" AND rt.OFFICIAL != 'Y' " &_
|
- |
|
| 821 |
" AND rl.RCON_ID = rc.RCON_ID" &_
|
- |
|
| 822 |
" AND rc.bmcon_id = bm.bmcon_id(+)" &_
|
- |
|
| 823 |
" ORDER BY p.PROJ_NAME, rt.RTAG_NAME, rc.DAEMON_MODE, bm.DISPLAY_NAME"
|
- |
|
| 824 |
|
- |
|
| 825 |
Set rsQry = OraDatabase.DbCreateDynaset( query_string, ORADYN_DEFAULT )
|
- |
|
| 826 |
|
- |
|
| 827 |
' String variables
|
- |
|
| 828 |
Dim strProject_checked ' Can be "" or "checked". Determines appearance of project enable checkbox
|
- |
|
| 829 |
|
- |
|
| 830 |
' Boolean variables
|
- |
|
| 831 |
Dim bProject_changed ' signals a row change due to a different project
|
- |
|
| 832 |
Dim bRelease_changed ' signals a row change due to a different release
|
- |
|
| 833 |
Dim bRow_displayed ' signals whether a row should be displayed or not
|
- |
|
| 834 |
Dim bRelease_link_displayed ' indicates whether the release name has been rendered yet
|
- |
|
| 835 |
Dim bDisplay_whole_set ' forces the whole daemon set for a release to be displayed
|
- |
|
| 836 |
Dim bShowProblemDaemonSets ' Indicates if problem daemons must be shown during filtering
|
- |
|
| 837 |
Dim bShowDisabledDaemons ' Indicates if a disabled daemon must be shown during filtering
|
- |
|
| 838 |
Dim bShowActiveBuilds ' Indicates if active builds must be shown during filtering
|
- |
|
| 839 |
Dim bShowIdleBuilds ' Indicates if idle builds must be shown during filtering
|
- |
|
| 840 |
Dim bShowPausedBuilds ' Indicates if paused builds must be shown during filtering
|
- |
|
| 841 |
Dim dState ' Decoded state of a daemon
|
- |
|
| 842 |
Dim bProjectHeader ' Project Header done
|
- |
|
| 843 |
Dim bShowAge ' Display age warning
|
- |
|
| 844 |
|
- |
|
| 845 |
' Integer variables
|
- |
|
| 846 |
Dim pkgId
|
- |
|
| 847 |
Dim curPkgId
|
- |
|
| 848 |
Dim lastProjID ' Used to detect project changes from one row to the next
|
- |
|
| 849 |
Dim lastRtagId ' Used to detect release changes from one row to the next
|
- |
|
| 850 |
Dim daemonState
|
- |
|
| 851 |
|
- |
|
| 852 |
' Initialise variables
|
- |
|
| 853 |
strProject_checked = ""
|
- |
|
| 854 |
|
- |
|
| 855 |
bProject_changed = True
|
- |
|
| 856 |
bRelease_changed = True
|
- |
|
| 857 |
bRow_displayed = True
|
- |
|
| 858 |
bRelease_link_displayed = False
|
- |
|
| 859 |
bDisplay_whole_set = False
|
- |
|
| 860 |
bShowProblemDaemonSets = Filter_Is_On("problemBuilds")
|
- |
|
| 861 |
bShowActiveBuilds = Filter_Is_On("activeBuilds")
|
- |
|
| 862 |
bShowDisabledDaemons = Filter_Is_On("disabledDaemons")
|
- |
|
| 863 |
bShowIdleBuilds = Filter_Is_On("idleBuilds")
|
- |
|
| 864 |
bShowPausedBuilds = Filter_Is_On("pausedBuilds")
|
- |
|
| 865 |
|
- |
|
| 866 |
lastProjID = 0
|
- |
|
| 867 |
lastRtagId = 0
|
- |
|
| 868 |
|
- |
|
| 869 |
bProjectHeader = false
|
- |
|
| 870 |
|
- |
|
| 871 |
Do While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
|
- |
|
| 872 |
pkgId = rsQry("current_pkg_id_being_built")
|
- |
|
| 873 |
bShowAge = False
|
- |
|
| 874 |
|
- |
|
| 875 |
' determine if user has checked the project checkbox
|
- |
|
| 876 |
strProject_checked = Is_Project_Checked(rsQry("proj_id"))
|
- |
|
| 877 |
|
- |
|
| 878 |
' Has the project changed since the last row. If so, signal it via bProject_changed variable, and
|
- |
|
| 879 |
' reset the bRelease_link_displayed variable to force the display of the release column value on the
|
- |
|
| 880 |
' render of the next unfiltered row
|
- |
|
| 881 |
bProject_changed = False
|
- |
|
| 882 |
If lastProjID <> rsQry("proj_id") Then
|
- |
|
| 883 |
lastProjID = rsQry("proj_id")
|
- |
|
| 884 |
bProject_changed = True
|
- |
|
| 885 |
bRelease_link_displayed = False
|
- |
|
| 886 |
bDisplay_whole_set = False
|
- |
|
| 887 |
End If
|
- |
|
| 888 |
|
- |
|
| 889 |
' Has the release changed since the last row of displayed data. If so, signal it via the bRelease_changed variable,
|
- |
|
| 890 |
' and reset the bRelease_link_displayed variable to force the display of the release column value on the
|
- |
|
| 891 |
' render of the next unfiltered row.
|
- |
|
| 892 |
bRelease_changed = False
|
- |
|
| 893 |
If lastRtagId <> rsQry("rtag_id") Then
|
- |
|
| 894 |
lastRtagId = rsQry("rtag_id")
|
- |
|
| 895 |
bRelease_changed = True
|
- |
|
| 896 |
bRelease_link_displayed = False
|
- |
|
| 897 |
bDisplay_whole_set = False
|
- |
|
| 898 |
End If
|
- |
|
| 899 |
|
- |
|
| 900 |
daemonState = rsQry("pause")
|
- |
|
| 901 |
If IsNull(daemonState) Then
|
- |
|
| 902 |
daemonState = 0
|
- |
|
| 903 |
End If
|
- |
|
| 904 |
|
- |
|
| 905 |
' generate the table row divider - this uses the bRow_displayed value from the previous iteration in order
|
- |
|
| 906 |
' to prevent dividers being drawn between rows that were not actually rendered due to any filtering that
|
- |
|
| 907 |
' may be in effect.
|
- |
|
| 908 |
%>
|
- |
|
| 909 |
<%=HTML_Row_Divider( bProject_changed, strProject_checked, bRelease_changed, bRow_displayed )%>
|
- |
|
| 910 |
<%
|
- |
|
| 911 |
|
- |
|
| 912 |
' If this is a Master Daemon, look ahead at all the slaves and evaluate if any daemons in the set appear to
|
- |
|
| 913 |
' be having a problem. If any are and the user has turned the "Show Problem Daemon Sets" filter on then
|
- |
|
| 914 |
' set the bDisplay_whole_set variable to True else set it to False
|
- |
|
| 915 |
If rsQry("daemon_mode") = "M" Then
|
- |
|
| 916 |
|
- |
|
| 917 |
' Initial default value is to not show the entire daemon set
|
- |
|
| 918 |
bDisplay_whole_set = False
|
- |
|
| 919 |
|
- |
|
| 920 |
' Classify the state of the daemon as one of: active, idle, paused, disabled, problem, unknown
|
- |
|
| 921 |
If bShowProblemDaemonSets Then
|
- |
|
| 922 |
dState = Classify_Run_Level(rsQry("current_run_level"),bIndefinitelyPaused,daemonState, rsQry("delta") ,pkgId)
|
- |
|
| 923 |
If dState = "active" Then
|
- |
|
| 924 |
ElseIf dState = "idle" Then
|
- |
|
| 925 |
ElseIf dState = "paused" Then
|
- |
|
| 926 |
ElseIf dState = "disabled" Then
|
- |
|
| 927 |
ElseIf dState = "problem" Then
|
- |
|
| 928 |
bDisplay_whole_set = true
|
- |
|
| 929 |
Else
|
- |
|
| 930 |
bDisplay_whole_set = true
|
- |
|
| 931 |
End If
|
- |
|
| 932 |
|
- |
|
| 933 |
If NiceInt(rsQry("last_build_days"), 100) > param_inactivity Then
|
- |
|
| 934 |
If dState = "active" OR dState = "idle" Then
|
- |
|
| 935 |
bDisplay_whole_set = true
|
- |
|
| 936 |
bShowAge = true
|
- |
|
| 937 |
End If
|
- |
|
| 938 |
End If
|
- |
|
| 939 |
End If
|
- |
|
| 940 |
|
- |
|
| 941 |
' If the filter is turned on and master daemon looks OK then check out the slaves
|
- |
|
| 942 |
' If nothing appears wrong with the Master Daemon, look ahead at all the slaves in the set
|
- |
|
| 943 |
If bShowProblemDaemonSets AND NOT bDisplay_whole_set Then
|
- |
|
| 944 |
Dim thisRtagId
|
- |
|
| 945 |
Dim rtag_id_set_count
|
- |
|
| 946 |
Dim i
|
- |
|
| 947 |
|
- |
|
| 948 |
thisRtagId = rsQry("rtag_id")
|
- |
|
| 949 |
rtag_id_set_count = 1
|
- |
|
| 950 |
|
- |
|
| 951 |
rsQry.MoveNext
|
- |
|
| 952 |
Do While (NOT rsQry.BOF) AND (NOT rsQry.EOF) AND rsQry("rtag_id") = thisRtagId
|
- |
|
| 953 |
rtag_id_set_count = rtag_id_set_count + 1
|
- |
|
| 954 |
|
- |
|
| 955 |
dState = Classify_Run_Level(rsQry("current_run_level"),bIndefinitelyPaused,daemonState, rsQry("delta"),pkgId)
|
- |
|
| 956 |
If dState = "active" Then
|
- |
|
| 957 |
ElseIf dState = "idle" Then
|
- |
|
| 958 |
ElseIf dState = "paused" Then
|
- |
|
| 959 |
ElseIf dState = "disabled" Then
|
- |
|
| 960 |
ElseIf dState = "problem" Then
|
- |
|
| 961 |
bDisplay_whole_set = true
|
- |
|
| 962 |
Else
|
- |
|
| 963 |
bDisplay_whole_set = true
|
- |
|
| 964 |
End If
|
- |
|
| 965 |
|
- |
|
| 966 |
If NiceInt(rsQry("last_build_days"), 100) > param_inactivity Then
|
- |
|
| 967 |
If dState = "active" OR dState = "idle" Then
|
- |
|
| 968 |
bDisplay_whole_set = true
|
- |
|
| 969 |
bShowAge = true
|
- |
|
| 970 |
End If
|
- |
|
| 971 |
End If
|
- |
|
| 972 |
|
- |
|
| 973 |
rsQry.MoveNext
|
- |
|
| 974 |
Loop
|
- |
|
| 975 |
For i = 1 to rtag_id_set_count
|
- |
|
| 976 |
rsQry.MovePrevious
|
- |
|
| 977 |
Next
|
- |
|
| 978 |
End If
|
- |
|
| 979 |
End If
|
- |
|
| 980 |
|
- |
|
| 981 |
|
- |
|
| 982 |
' Now figure out if this row of data is to be displayed or not
|
- |
|
| 983 |
bRow_displayed = bDisplay_whole_set
|
- |
|
| 984 |
If NOT bRow_displayed Then
|
- |
|
| 985 |
dState = Classify_Run_Level(rsQry("current_run_level"),bIndefinitelyPaused,daemonState, rsQry("delta"),pkgId)
|
- |
|
| 986 |
If dState = "active" Then
|
- |
|
| 987 |
If bShowActiveBuilds Then bRow_displayed = true
|
- |
|
| 988 |
ElseIf dState = "idle" Then
|
- |
|
| 989 |
If bShowIdleBuilds Then bRow_displayed = true
|
- |
|
| 990 |
ElseIf dState = "paused" Then
|
- |
|
| 991 |
If bShowPausedBuilds Then bRow_displayed = true
|
- |
|
| 992 |
ElseIf dState = "disabled" Then
|
- |
|
| 993 |
If bShowDisabledDaemons Then bRow_displayed = true
|
- |
|
| 994 |
ElseIf dState = "problem" Then
|
- |
|
| 995 |
If bShowProblemDaemonSets Then bRow_displayed = true
|
- |
|
| 996 |
Else
|
- |
|
| 997 |
bRow_displayed = true
|
- |
|
| 998 |
End If
|
- |
|
| 999 |
End If
|
- |
|
| 1000 |
|
- |
|
| 1001 |
' it a slightly different look to the previous displayed row which was for a different release
|
- |
|
| 1002 |
If bRelease_changed AND bRow_displayed Then
|
- |
|
| 1003 |
Call ToggleStyleNow
|
- |
|
| 1004 |
End If
|
- |
|
| 1005 |
|
- |
|
| 1006 |
' Kill pkgId if daemon is disabled
|
- |
|
| 1007 |
curPkgId = pkgId
|
- |
|
| 1008 |
If daemonState = 2 Then
|
- |
|
| 1009 |
curPkgId = Null
|
- |
|
| 1010 |
End If
|
- |
|
| 1011 |
|
- |
|
| 1012 |
' Now we are ready to render the HTML content for the row, but we may still circumvent rendering if the user
|
- |
|
| 1013 |
' has unchecked the project checkbox
|
- |
|
| 1014 |
%>
|
- |
|
| 1015 |
<%If bProject_changed Then%>
|
- |
|
| 1016 |
<tr>
|
- |
|
| 1017 |
<td nowrap class="body_rowg">
|
- |
|
| 1018 |
<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")%>)>
|
- |
|
| 1019 |
<a href='rtree.asp?proj_id=<%=rsQry("proj_id")%>'><%=rsQry("proj_name")%>
|
- |
|
| 1020 |
</td>
|
- |
|
| 1021 |
<%
|
- |
|
| 1022 |
bProjectHeader = true
|
- |
|
| 1023 |
Else
|
- |
|
| 1024 |
bProjectHeader = false
|
- |
|
| 1025 |
End If%>
|
- |
|
| 1026 |
|
- |
|
| 1027 |
<%If strProject_checked = "checked" Then%>
|
- |
|
| 1028 |
<%If bRow_displayed Then%>
|
- |
|
| 1029 |
|
- |
|
| 1030 |
<%If NOT bProjectHeader Then %>
|
- |
|
| 1031 |
<td nowrap class="body_rowg"></td>
|
- |
|
| 1032 |
<%End If%>
|
- |
|
| 1033 |
|
- |
|
| 1034 |
<%If bRelease_changed OR NOT bRelease_link_displayed Then%>
|
- |
|
| 1035 |
<%bRelease_link_displayed = True%>
|
- |
|
| 1036 |
<td nowrap <%=styleNow%>><a href='build_status.asp?rtag_id=<%=rsQry("rtag_id")%>' title='Last Build:<%=rsQry("last_build")%>'><%=rsQry("rtag_name")%></a>
|
- |
|
| 1037 |
<%If bShowAge Then%>
|
- |
|
| 1038 |
<img src='images/s_warning.gif' width='14' height='13' border='0' title='No Build in this release since <%=rsQry("last_build")%>. [<%=rsQry("last_build_days")%> Days]' style='vertical-align: bottom;'>
|
- |
|
| 1039 |
<%End If %>
|
- |
|
| 1040 |
</td>
|
- |
|
| 1041 |
<%Else%>
|
- |
|
| 1042 |
<td nowrap <%=styleNow%>></td>
|
- |
|
| 1043 |
<%End If%>
|
- |
|
| 1044 |
|
- |
|
| 1045 |
<td nowrap <%=styleNow%>><%=Get_Official(rsQry("official"))%></td>
|
- |
|
| 1046 |
<td nowrap <%=styleNow%>><%=Get_Daemon_Mode(rsQry("daemon_mode"))%></td>
|
- |
|
| 1047 |
<td nowrap <%=styleNow%>><%=rsQry("display_name")%></td>
|
- |
|
| 1048 |
<td nowrap <%=styleNow%>><%=Get_Run_Level(rsQry("current_run_level"), bIndefinitelyPaused,daemonState)%></td>
|
- |
|
| 1049 |
<td nowrap <%=styleNow%>><%=Get_Pkg_Name(curPkgId)%></td>
|
- |
|
| 1050 |
<td nowrap <%=styleNow%>><%=PrettyDelta(rsQry("delta"),daemonState,curPkgId )%></td>
|
- |
|
| 1051 |
<%End If%>
|
- |
|
| 1052 |
</tr>
|
- |
|
| 1053 |
<%End If%>
|
- |
|
| 1054 |
<%
|
- |
|
| 1055 |
rsQry.MoveNext
|
- |
|
| 1056 |
Loop
|
- |
|
| 1057 |
rsQry.Close()
|
- |
|
| 1058 |
Set rsQry = nothing
|
- |
|
| 1059 |
|
956 |
|
| - |
|
957 |
<!-- Status Table Body -->
|
| - |
|
958 |
<%
|
| - |
|
959 |
Dim bProject_changed ' Signals a row change due to a different project
|
| - |
|
960 |
Dim strProject_checked ' Can be "" or "checked". Determines appearance of project enable checkbox
|
| - |
|
961 |
Dim bRelease_changed ' signals a row change due to a different release
|
| - |
|
962 |
Dim bRelease_link_displayed ' indicates whether the release name has been rendered yet
|
| - |
|
963 |
Dim bRow_displayed ' signals whether a row should be displayed or not
|
| - |
|
964 |
Dim bProjectHeader ' Project Header done
|
| - |
|
965 |
Dim bShowAge ' Display age warning
|
| - |
|
966 |
Dim bToggleStyle ' Data shown so toggle style
|
| - |
|
967 |
|
| - |
|
968 |
bRow_displayed = false
|
| - |
|
969 |
|
| - |
|
970 |
' Iterate over all projects, releases and machines
|
| - |
|
971 |
'
|
| - |
|
972 |
Dim project,release,machine
|
| - |
|
973 |
Dim eProject,eRelease,eMachine
|
| - |
|
974 |
For Each project in buildStatus
|
| - |
|
975 |
' Start of a new Project
|
| - |
|
976 |
Set eProject = buildStatus.Item(project)
|
| - |
|
977 |
bProject_changed = true
|
| - |
|
978 |
|
| - |
|
979 |
For Each release in eProject.Item("data")
|
| - |
|
980 |
' Start of a new Release
|
| - |
|
981 |
Set eRelease = eProject.Item("data").Item(release)
|
| - |
|
982 |
bRelease_link_displayed = False
|
| - |
|
983 |
bRelease_changed = true
|
| - |
|
984 |
bShowAge = eRelease("bShowAge")
|
| - |
|
985 |
If bToggleStyle Then Call ToggleStyleNow
|
| - |
|
986 |
bToggleStyle = false
|
| - |
|
987 |
|
| - |
|
988 |
For Each machine in eRelease.Item("data")
|
| - |
|
989 |
' Start of a new Machine
|
| - |
|
990 |
Set eMachine = eRelease.Item("data").Item(machine)
|
| - |
|
991 |
|
| - |
|
992 |
strProject_checked = Is_Project_Checked(eMachine("PROJ_ID"))
|
| - |
|
993 |
|
| - |
|
994 |
Response.Write HTML_Row_Divider(bProject_changed, strProject_checked, bRelease_changed, bRow_displayed)
|
| - |
|
995 |
bRow_displayed = False
|
| - |
|
996 |
|
| - |
|
997 |
If bProject_changed Then%>
|
| - |
|
998 |
<tr>
|
| - |
|
999 |
<td nowrap class="body_rowg">
|
| - |
|
1000 |
<input name='DIS_PRJ_<%=eMachine("PROJ_ID")%>' id='DIS_PRJ_<%=eMachine("PROJ_ID")%>' type='checkbox' value=1 <%=strProject_checked%> onclick=toggle_project(<%=eMachine("PROJ_ID")%>)>
|
| - |
|
1001 |
<a href='rtree.asp?proj_id=<%=eMachine("PROJ_ID")%>'><%=eMachine("PROJ_NAME")%>
|
| - |
|
1002 |
</td>
|
| - |
|
1003 |
<%
|
| - |
|
1004 |
bProjectHeader = true
|
| - |
|
1005 |
Else
|
| - |
|
1006 |
bProjectHeader = false
|
| - |
|
1007 |
End If
|
| - |
|
1008 |
|
| - |
|
1009 |
If strProject_checked = "checked" Then
|
| - |
|
1010 |
bRow_displayed = eRelease.Exists("bDisplay_whole_set") OR eMachine.Exists("bRow_displayed")
|
| - |
|
1011 |
If bRow_displayed Then
|
| - |
|
1012 |
bToggleStyle = true
|
| - |
|
1013 |
|
| - |
|
1014 |
If NOT bProjectHeader Then
|
| - |
|
1015 |
%><td nowrap class="body_rowg"></td><%
|
| - |
|
1016 |
End If
|
| - |
|
1017 |
|
| - |
|
1018 |
If bRelease_changed OR NOT bRelease_link_displayed Then
|
| - |
|
1019 |
bRelease_link_displayed = True
|
| - |
|
1020 |
%>
|
| - |
|
1021 |
<td nowrap <%=styleNow%>><a href='build_status.asp?rtag_id=<%=eMachine("RTAG_ID")%>' title='Last Build:<%=eMachine("last_build")%>'><%=eMachine("RTAG_NAME")%></a>
|
| - |
|
1022 |
<%
|
| - |
|
1023 |
If bShowAge Then
|
| - |
|
1024 |
%>
|
| - |
|
1025 |
<img src='images/s_warning.gif' width='14' height='13' border='0' title='No Build in this release since <%=eMachine("last_build")%>. [<%=eMachine("last_build_days")%> Days]' style='vertical-align: bottom;'>
|
| - |
|
1026 |
<%
|
| - |
|
1027 |
End If
|
| - |
|
1028 |
%></td><%
|
| - |
|
1029 |
Else
|
| - |
|
1030 |
%><td nowrap <%=styleNow%>></td><%
|
| - |
|
1031 |
End If
|
| - |
|
1032 |
%>
|
| - |
|
1033 |
<td nowrap <%=styleNow%>><%=Get_Official(eMachine("OFFICIAL"))%></td>
|
| - |
|
1034 |
<td nowrap <%=styleNow%>><%=Get_Daemon_Mode(eMachine("DAEMON_MODE"))%></td>
|
| - |
|
1035 |
<td nowrap <%=styleNow%>><%=eMachine("DISPLAY_NAME")%></td>
|
| - |
|
1036 |
<td nowrap <%=styleNow%>><%=eMachine("dStateText")%></td>
|
| - |
|
1037 |
<td nowrap <%=styleNow%>><%=eMachine("PKG_NAME")%></td>
|
| - |
|
1038 |
<td nowrap <%=styleNow%>><%=PrettyDelta(eMachine("delta"),eMachine("PAUSE"),eMachine("PKG_NAME") )%></td>
|
| - |
|
1039 |
<%
|
| - |
|
1040 |
End If
|
| - |
|
1041 |
%></tr><%
|
| - |
|
1042 |
End If
|
| - |
|
1043 |
|
| - |
|
1044 |
' End of Display
|
| - |
|
1045 |
bRelease_changed = false
|
| - |
|
1046 |
bProject_changed = false
|
| - |
|
1047 |
Next
|
| - |
|
1048 |
Next
|
| - |
|
1049 |
Next
|
| 1060 |
%>
|
1050 |
%>
|
| 1061 |
</table>
|
1051 |
</table>
|
| - |
|
1052 |
<!-- Status Table Footer -->
|
| 1062 |
</td>
|
1053 |
</td>
|
| 1063 |
<td background="images/lbox_bgside_white.gif"> </td>
|
1054 |
<td background="images/lbox_bgside_white.gif"> </td>
|
| 1064 |
</tr>
|
1055 |
</tr>
|
| 1065 |
<tr>
|
1056 |
<tr>
|
| 1066 |
<input type="hidden" name="action" value="true">
|
1057 |
<input type="hidden" name="action" value="true">
|