<commit_before><div class="row">
  <div class="jumbotron">
    <h1>OGN list of receivers</h1>
    <p>
      The <a href="http://wiki.glidernet.org" target="_blank">OpenGliderNetwork</a> is a centralized network focused on tracking
      of aircrafts equipped with <a href="https://flarm.com">FLARM</a>, FLARM-compatible devices or
      <a href="http://wiki.glidernet.org/ogn-tracker">OGN tracker</a>.
      This page shows all registered OGN receivers.
    </p>
    <a href="about.html">About</a>
  </div>
</div>
<div class="row">
  <div class="col-md-12">
    <p class="text-right">
      Last update from <a href="http://wiki.glidernet.org/list-of-receivers" target=_blank">wiki.glidernet.org</a> (hourly): {{receiversdb.timestamp}}
    </p>
  </div>
<div class="row">
  <table class="table table-striped">
    <thead>
      <tr>
        <td>#</td>
        <td>Callsign</td>
        <td>Description</td>
        <td>Status</td>
        <td></td>
      </tr>
    </thead>
    <tbody>
      <tr class="clickable" ng-repeat-start="receiver in receiversdb.receivers" ng-click="toggle(receiver)">
        <td>{{$index +1}}</td>
        <td><a href="#/receivers/{{receiver.callsign}}">{{receiver.callsign}}</a></td>
        <td>{{receiver.description}}</td>
        <td><img ng-src="http://ognrange.onglide.com/perl/availability.pl?station={{receiver.callsign}}"/></td>
        <td>
          <span class="glyphicon glyphicon-menu-right" aria-hidden="true" ng-show="!receiver.showDetails"></span>
          <span class="glyphicon glyphicon-menu-down" aria-hidden="true" ng-show="receiver.showDetails"></span>
        </td>
      </tr>
      <tr ng-repeat-end ng-show="receiver.showDetails">
        <td colspan='5'>
          <div>
              <p>{{receiver.description}}</p>
              <div class="row">
                <div class="col-md-4" ng-repeat="photo in receiver.photos">
                  <a href="{{photo}}" class="thumbnail"><img ng-src="{{photo}}"style="width:150px;height:150px"/></a>
                </div>
                </div>
                <p ng-hide="!receiver.contact">
                    Contact: <a href="mailto:{{receiver.contact}}">{{receiver.contact}}</a>
                </p>
              </div>
          </div>
        </td>
      </tr>
    </tbody>
  </table>
</div>
</div><commit_msg>web: Generate receiver status indicator dynamically<commit_after><div class="row">
  <div class="jumbotron">
    <h1>OGN list of receivers</h1>
    <p>
      The <a href="http://wiki.glidernet.org" target="_blank">OpenGliderNetwork</a> is a centralized network focused on tracking
      of aircrafts equipped with <a href="https://flarm.com">FLARM</a>, FLARM-compatible devices or
      <a href="http://wiki.glidernet.org/ogn-tracker">OGN tracker</a>.
      This page shows all registered OGN receivers.
    </p>
    <a href="about.html">About</a>
  </div>
</div>
<div class="row">
  <div class="col-md-12">
    <p class="text-right">
      Last update from <a href="http://wiki.glidernet.org/list-of-receivers" target=_blank">wiki.glidernet.org</a> (hourly): {{receiversdb.timestamp}}
    </p>
  </div>
</div>
<div class="row">
<div class="col-md-12">
  <table class="table table-striped">
    <thead>
        <th>#</th>
        <th>Callsign</th>
        <th>Contact</th>
        <th>Status</th>
        <th></th>
    </thead>
    <tbody>
      <tr class="clickable" ng-repeat-start="receiver in receiversdb.receivers" ng-click="toggle(receiver)">
        <td>{{$index +1}}</td>
        <td><a href="#/receivers/{{receiver.callsign}}">{{receiver.callsign}}</a></td>
        <td>{{receiver.contact}}</td>
        <td>
          <div ng-if="receiverstats[receiver.callsign]">
            <span class="label label-success" ng-if="receiverstats[receiver.callsign].u == 'U'">up</span>
            <span class="label label-danger" ng-if="receiverstats[receiver.callsign].u == 'D'">down</span>
            <span class="label label-warning" ng-if="receiverstats[receiver.callsign].u == 'B'">bouncing</span>
          </div>
        </td>
        <td>
          <span class="glyphicon glyphicon-menu-right" aria-hidden="true" ng-show="!receiver.showDetails"></span>
          <span class="glyphicon glyphicon-menu-down" aria-hidden="true" ng-show="receiver.showDetails"></span>
        </td>
      </tr>
      <tr ng-repeat-end ng-if="receiver.showDetails">
        <td colspan='5'>
          <div>
              <p>{{receiver.description}}</p>
              <div class="row">
                <div class="col-md-4" ng-repeat="photo in receiver.photos">
                  <a href="{{photo}}" class="thumbnail"><img ng-src="{{photo}}"style="width:150px;height:150px"/></a>
                </div>
              </div>
          </div>
        </td>
      </tr>
    </tbody>
  </table>
</div>
</div>
{'fraction_non_alphanumeric': 0.19654742096505823, 'fraction_numerical': 0.005823627287853577, 'mean_word_length': 2.5569526627218937, 'pattern_counts': {'":': 0, '<': 171, '<?xml version=': 0, '>': 171, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '949164', 'n_tokens_mistral': 1677, 'n_tokens_neox': 1599, 'n_words': 286}