2 $buildlogs_server = "buildlogs.pld.org.pl";
17 $qa_base = "http://ftp.pld.org.pl/.stat/builder";
20 "/kenny/rpmqa-nest-i386.txt",
21 "/kenny/rpmqa-nest-i586.txt",
22 "/kenny/rpmqa-nest-i686.txt",
24 "/ep/rpmqa-ra-i386.txt",
25 "/ep/rpmqa-ra-i586.txt",
26 "/ep/rpmqa-ra-i686.txt",
27 "/mifgate/rpmqa-ra-alpha.txt",
28 "/team/rpmqa-ra-sparc.txt",
31 $local = 1; /* $local=0 for FTP */
32 $root_directory = "/home/services/ftp/pub/logs";
34 /* It should be set */
36 $langs["en_US"]["charset"]="ISO-8859-1";
37 $langs["pl_PL"]["charset"]="ISO-8859-2";
40 if (isset($_SERVER["HTTP_ACCEPT_LANGUAGE"]))
42 $rows=explode(";",$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
43 $rows=explode(",",$rows[0]);
44 $lang_detected=rtrim($rows[0]);
45 } else if (preg_match("/opera/i",$_SERVER["HTTP_USER_AGENT"]))
47 $lang_detected=preg_replace("/.*\[(.*)\].*/i","\\1",$_SERVER["HTTP_USER_AGENT"]);
51 $lang_detected=preg_replace("/^pl$/i","pl_PL",$lang_detected);
53 if (isset($lang_detected) && isset($langs[$lang_detected]))
58 if (isset($_GET["lang"]))$_SESSION["lang"]=$_GET["lang"];
59 if (isset($_SESSION["lang"]))$lang=$_SESSION["lang"];
62 setlocale(LC_ALL,$lang);
63 bindtextdomain("messages","locale");
64 textdomain("messages");
66 if (isset($_GET["idx"]))$idx=$_GET["idx"];
67 if (isset($_GET["ok"]))$ok=$_GET["ok"];
68 if (isset($_GET["ns"]))$ns=$_GET["ns"];
69 if (isset($_GET["cnt"]))$cnt=$_GET["cnt"];
70 if (isset($_GET["action"]))$action=$_GET["action"];
71 if (isset($_GET["off"]))$off=$_GET["off"];
72 if (isset($_GET["id"]))$id=$_GET["id"];
74 if (isset($_POST["str"]))$str=$_POST["str"];
75 if (isset($_POST["idx"]))$idx=$_POST["idx"];
76 if (isset($_POST["action"]))$action=$_POST["action"];
81 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
82 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
83 <html xmlns="http://www.w3.org/1999/xhtml">
85 <title>PLD Build Logs</title>
86 <style TYPE="text/css"><!--
87 A { text-decoration: none; }
88 A:hover { text-decoration: underline; }
89 H1 { font-family: arial,helvetica,sans-serif;
92 H2 { font-family: arial,helvetica,sans-serif;
95 BODY,TD { font-family: arial,helvetica,sans-serif;
97 TH { font-family: arial,helvetica,sans-serif;
103 <!-- Diffrent color for visited link doesn't make much sense here...
104 this page is autogenerated and it might be misleading after some
105 build log changes. -->
106 <body bgcolor="#ffffff" text="#000000" link="#5f26cd" vlink="#5f26cd">
112 echo "<table cellpadding=10><tr><td bgcolor=\"#000000\">".
113 "<font color=\"#cccccc\"><pre>";
118 echo "</pre></font></td></tr></table>\n";
123 echo "</body></html>";
129 echo "Fatal error: $msg";
132 function open_ftp($pidx="", $pok="")
134 global $idx, $addr, $buildlogs_server, $ok;
135 global $ftp_conn, $big_url, $url, $ns;
138 if ($pidx==="")$pidx=$idx;
139 if ($pok==="")$pok=$ok;
141 if (!isset($pidx) || !isset($addr[$pidx]))
150 $a = "$addr[$pidx]/OK";
152 $a = "$addr[$pidx]/FAIL";
160 $big_url = "$url?idx=$idx&ok=$ok&ns=$ns&cnt=$cnt";
162 $ftp = ftp_connect($buildlogs_server);
165 mydie(_("cannot connect to")." $buildlogs_server");
169 if (ftp_login($ftp, "anonymous",
170 "buildlogs-iface@pld.org.pl") == false) {
172 mydie(_("cannot ftp login to")." $buildlogs_server");
176 $list = ftp_nlist($ftp, $a);
177 if ($list == false) {
179 mydie(_("cannot list")." $a");
188 function directory_list($pidx="",$pok="")
190 global $idx, $addr, $buildlogs_server, $ok;
191 global $root_directory, $big_url, $url, $ns;
194 if ($pidx==="")$pidx=$idx;
195 if ($pok==="")$pok=$ok;
196 if (!isset($pidx) || !isset($addr[$pidx]))
205 $a = "$addr[$pidx]/OK";
207 $a = "$addr[$pidx]/FAIL";
215 $big_url = "$url?idx=$idx&ok=$ok&ns=$ns&cnt=$cnt";
217 $dir = opendir("$root_directory$a");
219 while ($file = readdir($dir)) {
220 if (($file != ".") && ($file != "..")) {
221 $list[$i] = "$a/$file";
231 global $idx, $addr, $ok;
232 global $ftp_conn, $big_url, $ns, $qa_addr;
233 global $off, $cnt, $local, $root_directory;
236 $list = directory_list();
244 echo "<h1>"._("Listing of")." $addr[$idx]/OK "
245 ."(<a href=\"$big_url&ok=0\">"._("fail")."</a>)</h1>";
247 echo "<h1>"._("Listing of")." $addr[$idx]/FAIL "
248 ."(<a href=\"$big_url&ok=1\">"._("ok")."</a>)</h1>";
251 echo "<div align=center><table border=0 cellspacing=1 ".
252 "cellpadding=3 bgcolor=#000000 width=90%>\n";
253 echo "<tr><th bgcolor=#CCCCFF align=left width=60%>"._("Log File").
254 "[<a href=\"$big_url&ns=1\">"._("sort")."</a>]</th>".
255 "<th bgcolor=#CCCCFF align=right width=15%>"._("Size")."</th> ".
256 "<th bgcolor=#CCCCFF align=left>"._("Age").
257 "[<a href=\"$big_url&ns=0\">"._("sort")."</a>]</th>".
260 function cmp($f1, $f2) {
261 global $ftp_conn, $root_directory, $local;
263 return filemtime("$root_directory$f2") - filemtime("$root_directory$f1");
264 return ftp_mdtm($ftp_conn, $f2) - ftp_mdtm($ftp_conn, $f1);
275 for ($i = $off; $i < $cnt + $off; $i++) {
276 if (!isset($list[$i]))
278 $h = bin2hex(mhash(MHASH_MD5, $list[$i]));
279 $f = preg_replace("/.*\/([^\/]*)$/", "\\1", $list[$i]);
280 $f = preg_replace("/\.(bz2|gz)$/", "", $f);
282 $s = filesize("$root_directory$list[$i]");
283 $t = $now - filemtime("$root_directory$list[$i]");
285 $s = ftp_size($ftp_conn, $list[$i]);
286 $t = $now - ftp_mdtm($ftp_conn, $list[$i]);
294 $t = $t . ngettext(" day"," days",$t);
297 $t = $t . ngettext(" hour"," hours",$t);
301 $t = $t . ngettext(" minute"," minutes",$t);
303 $u = "$big_url&off=$off&id=$h";
304 echo "<tr><td bgcolor=#CCCCCC><a ".
307 "[<a href=\"$u&action=text\">"._("text")."</a> | ".
308 "<a href=\"$u&action=tail\">"._("tail")."</a>]".
309 "</td><td bgcolor=#CCCCCC align=right>".
310 "$s</td><td bgcolor=#CCCCCC>$t</td></tr>\n";
312 echo "</table></div>\n";
314 $backarr = "<<< ";
315 $back = _("Page back");
316 $forward = _("Page forward");
317 $forwardarr = " >>>";
319 echo "<p><table width=90% align=center><tr><td align=left width=1%>";
325 $hrefurl = "<a href=\"$big_url&off=$noff\">";
326 echo "$hrefurl$backarr</a></td><td align=left>$hrefurl$back</a>";
328 echo "$backarr</td><td align=left>$back";
331 echo "</td>\n<td align=center>";
333 if ($qa_addr[$idx] != "") {
334 echo "[<a href=\"$big_url&action=qa\">"._("View <quot>rpm -qa</quot> of builder")."</a>]";
339 echo "</td>\n<td align=right>";
340 if ($off + $cnt < count($list)) {
344 $hrefurl = "<a href=\"$big_url&off=$noff\">";
345 echo "$hrefurl$forward</a></td><td align=right width=1%>$hrefurl$forwardarr</a>";
347 echo "$forward</td><td align=right width=1%>$forwardarr";
349 echo "</td>\n</tr></table></p>";
358 global $idx, $addr, $ok;
359 global $ftp_conn, $root_directory, $big_url, $ns, $id;
360 global $buildlogs_server, $local;
365 $list = directory_list();
373 for ($i = 0; $i < count($list); $i++) {
374 $h = bin2hex(mhash(MHASH_MD5, $list[$i]));
381 mydie(_("cannot find specified file:")." $id");
390 function dump_log($tail)
392 global $idx, $addr, $ok, $url;
393 global $ftp_conn, $root_directory, $big_url, $ns, $id, $cnt, $off;
394 global $buildlogs_server, $local, $qa_addr;
401 $df = preg_replace("/.*\/([^\/]*)$/", "\\1", $f);
402 $df = preg_replace("/\.(bz2|gz)$/", "", $df);
406 echo "<table border=0 cellpadding=3 cellspacing=1 bgcolor=#000000>";
408 function one_item($h, $t) {
409 echo "<tr><td bgcolor=#ccccff>$h:</td>".
410 "<td bgcolor=#cccccc>$t</td></tr>";
413 function href($h, $c) {
414 return "<a href=\"$h\">$c</a>";
417 one_item(_("Status"), ($ok == 1 ?
418 "<font color=green><b>"._("OK")."</b></font>" :
419 "<font color=red><b>"._("Failed")."</b></a>"));
420 one_item(_("Source URL"),
421 href("ftp://$buildlogs_server$f",
422 "ftp://$buildlogs_server$f"));
424 $bu = "$big_url&off=$off";
426 one_item(_("text/plain URL"),
427 href("$bu&id=$id&action=text",
430 one_item(_("full text"),
435 if ($qa_addr[$idx] != "") {
436 one_item(_("rpm -qa of builder"), href("$bu&action=qa", _("View!")));
438 one_item(_("rpm -qa of builder"), _("Not available"));
441 one_item("Data", date("Y/m/d H:i:s", filemtime("$root_directory$f")));
443 one_item("Data", date("Y/m/d H:i:s", ftp_mdtm($ftp_conn, $f)));
446 echo "<tr><td>Here:</td><td>" .
447 "<a href=\"$url?idx=$idx&ok=$ok&id=$id\">".
448 "http://" . getenv("SERVER_NAME") .
449 getenv("SCRIPT_NAME") . "?idx=$idx&ok=$ok&id=$id</a>" .
452 echo "</table><h2>"._("Content:")."</h2>";
460 # what can I say beside PHP suxx? how the fuck should I create
461 # bidirectional pipe? gotta use wget
463 if (preg_match("/\.bz2$/", $f)) {
465 } elseif (preg_match("/\.gz$/", $f)) {
472 $cmd = "$filter $root_directory$f";
474 $cmd = "wget -q -O - ftp://$buildlogs_server$f 2>&1 | $filter 2>&1";
477 $cmd = "$cmd | tail -n 100";
478 $fd = popen($cmd, "r");
480 while (($s = fgets($fd, 1000)) != false) {
481 $s = htmlspecialchars($s);
491 [<a href="<?php echo $bu; ?>"><?=_("Back to list of logs")?></a>]
494 [<a href="<?php echo "$bu&action=qa"
495 ?>"><?=_("View rpm -qa of builder")?></a>]
505 global $ftp_conn, $root_directory;
506 global $buildlogs_server, $local;
508 header("Content-type: text/plain");
515 echo "# src : ftp://$buildlogs_server$f\n";
518 date("Y/m/d H:i:s", filemtime("$root_directory$f")) . "\n";
521 date("Y/m/d H:i:s", ftp_mdtm($ftp_conn, $f)) . "\n";
526 if (preg_match("/\.bz2$/", $f)) {
528 } elseif (preg_match("/\.gz$/", $f)) {
535 $cmd = "$filter $root_directory$f";
537 $cmd = "wget -q -O - ftp://$buildlogs_server$f 2>&1 | $filter 2>&1";
539 $fd = popen($cmd, "r");
540 while (($s = fgets($fd, 1000)) != false) {
546 function list_archs()
548 global $addr, $url, $idx;
550 $big_url = "$url?idx=$idx&ok=$ok&ns=$ns&cnt=$cnt";
552 echo "<table width=100% border=0>\n";
553 echo "<tr><td bgcolor=#cccccc nowrap=1>"._("Failed")."</td><td bgcolor=#cccccc>"._("Ok")."</td></tr>\n";
554 for ($i = 0; $i < count($addr); $i++)
555 echo "<tr><td nowrap=1>".
556 "<a href=\"$url?idx=$i&ok=0\">$addr[$i]</a></td><td nowrap=1>".
557 "[<a href=\"$url?idx=$i&ok=1\">OK</a>]</td>".
558 #"<td>[<a href=\"$url?idx=$i&action=qa\">qa</a>]</td>".
560 echo "</table><hr />\n";
562 echo "<div align=\"center\">";
563 echo "<a href=\"$big_url&action=adv_search\">"._("Advanced Search")."</a><br>\n";
565 echo "<a href=\"$url\">main()</a><hr />\n";
566 echo "<a href=\"http://www.pld.org.pl/\"><img src=powpld.png ".
567 "alt=\""._("Powered by PLD Linux")."\" border=0></a><br />\n" .
569 "<a href=\"mailto:feedback@pld.org.pl\">PLD Team</a>\n".
573 echo "<div align=center><small>";
574 $pow = array("vim", "php", "brain", "power", "electricity",
575 "coffee", "ufo", "penguin", "GNOME", "ELF", "DWARF",
576 "voodoo magic", "Linux", "x-files", "X", "foobar",
577 "/dev/null", "/dev/zero", "/dev/drzewo",
578 "Leppe'", "matrix", "Neo", "PDP-11",
579 "Ken", "GNU antilope", "PDP-7", "ITS", "Multics",
580 "foobarbaz", "ed", "Joe", "Unix conspiracy",
581 "overclock", "The Right Thing",
582 "The Bad Thing", "Star Treck", "NSA", "NASA",
583 "achelon", "VAX", "Real Programmer",
584 "Real Operating System", "Real Computer",
585 "computron", "bogon", "quantum bogodynamics",
586 "BOFH", "/dev/ill", "nasi tu byli",
587 "Paranoid Android", "Lunatic Corp"
588 # feel free to add sth if you change this file ;)
590 echo _("Powered by")." ";
592 for ($i = 0; $i < $max; $i++) {
593 $x = rand(0, count($pow) - 1);
594 if ($pow[$x] == "") $i--;
595 else echo $pow[$x] . ($i == $max - 1 ? "." : ", ");
598 echo "</small></div>";
602 if ($qa_addr[$idx] != "") {
603 echo "<form action=\"index.php\" method=\"post\">";
604 echo "<input type=hidden name=idx value=$idx />";
605 echo "<input type=hidden name=action value=sqa />";
606 echo "<input type=text size=14 name=str /><br>";
607 echo "<input type=submit name=submit value=\""._("Search rpmqa!")."\" />";
614 global $idx, $qa_addr, $qa_base;
616 if (!isset($idx) || !isset($qa_addr[$idx]))
621 if ($qa_addr[$idx] == "")
624 return fopen("$qa_base$qa_addr[$idx]", "r");
629 global $url, $idx, $qa_addr, $str;
632 echo "<h1>"._("Search results for")." '$str' "._("in")." $qa_addr[$idx]</h1>";
637 echo _("Sorry, cannot open.");
639 while (($s = fgets($f, 1000)) != false) {
640 if (stristr($s, $str))
648 function dump_qa($plain)
650 global $url, $idx, $qa_addr;
657 header("Content-type: text/plain");
658 echo _("# rpm -qa of")." $a\n";
660 echo "<h1>"._("rpm -qa of")." $a</h1>";
661 echo "<a href=\"$url?idx=$idx&action=qatxt\">"._("text/plain version")."</a>";
666 echo _("Sorry, cannot open.");
668 while (($s = fgets($f, 1000)) != false) {
678 function adv_search()
680 global $addr, $url, $local, $_POST, $off, $cnt;
682 $big_url = "$url?idx=$idx&ok=$ok&ns=$ns&cnt=$cnt";
684 echo "<form action=\"index.php?action=adv_search\" method=\"post\">";
686 echo "<div align=center>";
687 echo "<table border=0>\n";
689 echo "<td>"._("Package name")."</td>\n";
690 echo "<td><input type=\"text\" size=\"20\" name=\"name\" value=\"".$_POST[name]."\"/></td>\n";
694 echo "<td>"._("Days")."</td>\n";
695 echo "<td>"._("From").": <input type=\"text\" size=\"20\" name=\"age1\" value=\"".$_POST["age1"]."\" /></td>\n";
696 echo "<td>"._("To").": <input type=\"text\" size=\"20\" name=\"age2\" value=\"".$_POST["age2"]."\" /></td>\n";
700 echo "<td>"._("Size")."</td>\n";
701 echo "<td>"._("From").": <input type=\"text\" size=\"20\" name=\"size1\" value=\"".$_POST["size1"]."\" /></td>\n";
702 echo "<td>"._("To").": <input type=\"text\" size=\"20\" name=\"size2\" value=\"".$_POST["size2"]."\" /></td>\n";
706 echo "<td>"._("Search logs:")."</td>\n";
710 echo "<td>"._("OK")."</td>\n";
711 echo "<td>"._("Failed")."</td>\n";
714 for ($i = 0; $i < count($addr); $i++)
718 $check=" checked=\"on\"";
719 echo "<td><input name=$name type=\"checkbox\"$check>".$addr[$i]."</input></td>\n";
721 $check=" checked=\"on\"";
722 echo "<td><input name=$name type=\"checkbox\"$check>".$addr[$i]."</input></td>\n";
727 echo "<td><input type=submit name=submit value=\""._("Search!")."\" /></td>";
732 // if (isset($_POST["name"]) || isset($_POST["age1"]) || isset($_POST["age2"]) ||
733 // isset($_POST["size1"]) || isset($_POST["size2"]))
734 if (($_POST["name"]!="") || ($_POST["age1"]!="") || ($_POST["age2"]!="") ||
735 ($_POST["size1"]!="") || ($_POST["size2"]!=""))
739 for ($i = 0; $i < count($addr); $i++)
744 if (isset($_POST["as".$j."_".$i]))
747 $tmp_list = directory_list($i,$j);
749 $tmp_list = open_ftp($i,$j);
751 if (is_array($tmp_list))
753 while (list($k,$name)=each($tmp_list))
755 $s = filesize("$root_directory$name");
756 $t = $now - filemtime("$root_directory$name");
758 if (($_POST["name"]!="") && (!preg_match("/".$_POST["name"]."/i",$name)))continue;
759 if (($_POST["age1"]) && ($_POST["age1"]>$t))continue;
760 if (($_POST["age2"]) && ($_POST["age2"]<$t))continue;
762 if (($_POST["size1"]) && ($_POST["size1"]>$s))continue;
763 if (($_POST["size2"]) && ($_POST["size2"]<$s))continue;
765 $list[$i."_".$j."_".$k]=$name;
771 if (sizeof($list)==0)
773 echo _("Nothing found");
777 echo "<table border=0 cellspacing=1 ".
778 "cellpadding=3 bgcolor=#000000 width=90%>\n";
779 echo "<tr><th bgcolor=#CCCCFF align=left width=10%>"._("Builder").
780 "[<a href=\"$big_url&ns=2\">"._("sort")."</a>]</th>";
781 echo "<th bgcolor=#CCCCFF align=left width=60%>"._("Log File").
782 "[<a href=\"$big_url&ns=1\">"._("sort")."</a>]</th>".
783 "<th bgcolor=#CCCCFF align=right width=15%>"._("Size")."</th> ".
784 "<th bgcolor=#CCCCFF align=left>"._("Age").
785 "[<a href=\"$big_url&ns=0\">"._("sort")."</a>]</th>".
788 function cmp1($f1, $f2) {
789 global $ftp_conn, $root_directory, $local;
791 return filemtime("$root_directory$f2") - filemtime("$root_directory$f1");
792 return ftp_mdtm($ftp_conn, $f2) - ftp_mdtm($ftp_conn, $f1);
795 function cmp2($f1, $f2) {
796 list($p11,$p12,$p13)=explode("_",$f1);
797 list($p21,$p22,$p23)=explode("_",$f2);
798 return strcmp($f2,$f1);
803 usort($list, "cmp1");
804 // } else if ($ns == 2)
806 // uksort($list, "cmp2");
813 while (list($k,$name)=each($list))
815 if (($counter<$off) || ($counter>$off+$cnt-1))
822 list($i,$j,$k)=explode("_",$k);
824 $h = bin2hex(mhash(MHASH_MD5, $name));
825 $f = preg_replace("/.*\/([^\/]*)$/", "\\1", $name);
826 $f = preg_replace("/\.(bz2|gz)$/", "", $f);
828 $s = filesize("$root_directory$name");
829 $t = $now - filemtime("$root_directory$name");
831 $s = ftp_size($ftp_conn, $list[$i]);
832 $t = $now - ftp_mdtm($ftp_conn, $list[$i]);
840 $t = $t . ngettext(" day"," days",$t);
843 $t = $t . ngettext(" hour"," hours",$t);
847 $t = $t . ngettext(" minute"," minutes",$t);
849 $big_url = "$url?idx=$i&ok=$j&ns=$ns&cnt=$cnt";
850 $u = "$big_url&off=$off&id=$h";
852 $builder=$addr[$i]."/".(($j=="1")?"OK":"FAIL");
854 echo "<td bgcolor=#CCCCCC><a href=\"$u\">$builder</a></td>";
855 echo "<td bgcolor=#CCCCCC><a href=\"$u\">$f</a> ".
856 "[<a href=\"$u&action=text\">"._("text")."</a> | ".
857 "<a href=\"$u&action=tail\">"._("tail")."</a>]".
858 "</td><td bgcolor=#CCCCCC align=right>".
859 "$s</td><td bgcolor=#CCCCCC>$t</td></tr>\n";
861 echo "</table></div>\n";
863 $backarr = "<<< ";
864 $back = _("Page back");
865 $forward = _("Page forward");
866 $forwardarr = " >>>";
870 echo "<p><table width=90% align=center><tr><td align=left width=1%>";
876 $hrefurl = "<a href=\"$big_url&off=$noff\">";
877 echo "$hrefurl$backarr</a></td><td align=left>$hrefurl$back</a>";
879 echo "$backarr</td><td align=left>$back";
882 echo "</td>\n<td align=center>";
883 echo "</td>\n<td align=right>";
885 if ($off + $cnt < count($list))
890 $hrefurl = "<a href=\"$big_url&off=$noff\">";
891 echo "$hrefurl$forward</a></td><td align=right width=1%>$hrefurl$forwardarr</a>";
895 echo "$forward</td><td align=right width=1%>$forwardarr";
898 echo "</td>\n</tr></table></p>";
908 echo _("Enter something!");
916 <table border=0 width=100%><tr><td width=20%> </td><td>
917 <h1><?=_("Welcome!")?></h1>
918 <p><?=_("Welcome to PLD Build Logs WWW interface.")?></p><p>
919 <?=_("Feel free to email bug reports, complaints and feature requests ")?>
920 <!-- ech... niech strace... -->
921 <a href="mailto:feedback@pld.org.pl"><?=_("to us")?></a>. <?=_("Positive opinions are also")?>
922 <a href="mailto:feedback@pld.org.pl"><?=_("welcome")?></a> ;)</p>
923 <p>Version: $Id: index.php,v 1.24 2002/10/07 11:04:22 ggodlewski Exp $</p>
924 </td><td width=20%> </td></tr>
929 header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
930 header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
931 header("Cache-Control: no-cache, must-revalidate");
932 header("Pragma: no-cache");
936 if ($action == "text") {
938 } else if ($action == "adv_search") {
942 } else if ($action == "qatxt") {
946 echo "<table cellpadding=10 width=100%><tr><td valign=top width=10%>";
948 echo "</td><td valign=top>";
952 else if ($action == "sqa")
955 dump_log($action == "tail");
956 else if (isset($idx))
960 echo "</td></tr></table>";
966 if ($action == "text") {
968 } else if ($action == "qatxt") {
972 echo "<table cellpadding=10 width=100%><tr><td valign=top width=10%>";
974 echo "</td><td valign=top>";
979 dump_log($action == "tail");
980 else if (isset($idx))
984 echo "</td></tr></table>";