]> git.pld-linux.org Git - projects/buildlogs.git/blob - index.php
Show client IP.
[projects/buildlogs.git] / index.php
1 <?php
2 ob_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
12 include('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";
20 if (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
33 if (isset($lang_detected) && isset($langs[$lang_detected]))
34 {
35   $lang=$lang_detected;
36 }
37
38 if (isset($_GET["lang"]))$_SESSION["lang"]=$_GET["lang"];
39 if (isset($_SESSION["lang"]))$lang=$_SESSION["lang"];
40
41 putenv("LANG=$lang");
42 setlocale(LC_ALL,$lang);
43 bindtextdomain("messages","locale");
44 textdomain("messages");
45
46 if (isset($_GET["dist"]) && isset($_GET["arch"]))
47 {
48         $dist = basename($_GET["dist"]);
49         $arch = basename($_GET["arch"]);
50 }
51
52 if (isset($_POST["dist"])) $dist = basename($_POST["dist"]);
53 if (isset($_POST["arch"])) $arch = basename($_POST["arch"]);
54
55 if (isset($_GET["name"])) {
56   $name_url = urlencode($_GET["name"]);
57         $name = basename($_GET["name"]);
58 }
59 if (isset($_GET["ok"]))$ok=(int)$_GET["ok"];
60 else $ok="";
61 if (isset($_GET["ns"]))$ns=(int)$_GET["ns"];
62 else $ns="";
63 if (isset($_GET["cnt"]))$cnt=(int)$_GET["cnt"];
64 else $cnt = 50;
65 if (isset($_GET["action"]))$action=$_GET["action"];
66 else $action="";
67 if (isset($_GET["off"]))$off=(int)$_GET["off"];
68 else $off = 0;
69 if (isset($_GET["id"]))$id=$_GET["id"];
70
71 if (isset($_POST["str"]))$str=$_POST["str"];
72 if (isset($_POST["action"]))$action=$_POST["action"];
73
74 function myheader()
75 {
76 echo '<' . '?xml version="1.0" encoding="' . _("ISO-8859-1") .'"?' . ">\n";
77 echo '<' . '?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"><!--
86 A { text-decoration: none; }
87 A:hover { text-decoration: underline; }
88 H1 { font-family: arial,helvetica,sans-serif; 
89      font-size: 20pt; 
90      font-weight: bold;}
91 H2 { font-family: arial,helvetica,sans-serif; 
92      font-size: 18pt; 
93      font-weight: bold;}
94 BODY,TD { font-family: arial,helvetica,sans-serif; 
95           font-size: 13pt; }
96 TH { 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
109 function start_pre()
110 {
111         echo "<table cellpadding=\"10\"><tr><td bgcolor=\"#000000\">".
112                 "<font color=\"#cccccc\"><pre style=\"width: 2048px;overflow: scroll\">";
113 }
114
115 function end_pre()
116 {
117         echo "</pre></font></td></tr></table>\n";
118 }
119
120 function trailer()
121 {
122         echo "</body></html>";
123 }
124
125
126 function mydie($msg)
127 {
128         echo "Fatal error: $msg";
129 }
130
131
132
133 function 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) {
178     $name = $row["name"];
179     $id = $row["id"];
180     $dist = $row["dist"];
181     $arch = $row["arch"];
182                 $f = $name;
183     $name_url = urlencode($name);
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                 }
203                 $u = "$url?dist=$dist&amp;arch=$arch&amp;ok=$ok&amp;name=$name_url&amp;id=$id";
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
253 function file_name()
254 {
255         global $ok, $dist, $arch, $name, $name_url, $id;
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
266 function dump_log($tail)
267 {
268         global $ok, $url, $dist, $arch, $name, $name_url;
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"), 
304                  href("$bu&amp;name=$name_url&amp;id=$id&amp;action=text",
305                       _("View!")));
306         if ($tail) {
307                 one_item(_("full text"), 
308                          href("$bu&amp;name=$name_url&amp;id=$id",
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("Date", 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
339         $cmd = "$filter '$root_directory/$f'";
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
371 function 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
394   $cmd = "$filter '$root_directory/$f'";
395         $fd = popen($cmd, "r");
396         while (($s = fgets($fd, 1000)) != false) {
397                 echo $s;
398         }
399         pclose($fd);
400 }
401
402 function 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";
413   foreach ($addr as $dist => $ddist) {
414     foreach ($ddist as $arch) {
415                 echo "<tr><td nowrap=\"nowrap\">".
416                      "<a href=\"$url?dist=$dist&amp;arch=$arch&amp;ok=0&amp;cnt=$cnt\">
417              $dist/$arch</a></td><td nowrap=\"nowrap\">".
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";
421     }
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".
433              '$Revision: 1.9 $'.
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", "six Cray XMT Supercomputers"
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         echo "<div align=\"center\"><small>";
468                 echo "Your IP: " . $_SERVER['REMOTE_ADDR'];
469         echo "</small></div>";
470
471         if (isset($dist) && isset($arch)) {
472         echo "<form action=\"index.php\" method=\"post\">";
473         echo "<input type=\"hidden\" name=\"dist\" value=\"$dist\" />";
474         echo "<input type=\"hidden\" name=\"arch\" value=\"$arch\" />";
475         echo "<input type=\"hidden\" name=\"action\" value=\"sqa\" />";
476         echo "<input type=\"text\" size=\"14\" name=\"str\" /><br />";
477         echo "<input type=\"submit\" name=\"submit\" value=\""._("Search rpmqa!")."\" />";
478         echo "</form>";
479         }
480 }
481
482 function get_qa()
483 {
484     global $dist, $arch;
485
486         if (!isset($dist) || !isset($arch))
487                 return false;
488         if($dist!='ti'){
489                 $addr = "http://ftp.pld-linux.org/dists/$dist/.stat/builder/$dist/rpmqa-$arch.txt";
490         }else{
491                 $addr = "http://ftp.pld-linux.org/branches/titanium/.stat/builder/$dist/rpmqa-$arch.txt";
492         }
493     return fopen("$addr", "r");
494 }
495
496 function search_qa()
497 {
498         global $url, $str, $dist, $arch;
499
500         $f = get_qa();
501         echo "<h1>"._("Search results for")." '$str' "._("in")." $dist/$arch</h1>";
502
503         start_pre();
504
505         if ($f == 0) {
506                 echo _("Sorry, cannot open.");
507         } else {
508                 while (($s = fgets($f, 1000)) != false) {
509                         if (stristr($s, $str))
510                                 echo $s;
511                 }
512                 echo "/* EOF */";
513         }
514         end_pre();
515 }
516
517 function dump_qa($plain)
518 {
519         global $url, $dist, $arch;
520
521         $f = get_qa();
522
523         if ($plain) {
524                 header("Content-type: text/plain"); 
525                 echo _("# rpm -qa of")." $dist/$arch\n";
526         } else {
527                 echo "<h1>"._("rpm -qa of")." $a</h1>";
528                 echo "<a href=\"$url?dist=$dist&amp;arch=$arch&amp;action=qatxt\">"._("text/plain version")."</a>";
529                 start_pre();
530         }
531
532         if ($f == 0) {
533                 echo _("Sorry, cannot open.");
534         } else {
535                 while (($s = fgets($f, 1000)) != false) {
536                         echo $s;
537                 }
538         }
539
540         if (!$plain)
541                 end_pre();
542 }
543
544
545 function adv_search()
546 {
547   global $database, $addr, $fail_or_ok, $url, $_POST, $off, $cnt, $root_directory, $ok, $ns;
548
549   $big_url = "$url?ok=$ok&amp;ns=$ns&amp;cnt=$cnt";
550
551   echo "<script><!--\n".
552        "function checkboxToggle() {\n".
553        "for (var i=0;i<document.forms[0].elements.length;i++) {\n".
554        "var e = document.forms[0].elements[i];\n".
555        "if ((e.name != 'all') && (e.type=='checkbox'))\n".
556        "e.checked = document.forms[0].all.checked;\n".
557        "}\n }\n -->\n </script>\n";
558
559 /* Shut up warnings */
560   if (!isset($_POST["n2"])) $_POST["n2"] = "";
561   if (!isset($_POST["age1"])) $_POST["age1"] = "";
562   if (!isset($_POST["age2"])) $_POST["age2"] = "";
563   if (!isset($_POST["size1"])) $_POST["size1"] = "";
564   if (!isset($_POST["size2"])) $_POST["size2"] = "";
565
566   echo "<form action=\"index.php?action=adv_search\" method=\"post\">";
567
568   echo "<div align=\"center\">";
569   echo "<table border=\"0\">\n";
570   echo "<tr>\n";
571   echo "<td>"._("Package name")."</td>\n";
572   echo "<td><input type=\"text\" size=\"20\" name=\"n2\" value=\"". $_POST["name"] ."\"/></td>\n";
573   echo "</tr>\n";
574
575   echo "<tr>\n";
576   echo "<td>"._("Days")."</td>\n";
577   echo "<td>"._("From").": <input type=\"text\" size=\"20\" name=\"age1\" value=\"". $_POST["age1"] ."\" /></td>\n";
578   echo "<td>"._("To").": <input type=\"text\" size=\"20\" name=\"age2\" value=\"". $_POST["age2"] ."\" /></td>\n";
579   echo "</tr>\n";
580
581   echo "<tr>\n";
582   echo "<td>"._("Size")."</td>\n";
583   echo "<td>"._("From").": <input type=\"text\" size=\"20\" name=\"size1\" value=\"". $_POST["size1"] ."\" /></td>\n";
584   echo "<td>"._("To").": <input type=\"text\" size=\"20\" name=\"size2\" value=\"". $_POST["size2"] ."\" /></td>\n";
585   echo "</tr>\n";
586
587   echo "<tr>\n";
588   echo "<td>"._("Search logs:")."</td>\n";
589   echo "</tr>\n";
590
591   echo "<tr>\n";
592   echo "<td>"._("Failed")."</td>\n";
593   echo "<td>"._("OK")."</td>\n";
594   echo "</tr>\n";
595
596   $i = 1;
597   foreach ($addr as $dist => $ddist) {
598     foreach ($ddist as $arch) {
599     echo "<tr>\n";
600     $name="as0_".$i;
601     if (!isset($_POST["$name"])) {
602         $check = " ";
603     } else {
604         $check=" checked=\"on\"";
605     }
606     echo "<td><input name=\"$name\" id=\"$name\" type=\"checkbox\"$check /><label for=\"$name\">". "$dist/$arch" ."</label></td>\n";
607     $name="as1_".$i;
608     if (!isset($_POST["$n2"])) {
609         $check = " ";
610     } else {
611         $check=" checked=\"on\"";
612     }
613     echo "<td><input name=\"$name\" id=\"$name\" type=\"checkbox\"$check /><label for=\"$name\">". "$dist/$arch" ."</label></td>\n";
614     echo "</tr>\n";
615     $i++;
616     }
617   }
618         
619   echo "<tr>\n";
620   echo "<td><label><input name=\"all\" type=\"checkbox\" checked=\"on\" onClick=\"checkboxToggle()\">"._("Toggle checkboxes")."</label>&nbsp;<input type=\"submit\" name=\"submit\" value=\""._("Search!")."\" /></td>";
621   echo "</tr>\n";
622
623   echo "</table>\n";
624
625 //      if (isset($_POST["name"]) || isset($_POST["age1"]) || isset($_POST["age2"]) ||
626 //        isset($_POST["size1"]) || isset($_POST["size2"])
627   if (($_POST["n2"]!="") || ($_POST["age1"]!="") || ($_POST["age2"]!="") ||
628     ($_POST["size1"]!="") || ($_POST["size2"]!=""))
629   {
630         $query = "SELECT log_id, dist, arch, ok, name, size, mtime, id FROM logs WHERE 1 ";
631         if ($_POST["n2"] != "") {
632                 $n = addslashes($_POST["n2"]);
633                 $query .= "AND name LIKE '$n%' ";
634         }
635         $now = time();
636
637         if ($_POST["age1"] != "") {
638                 $age = $now - (int)$_POST["age1"] * 24 * 3600;
639                 $query .= "AND mtime > $age ";
640         }
641
642         if ($_POST["age2"] != "") {
643                 $age = $now - (int)$_POST["age2"] * 24 * 3600;
644                 $query .= "AND mtime < $age ";
645         }
646
647         if ($_POST["size1"] != "") {
648                 $size = (int)$_POST["size1"];
649                 $query .= "AND size > $size ";
650         }
651
652         if ($_POST["size2"] != "") {
653                 $size = (int)$_POST["size2"];
654                 $query .= "AND size < $size ";
655         }
656
657         $or = "AND (";
658   $i = 1;
659   foreach ($addr as $dist => $ddist) {
660     foreach ($ddist as $arch) {
661       for ($j = 0; $j < 2; $j++) {
662                           if (isset($_POST["as" . $j . "_" .$i])) {
663                                 $query .= "$or (dist = '$dist' AND arch = '$arch' AND ok = $j)";
664                                 $or = " OR ";
665                         }
666                 }
667     $i++;
668     }
669         }
670         if ($or == " OR ") $query .= ")";
671 //      if (!isset($cnt)) $cnt = 50;
672 //      if (!isset($off)) $off = 0;
673         if (!isset($ns)) $ns = 0;
674         switch ($ns) {
675                 case 0:
676                         $query .= " ORDER BY mtime DESC";
677                         break;
678                 case 1:
679                         $query .= " ORDER BY name";
680                         break;
681                 case 2:
682                         $query .= " ORDER BY dist, arch, name";
683                         break;
684         }
685         $query .= " LIMIT $cnt OFFSET $off ";
686     
687         try {
688                 $dbh = new PDO("$database");
689         } catch (PDOException $e) {
690                 mydie("new PDO: " . $e->getMessage());
691         }
692         $result = $dbh->query("$query")->fetchAll();
693
694         if ($result == FALSE) {
695                 echo _("Nothing found");
696         } else {
697                 echo "<table border=\"0\" cellspacing=\"1\" ".
698                         "cellpadding=3 bgcolor=\"#000000\" width=\"90%\">\n";
699                 echo "<tr><th bgcolor=\"#CCCCFF\" align=\"left\" width=\"10%\">"._("Builder").
700                         "[<a href=\"$big_url&amp;ns=2\">"._("sort")."</a>]</th>";
701                 echo "<th bgcolor=\"#CCCCFF\" align=\"left\" width=\"60%\">"._("Log File").
702                         "[<a href=\"$big_url&amp;ns=1\">"._("sort")."</a>]</th>".
703                         "<th bgcolor=\"#CCCCFF\" align=\"right\" width=\"15%\">"._("Size")."</th> ".
704                          "<th bgcolor=\"#CCCCFF\" align=\"left\">"._("Age").
705                          "[<a href=\"$big_url&amp;ns=0\">"._("sort")."</a>]</th>".
706                          "</th></tr>";
707                 $i = $off;
708 //              for ($i = $off; $i < $off + $count; $i++) {
709                 foreach ($result as $row) {
710       $dist = $row["dist"];
711       $arch = $row["arch"];
712       $name = $row["name"];
713       $name_url = urlencode($name);
714       $id = $row["id"];
715                         $f = $name;
716                         $t = $now - $row["mtime"];
717                         $s = $row["size"];
718                         $t /= 60;
719                         if ($t >= 60) {
720                                 $t /= 60;
721                                 if ($t >= 24) {
722                                         $t /= 24;
723                                         $t = round($t);
724                                         $t = $t . "&nbsp;" . ngettext("day","days",$t);
725                                 } else {
726                                         $t = round($t);
727                                         $t = $t . "&nbsp;" . ngettext("hour","hours",$t);
728                                 }
729                         } else {
730                                 $t = round($t);
731                                 $t = $t . "&nbsp;" . ngettext("minute","minutes",$t);
732                         }
733                         
734 //                $big_url = "$url?idx=$i&amp;ok=$j&amp;ns=$ns&amp;cnt=$cnt";
735       $ok = $row["ok"];
736                         $u = "$url?dist=$dist&amp;arch=$arch&amp;name=$name_url&amp;ok=$ok&amp;id=$id";
737                         $b = "$url?dist=$dist&amp;arch=$arch&amp;ok=$ok&amp;ns=$ns&amp;off=$off&amp;cnt=$cnt";
738
739                         $builder = "$dist/$arch/". $fail_or_ok[$ok];
740                         echo "<tr>";
741                         echo "<td bgcolor=\"#CCCCCC\"><a href=\"$b\">$builder</a></td>";
742                         echo "<td bgcolor=\"#CCCCCC\"><a href=\"$u\">$f</a> ".
743                         "[<a href=\"$u&amp;action=text\">"._("text")."</a> | ".
744                         "<a href=\"$u&amp;action=tail\">"._("tail")."</a>]".
745                         "</td><td bgcolor=\"#CCCCCC\" align=\"right\">".
746                         "$s</td><td bgcolor=\"#CCCCCC\">$t</td></tr>\n";
747                         $i++;
748                 }
749                 echo "</table></div>\n";
750
751                 $backarr = "&lt;&lt;&lt;&nbsp;";
752                 $back = _("Page back");
753                 $forward = _("Page forward");
754                 $forwardarr = "&nbsp;&gt;&gt;&gt;";
755
756         }
757 // FIXME
758 /*
759         echo "<p><table width=\"90%\" align=\"center\"><tr><td align=left width=1%>";
760
761         if ($off > 0) {
762                 $noff = $off - $cnt;
763                 if ($noff < 0)  
764                         $noff = 0;
765                 $hrefurl = "<a href=\"$big_url&amp;off=$noff\">";
766                 echo "$hrefurl$backarr</a></td><td align=left>$hrefurl$back</a>";
767         } else {
768                 echo "$backarr</td><td align=left>$back";
769         }
770
771     echo "</td>\n<td align=\"center\">";
772     echo "</td>\n<td align=\"right\">";
773
774     if ($off + $cnt < count($list))
775     {
776       $noff = $off + $cnt;
777       if ($noff < 0)    
778         $noff = 0;
779       $hrefurl = "<a href=\"$big_url&amp;off=$noff\">";
780       echo "$hrefurl$forward</a></td><td align=\"right\" width=\"1%\">$hrefurl$forwardarr</a>";
781     }
782     else
783     {
784       echo "$forward</td><td align=\"right\" width=\"1%\">$forwardarr";
785     }
786
787     echo "</td>\n</tr></table></p>";
788 */
789   } else
790   {
791     echo _("Enter something!");
792   }
793   echo "</form>\n";
794 }
795
796 function welcome()
797 {
798 ?>
799 <table border="0" width="100%"><tr><td width="20%">&nbsp;</td><td>
800 <h1><?=_("Welcome!")?></h1>
801 <p><?=_("Welcome to PLD Build Logs WWW interface.")?></p><p>
802 <?=_("Feel free to email bug reports, complaints and feature requests ")?>
803 <!-- ech... niech strace... -->
804 <a href="mailto:feedback@pld-linux.org"><?=_("to us")?></a>. <?=_("Positive opinions are also")?> 
805 <a href="mailto:feedback@pld-linux.org"><?=_("welcome")?></a> ;)</p>
806 <p>Version: $Id: index.php,v 1.9 2009/03/02 11:10:33 glen Exp $</p>
807 </td><td width="20%">&nbsp;</td></tr>
808 </table>
809 <?php
810 }
811
812 header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
813 header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
814 header("Cache-Control: no-cache, must-revalidate");
815 header("Pragma: no-cache");
816
817 //phpinfo();
818 if ($action == "text") {
819         dump_text();
820 } else if ($action == "adv_search") {
821         myheader();
822         adv_search();
823         trailer();
824 } else if ($action == "qatxt") {
825         dump_qa(1);
826 } else {
827         myheader();
828         echo "<table cellpadding=\"10\" width=\"100%\"><tr><td valign=\"top\" width=\"10%\">";
829         list_archs();
830         echo "</td><td valign=\"top\">";
831         flush();
832         if ($action == "qa")
833                 dump_qa(0);
834         else if ($action == "sqa")
835                 search_qa();
836         else if (isset($id) || isset($name))
837                 dump_log($action == "tail");
838         else if (isset($dist))
839                 list_logs();
840         else
841                 welcome();
842         echo "</td></tr></table>";
843         trailer();
844 }
845 ?>
This page took 0.130672 seconds and 3 git commands to generate.