{% extends "basic.html" %}
{% block title %}
Now at hackerspace
{% endblock %}
{% block content %}
  <h2>Now at hackerspace!</h2>
  Recently at <a href="http://www.hackerspace.pl">hackerspace</a>:
  <ul>
  {% for user, timestamp in users %}
    <li>
      <a href="{{ user | wikiurl }}">
          {{ user }} (<span class="timestamp" data-datetime="{{ timestamp|utcisoformat }}">{{ timestamp|strfts() }} UTC</span>)
      </a>
    </li>
  {% endfor %}
  </ul>
  {% trans n_unk=unknown|length %}
  <p>There is <a href="/unclaimed">{{ n_unk }} unknown device</a> operating. </p>
  {% pluralize %}
  <p>There are <a href="/unclaimed">{{ n_unk }} unknown devices</a> operating.</p> 
  {% endtrans %}
  {% trans n_kek=kektops|length %}
  <p>There is {{ n_kek }} unknown kektop operating.</p>
  {% pluralize %}
  <p>There are {{ n_kek }} unknown kektops operating.</p>
  {% endtrans %}
  {% trans n_esp=esps|length %}
  <p>There is {{ n_esp }} unknown ESP operating.</p>
  {% pluralize %}
  <p>There are {{ n_esp }} unknown ESPs operating.</p>
  {% endtrans %}
  <hr>
  <a href="claim">Claim this device!</a>
  <script>
    function formatDate(d) {
      function pad(n) {return n<10 ? '0'+n : n};
      return d.getFullYear()+'-'
       + pad(d.getMonth()+1)+'-'
       + pad(d.getDate())+' '
       + pad(d.getHours())+':'
       + pad(d.getMinutes());
    }

    for (const tstamp of document.getElementsByClassName('timestamp')) {
      const dt = new Date(tstamp.getAttribute("data-datetime"));
      tstamp.innerHTML = formatDate(dt);
    }
  </script>
{% endblock %}
