]> git.pld-linux.org Git - projects/buildlogs.git/blame - index.php
Show client IP.
[projects/buildlogs.git] / index.php
CommitLineData
a7f1713c 1<?php
2ob_start("ob_gzhandler", 1);
3$buildlogs_server = "buildlogs.pld-linux.org";
a6cc6dd6 4$url = "index.php";
a7f1713c 5$fail_or_ok = array( "FAIL", "OK" );
6/*
9dcdc6b4 7$database = 'sqlite:/home/services/ftp/buildlogs2.db';
a7f1713c 8$root_directory = "/home/services/ftp/pub/pld-buildlogs";
9*/
10
11// $database, $root_directory and others are taken from buildlogs.inc
f27dac56 12include('buildlogs.inc');
a7f1713c 13
14/* It should be set */
15
16$langs["en_US"]["charset"]="ISO-8859-1";
17$langs["pl_PL"]["charset"]="ISO-8859-2";
18
19$lang="en_US";
20if (isset($_SERVER["HTTP_ACCEPT_LANGUAGE"]))
21{
22 $rows=explode(";",$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
23 $rows=explode(",",$rows[0]);
24 $lang_detected=rtrim($rows[0]);
25} else if (preg_match("/opera/i",$_SERVER["HTTP_USER_AGENT"]))
26{
27 $lang_detected=preg_replace("/.*\[(.*)\].*/i","\\1",$_SERVER["HTTP_USER_AGENT"]);
28}
29
30// FIXME - some array
31$lang_detected=preg_replace("/^pl$/i","pl_PL",$lang_detected);
32
33if (isset($lang_detected) && isset($langs[$lang_detected]))
34{
35 $lang=$lang_detected;
36}
37
38if (isset($_GET["lang"]))$_SESSION["lang"]=$_GET["lang"];
39if (isset($_SESSION["lang"]))$lang=$_SESSION["lang"];
40
41putenv("LANG=$lang");
42setlocale(LC_ALL,$lang);
43bindtextdomain("messages","locale");
44textdomain("messages");
45
46if (isset($_GET["dist"]) && isset($_GET["arch"]))
47{
48 $dist = basename($_GET["dist"]);
49 $arch = basename($_GET["arch"]);
50}
51
52if (isset($_POST["dist"])) $dist = basename($_POST["dist"]);
53if (isset($_POST["arch"])) $arch = basename($_POST["arch"]);
54
55if (isset($_GET["name"])) {
8f0e31ba 56 $name_url = urlencode($_GET["name"]);
a7f1713c 57 $name = basename($_GET["name"]);
58}
59if (isset($_GET["ok"]))$ok=(int)$_GET["ok"];
60else $ok="";
61if (isset($_GET["ns"]))$ns=(int)$_GET["ns"];
62else $ns="";
63if (isset($_GET["cnt"]))$cnt=(int)$_GET["cnt"];
64else $cnt = 50;
65if (isset($_GET["action"]))$action=$_GET["action"];
66else $action="";
67if (isset($_GET["off"]))$off=(int)$_GET["off"];
68else $off = 0;
69if (isset($_GET["id"]))$id=$_GET["id"];
70
71if (isset($_POST["str"]))$str=$_POST["str"];
72if (isset($_POST["action"]))$action=$_POST["action"];
73
74function myheader()
75{
76echo '<' . '?xml version="1.0" encoding="' . _("ISO-8859-1") .'"?' . ">\n";
77echo '<' . '?xml-stylesheet href="#internalStyle" type="text/css"?' . ">\n";
78?>
79<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
80 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
81<html xmlns="http://www.w3.org/1999/xhtml">
82 <head>
83 <title>PLD Build Logs</title>
84 <?php echo '<meta http-equiv="Content-type" content="text/html; charset=' . _("ISO-8859-1") .'"/>' ."\n";?>
85 <style type="text/css"><!--
86A { text-decoration: none; }
87A:hover { text-decoration: underline; }
88H1 { font-family: arial,helvetica,sans-serif;
89 font-size: 20pt;
90 font-weight: bold;}
91H2 { font-family: arial,helvetica,sans-serif;
92 font-size: 18pt;
93 font-weight: bold;}
94BODY,TD { font-family: arial,helvetica,sans-serif;
95 font-size: 13pt; }
96TH { font-family: arial,helvetica,sans-serif;
97 font-size: 13pt;
98 font-weight: bold; }
99//-->
100</style>
101 </head>
102 <!-- Diffrent color for visited link doesn't make much sense here...
103 this page is autogenerated and it might be misleading after some
104 build log changes. -->
105 <body bgcolor="#ffffff" text="#000000" link="#5f26cd" vlink="#5f26cd">
106<?php
107}
108
109function start_pre()
110{
111 echo "<table cellpadding=\"10\"><tr><td bgcolor=\"#000000\">".
112 "<font color=\"#cccccc\"><pre style=\"width: 2048px;overflow: scroll\">";
113}
114
115function end_pre()
116{
117 echo "</pre></font></td></tr></table>\n";
118}
119
120function trailer()
121{
122 echo "</body></html>";
123}
124
125
126function mydie($msg)
127{
128 echo "Fatal error: $msg";
129}
130
131
132
133function list_logs()
134{
135 global $database;
136 global $arch, $dist, $ok;
137 global $big_url, $ns;
138 global $off, $cnt, $root_directory, $url;
139
140 $big_url = "$url?dist=$dist&amp;arch=$arch&amp;ok=$ok&amp;ns=$ns&amp;cnt=$cnt";
141
142 if ($ok == 1) {
143 echo "<h1>"._("Listing of")." $dist/$arch/OK "
144 ."(<a href=\"$big_url&amp;ok=0\">"._("fail")."</a>)</h1>\n";
145 } else {
146 echo "<h1>"._("Listing of")." $dist/$arch/FAIL "
147 ."(<a href=\"$big_url&amp;ok=1\">"._("ok")."</a>)</h1>\n";
148 }
149
150 echo "<div align=\"center\"><table cols=\"4\" border=\"0\" cellspacing=\"1\" ".
151 "cellpadding=\"3\" bgcolor=\"#000000\" width=\"90%\">\n";
152 echo "<tr><th bgcolor=\"#CCCCFF\" align=\"right\" width=\"1%\">"._("No.")."</th>".
153 "<th bgcolor=\"#CCCCFF\" align=\"left\" width=\"80%\">"._("Log File").
154 "[<a href=\"$big_url&amp;ns=1\">"._("sort")."</a>]</th>".
155 "<th bgcolor=\"#CCCCFF\" align=\"right\" width=\"15%\">"._("Size")."</th> ".
156 "<th bgcolor=\"#CCCCFF\" align=\"left\">"._("Age").
157 "[<a href=\"$big_url&amp;ns=0\">"._("sort")."</a>]</th>".
158 "</tr>";
159
160 if ($ns != 1) $ns = 0;
161 if (!isset($ok)) $ok = 0;
162// if (!isset($off)) $off = 0;
163// if (!isset($cnt)) $cnt = 50;
164 if ($ns == 0) $order = "mtime DESC";
165 else $order = "name";
166
167 $query = "SELECT log_id, dist, arch, ok, name, mtime, size, id FROM logs WHERE "
168 . "dist = '$dist' AND arch = '$arch' AND ok = $ok ORDER BY $order LIMIT $cnt OFFSET $off";
169
170 try {
171 $dbh = new PDO("$database");
172 } catch (PDOException $e) {
173 mydie("new PDO: " . $e->getMessage());
174 }
175 $now = time();
176 $i = $off;
177 foreach ($dbh->query("$query") as $row) {
8f0e31ba 178 $name = $row["name"];
179 $id = $row["id"];
180 $dist = $row["dist"];
181 $arch = $row["arch"];
182 $f = $name;
183 $name_url = urlencode($name);
a7f1713c 184 $t = $now - $row["mtime"];
185 $s = $row["size"];
186 $h = $row["log_id"];
187
188 $t /= 60;
189 if ($t >= 60) {
190 $t /= 60;
191 if ($t >= 24) {
192 $t /= 24;
193 $t = round($t);
194 $t = $t . "&nbsp;" . ngettext("day","days",$t);
195 } else {
196 $t = round($t);
197 $t = $t . "&nbsp;" . ngettext("hour","hours",$t);
198 }
199 } else {
200 $t = round($t);
201 $t = $t . "&nbsp;" . ngettext("minute","minutes",$t);
202 }
8f0e31ba 203 $u = "$url?dist=$dist&amp;arch=$arch&amp;ok=$ok&amp;name=$name_url&amp;id=$id";
a7f1713c 204 echo "<tr><td bgcolor=\"#CCCCCC\" align=\"right\">".($i+1).".</td>".
205 "<td bgcolor=\"#CCCCCC\"><a href=\"$u\">$f</a> ".
206 "[<a href=\"$u&amp;action=text\">"._("text")."</a> | ".
207 "<a href=\"$u&amp;action=tail\">"._("tail")."</a>]".
208 "</td><td bgcolor=\"#CCCCCC\" align=\"right\">".
209 "$s</td><td bgcolor=\"#CCCCCC\">$t</td></tr>\n";
210 $i++;
211 }
212 $count = $i - $off;
213 echo "</table></div>\n";
214
215 $backarr = "&lt;&lt;&lt;&nbsp;";
216 $back = _("Page back");
217 $forward = _("Page forward");
218 $forwardarr = "&nbsp;&gt;&gt;&gt;";
219
220 echo "<p><table width=\"90%\" align=\"center\"><tr><td align=\"left\" width=\"1%\">";
221
222 if ($off > 0) {
223 $noff = $off - $count;
224 if ($noff < 0)
225 $noff = 0;
226 $hrefurl = "<a href=\"$big_url&amp;off=$noff\">";
227 echo "$hrefurl$backarr</a></td><td align=\"left\">$hrefurl$back</a>";
228 } else {
229 echo "$backarr</td><td align=\"left\">$back";
230 }
231
232 echo "</td>\n<td align=\"center\">";
233
234 if (isset($dist) && isset($arch)) {
235 echo "[<a href=\"$big_url&amp;action=qa\">"._("View <quot>rpm&nbsp;-qa</quot> of builder")."</a>]";
236 } else {
237 echo "&nbsp;";
238 }
239
240 echo "</td>\n<td align=right>";
241 if ($cnt == $count) {
242 $noff = $off + $cnt;
243 if ($noff < 0)
244 $noff = 0;
245 $hrefurl = "<a href=\"$big_url&amp;off=$noff\">";
246 echo "$hrefurl$forward</a></td><td align=right width=1%>$hrefurl$forwardarr</a>";
247 } else {
248 echo "$forward</td><td align=right width=1%>$forwardarr";
249 }
250 echo "</td>\n</tr></table></p>";
251}
252
253function file_name()
254{
8f0e31ba 255 global $ok, $dist, $arch, $name, $name_url, $id;
a7f1713c 256
257 if (isset($name) && isset($ok) && isset($arch) && isset($dist)) {
258 if (isset($id) && $id != '') {
259 $name = $name . ",$id";
260 }
261 $w = $ok ? "OK" : "FAIL";
262 return "$dist/$arch/$w/$name.bz2";
263 }
264}
265
266function dump_log($tail)
267{
8f0e31ba 268 global $ok, $url, $dist, $arch, $name, $name_url;
a7f1713c 269 global $root_directory, $big_url, $ns, $id, $cnt, $off;
270 global $buildlogs_server;
271
272 $f = file_name();
273
274 if ($f == false)
275 return;
276
277 $df = preg_replace("/.*\/([^\/]*)$/", "\\1", $f);
278 $df = preg_replace("/\.(bz2|gz)$/", "", $df);
279
280 echo "<h1>$df</h1>";
281
282 echo "<table border=\"0\" cellpadding=\"3\" cellspacing=\"1\" bgcolor=\"#000000\">";
283
284 function one_item($h, $t) {
285 echo "<tr><td bgcolor=\"#ccccff\">$h:</td>".
286 "<td bgcolor=\"#cccccc\">$t</td></tr>";
287 }
288
289 function href($h, $c) {
290 return "<a href=\"$h\">$c</a>";
291 }
292
293 one_item(_("Status"), ($ok == 1 ?
294 "<font color=\"green\"><b>"._("OK")."</b></font>" :
295 "<font color=\"red\"><b>"._("Failed")."</b></a>"));
296 one_item(_("Source URL"),
297 href("ftp://$buildlogs_server/$f",
298 "ftp://$buildlogs_server/$f"));
299
300 $big_url = "$url?dist=$dist&amp;arch=$arch&amp;ok=$ok&amp;ns=$ns&amp;cnt=$cnt";
301 $bu = "$big_url&amp;off=$off";
302
303 one_item(_("text/plain URL"),
8f0e31ba 304 href("$bu&amp;name=$name_url&amp;id=$id&amp;action=text",
a7f1713c 305 _("View!")));
306 if ($tail) {
307 one_item(_("full text"),
8f0e31ba 308 href("$bu&amp;name=$name_url&amp;id=$id",
a7f1713c 309 _("View!")));
310 }
311
312 if (isset($dist) && isset($arch)) {
313 one_item(_("rpm -qa of builder"), href("$bu&amp;action=qa", _("View!")));
314 } else {
315 one_item(_("rpm -qa of builder"), _("Not available"));
316 }
35a4c15e 317 one_item("Date", date("Y/m/d H:i:s", filemtime("$root_directory/$f")));
a7f1713c 318 /*
319 echo "<tr><td>Here:</td><td>" .
320 "<a href=\"$url?idx=$idx&amp;ok=$ok&amp;id=$id\">".
321 "http://" . getenv("SERVER_NAME") .
322 getenv("SCRIPT_NAME") . "?idx=$idx&amp;ok=$ok&amp;id=$id</a>" .
323 "</td></tr>"; */
324
325 echo "</table><h2>"._("Content:")."</h2>";
326
327
328 # what can I say beside PHP suxx? how the fuck should I create
329 # bidirectional pipe? gotta use wget
330
331 if (preg_match("/\.bz2$/", $f)) {
332 $filter = "bzcat";
333 } elseif (preg_match("/\.gz$/", $f)) {
334 $filter = "zcat";
335 } else {
336 $filter = "cat";
337 }
338
8f0e31ba 339 $cmd = "$filter '$root_directory/$f'";
a7f1713c 340 if ($tail)
341 $cmd = "$cmd | tail -n 100";
342 $fd = popen($cmd, "r");
343 start_pre();
344 while (($s = fgets($fd, 102400)) != false) {
345 if (strlen($s) > 800) {
346 $s = chunk_split($s, 800, "\n ");
347 $s = trim($s);
348 }
349 $s = htmlspecialchars($s);
350 echo $s;
351 }
352 end_pre();
353 pclose($fd);
354
355?>
356 <table width="100%">
357 <tr>
358 <td align=left>
359 [<a href="<?php echo $bu; ?>"><?=_("Back to list of logs")?></a>]
360 </td>
361 <td align=right>
362 [<a href="<?php echo "$bu&amp;action=qa"
363 ?>"><?=_("View rpm -qa of builder")?></a>]
364 </td>
365 </tr>
366 </table>
367<?php
368
369}
370
371function dump_text()
372{
373 global $root_directory;
374 global $buildlogs_server;
375
376 header("Content-type: text/plain");
377
378 $f = file_name();
379 if ($f == false)
380 return;
381
382 echo "# src : ftp://$buildlogs_server/$f\n";
383 echo "# date : " .
384 date("Y/m/d H:i:s", filemtime("$root_directory/$f")) . "\n";
385
386 if (preg_match("/\.bz2$/", $f)) {
387 $filter = "bzcat";
388 } elseif (preg_match("/\.gz$/", $f)) {
389 $filter = "zcat";
390 } else {
391 $filter = "cat";
392 }
393
8f0e31ba 394 $cmd = "$filter '$root_directory/$f'";
a7f1713c 395 $fd = popen($cmd, "r");
396 while (($s = fgets($fd, 1000)) != false) {
397 echo $s;
398 }
399 pclose($fd);
400}
401
402function list_archs()
403{
404 global $addr, $url, $cnt,$ok,$ns;
405
406 if (!isset($cnt))
407 $cnt = 50;
408
409 $big_url = "$url?ok=$ok&amp;ns=$ns&amp;cnt=$cnt";
410
411 echo "<table width=\"100%\" border=\"0\">\n";
412 echo "<tr><td bgcolor=\"#cccccc\" nowrap=\"nowrap\">"._("Failed")."</td><td bgcolor=\"#cccccc\">"._("Ok")."</td></tr>\n";
8f0e31ba 413 foreach ($addr as $dist => $ddist) {
506bb488 414 foreach ($ddist as $arch) {
a7f1713c 415 echo "<tr><td nowrap=\"nowrap\">".
506bb488 416 "<a href=\"$url?dist=$dist&amp;arch=$arch&amp;ok=0&amp;cnt=$cnt\">
417 $dist/$arch</a></td><td nowrap=\"nowrap\">".
a7f1713c 418 "[<a href=\"$url?dist=$dist&amp;arch=$arch&amp;ok=1&amp;cnt=$cnt\">OK</a>]</td>".
419 #"<td>[<a href=\"$url?idx=$i&amp;action=qa\">qa</a>]</td>".
420 "</tr>\n";
506bb488 421 }
a7f1713c 422 }
423 echo "</table><hr />\n";
424
425 echo "<div align=\"center\">";
426 echo "<a href=\"$big_url&amp;action=adv_search\">"._("Advanced Search")."</a><br />\n";
427
428 echo "<a href=\"$url\">main()</a><hr />\n";
429 echo "<a href=\"http://www.pld-linux.org/\"><img src=\"powpld.png\" ".
430 "alt=\""._("Powered by PLD Linux")."\" border=\"0\" /></a><br />\n" .
431 "<small>(c) 2002 ".
432 "<a href=\"mailto:feedback@pld-linux.org\">PLD&nbsp;Team</a><br />\n".
774eb927 433 '$Revision: 1.9 $'.
a7f1713c 434 "</small></div>\n";
435
436 # smile ;)
437 echo "<div align=\"center\"><small>";
438 $pow = array("vim", "php", "brain", "power", "electricity",
439 "coffee", "ufo", "penguin", "GNOME", "ELF", "DWARF",
440 "voodoo magic", "Linux", "x-files", "X", "foobar",
441 "/dev/null", "/dev/zero", "/dev/drzewo",
442 "Leppe'", "matrix", "Neo", "PDP-11",
443 "Ken", "GNU antilope", "PDP-7", "ITS", "Multics",
444 "foobarbaz", "ed", "Joe", "Unix conspiracy",
445 "overclock", "The Right Thing",
446 "The Bad Thing", "Star Treck", "NSA", "NASA",
447 "achelon", "VAX", "Real Programmer",
448 "Real Operating System", "Real Computer",
449 "computron", "bogon", "quantum bogodynamics",
450 "BOFH", "/dev/ill", "nasi tu byli",
451 "Paranoid Android", "Lunatic Corp", "Parallel thinking",
452 "sfistak", "Linus", "The Golden Path", "Dark Side of the Force",
453 "Przewodniczacego Lepper-a", "KDE", "Microsoft Windows 2003", "sqlite3",
3cf4f3e8 454 "synergy", "six Cray XMT Supercomputers"
a7f1713c 455 # feel free to add sth if you change this file ;)
456 );
457 echo _("Powered by")." ";
458 $max = 1;
459 for ($i = 0; $i < $max; $i++) {
460 $x = rand(0, count($pow) - 1);
461 if ($pow[$x] == "") $i--;
462 else echo $pow[$x] . ($i == $max - 1 ? "." : ", ");
463 $pow[$x] = "";
464 }
465 echo "</small></div>";
466
774eb927
AM
467 echo "<div align=\"center\"><small>";
468 echo "Your IP: " . $_SERVER['REMOTE_ADDR'];
469 echo "</small></div>";
470
a7f1713c 471 if (isset($dist) && isset($arch)) {
a6cc6dd6 472 echo "<form action=\"index.php\" method=\"post\">";
a7f1713c 473 echo "<input type=\"hidden\" name=\"dist\" value=\"$dist\" />";
474 echo "<input type=\"hidden\" name=\"arch\" value=\"$arch\" />";
475 echo "<input type=\"hidden\" name=\"action\" value=\"sqa\" />";
476 echo "<input type=\"text\" size=\"14\" name=\"str\" /><br />";
477 echo "<input type=\"submit\" name=\"submit\" value=\""._("Search rpmqa!")."\" />";
478 echo "</form>";
479 }
480}
481
482function get_qa()
483{
484 global $dist, $arch;
485
486 if (!isset($dist) || !isset($arch))
487 return false;
a1a84384 488 if($dist!='ti'){
489 $addr = "http://ftp.pld-linux.org/dists/$dist/.stat/builder/$dist/rpmqa-$arch.txt";
490 }else{
491 $addr = "http://ftp.pld-linux.org/branches/titanium/.stat/builder/$dist/rpmqa-$arch.txt";
492 }
a7f1713c 493 return fopen("$addr", "r");
494}
495
496function search_qa()
497{
498 global $url, $str, $dist, $arch;
499
500 $f = get_qa();
501 echo "<h1>"._("Search results for")." '$str' "._("in")." $dist/$arch</h1>";
502
503 start_pre();
504
505 if ($f == 0) {
506 echo _("Sorry, cannot open.");
507 } else {
508 while (($s = fgets($f, 1000)) != false) {
509 if (stristr($s, $str))
510 echo $s;
511 }
512 echo "/* EOF */";
513 }
514 end_pre();
515}
516
517function dump_qa($plain)
518{
519 global $url, $dist, $arch;
520
521 $f = get_qa();
522
523 if ($plain) {
524 header("Content-type: text/plain");
525 echo _("# rpm -qa of")." $dist/$arch\n";
526 } else {
527 echo "<h1>"._("rpm -qa of")." $a</h1>";
528 echo "<a href=\"$url?dist=$dist&amp;arch=$arch&amp;action=qatxt\">"._("text/plain version")."</a>";
529 start_pre();
530 }
531
532 if ($f == 0) {
533 echo _("Sorry, cannot open.");
534 } else {
535 while (($s = fgets($f, 1000)) != false) {
536 echo $s;
537 }
538 }
539
540 if (!$plain)
541 end_pre();
542}
543
544
545function adv_search()
546{
547 global $database, $addr, $fail_or_ok, $url, $_POST, $off, $cnt, $root_directory, $ok, $ns;
548
549 $big_url = "$url?ok=$ok&amp;ns=$ns&amp;cnt=$cnt";
550
551 echo "<script><!--\n".
552 "function checkboxToggle() {\n".
553 "for (var i=0;i<document.forms[0].elements.length;i++) {\n".
554 "var e = document.forms[0].elements[i];\n".
555 "if ((e.name != 'all') && (e.type=='checkbox'))\n".
556 "e.checked = document.forms[0].all.checked;\n".
557 "}\n }\n -->\n </script>\n";
558
559/* Shut up warnings */
8f0e31ba 560 if (!isset($_POST["n2"])) $_POST["n2"] = "";
a7f1713c 561 if (!isset($_POST["age1"])) $_POST["age1"] = "";
562 if (!isset($_POST["age2"])) $_POST["age2"] = "";
563 if (!isset($_POST["size1"])) $_POST["size1"] = "";
564 if (!isset($_POST["size2"])) $_POST["size2"] = "";
565
a6cc6dd6 566 echo "<form action=\"index.php?action=adv_search\" method=\"post\">";
a7f1713c 567
568 echo "<div align=\"center\">";
569 echo "<table border=\"0\">\n";
570 echo "<tr>\n";
571 echo "<td>"._("Package name")."</td>\n";
8f0e31ba 572 echo "<td><input type=\"text\" size=\"20\" name=\"n2\" value=\"". $_POST["name"] ."\"/></td>\n";
a7f1713c 573 echo "</tr>\n";
574
575 echo "<tr>\n";
576 echo "<td>"._("Days")."</td>\n";
577 echo "<td>"._("From").": <input type=\"text\" size=\"20\" name=\"age1\" value=\"". $_POST["age1"] ."\" /></td>\n";
578 echo "<td>"._("To").": <input type=\"text\" size=\"20\" name=\"age2\" value=\"". $_POST["age2"] ."\" /></td>\n";
579 echo "</tr>\n";
580
581 echo "<tr>\n";
582 echo "<td>"._("Size")."</td>\n";
583 echo "<td>"._("From").": <input type=\"text\" size=\"20\" name=\"size1\" value=\"". $_POST["size1"] ."\" /></td>\n";
584 echo "<td>"._("To").": <input type=\"text\" size=\"20\" name=\"size2\" value=\"". $_POST["size2"] ."\" /></td>\n";
585 echo "</tr>\n";
586
587 echo "<tr>\n";
588 echo "<td>"._("Search logs:")."</td>\n";
589 echo "</tr>\n";
590
591 echo "<tr>\n";
592 echo "<td>"._("Failed")."</td>\n";
593 echo "<td>"._("OK")."</td>\n";
594 echo "</tr>\n";
595
506bb488 596 $i = 1;
8f0e31ba 597 foreach ($addr as $dist => $ddist) {
506bb488 598 foreach ($ddist as $arch) {
a7f1713c 599 echo "<tr>\n";
600 $name="as0_".$i;
a7f1713c 601 if (!isset($_POST["$name"])) {
602 $check = " ";
603 } else {
604 $check=" checked=\"on\"";
605 }
8f0e31ba 606 echo "<td><input name=\"$name\" id=\"$name\" type=\"checkbox\"$check /><label for=\"$name\">". "$dist/$arch" ."</label></td>\n";
a7f1713c 607 $name="as1_".$i;
8f0e31ba 608 if (!isset($_POST["$n2"])) {
a7f1713c 609 $check = " ";
610 } else {
611 $check=" checked=\"on\"";
612 }
8f0e31ba 613 echo "<td><input name=\"$name\" id=\"$name\" type=\"checkbox\"$check /><label for=\"$name\">". "$dist/$arch" ."</label></td>\n";
a7f1713c 614 echo "</tr>\n";
506bb488 615 $i++;
616 }
a7f1713c 617 }
618
619 echo "<tr>\n";
8f0e31ba 620 echo "<td><label><input name=\"all\" type=\"checkbox\" checked=\"on\" onClick=\"checkboxToggle()\">"._("Toggle checkboxes")."</label>&nbsp;<input type=\"submit\" name=\"submit\" value=\""._("Search!")."\" /></td>";
a7f1713c 621 echo "</tr>\n";
622
623 echo "</table>\n";
624
625// if (isset($_POST["name"]) || isset($_POST["age1"]) || isset($_POST["age2"]) ||
626// isset($_POST["size1"]) || isset($_POST["size2"])
8f0e31ba 627 if (($_POST["n2"]!="") || ($_POST["age1"]!="") || ($_POST["age2"]!="") ||
a7f1713c 628 ($_POST["size1"]!="") || ($_POST["size2"]!=""))
629 {
630 $query = "SELECT log_id, dist, arch, ok, name, size, mtime, id FROM logs WHERE 1 ";
8f0e31ba 631 if ($_POST["n2"] != "") {
632 $n = addslashes($_POST["n2"]);
a7f1713c 633 $query .= "AND name LIKE '$n%' ";
634 }
635 $now = time();
636
637 if ($_POST["age1"] != "") {
638 $age = $now - (int)$_POST["age1"] * 24 * 3600;
639 $query .= "AND mtime > $age ";
640 }
641
642 if ($_POST["age2"] != "") {
643 $age = $now - (int)$_POST["age2"] * 24 * 3600;
644 $query .= "AND mtime < $age ";
645 }
646
647 if ($_POST["size1"] != "") {
648 $size = (int)$_POST["size1"];
649 $query .= "AND size > $size ";
650 }
651
652 if ($_POST["size2"] != "") {
653 $size = (int)$_POST["size2"];
654 $query .= "AND size < $size ";
655 }
656
657 $or = "AND (";
506bb488 658 $i = 1;
8f0e31ba 659 foreach ($addr as $dist => $ddist) {
506bb488 660 foreach ($ddist as $arch) {
661 for ($j = 0; $j < 2; $j++) {
662 if (isset($_POST["as" . $j . "_" .$i])) {
8f0e31ba 663 $query .= "$or (dist = '$dist' AND arch = '$arch' AND ok = $j)";
a7f1713c 664 $or = " OR ";
665 }
666 }
506bb488 667 $i++;
668 }
a7f1713c 669 }
670 if ($or == " OR ") $query .= ")";
671// if (!isset($cnt)) $cnt = 50;
672// if (!isset($off)) $off = 0;
673 if (!isset($ns)) $ns = 0;
674 switch ($ns) {
675 case 0:
676 $query .= " ORDER BY mtime DESC";
677 break;
678 case 1:
679 $query .= " ORDER BY name";
680 break;
681 case 2:
682 $query .= " ORDER BY dist, arch, name";
683 break;
684 }
685 $query .= " LIMIT $cnt OFFSET $off ";
8f0e31ba 686
a7f1713c 687 try {
688 $dbh = new PDO("$database");
689 } catch (PDOException $e) {
690 mydie("new PDO: " . $e->getMessage());
691 }
692 $result = $dbh->query("$query")->fetchAll();
693
694 if ($result == FALSE) {
695 echo _("Nothing found");
696 } else {
697 echo "<table border=\"0\" cellspacing=\"1\" ".
698 "cellpadding=3 bgcolor=\"#000000\" width=\"90%\">\n";
699 echo "<tr><th bgcolor=\"#CCCCFF\" align=\"left\" width=\"10%\">"._("Builder").
700 "[<a href=\"$big_url&amp;ns=2\">"._("sort")."</a>]</th>";
701 echo "<th bgcolor=\"#CCCCFF\" align=\"left\" width=\"60%\">"._("Log File").
702 "[<a href=\"$big_url&amp;ns=1\">"._("sort")."</a>]</th>".
703 "<th bgcolor=\"#CCCCFF\" align=\"right\" width=\"15%\">"._("Size")."</th> ".
704 "<th bgcolor=\"#CCCCFF\" align=\"left\">"._("Age").
705 "[<a href=\"$big_url&amp;ns=0\">"._("sort")."</a>]</th>".
706 "</th></tr>";
707 $i = $off;
708// for ($i = $off; $i < $off + $count; $i++) {
709 foreach ($result as $row) {
710 $dist = $row["dist"];
711 $arch = $row["arch"];
712 $name = $row["name"];
8f0e31ba 713 $name_url = urlencode($name);
a7f1713c 714 $id = $row["id"];
715 $f = $name;
a7f1713c 716 $t = $now - $row["mtime"];
717 $s = $row["size"];
718 $t /= 60;
719 if ($t >= 60) {
720 $t /= 60;
721 if ($t >= 24) {
722 $t /= 24;
723 $t = round($t);
724 $t = $t . "&nbsp;" . ngettext("day","days",$t);
725 } else {
726 $t = round($t);
727 $t = $t . "&nbsp;" . ngettext("hour","hours",$t);
728 }
729 } else {
730 $t = round($t);
731 $t = $t . "&nbsp;" . ngettext("minute","minutes",$t);
732 }
733
734// $big_url = "$url?idx=$i&amp;ok=$j&amp;ns=$ns&amp;cnt=$cnt";
735 $ok = $row["ok"];
8f0e31ba 736 $u = "$url?dist=$dist&amp;arch=$arch&amp;name=$name_url&amp;ok=$ok&amp;id=$id";
a7f1713c 737 $b = "$url?dist=$dist&amp;arch=$arch&amp;ok=$ok&amp;ns=$ns&amp;off=$off&amp;cnt=$cnt";
738
739 $builder = "$dist/$arch/". $fail_or_ok[$ok];
740 echo "<tr>";
741 echo "<td bgcolor=\"#CCCCCC\"><a href=\"$b\">$builder</a></td>";
742 echo "<td bgcolor=\"#CCCCCC\"><a href=\"$u\">$f</a> ".
743 "[<a href=\"$u&amp;action=text\">"._("text")."</a> | ".
744 "<a href=\"$u&amp;action=tail\">"._("tail")."</a>]".
745 "</td><td bgcolor=\"#CCCCCC\" align=\"right\">".
746 "$s</td><td bgcolor=\"#CCCCCC\">$t</td></tr>\n";
747 $i++;
748 }
749 echo "</table></div>\n";
750
751 $backarr = "&lt;&lt;&lt;&nbsp;";
752 $back = _("Page back");
753 $forward = _("Page forward");
754 $forwardarr = "&nbsp;&gt;&gt;&gt;";
755
756 }
757// FIXME
758/*
759 echo "<p><table width=\"90%\" align=\"center\"><tr><td align=left width=1%>";
760
761 if ($off > 0) {
762 $noff = $off - $cnt;
763 if ($noff < 0)
764 $noff = 0;
765 $hrefurl = "<a href=\"$big_url&amp;off=$noff\">";
766 echo "$hrefurl$backarr</a></td><td align=left>$hrefurl$back</a>";
767 } else {
768 echo "$backarr</td><td align=left>$back";
769 }
770
771 echo "</td>\n<td align=\"center\">";
772 echo "</td>\n<td align=\"right\">";
773
774 if ($off + $cnt < count($list))
775 {
776 $noff = $off + $cnt;
777 if ($noff < 0)
778 $noff = 0;
779 $hrefurl = "<a href=\"$big_url&amp;off=$noff\">";
780 echo "$hrefurl$forward</a></td><td align=\"right\" width=\"1%\">$hrefurl$forwardarr</a>";
781 }
782 else
783 {
784 echo "$forward</td><td align=\"right\" width=\"1%\">$forwardarr";
785 }
786
787 echo "</td>\n</tr></table></p>";
788*/
789 } else
790 {
791 echo _("Enter something!");
792 }
793 echo "</form>\n";
794}
795
796function welcome()
797{
798?>
799<table border="0" width="100%"><tr><td width="20%">&nbsp;</td><td>
800<h1><?=_("Welcome!")?></h1>
801<p><?=_("Welcome to PLD Build Logs WWW interface.")?></p><p>
802<?=_("Feel free to email bug reports, complaints and feature requests ")?>
803<!-- ech... niech strace... -->
804<a href="mailto:feedback@pld-linux.org"><?=_("to us")?></a>. <?=_("Positive opinions are also")?>
805<a href="mailto:feedback@pld-linux.org"><?=_("welcome")?></a> ;)</p>
774eb927 806<p>Version: $Id: index.php,v 1.9 2009/03/02 11:10:33 glen Exp $</p>
a7f1713c 807</td><td width="20%">&nbsp;</td></tr>
808</table>
809<?php
810}
811
812header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
813header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
814header("Cache-Control: no-cache, must-revalidate");
815header("Pragma: no-cache");
816
817//phpinfo();
818if ($action == "text") {
819 dump_text();
820} else if ($action == "adv_search") {
821 myheader();
822 adv_search();
823 trailer();
824} else if ($action == "qatxt") {
825 dump_qa(1);
826} else {
827 myheader();
828 echo "<table cellpadding=\"10\" width=\"100%\"><tr><td valign=\"top\" width=\"10%\">";
829 list_archs();
830 echo "</td><td valign=\"top\">";
831 flush();
832 if ($action == "qa")
833 dump_qa(0);
834 else if ($action == "sqa")
835 search_qa();
836 else if (isset($id) || isset($name))
837 dump_log($action == "tail");
838 else if (isset($dist))
839 list_logs();
840 else
841 welcome();
842 echo "</td></tr></table>";
843 trailer();
844}
845?>
This page took 0.261391 seconds and 4 git commands to generate.