]> git.pld-linux.org Git - projects/buildlogs.git/blame - index.php
- update get_qa() function so it can retrieve titanium info
[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"])) {
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 }
317 one_item("Data", date("Y/m/d H:i:s", filemtime("$root_directory/$f")));
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".
a1a84384 433 '$Revision: 1.3 $'.
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",
454 "synergy"
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
467 if (isset($dist) && isset($arch)) {
8f0e31ba 468 echo "<form action=\"index2.php\" method=\"post\">";
a7f1713c 469 echo "<input type=\"hidden\" name=\"dist\" value=\"$dist\" />";
470 echo "<input type=\"hidden\" name=\"arch\" value=\"$arch\" />";
471 echo "<input type=\"hidden\" name=\"action\" value=\"sqa\" />";
472 echo "<input type=\"text\" size=\"14\" name=\"str\" /><br />";
473 echo "<input type=\"submit\" name=\"submit\" value=\""._("Search rpmqa!")."\" />";
474 echo "</form>";
475 }
476}
477
478function get_qa()
479{
480 global $dist, $arch;
481
482 if (!isset($dist) || !isset($arch))
483 return false;
a1a84384 484 if($dist!='ti'){
485 $addr = "http://ftp.pld-linux.org/dists/$dist/.stat/builder/$dist/rpmqa-$arch.txt";
486 }else{
487 $addr = "http://ftp.pld-linux.org/branches/titanium/.stat/builder/$dist/rpmqa-$arch.txt";
488 }
a7f1713c 489 return fopen("$addr", "r");
490}
491
492function search_qa()
493{
494 global $url, $str, $dist, $arch;
495
496 $f = get_qa();
497 echo "<h1>"._("Search results for")." '$str' "._("in")." $dist/$arch</h1>";
498
499 start_pre();
500
501 if ($f == 0) {
502 echo _("Sorry, cannot open.");
503 } else {
504 while (($s = fgets($f, 1000)) != false) {
505 if (stristr($s, $str))
506 echo $s;
507 }
508 echo "/* EOF */";
509 }
510 end_pre();
511}
512
513function dump_qa($plain)
514{
515 global $url, $dist, $arch;
516
517 $f = get_qa();
518
519 if ($plain) {
520 header("Content-type: text/plain");
521 echo _("# rpm -qa of")." $dist/$arch\n";
522 } else {
523 echo "<h1>"._("rpm -qa of")." $a</h1>";
524 echo "<a href=\"$url?dist=$dist&amp;arch=$arch&amp;action=qatxt\">"._("text/plain version")."</a>";
525 start_pre();
526 }
527
528 if ($f == 0) {
529 echo _("Sorry, cannot open.");
530 } else {
531 while (($s = fgets($f, 1000)) != false) {
532 echo $s;
533 }
534 }
535
536 if (!$plain)
537 end_pre();
538}
539
540
541function adv_search()
542{
543 global $database, $addr, $fail_or_ok, $url, $_POST, $off, $cnt, $root_directory, $ok, $ns;
544
545 $big_url = "$url?ok=$ok&amp;ns=$ns&amp;cnt=$cnt";
546
547 echo "<script><!--\n".
548 "function checkboxToggle() {\n".
549 "for (var i=0;i<document.forms[0].elements.length;i++) {\n".
550 "var e = document.forms[0].elements[i];\n".
551 "if ((e.name != 'all') && (e.type=='checkbox'))\n".
552 "e.checked = document.forms[0].all.checked;\n".
553 "}\n }\n -->\n </script>\n";
554
555/* Shut up warnings */
8f0e31ba 556 if (!isset($_POST["n2"])) $_POST["n2"] = "";
a7f1713c 557 if (!isset($_POST["age1"])) $_POST["age1"] = "";
558 if (!isset($_POST["age2"])) $_POST["age2"] = "";
559 if (!isset($_POST["size1"])) $_POST["size1"] = "";
560 if (!isset($_POST["size2"])) $_POST["size2"] = "";
561
8f0e31ba 562 echo "<form action=\"index2.php?action=adv_search\" method=\"post\">";
a7f1713c 563
564 echo "<div align=\"center\">";
565 echo "<table border=\"0\">\n";
566 echo "<tr>\n";
567 echo "<td>"._("Package name")."</td>\n";
8f0e31ba 568 echo "<td><input type=\"text\" size=\"20\" name=\"n2\" value=\"". $_POST["name"] ."\"/></td>\n";
a7f1713c 569 echo "</tr>\n";
570
571 echo "<tr>\n";
572 echo "<td>"._("Days")."</td>\n";
573 echo "<td>"._("From").": <input type=\"text\" size=\"20\" name=\"age1\" value=\"". $_POST["age1"] ."\" /></td>\n";
574 echo "<td>"._("To").": <input type=\"text\" size=\"20\" name=\"age2\" value=\"". $_POST["age2"] ."\" /></td>\n";
575 echo "</tr>\n";
576
577 echo "<tr>\n";
578 echo "<td>"._("Size")."</td>\n";
579 echo "<td>"._("From").": <input type=\"text\" size=\"20\" name=\"size1\" value=\"". $_POST["size1"] ."\" /></td>\n";
580 echo "<td>"._("To").": <input type=\"text\" size=\"20\" name=\"size2\" value=\"". $_POST["size2"] ."\" /></td>\n";
581 echo "</tr>\n";
582
583 echo "<tr>\n";
584 echo "<td>"._("Search logs:")."</td>\n";
585 echo "</tr>\n";
586
587 echo "<tr>\n";
588 echo "<td>"._("Failed")."</td>\n";
589 echo "<td>"._("OK")."</td>\n";
590 echo "</tr>\n";
591
506bb488 592 $i = 1;
8f0e31ba 593 foreach ($addr as $dist => $ddist) {
506bb488 594 foreach ($ddist as $arch) {
a7f1713c 595 echo "<tr>\n";
596 $name="as0_".$i;
a7f1713c 597 if (!isset($_POST["$name"])) {
598 $check = " ";
599 } else {
600 $check=" checked=\"on\"";
601 }
8f0e31ba 602 echo "<td><input name=\"$name\" id=\"$name\" type=\"checkbox\"$check /><label for=\"$name\">". "$dist/$arch" ."</label></td>\n";
a7f1713c 603 $name="as1_".$i;
8f0e31ba 604 if (!isset($_POST["$n2"])) {
a7f1713c 605 $check = " ";
606 } else {
607 $check=" checked=\"on\"";
608 }
8f0e31ba 609 echo "<td><input name=\"$name\" id=\"$name\" type=\"checkbox\"$check /><label for=\"$name\">". "$dist/$arch" ."</label></td>\n";
a7f1713c 610 echo "</tr>\n";
506bb488 611 $i++;
612 }
a7f1713c 613 }
614
615 echo "<tr>\n";
8f0e31ba 616 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 617 echo "</tr>\n";
618
619 echo "</table>\n";
620
621// if (isset($_POST["name"]) || isset($_POST["age1"]) || isset($_POST["age2"]) ||
622// isset($_POST["size1"]) || isset($_POST["size2"])
8f0e31ba 623 if (($_POST["n2"]!="") || ($_POST["age1"]!="") || ($_POST["age2"]!="") ||
a7f1713c 624 ($_POST["size1"]!="") || ($_POST["size2"]!=""))
625 {
626 $query = "SELECT log_id, dist, arch, ok, name, size, mtime, id FROM logs WHERE 1 ";
8f0e31ba 627 if ($_POST["n2"] != "") {
628 $n = addslashes($_POST["n2"]);
a7f1713c 629 $query .= "AND name LIKE '$n%' ";
630 }
631 $now = time();
632
633 if ($_POST["age1"] != "") {
634 $age = $now - (int)$_POST["age1"] * 24 * 3600;
635 $query .= "AND mtime > $age ";
636 }
637
638 if ($_POST["age2"] != "") {
639 $age = $now - (int)$_POST["age2"] * 24 * 3600;
640 $query .= "AND mtime < $age ";
641 }
642
643 if ($_POST["size1"] != "") {
644 $size = (int)$_POST["size1"];
645 $query .= "AND size > $size ";
646 }
647
648 if ($_POST["size2"] != "") {
649 $size = (int)$_POST["size2"];
650 $query .= "AND size < $size ";
651 }
652
653 $or = "AND (";
506bb488 654 $i = 1;
8f0e31ba 655 foreach ($addr as $dist => $ddist) {
506bb488 656 foreach ($ddist as $arch) {
657 for ($j = 0; $j < 2; $j++) {
658 if (isset($_POST["as" . $j . "_" .$i])) {
8f0e31ba 659 $query .= "$or (dist = '$dist' AND arch = '$arch' AND ok = $j)";
a7f1713c 660 $or = " OR ";
661 }
662 }
506bb488 663 $i++;
664 }
a7f1713c 665 }
666 if ($or == " OR ") $query .= ")";
667// if (!isset($cnt)) $cnt = 50;
668// if (!isset($off)) $off = 0;
669 if (!isset($ns)) $ns = 0;
670 switch ($ns) {
671 case 0:
672 $query .= " ORDER BY mtime DESC";
673 break;
674 case 1:
675 $query .= " ORDER BY name";
676 break;
677 case 2:
678 $query .= " ORDER BY dist, arch, name";
679 break;
680 }
681 $query .= " LIMIT $cnt OFFSET $off ";
8f0e31ba 682
a7f1713c 683 try {
684 $dbh = new PDO("$database");
685 } catch (PDOException $e) {
686 mydie("new PDO: " . $e->getMessage());
687 }
688 $result = $dbh->query("$query")->fetchAll();
689
690 if ($result == FALSE) {
691 echo _("Nothing found");
692 } else {
693 echo "<table border=\"0\" cellspacing=\"1\" ".
694 "cellpadding=3 bgcolor=\"#000000\" width=\"90%\">\n";
695 echo "<tr><th bgcolor=\"#CCCCFF\" align=\"left\" width=\"10%\">"._("Builder").
696 "[<a href=\"$big_url&amp;ns=2\">"._("sort")."</a>]</th>";
697 echo "<th bgcolor=\"#CCCCFF\" align=\"left\" width=\"60%\">"._("Log File").
698 "[<a href=\"$big_url&amp;ns=1\">"._("sort")."</a>]</th>".
699 "<th bgcolor=\"#CCCCFF\" align=\"right\" width=\"15%\">"._("Size")."</th> ".
700 "<th bgcolor=\"#CCCCFF\" align=\"left\">"._("Age").
701 "[<a href=\"$big_url&amp;ns=0\">"._("sort")."</a>]</th>".
702 "</th></tr>";
703 $i = $off;
704// for ($i = $off; $i < $off + $count; $i++) {
705 foreach ($result as $row) {
706 $dist = $row["dist"];
707 $arch = $row["arch"];
708 $name = $row["name"];
8f0e31ba 709 $name_url = urlencode($name);
a7f1713c 710 $id = $row["id"];
711 $f = $name;
a7f1713c 712 $t = $now - $row["mtime"];
713 $s = $row["size"];
714 $t /= 60;
715 if ($t >= 60) {
716 $t /= 60;
717 if ($t >= 24) {
718 $t /= 24;
719 $t = round($t);
720 $t = $t . "&nbsp;" . ngettext("day","days",$t);
721 } else {
722 $t = round($t);
723 $t = $t . "&nbsp;" . ngettext("hour","hours",$t);
724 }
725 } else {
726 $t = round($t);
727 $t = $t . "&nbsp;" . ngettext("minute","minutes",$t);
728 }
729
730// $big_url = "$url?idx=$i&amp;ok=$j&amp;ns=$ns&amp;cnt=$cnt";
731 $ok = $row["ok"];
8f0e31ba 732 $u = "$url?dist=$dist&amp;arch=$arch&amp;name=$name_url&amp;ok=$ok&amp;id=$id";
a7f1713c 733 $b = "$url?dist=$dist&amp;arch=$arch&amp;ok=$ok&amp;ns=$ns&amp;off=$off&amp;cnt=$cnt";
734
735 $builder = "$dist/$arch/". $fail_or_ok[$ok];
736 echo "<tr>";
737 echo "<td bgcolor=\"#CCCCCC\"><a href=\"$b\">$builder</a></td>";
738 echo "<td bgcolor=\"#CCCCCC\"><a href=\"$u\">$f</a> ".
739 "[<a href=\"$u&amp;action=text\">"._("text")."</a> | ".
740 "<a href=\"$u&amp;action=tail\">"._("tail")."</a>]".
741 "</td><td bgcolor=\"#CCCCCC\" align=\"right\">".
742 "$s</td><td bgcolor=\"#CCCCCC\">$t</td></tr>\n";
743 $i++;
744 }
745 echo "</table></div>\n";
746
747 $backarr = "&lt;&lt;&lt;&nbsp;";
748 $back = _("Page back");
749 $forward = _("Page forward");
750 $forwardarr = "&nbsp;&gt;&gt;&gt;";
751
752 }
753// FIXME
754/*
755 echo "<p><table width=\"90%\" align=\"center\"><tr><td align=left width=1%>";
756
757 if ($off > 0) {
758 $noff = $off - $cnt;
759 if ($noff < 0)
760 $noff = 0;
761 $hrefurl = "<a href=\"$big_url&amp;off=$noff\">";
762 echo "$hrefurl$backarr</a></td><td align=left>$hrefurl$back</a>";
763 } else {
764 echo "$backarr</td><td align=left>$back";
765 }
766
767 echo "</td>\n<td align=\"center\">";
768 echo "</td>\n<td align=\"right\">";
769
770 if ($off + $cnt < count($list))
771 {
772 $noff = $off + $cnt;
773 if ($noff < 0)
774 $noff = 0;
775 $hrefurl = "<a href=\"$big_url&amp;off=$noff\">";
776 echo "$hrefurl$forward</a></td><td align=\"right\" width=\"1%\">$hrefurl$forwardarr</a>";
777 }
778 else
779 {
780 echo "$forward</td><td align=\"right\" width=\"1%\">$forwardarr";
781 }
782
783 echo "</td>\n</tr></table></p>";
784*/
785 } else
786 {
787 echo _("Enter something!");
788 }
789 echo "</form>\n";
790}
791
792function welcome()
793{
794?>
795<table border="0" width="100%"><tr><td width="20%">&nbsp;</td><td>
796<h1><?=_("Welcome!")?></h1>
797<p><?=_("Welcome to PLD Build Logs WWW interface.")?></p><p>
798<?=_("Feel free to email bug reports, complaints and feature requests ")?>
799<!-- ech... niech strace... -->
800<a href="mailto:feedback@pld-linux.org"><?=_("to us")?></a>. <?=_("Positive opinions are also")?>
801<a href="mailto:feedback@pld-linux.org"><?=_("welcome")?></a> ;)</p>
a1a84384 802<p>Version: $Id: index2.php,v 1.3 2008/10/22 15:13:52 witekfl Exp $</p>
a7f1713c 803</td><td width="20%">&nbsp;</td></tr>
804</table>
805<?php
806}
807
808header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
809header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
810header("Cache-Control: no-cache, must-revalidate");
811header("Pragma: no-cache");
812
813//phpinfo();
814if ($action == "text") {
815 dump_text();
816} else if ($action == "adv_search") {
817 myheader();
818 adv_search();
819 trailer();
820} else if ($action == "qatxt") {
821 dump_qa(1);
822} else {
823 myheader();
824 echo "<table cellpadding=\"10\" width=\"100%\"><tr><td valign=\"top\" width=\"10%\">";
825 list_archs();
826 echo "</td><td valign=\"top\">";
827 flush();
828 if ($action == "qa")
829 dump_qa(0);
830 else if ($action == "sqa")
831 search_qa();
832 else if (isset($id) || isset($name))
833 dump_log($action == "tail");
834 else if (isset($dist))
835 list_logs();
836 else
837 welcome();
838 echo "</td></tr></table>";
839 trailer();
840}
841?>
This page took 0.168441 seconds and 4 git commands to generate.