SkierPGP/Skier

View on GitHub
templates/search.html

Summary

Maintainability
Test Coverage
{% extends "base.html" %}

{% if search is defined %}
    {% set title = "Search Results for "  + search %}
{% else %}
    {% set title = "Search" %}
{% endif %}


{% block navbar %}
    <div class="container">
        {% with curr = "search" %}{% include "navbar.html" %}{% endwith %}
    </div>
{% endblock %}

{% block content %}
    <form role="form" class="form-inline text-center">
      <div class="form-group">
        <label for="keyid"><h4>Key ID or Name: </h4></label>
        <input type="text" style="width: 75%" class="form-control"
               id="keyid" name="keyid" placeholder="0x12345678" {% if search is defined %}value="{{ search }}"{% endif %}>
      <button type="submit" class="btn btn-default btn-sm">Submit</button>
      </div>
    </form>

    <div class="text-center">
    <br>
        Tip: Add 0x to your search string to search for a specific key ID.
    </div>

    {% if keys is defined %}
        <hr>
        <h2><em>Search results</em></h2>
        <nav>
          <ul class="pagination">
            <li {% if page <= 1 %}class="disabled"{% endif %}>
              <a href="{{ url_for("frontend.search", keyid=search, page=page-1) }}" aria-label="Previous">
                <span aria-hidden="true">&laquo;</span>
              </a>
            </li>
            <li><a href="#">{{ page }} of {{ maxpages }}</a></li>
            <li {% if page == maxpages %}class="disabled"{% endif %}>
              <a href="{{ url_for("frontend.search", keyid=search, page=page + 1) }}" aria-label="Next">
                <span aria-hidden="true">&raquo;</span>
              </a>
            </li>
          </ul>
        </nav>
        <div class="keyinfo">
            {% if keys != [] %}
            {% for keydb in keys %}
                {% set key = keyinfo.from_database_object(keydb) %}
                {# Loop over the list of KeyInfos #}
                <ul>
                    <li><strong>pub:</strong> {{ key.get_algo_name()}}-{{ key.get_length() }} / <a href="{{ url_for("frontend.getkeyinfo", key=key.shortid) }}">0x{{ key.shortid }}</a> ({{ key.fingerprint }}) {% if key.revoked %}<strong style="color: red">[REVOKED]</strong>{% elif key.expired %}<strong style="color: red">[EXPIRED]</strong>{% endif %}
                        <ul>
                            <li>uid:
                                <ul>
                                    {% for u in key.uid %}
                                        <li>{{ u }}</li>
                                    {% endfor %}
                                </ul>
                            <li>created: {{ key.get_created_ymd() }} expires: {{ key.get_expired_ymd() }}</li>
                            {% if key.oid %}<li>curve: {{ key.oid }}</li>{% endif %}
                        </ul>
                    </li>
                    {% if key.keybase %}
                        <li>Keybase:<ul>
                        {% set kb = key.keybase[0] %}
                        {% for proof in kb.proofs.values() %}
                            {# This is the worst line written by a human ever. #}
                            {# todo make nicer and/or explain #}
                            <li><a href="{{ proof["proof_url"] }}">{{ proof["presentation_group"] if proof["presentation_group"] != proof["nametag"] else proof["presentation_tag"] }} / {{ proof["nametag"] }}</a><strong style="color: {% if key.keybase[1] %}green"> ✔{% else %}red"> ✖{% endif %}</strong> ({{ proof["proof_id"] }})</li>
                        {% endfor %}
                        </ul></li>
                    {% endif %}
                    {% for sub in key.subkeys %}
                        <li><em>sub:</em> 0x{{ sub[-8:] }} ({{ sub }})
                            <ul>
                                <li>{% if sub[-8:] in key.signatures %}subsig: 0x{{ key.signatures[sub[-8:]][0][0] }} ({{ key.signatures[sub[-8:]][0][1][0] if key.signatures[sub[-8:]][0][1][0] != "[" else key.signatures[sub[-8:]][0][1] }}){% else %}<strong style="color: red">UNVERIFIED</strong>{% endif %}</li>
                            </ul>
                        </li>
                    {% endfor %}
                    <li>sigs:</li>
                        <ul>
                            {% for sig in key.signatures[key.shortid] %}
                            <li style="white-space: pre;">{{ key.translate(sig) }} <a href="{{ url_for(".getkeyinfo", key=sig[0]) }}">{{ sig[0] }}</a> ({{ sig[1][0] if sig[1][0] != "[" else sig[1] }})</li>
                            {% endfor %}
                        </ul>
                </ul>
                <hr>
            {% endfor %}
            {% else %}
            No keys found.
            {% endif %}
        </div>
    {% endif %}
{% endblock %}