]> git.pld-linux.org Git - projects/buildlogs.git/blob - index.php
- typo
[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.8 $'.
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         if (isset($dist) && isset($arch)) {
468         echo "<form action=\"index.php\" method=\"post\">";
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
478 function get_qa()
479 {
480     global $dist, $arch;
481
482         if (!isset($dist) || !isset($arch))
483                 return false;
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         }
489     return fopen("$addr", "r");
490 }
491
492 function 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
513 function 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
541 function 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 */
556   if (!isset($_POST["n2"])) $_POST["n2"] = "";
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
562   echo "<form action=\"index.php?action=adv_search\" method=\"post\">";
563
564   echo "<div align=\"center\">";
565   echo "<table border=\"0\">\n";
566   echo "<tr>\n";
567   echo "<td>"._("Package name")."</td>\n";
568   echo "<td><input type=\"text\" size=\"20\" name=\"n2\" value=\"". $_POST["name"] ."\"/></td>\n";
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
592   $i = 1;
593   foreach ($addr as $dist => $ddist) {
594     foreach ($ddist as $arch) {
595     echo "<tr>\n";
596     $name="as0_".$i;
597     if (!isset($_POST["$name"])) {
598         $check = " ";
599     } else {
600         $check=" checked=\"on\"";
601     }
602     echo "<td><input name=\"$name\" id=\"$name\" type=\"checkbox\"$check /><label for=\"$name\">". "$dist/$arch" ."</label></td>\n";
603     $name="as1_".$i;
604     if (!isset($_POST["$n2"])) {
605         $check = " ";
606     } else {
607         $check=" checked=\"on\"";
608     }
609     echo "<td><input name=\"$name\" id=\"$name\" type=\"checkbox\"$check /><label for=\"$name\">". "$dist/$arch" ."</label></td>\n";
610     echo "</tr>\n";
611     $i++;
612     }
613   }
614         
615   echo "<tr>\n";
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>";
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"])
623   if (($_POST["n2"]!="") || ($_POST["age1"]!="") || ($_POST["age2"]!="") ||
624     ($_POST["size1"]!="") || ($_POST["size2"]!=""))
625   {
626         $query = "SELECT log_id, dist, arch, ok, name, size, mtime, id FROM logs WHERE 1 ";
627         if ($_POST["n2"] != "") {
628                 $n = addslashes($_POST["n2"]);
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 (";
654   $i = 1;
655   foreach ($addr as $dist => $ddist) {
656     foreach ($ddist as $arch) {
657       for ($j = 0; $j < 2; $j++) {
658                           if (isset($_POST["as" . $j . "_" .$i])) {
659                                 $query .= "$or (dist = '$dist' AND arch = '$arch' AND ok = $j)";
660                                 $or = " OR ";
661                         }
662                 }
663     $i++;
664     }
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 ";
682     
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"];
709       $name_url = urlencode($name);
710       $id = $row["id"];
711                         $f = $name;
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"];
732                         $u = "$url?dist=$dist&amp;arch=$arch&amp;name=$name_url&amp;ok=$ok&amp;id=$id";
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
792 function 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>
802 <p>Version: $Id: index.php,v 1.8 2009/01/21 13:36:11 shadzik Exp $</p>
803 </td><td width="20%">&nbsp;</td></tr>
804 </table>
805 <?php
806 }
807
808 header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
809 header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
810 header("Cache-Control: no-cache, must-revalidate");
811 header("Pragma: no-cache");
812
813 //phpinfo();
814 if ($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.115757 seconds and 3 git commands to generate.