<?php
/**
 * Copyright (c) 2008, 2018 Eclipse Foundation.
 *
 * This program and the accompanying materials are made
 * available under the terms of the Eclipse Public License 2.0
 * which is available at https://www.eclipse.org/legal/epl-2.0/
 *
 * Contributors:
 *   Wayne Beaton (Eclipse Foundation)- initial API and implementation
 *   Eric Poirier (Eclipse Foundation)
 *
 * SPDX-License-Identifier: EPL-2.0
 */
?>
<div id="midcolumn">
  <h1><?php print ucfirst($kind) ?>s</h1>
  <p>Data captured on <?= $file_date ?>.</p>
  <p>See also:</p>
  <ul>
<?php foreach ($kinds as $title=>$key) : ?>
<li><a href="?kind=<?php print $key ?>&sort=<?php print $sort ?>"><?php print $title ?></a> <a
      href="reports/csv.php?kind=<?php print $key?>"
    >(csv)</a> <a href="reports/csv.php?kind=<?php print $key ?>&trend">(trend)</a></li>
<?php endforeach; ?>
</ul>
  <p>
    The <em>(csv)</em> link points to a CSV version of what is displayed here. The <em>(trend)</em>
    link points to the same data, but structured for easier trend analysis. Note that elements with
    fewer than five users are not shown.
  </p>
  <table class="table" border="1">
    <tr>
      <th><a href="?kind=<?php print $kind ?>&sort=month">Month</a></th>
      <th><a href="?kind=<?php print $kind ?>&sort=element">Element</a></th>
      <th><a href="?kind=<?php print $kind ?>&sort=element">BundleId</a></th>
      <th><a href="?kind=<?php print $kind ?>&sort=element">Bundle Version</a></th>
      <th><a href="?kind=<?php print $kind ?>&sort=use">Use Count</a></th>
      <th><a href="?kind=<?php print $kind ?>&sort=users">User Count</a></th>
    </tr>
    <?php foreach ($items as $item) : ?>
      <tr>
        <td><?php print $item->yearmonth; ?></td>
        <td><?php print $item->element; ?></td>
        <td><?php print $item->bundleId; ?></td>
        <td><?php print $item->bundleVersion; ?></td>
        <td align="right"><?php print number_format($item->useCount); ?></td>
        <td align="right"><?php print number_format($item->userCount); ?></td>
      </tr>
    <?php endforeach;?>
  </table>
</div>