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