<?php
require "config.inc.php";
require "FedoraClient.php";

$fedcli = new FedoraPkgdb();

$name = $_GET['rpm'];
$ajax_infos = '<span class="ajax">(wit for ajax or <a href="' . $_SERVER['PHP_SELF'] . '?rpm='.$name.'&amp;pkgdb=1">reload with pkgdb</a>)</span>';

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
	<head>
		<title>Packages in Fedora</title>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
                <link rel="stylesheet" type="text/css" media="screen" href="css/rpmphp.css"/>
		<!--<link rel="stylesheet" type="text/css" media="print" href="css/rpmphp-print.css">-->
		<script type="text/javascript" src="scripts/jquery-1.4.2.min.js"></script>
		<script type="text/javascript" src="scripts/rpmphp.js"></script>
<?php
if ( isset($name) && $name != '' ) {
?>
		<script type="text/javascript">
			// <![CDATA[
			$(function(){
				initZoomJS('<?php echo $name; ?>');
			});
			//]]>
		</script>
<?php
}
?>
		<link rel="shortcut icon" href="images/favicon.ico"/>
		<link rel="icon" href="images/favicon.ico"/>
	</head>

	<body>
		<div id="wrapper">
<?php
include '_header.php';
?>
			<div id="fedora-content">
				<div id="ariane">
					<p>You are here: </p>
					<ul>
						<li><a href="./">Reports home</a></li>
						<li><a href="#">Package detail</a></li>
					</ul>
				</div>
<?php
if ( !isset($name) || !$name ) {
?>
				<h1>Missing package name</h1>
				<form action="?" method="get">
					<p>You have not specified any package name.</p>
					<p><label for="rpm">Please enter one package name: </label><input type="text" name="rpm" id="rpm"/> <input type="submit"/></p>
				</form>

<?php
} else {
   try {
      $db = new PDO ("mysql:dbname=" . MYBASE . ";host=" . MYHOST, MYUSER, MYPASS);

      $sql = "SELECT rpm.*
         FROM rpm
         INNER JOIN repo ON (repo.main=rpm.repo_main AND repo.sub=rpm.repo_sub)
         WHERE rpm.name='$name'
         ORDER BY repo.id DESC";
      $resrpm = $db->query($sql);
      $rpm = ($resrpm ? $resrpm->fetchObject() : false);

      $sql = "SELECT * FROM upstream WHERE name = '$name'";
      $resup=$db->query($sql);
      $up = ($resup ? $resup->fetchObject() : false);

      $sql = "SELECT * FROM acls WHERE name = '$name'";
      $resown=$db->query($sql);
      $owner = ($resown ? $resown->fetchObject() : false);

      if (!$rpm) {
         echo "<h1>$name not found</h1>\n";
      } else {

         echo "<h1>Package: $name</h1>\n";

         if (isset($_GET['pkgdb'])) {
            $fedpkg = $fedcli->getPackageInfo($name);
            echo "<p id=\"pkgdb-link\"><a href='".$_SERVER['PHP_SELF']."?rpm=$name'>Hide pkgdb informations</a></p>";
         } else {
            $fedpkg = false;
            echo "<p id=\"pkgdb-link\"><a href='".$_SERVER['PHP_SELF']."?rpm=$name&amp;pkgdb=1'>Show more informations from pkgdb</a></p>";
         }
         echo "<table id=\"upstream\">\n";
         echo "<caption>Upstream info</caption>\n";
         $i=0;

         if ($rpm->summary) {
            echo "<tr><th>"; $i++;
            echo "Summary: </th><td><strong>". $rpm->summary . "</strong></td></tr>\n";
         } else if ($owner->summary) {
            echo "<tr><th>"; $i++;
            echo "Summary: </th><td><strong>". $owner->summary . "</strong></td></tr>\n";
         }

            echo "<tr><th>"; $i++;
            echo "Description: </th><td id=\"" . $name . "_desc\">" . ((isset($fedpkg['devel']['package']['description'])) ? $fedpkg['devel']['package']['description'] : $ajax_infos) . "</td></tr>\n";

         if ($rpm->url) {
            echo "<tr><th>"; $i++;
            echo "URL: </th><td><strong><a href='".$rpm->url."'>". $rpm->url . "</a></strong></td></tr>\n";
         }
         if ($up && $up->type) {
            echo "<tr><th>"; $i++;
            echo "Type: </th><td><strong>". $up->type . "</strong></td></tr>\n";
         }
         if ($up && $up->channel) {
            echo "<tr><th>"; $i++;
            echo "Channel: </th><td><strong>". $up->channel . "</strong></td></tr>\n";
         }
         if ($up && $up->stable) {
            echo "<tr><th>"; $i++;
            echo "Stable version: </th><td><strong>". $up->stable . "</strong></td></tr>\n";
         }
         if ($up && $up->unstable && $up->stable!=$up->unstable) {
            echo "<tr><th>"; $i++;
            echo "Unstable version: </th><td><strong>". $up->unstable . "</strong>";
            if ($up->state) {
               echo " (". $up->state . ")\n";
            }
            echo "</td></tr>\n";
         }
         if ($owner && $owner->owner) {
            echo "<tr><th>"; $i++;
            echo "Owner: </th><td><strong>". $owner->owner . "</strong>";
            if ($owner->cc) {
               echo " (". $owner->cc . ")\n";
            }
            echo "</td></tr>\n";
         }
         echo "<tr><th>ViewVC: </th>"; $i++;
         echo "<td><a href=\"http://cvs.fedoraproject.org/viewvc/rpms/$name/\">http://cvs.fedoraproject.org/viewvc/rpms/$name/</a>";
         echo "</td></tr>\n";

         echo "</table>";

         echo "<table id=\"list-packages\">\n";
         echo "<caption>Packages available in Fedora Repositories</caption>\n";
         echo "<thead><tr><th>Branch</th><th>Repository</th><th>Version-Release</th><th>Owner</th><th>Co-maintainers</th></tr></thead><tbody>\n";
         $prev=false;
         do {
            if ($rpm->repo_main=='rawhide' && isset($fedpkg['devel']['owner'])) {
               $owner = $fedpkg['devel']['owner'];
               $people = $fedpkg['devel']['people'];
            } else if (isset($fedpkg[$rpm->repo_main]['owner'])) {
               $owner = $fedpkg[$rpm->repo_main]['owner'];
               $people = $fedpkg[$rpm->repo_main]['people'];
            } else {
               $owner ="&nbsp;";
               $people = false;
            }
            $comaint = '';
            if ($people) foreach ($people as $user) {
               if (isset($user['aclOrder']['commit']['statuscode']) && $user['aclOrder']['commit']['statuscode']==3) {
                  if ( $comaint !== '' ) {
                     $comaint .= ', ';
                  }
                  $comaint .= $user['username'];
               }
            }
            echo "<tr class='".($i%2 ? 'odd' : 'even')."'>"; $i++;
            echo "<td><strong>".($rpm->repo_main==$prev ? "&nbsp;" : $rpm->repo_main)."</strong></td>";
            echo "<td>".$rpm->repo_sub."</td>";
            echo "<td>".($rpm->epoch ? $rpm->epoch.":" : "").$rpm->ver."-".$rpm->rel."</td>";
            $id = 'pkgdb_' . $rpm->repo_main;
            if ( $rpm->repo_main != $prev ) {
              echo "<td id=\"" . $id . "_owner\">" . (($fedpkg) ? $owner : $ajax_infos) . "</td><td id=\"" . $id . "_maintainers\">" . (($fedpkg) ? $comaint : $ajax_infos) . "</td></tr>\n";
            } else {
              echo '<td>&nbsp;</td><td>&nbsp;</td></tr>';
            }
            if( $rpm->repo_main != $prev ) {
              $prev = $rpm->repo_main;
            }

         } while ($rpm = $resrpm->fetchObject());
         echo "</tbody></table>";
      }
   }
   catch(PDOException $e) {
      printf("%s ERREUR : %s\n", date("r"),  $e->getMessage());
   }
}
?>


        <!-- document END -->
        </div>

		<!-- content END -->
<?php
include '_footer.php';
?>
		</div>
	</body>
</html>