# | Line 1 | Line 1 | |
---|---|---|
1 | <?php | |
2 | ||
3 | < | // A test navigation thingy. |
4 | < | // pjm2@ukc.ac.uk |
3 | > | # Navigation for the i-scream reports. |
4 | > | # pjm2@ukc.ac.uk |
5 | > | # |
6 | > | # CONFIGURABLE CONSTANTS |
7 | > | # |
8 | ||
9 | + | # The report directory, and the number of days to display. |
10 | + | $reportDirectory = "/home/cut/pjm2/webpages/reports"; |
11 | + | $maxDaysShown = 7; |
12 | ||
13 | + | # Page appearance. |
14 | + | $scaleImage = "24hour.gif"; |
15 | + | $lineColor = "#9999ff"; |
16 | + | |
17 | + | # Files to include |
18 | + | $titleHTML = "title.inc"; |
19 | + | $bottomHTML = "bottom.inc"; |
20 | + | $machineNameHTML = "machine_name.inc"; |
21 | + | $reportHTML = "report.inc"; |
22 | + | |
23 | + | # What are the names of the report files? |
24 | + | $reportLimitsFile = "i-maxmin.txt"; |
25 | + | $reportChartFile = "i-chart.gif"; |
26 | + | $reportChartDataFile = "i-data.txt"; |
27 | + | |
28 | + | # Submission details. |
29 | + | $formMethod = "GET"; |
30 | + | $thisPage = "browser.php"; |
31 | + | |
32 | + | # Leave this alone unless you know what you're doing ;) |
33 | + | $minFileSize = 33; |
34 | + | |
35 | + | # |
36 | + | # END CONFIGURATION |
37 | + | |
38 | + | |
39 | + | |
40 | + | |
41 | + | |
42 | + | # Used to return whether or not a report data file is empty. |
43 | + | function isReportEmpty($filename) { |
44 | + | if (filesize($filename) < minFileSize) { |
45 | + | return TRUE; |
46 | + | } |
47 | + | return FALSE; |
48 | + | } |
49 | + | |
50 | + | |
51 | + | # return an array of subdirectories in the current directory. |
52 | function getdirArray($dir='./',$sort='asort') { | |
53 | global $dir_file_count; | |
54 | if ( is_dir($dir) ) { | |
# | Line 11 | Line 56 | function getdirArray($dir='./',$sort='asort') { | |
56 | while ( ($part = @readdir($fd)) == TRUE ) { | |
57 | clearstatcache(); | |
58 | if ($part != "." && $part != "..") { | |
59 | < | $dir_array[] = $part; |
59 | > | if (preg_match("/^[0-9]{4}\-[0-9]{2}\-[0-9]{2}$/", $part)) { |
60 | > | $dir_array[] = $part; |
61 | > | } |
62 | } | |
63 | } | |
64 | if($fd == TRUE) { | |
# | Line 29 | Line 76 | function getdirArray($dir='./',$sort='asort') { | |
76 | } | |
77 | } | |
78 | ||
32 | – | include("day.inc"); |
33 | – | |
79 | ?> | |
80 | ||
81 | < | <html> |
37 | < | <body bgcolor="#ffffff"> |
81 | > | <? include($titleHTML); ?> |
82 | ||
83 | < | <font face="arial, sans-serif"> |
40 | < | <h4>I-scream report browser [trial 2.0]</h4> |
41 | < | </font> |
83 | > | <hr weight="1" color="<? echo $lineColor ?>"> |
84 | ||
85 | < | <hr> |
85 | > | <b>Most recent reports available</b> |
86 | > | <form method="<? echo $formMethod ?>" action="<? echo $thisPage ?>"> |
87 | > | <? |
88 | ||
89 | < | <font face="arial, sans-serif" size="2"> |
90 | < | <b>View reports for <? echo "$day" ?></b> |
91 | < | </font> |
89 | > | $file_array = getdirArray($reportDirectory,'rsort'); |
90 | > | print "<select size=\"1\" name=\"day\">"; |
91 | > | foreach($file_array as $file_name) { |
92 | > | if (is_dir($file_name)) { |
93 | > | $i++; |
94 | > | print "<option value=\"$file_name\">$file_name</option>"; |
95 | > | } |
96 | > | if ($i >= $maxDaysShown) { |
97 | > | break; |
98 | > | } |
99 | > | } |
100 | > | print "</select>"; |
101 | ||
102 | < | <p> |
102 | > | ?> |
103 | > | <input type="submit" name="submit" value="Go"> |
104 | > | </form> |
105 | ||
106 | < | <form method="GET" action=""> |
52 | < | <select size="1" name="machine_name"> |
53 | < | <? include("machine_name.inc"); ?> |
54 | < | </select> |
106 | > | <hr weight="1" color="<? echo $lineColor ?>"> |
107 | ||
108 | < | <select size="1" name="report"> |
57 | < | <? include("report.inc"); ?> |
58 | < | </select> |
108 | > | <? if ($day) { ?> |
109 | ||
110 | < | <input type="submit" name="submit" value="bung"> |
110 | > | <b>Available reports for <? echo $day ?></b> |
111 | ||
112 | < | </form> |
112 | > | <form method="<? echo $formMethod ?>" action="<? echo $thisPage ?>"> |
113 | > | <select size="1" name="machine_name"> |
114 | > | <? if ($machine_name) { ?> |
115 | > | <option selected value="<? echo $machine_name ?>"><? echo $machine_name ?></option> |
116 | > | <option value="">----------------</option> |
117 | > | <? } else { ?> |
118 | > | <option selected value="">[select machine]</option> |
119 | > | <? } ?> |
120 | > | <? include("$day/$machineNameHTML"); ?> |
121 | > | </select> |
122 | ||
123 | < | </p> |
123 | > | <select size="1" name="report"> |
124 | > | <? if ($report) { ?> |
125 | > | <option selected value="<? echo $report ?>"><? echo $report ?></option> |
126 | > | <option value="">----------------</option> |
127 | > | <? } else { ?> |
128 | > | <option selected value="">[select report]</option> |
129 | > | <? } ?> |
130 | > | <? include("$day/$reportHTML"); ?> |
131 | > | </select> |
132 | ||
133 | < | <? |
134 | < | if ($submit == "bung") { |
135 | < | $url = escapeshellcmd("$day/$machine_name/$report/chart.gif"); |
69 | < | if (file_exists($url)) { |
70 | < | echo "<p><b>$machine - $report$</b><br><img src=\"$url\" width=\"500\" height=\"250\"><br><img src=\"24hour.gif\" width=\"500\" height=\"39\"></p>"; |
71 | < | } |
72 | < | else { |
73 | < | echo "<p>The report could not be found.</p>"; |
74 | < | } |
75 | < | } |
133 | > | <input type="hidden" name="day" value="<? echo $day ?>"> |
134 | > | <input type="submit" name="submit" value="Show"> |
135 | > | </form> |
136 | ||
137 | < | ?> |
137 | > | <hr weight="1" color="<? echo $lineColor ?>"> |
138 | > | |
139 | > | <? } ?> |
140 | ||
141 | < | <hr> |
141 | > | </p> |
142 | ||
81 | – | <p> |
82 | – | <font face="arial, sans-serif" size="2"> |
83 | – | <b>Or browse all dates</b> |
84 | – | </font> |
85 | – | </p> |
143 | ||
144 | <? | |
145 | < | |
146 | < | $file_array = getdirArray('/home/cut/pjm2/webpages/reports','asort'); |
147 | < | foreach($file_array as $file_name) { |
148 | < | if (is_dir($file_name)) { |
149 | < | print "+ <a href=\"$file_name\">$file_name</a><br>"; |
145 | > | if ($submit == "Show" && $machine_name && $report) { |
146 | > | |
147 | > | include("$day/$machine_name/$report/$reportLimitsFile"); |
148 | > | |
149 | > | $url = escapeshellcmd("$day/$machine_name/$report/$reportChartFile"); |
150 | > | if (isReportEmpty("$day/$machine_name/$report/$reportChartDataFile")) { |
151 | > | echo "Host <b>$machine_name</b> did not send any information about <b>$report</b> on <b>$day</b>. Please select another report."; |
152 | } | |
153 | + | else if (file_exists($url)) { ?> |
154 | + | |
155 | + | <center><b>[<? echo $machine_name; ?>] - <? echo $report; ?></b></center> |
156 | + | |
157 | + | <table border="0" cellpadding="0" cellspacing="0"> |
158 | + | <tr> |
159 | + | <td align="right" valign="top"> |
160 | + | <font size="2"><? printf("%.1f", $max_value); ?></font> |
161 | + | </td> |
162 | + | <td rowspan="2"> |
163 | + | <img src="<? echo $url; ?>" width="500" height="250"> |
164 | + | </td> |
165 | + | </tr> |
166 | + | <tr> |
167 | + | <td align="right" valign="bottom"> |
168 | + | <font size="2"><? echo $min_value; ?></font> |
169 | + | </td> |
170 | + | </tr> |
171 | + | <tr> |
172 | + | <td> </td> |
173 | + | <td><img src="<? echo $scaleImage ?>" width="500" height="39"></td> |
174 | + | </tr> |
175 | + | </table> |
176 | + | |
177 | + | <hr weigth="1" color="<? echo $lineColor ?>"> |
178 | + | |
179 | + | <b>Extra data</b> |
180 | + | <p> |
181 | + | <a href="<? echo "$day/$machine_name/$report/$reportChartDataFile" ?>">Raw plot data</a><br> |
182 | + | <a href="<? echo "$day/$machine_name/$report/$reportChartFile" ?>">GIF chart</a><br> |
183 | + | <a href="<? echo "$day/$machine_name/$report/$reportLimitsFile" ?>">PHP y-axis limits include</a> |
184 | + | |
185 | + | <? } |
186 | + | else { |
187 | + | echo "<p>The report could not be found. Somebody must have deleted it!</p>"; |
188 | + | } |
189 | + | echo "<hr weight=\"1\" color=\"$lineColor\">"; |
190 | } | |
191 | < | |
191 | > | |
192 | ?> | |
193 | ||
194 | < | </body> |
99 | < | </html> |
194 | > | <? include($bottomHTML); ?> |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |