annis-web 0.2.0

This is an experimental version of ANNIS corpus search frontend.
Documentation
<div id="export-status"
     hx-target="this"
     hx-swap="outerHTML"
     class="field is-horizontal">
  <div class="field-label">
    <!-- Left empty for spacing -->
  </div>
  <div class="field-body">
    <div class="field is-grouped">
      {% if job == "Idle" %}
        <div class="control">
          <button class="button is-primary" hx-post="{{ url_prefix }}export/job">Start export</button>
        </div>
      {% elif job.Running is defined %}
        <div class="control is-expanded">
          {% if job.Running == 0 %}
            <label for="job-progress">Export is running</label>
            <progress id="job-progress"
                      class="progress is-info"
                      hx-trigger="load delay:1500ms"
                      hx-get="{{ url_prefix }}export/job"></progress>
          {% else %}
            <label for="job-progress">Export is running  ({{ (job.Running * 100.0)|round(1) }}%)</label>
            <progress id="job-progress"
                      class="progress is-info"
                      max="1"
                      value="{{ job.Running }}"
                      hx-trigger="load delay:500ms"
                      hx-get="{{ url_prefix }}export/job">{{ (job.Running * 100.0)|round(1) }}%</progress>
          {% endif %}
        </div>
        <div class="control">
          <button hx-delete="{{ url_prefix }}export/job" class="button">Cancel</button>
        </div>
      {% elif job == "Finished" %}
        <!-- Poll if download was started and we can exchange the link again -->
        <div class="control"
             hx-get="{{ url_prefix }}export/job"
             hx-trigger="every 500ms">
          <a hx-boost="false"
             _="on load click() me"
             href="{{ url_prefix }}export/file">Export finished. Click here if the download does not start automatically.</a>
        </div>
      {% else %}
        {{ job | tojson }}
      {% endif %}
    </div>
  </div>
</div>