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