]> git.pld-linux.org Git - projects/buildlogs.git/blame - index.php
- hiliting for shell debug, rpmbuild sections; add toc for rpm build sections
[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
dbb4d4ae
AM
74if ($arch == "src")
75 $arch = "SRPMS";
76
a7f1713c 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; }
2ba2cc91
ER
91H1 { font-family: arial,helvetica,sans-serif;
92 font-size: 20pt;
a7f1713c 93 font-weight: bold;}
2ba2cc91
ER
94H2 { font-family: arial,helvetica,sans-serif;
95 font-size: 18pt;
a7f1713c 96 font-weight: bold;}
2ba2cc91 97BODY,TD { font-family: arial,helvetica,sans-serif;
a7f1713c 98 font-size: 13pt; }
2ba2cc91
ER
99TH { font-family: arial,helvetica,sans-serif;
100 font-size: 13pt;
a7f1713c 101 font-weight: bold; }
2ba2cc91
ER
102/* error lines from build logs */
103.error {
104 background-color: #b00;
105}
e926de50
ER
106.verbose {
107 color: #886;
108}
109.section {
110 color: #111;
111 background-color: #161;
112}
a7f1713c 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) {
8f0e31ba 192 $name = $row["name"];
193 $id = $row["id"];
194 $dist = $row["dist"];
195 $arch = $row["arch"];
196 $f = $name;
197 $name_url = urlencode($name);
a7f1713c 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 }
8f0e31ba 217 $u = "$url?dist=$dist&amp;arch=$arch&amp;ok=$ok&amp;name=$name_url&amp;id=$id";
a7f1713c 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{
8f0e31ba 269 global $ok, $dist, $arch, $name, $name_url, $id;
a7f1713c 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{
8f0e31ba 282 global $ok, $url, $dist, $arch, $name, $name_url;
a7f1713c 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
2ba2cc91
ER
307 one_item(_("Status"), ($ok == 1 ?
308 "<font color=\"green\"><b>"._("OK")."</b></font>" :
a7f1713c 309 "<font color=\"red\"><b>"._("Failed")."</b></a>"));
2ba2cc91
ER
310 one_item(_("Source URL"),
311 href("ftp://$buildlogs_server/$f",
a7f1713c 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
2ba2cc91 317 one_item(_("text/plain URL"),
8f0e31ba 318 href("$bu&amp;name=$name_url&amp;id=$id&amp;action=text",
a7f1713c 319 _("View!")));
320 if ($tail) {
2ba2cc91 321 one_item(_("full text"),
8f0e31ba 322 href("$bu&amp;name=$name_url&amp;id=$id",
a7f1713c 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 }
35a4c15e 331 one_item("Date", date("Y/m/d H:i:s", filemtime("$root_directory/$f")));
a7f1713c 332 /*
2ba2cc91 333 echo "<tr><td>Here:</td><td>" .
a7f1713c 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
e926de50 339 echo "</table>";
a7f1713c 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
8f0e31ba 353 $cmd = "$filter '$root_directory/$f'";
a7f1713c 354 if ($tail)
355 $cmd = "$cmd | tail -n 100";
356 $fd = popen($cmd, "r");
e926de50
ER
357 $toc = array();
358 ob_start();
a7f1713c 359 while (($s = fgets($fd, 102400)) != false) {
360 if (strlen($s) > 800) {
361 $s = chunk_split($s, 800, "\n ");
362 $s = trim($s);
363 }
364 $s = htmlspecialchars($s);
2ba2cc91 365 // highlight errors
9f767302 366 if (preg_match("/errors?:/i", $s)) {
2ba2cc91 367 $s = "<span class=error>$s</span>";
e926de50
ER
368 } elseif (substr($s, 0, 2) == "+ ") {
369 // shell verbose
370 $s = "<span class=verbose>$s</span>";
371 } elseif (preg_match("/^Executing\(%(?P<section>\w+)\)/", $s, $m)) {
372 // rpm build section
373 $s = "<span class=section id={$m['section']}>$s</span>";
374 $toc[] = $m['section'];
2ba2cc91 375 }
a7f1713c 376 echo $s;
377 }
a7f1713c 378 pclose($fd);
e926de50
ER
379 $code = ob_get_contents();
380 ob_end_clean();
381
382 if (!empty($toc)) {
383 echo "<h2>"._("Toc:")."</h2>";
384 echo "<ul class=toc>";
385 foreach ($toc as $section) {
386 echo "<li><a href=#{$section}>{$section}</a></li>";
387 }
388 echo "</ul>";
389 }
390
391 echo "<h2>"._("Content:")."</h2>";
392
393 start_pre();
394 echo $code;
395 end_pre();
a7f1713c 396
397?>
398 <table width="100%">
399 <tr>
400 <td align=left>
401 [<a href="<?php echo $bu; ?>"><?=_("Back to list of logs")?></a>]
402 </td>
403 <td align=right>
2ba2cc91 404 [<a href="<?php echo "$bu&amp;action=qa"
a7f1713c 405 ?>"><?=_("View rpm -qa of builder")?></a>]
406 </td>
407 </tr>
408 </table>
409<?php
410
411}
412
413function dump_text()
414{
415 global $root_directory;
416 global $buildlogs_server;
417
418 header("Content-type: text/plain");
419
420 $f = file_name();
421 if ($f == false)
422 return;
423
424 echo "# src : ftp://$buildlogs_server/$f\n";
2ba2cc91 425 echo "# date : " .
a7f1713c 426 date("Y/m/d H:i:s", filemtime("$root_directory/$f")) . "\n";
427
428 if (preg_match("/\.bz2$/", $f)) {
429 $filter = "bzcat";
430 } elseif (preg_match("/\.gz$/", $f)) {
431 $filter = "zcat";
432 } else {
433 $filter = "cat";
434 }
435
8f0e31ba 436 $cmd = "$filter '$root_directory/$f'";
a7f1713c 437 $fd = popen($cmd, "r");
438 while (($s = fgets($fd, 1000)) != false) {
439 echo $s;
440 }
441 pclose($fd);
442}
443
444function list_archs()
445{
446 global $addr, $url, $cnt,$ok,$ns;
447
448 if (!isset($cnt))
449 $cnt = 50;
450
451 $big_url = "$url?ok=$ok&amp;ns=$ns&amp;cnt=$cnt";
452
453 echo "<table width=\"100%\" border=\"0\">\n";
454 echo "<tr><td bgcolor=\"#cccccc\" nowrap=\"nowrap\">"._("Failed")."</td><td bgcolor=\"#cccccc\">"._("Ok")."</td></tr>\n";
8f0e31ba 455 foreach ($addr as $dist => $ddist) {
506bb488 456 foreach ($ddist as $arch) {
a7f1713c 457 echo "<tr><td nowrap=\"nowrap\">".
506bb488 458 "<a href=\"$url?dist=$dist&amp;arch=$arch&amp;ok=0&amp;cnt=$cnt\">
459 $dist/$arch</a></td><td nowrap=\"nowrap\">".
a7f1713c 460 "[<a href=\"$url?dist=$dist&amp;arch=$arch&amp;ok=1&amp;cnt=$cnt\">OK</a>]</td>".
461 #"<td>[<a href=\"$url?idx=$i&amp;action=qa\">qa</a>]</td>".
462 "</tr>\n";
506bb488 463 }
a7f1713c 464 }
465 echo "</table><hr />\n";
466
467 echo "<div align=\"center\">";
468 echo "<a href=\"$big_url&amp;action=adv_search\">"._("Advanced Search")."</a><br />\n";
469
470 echo "<a href=\"$url\">main()</a><hr />\n";
471 echo "<a href=\"http://www.pld-linux.org/\"><img src=\"powpld.png\" ".
472 "alt=\""._("Powered by PLD Linux")."\" border=\"0\" /></a><br />\n" .
473 "<small>(c) 2002 ".
474 "<a href=\"mailto:feedback@pld-linux.org\">PLD&nbsp;Team</a><br />\n".
e926de50 475 '$Revision: 1.16 $'.
a7f1713c 476 "</small></div>\n";
477
478 # smile ;)
479 echo "<div align=\"center\"><small>";
480 $pow = array("vim", "php", "brain", "power", "electricity",
481 "coffee", "ufo", "penguin", "GNOME", "ELF", "DWARF",
482 "voodoo magic", "Linux", "x-files", "X", "foobar",
2ba2cc91 483 "/dev/null", "/dev/zero", "/dev/drzewo",
a7f1713c 484 "Leppe'", "matrix", "Neo", "PDP-11",
485 "Ken", "GNU antilope", "PDP-7", "ITS", "Multics",
2ba2cc91 486 "foobarbaz", "ed", "Joe", "Unix conspiracy",
a7f1713c 487 "overclock", "The Right Thing",
488 "The Bad Thing", "Star Treck", "NSA", "NASA",
489 "achelon", "VAX", "Real Programmer",
490 "Real Operating System", "Real Computer",
491 "computron", "bogon", "quantum bogodynamics",
492 "BOFH", "/dev/ill", "nasi tu byli",
493 "Paranoid Android", "Lunatic Corp", "Parallel thinking",
494 "sfistak", "Linus", "The Golden Path", "Dark Side of the Force",
495 "Przewodniczacego Lepper-a", "KDE", "Microsoft Windows 2003", "sqlite3",
3cf4f3e8 496 "synergy", "six Cray XMT Supercomputers"
a7f1713c 497 # feel free to add sth if you change this file ;)
498 );
499 echo _("Powered by")." ";
500 $max = 1;
501 for ($i = 0; $i < $max; $i++) {
502 $x = rand(0, count($pow) - 1);
503 if ($pow[$x] == "") $i--;
504 else echo $pow[$x] . ($i == $max - 1 ? "." : ", ");
505 $pow[$x] = "";
506 }
507 echo "</small></div>";
508
774eb927
AM
509 echo "<div align=\"center\"><small>";
510 echo "Your IP: " . $_SERVER['REMOTE_ADDR'];
511 echo "</small></div>";
512
a7f1713c 513 if (isset($dist) && isset($arch)) {
a6cc6dd6 514 echo "<form action=\"index.php\" method=\"post\">";
a7f1713c 515 echo "<input type=\"hidden\" name=\"dist\" value=\"$dist\" />";
516 echo "<input type=\"hidden\" name=\"arch\" value=\"$arch\" />";
517 echo "<input type=\"hidden\" name=\"action\" value=\"sqa\" />";
518 echo "<input type=\"text\" size=\"14\" name=\"str\" /><br />";
519 echo "<input type=\"submit\" name=\"submit\" value=\""._("Search rpmqa!")."\" />";
520 echo "</form>";
521 }
522}
523
524function get_qa()
525{
526 global $dist, $arch;
527
528 if (!isset($dist) || !isset($arch))
529 return false;
a1a84384 530 if($dist!='ti'){
531 $addr = "http://ftp.pld-linux.org/dists/$dist/.stat/builder/$dist/rpmqa-$arch.txt";
532 }else{
533 $addr = "http://ftp.pld-linux.org/branches/titanium/.stat/builder/$dist/rpmqa-$arch.txt";
534 }
a7f1713c 535 return fopen("$addr", "r");
536}
537
538function search_qa()
539{
540 global $url, $str, $dist, $arch;
541
542 $f = get_qa();
543 echo "<h1>"._("Search results for")." '$str' "._("in")." $dist/$arch</h1>";
544
545 start_pre();
546
547 if ($f == 0) {
548 echo _("Sorry, cannot open.");
549 } else {
550 while (($s = fgets($f, 1000)) != false) {
551 if (stristr($s, $str))
552 echo $s;
553 }
554 echo "/* EOF */";
555 }
556 end_pre();
557}
558
559function dump_qa($plain)
560{
561 global $url, $dist, $arch;
562
563 $f = get_qa();
564
565 if ($plain) {
2ba2cc91 566 header("Content-type: text/plain");
a7f1713c 567 echo _("# rpm -qa of")." $dist/$arch\n";
568 } else {
569 echo "<h1>"._("rpm -qa of")." $a</h1>";
570 echo "<a href=\"$url?dist=$dist&amp;arch=$arch&amp;action=qatxt\">"._("text/plain version")."</a>";
571 start_pre();
572 }
573
574 if ($f == 0) {
575 echo _("Sorry, cannot open.");
576 } else {
577 while (($s = fgets($f, 1000)) != false) {
578 echo $s;
579 }
580 }
581
582 if (!$plain)
583 end_pre();
584}
585
586
587function adv_search()
588{
589 global $database, $addr, $fail_or_ok, $url, $_POST, $off, $cnt, $root_directory, $ok, $ns;
590
591 $big_url = "$url?ok=$ok&amp;ns=$ns&amp;cnt=$cnt";
592
593 echo "<script><!--\n".
594 "function checkboxToggle() {\n".
595 "for (var i=0;i<document.forms[0].elements.length;i++) {\n".
596 "var e = document.forms[0].elements[i];\n".
597 "if ((e.name != 'all') && (e.type=='checkbox'))\n".
598 "e.checked = document.forms[0].all.checked;\n".
599 "}\n }\n -->\n </script>\n";
600
601/* Shut up warnings */
8f0e31ba 602 if (!isset($_POST["n2"])) $_POST["n2"] = "";
a7f1713c 603 if (!isset($_POST["age1"])) $_POST["age1"] = "";
604 if (!isset($_POST["age2"])) $_POST["age2"] = "";
605 if (!isset($_POST["size1"])) $_POST["size1"] = "";
606 if (!isset($_POST["size2"])) $_POST["size2"] = "";
607
a6cc6dd6 608 echo "<form action=\"index.php?action=adv_search\" method=\"post\">";
a7f1713c 609
610 echo "<div align=\"center\">";
611 echo "<table border=\"0\">\n";
612 echo "<tr>\n";
613 echo "<td>"._("Package name")."</td>\n";
8f0e31ba 614 echo "<td><input type=\"text\" size=\"20\" name=\"n2\" value=\"". $_POST["name"] ."\"/></td>\n";
a7f1713c 615 echo "</tr>\n";
616
617 echo "<tr>\n";
618 echo "<td>"._("Days")."</td>\n";
619 echo "<td>"._("From").": <input type=\"text\" size=\"20\" name=\"age1\" value=\"". $_POST["age1"] ."\" /></td>\n";
620 echo "<td>"._("To").": <input type=\"text\" size=\"20\" name=\"age2\" value=\"". $_POST["age2"] ."\" /></td>\n";
621 echo "</tr>\n";
622
623 echo "<tr>\n";
624 echo "<td>"._("Size")."</td>\n";
625 echo "<td>"._("From").": <input type=\"text\" size=\"20\" name=\"size1\" value=\"". $_POST["size1"] ."\" /></td>\n";
626 echo "<td>"._("To").": <input type=\"text\" size=\"20\" name=\"size2\" value=\"". $_POST["size2"] ."\" /></td>\n";
627 echo "</tr>\n";
628
629 echo "<tr>\n";
630 echo "<td>"._("Search logs:")."</td>\n";
631 echo "</tr>\n";
632
633 echo "<tr>\n";
634 echo "<td>"._("Failed")."</td>\n";
635 echo "<td>"._("OK")."</td>\n";
636 echo "</tr>\n";
637
506bb488 638 $i = 1;
8f0e31ba 639 foreach ($addr as $dist => $ddist) {
506bb488 640 foreach ($ddist as $arch) {
a7f1713c 641 echo "<tr>\n";
642 $name="as0_".$i;
a7f1713c 643 if (!isset($_POST["$name"])) {
644 $check = " ";
645 } else {
1b44998a 646 $check=" checked='checked'";
a7f1713c 647 }
8f0e31ba 648 echo "<td><input name=\"$name\" id=\"$name\" type=\"checkbox\"$check /><label for=\"$name\">". "$dist/$arch" ."</label></td>\n";
a7f1713c 649 $name="as1_".$i;
8f0e31ba 650 if (!isset($_POST["$n2"])) {
a7f1713c 651 $check = " ";
652 } else {
1b44998a 653 $check=" checked='checked'";
a7f1713c 654 }
8f0e31ba 655 echo "<td><input name=\"$name\" id=\"$name\" type=\"checkbox\"$check /><label for=\"$name\">". "$dist/$arch" ."</label></td>\n";
a7f1713c 656 echo "</tr>\n";
506bb488 657 $i++;
658 }
a7f1713c 659 }
660
661 echo "<tr>\n";
8f0e31ba 662 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 663 echo "</tr>\n";
664
665 echo "</table>\n";
666
667// if (isset($_POST["name"]) || isset($_POST["age1"]) || isset($_POST["age2"]) ||
668// isset($_POST["size1"]) || isset($_POST["size2"])
8f0e31ba 669 if (($_POST["n2"]!="") || ($_POST["age1"]!="") || ($_POST["age2"]!="") ||
a7f1713c 670 ($_POST["size1"]!="") || ($_POST["size2"]!=""))
671 {
672 $query = "SELECT log_id, dist, arch, ok, name, size, mtime, id FROM logs WHERE 1 ";
8f0e31ba 673 if ($_POST["n2"] != "") {
674 $n = addslashes($_POST["n2"]);
a7f1713c 675 $query .= "AND name LIKE '$n%' ";
676 }
677 $now = time();
678
679 if ($_POST["age1"] != "") {
680 $age = $now - (int)$_POST["age1"] * 24 * 3600;
681 $query .= "AND mtime > $age ";
682 }
683
684 if ($_POST["age2"] != "") {
685 $age = $now - (int)$_POST["age2"] * 24 * 3600;
686 $query .= "AND mtime < $age ";
687 }
688
689 if ($_POST["size1"] != "") {
690 $size = (int)$_POST["size1"];
691 $query .= "AND size > $size ";
692 }
693
694 if ($_POST["size2"] != "") {
695 $size = (int)$_POST["size2"];
696 $query .= "AND size < $size ";
697 }
698
699 $or = "AND (";
506bb488 700 $i = 1;
8f0e31ba 701 foreach ($addr as $dist => $ddist) {
506bb488 702 foreach ($ddist as $arch) {
703 for ($j = 0; $j < 2; $j++) {
704 if (isset($_POST["as" . $j . "_" .$i])) {
8f0e31ba 705 $query .= "$or (dist = '$dist' AND arch = '$arch' AND ok = $j)";
a7f1713c 706 $or = " OR ";
707 }
708 }
506bb488 709 $i++;
710 }
a7f1713c 711 }
712 if ($or == " OR ") $query .= ")";
713// if (!isset($cnt)) $cnt = 50;
714// if (!isset($off)) $off = 0;
715 if (!isset($ns)) $ns = 0;
716 switch ($ns) {
717 case 0:
718 $query .= " ORDER BY mtime DESC";
719 break;
720 case 1:
721 $query .= " ORDER BY name";
722 break;
723 case 2:
724 $query .= " ORDER BY dist, arch, name";
725 break;
726 }
727 $query .= " LIMIT $cnt OFFSET $off ";
2ba2cc91 728
a7f1713c 729 try {
730 $dbh = new PDO("$database");
731 } catch (PDOException $e) {
732 mydie("new PDO: " . $e->getMessage());
733 }
734 $result = $dbh->query("$query")->fetchAll();
735
736 if ($result == FALSE) {
737 echo _("Nothing found");
738 } else {
739 echo "<table border=\"0\" cellspacing=\"1\" ".
740 "cellpadding=3 bgcolor=\"#000000\" width=\"90%\">\n";
741 echo "<tr><th bgcolor=\"#CCCCFF\" align=\"left\" width=\"10%\">"._("Builder").
742 "[<a href=\"$big_url&amp;ns=2\">"._("sort")."</a>]</th>";
743 echo "<th bgcolor=\"#CCCCFF\" align=\"left\" width=\"60%\">"._("Log File").
744 "[<a href=\"$big_url&amp;ns=1\">"._("sort")."</a>]</th>".
745 "<th bgcolor=\"#CCCCFF\" align=\"right\" width=\"15%\">"._("Size")."</th> ".
746 "<th bgcolor=\"#CCCCFF\" align=\"left\">"._("Age").
747 "[<a href=\"$big_url&amp;ns=0\">"._("sort")."</a>]</th>".
748 "</th></tr>";
749 $i = $off;
750// for ($i = $off; $i < $off + $count; $i++) {
751 foreach ($result as $row) {
752 $dist = $row["dist"];
753 $arch = $row["arch"];
754 $name = $row["name"];
8f0e31ba 755 $name_url = urlencode($name);
a7f1713c 756 $id = $row["id"];
757 $f = $name;
a7f1713c 758 $t = $now - $row["mtime"];
759 $s = $row["size"];
760 $t /= 60;
761 if ($t >= 60) {
762 $t /= 60;
763 if ($t >= 24) {
764 $t /= 24;
765 $t = round($t);
766 $t = $t . "&nbsp;" . ngettext("day","days",$t);
767 } else {
768 $t = round($t);
769 $t = $t . "&nbsp;" . ngettext("hour","hours",$t);
770 }
771 } else {
772 $t = round($t);
773 $t = $t . "&nbsp;" . ngettext("minute","minutes",$t);
774 }
775
776// $big_url = "$url?idx=$i&amp;ok=$j&amp;ns=$ns&amp;cnt=$cnt";
777 $ok = $row["ok"];
8f0e31ba 778 $u = "$url?dist=$dist&amp;arch=$arch&amp;name=$name_url&amp;ok=$ok&amp;id=$id";
a7f1713c 779 $b = "$url?dist=$dist&amp;arch=$arch&amp;ok=$ok&amp;ns=$ns&amp;off=$off&amp;cnt=$cnt";
780
781 $builder = "$dist/$arch/". $fail_or_ok[$ok];
782 echo "<tr>";
783 echo "<td bgcolor=\"#CCCCCC\"><a href=\"$b\">$builder</a></td>";
784 echo "<td bgcolor=\"#CCCCCC\"><a href=\"$u\">$f</a> ".
785 "[<a href=\"$u&amp;action=text\">"._("text")."</a> | ".
786 "<a href=\"$u&amp;action=tail\">"._("tail")."</a>]".
787 "</td><td bgcolor=\"#CCCCCC\" align=\"right\">".
788 "$s</td><td bgcolor=\"#CCCCCC\">$t</td></tr>\n";
789 $i++;
790 }
791 echo "</table></div>\n";
792
793 $backarr = "&lt;&lt;&lt;&nbsp;";
794 $back = _("Page back");
795 $forward = _("Page forward");
796 $forwardarr = "&nbsp;&gt;&gt;&gt;";
797
798 }
799// FIXME
800/*
801 echo "<p><table width=\"90%\" align=\"center\"><tr><td align=left width=1%>";
802
803 if ($off > 0) {
804 $noff = $off - $cnt;
805 if ($noff < 0)
806 $noff = 0;
807 $hrefurl = "<a href=\"$big_url&amp;off=$noff\">";
808 echo "$hrefurl$backarr</a></td><td align=left>$hrefurl$back</a>";
809 } else {
810 echo "$backarr</td><td align=left>$back";
811 }
812
813 echo "</td>\n<td align=\"center\">";
814 echo "</td>\n<td align=\"right\">";
815
816 if ($off + $cnt < count($list))
817 {
818 $noff = $off + $cnt;
819 if ($noff < 0)
820 $noff = 0;
821 $hrefurl = "<a href=\"$big_url&amp;off=$noff\">";
822 echo "$hrefurl$forward</a></td><td align=\"right\" width=\"1%\">$hrefurl$forwardarr</a>";
823 }
824 else
825 {
826 echo "$forward</td><td align=\"right\" width=\"1%\">$forwardarr";
827 }
828
829 echo "</td>\n</tr></table></p>";
830*/
831 } else
832 {
833 echo _("Enter something!");
834 }
4086dafb 835 echo "</div></form>\n";
a7f1713c 836}
837
838function welcome()
839{
840?>
841<table border="0" width="100%"><tr><td width="20%">&nbsp;</td><td>
842<h1><?=_("Welcome!")?></h1>
843<p><?=_("Welcome to PLD Build Logs WWW interface.")?></p><p>
844<?=_("Feel free to email bug reports, complaints and feature requests ")?>
845<!-- ech... niech strace... -->
2ba2cc91 846<a href="mailto:feedback@pld-linux.org"><?=_("to us")?></a>. <?=_("Positive opinions are also")?>
a7f1713c 847<a href="mailto:feedback@pld-linux.org"><?=_("welcome")?></a> ;)</p>
e926de50 848<p>Version: $Id: index.php,v 1.16 2012/02/08 21:03:01 glen Exp $</p>
a7f1713c 849</td><td width="20%">&nbsp;</td></tr>
850</table>
851<?php
852}
853
854header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
855header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
856header("Cache-Control: no-cache, must-revalidate");
857header("Pragma: no-cache");
858
859//phpinfo();
860if ($action == "text") {
861 dump_text();
862} else if ($action == "adv_search") {
863 myheader();
864 adv_search();
865 trailer();
866} else if ($action == "qatxt") {
867 dump_qa(1);
868} else {
869 myheader();
870 echo "<table cellpadding=\"10\" width=\"100%\"><tr><td valign=\"top\" width=\"10%\">";
871 list_archs();
872 echo "</td><td valign=\"top\">";
873 flush();
874 if ($action == "qa")
875 dump_qa(0);
876 else if ($action == "sqa")
877 search_qa();
878 else if (isset($id) || isset($name))
879 dump_log($action == "tail");
880 else if (isset($dist))
881 list_logs();
882 else
883 welcome();
884 echo "</td></tr></table>";
885 trailer();
886}
887?>
This page took 0.171648 seconds and 4 git commands to generate.