Blob Blame Raw
{% extends "master.html" %}

{% block title %}Waiting{% endblock %}

{% block content %}
<div class="container">
  <div class="row">
    <div class="col-md-7 mx-auto">
      <div class="alert alert-info text-center mt-5">
        <div class="mb-3">
          <i class="fa fa-circle-o-notch fa-spin fa-3x fa-fw"></i>
        </div>
        <h3 class="font-weight-bold mb-3">
          Waiting
        </h3>
        <p>
          We are waiting for your task to finish.
          This page should be refreshed automatically, but if not click
          <a href="{{ url_for('ui_ns.wait_task', taskid=task.id) }}">Here</a>
        </p>
        <p class="font-weight-bold">
          Your task is currently <span id="status">{{ task.status }}</span>
        </p>
        <p id="slow" class="hidden">
          This is taking longer than usual... Sorry for that.
        </p>
      </div>
    </div>
  </div>
</div>
{% endblock %}

{% block jscripts %}
{{ super() }}
<script type="text/javascript" nonce="{{ g.nonce }}">
var _delay = 1;
var _cnt = '{{ count }}';

function check_task_status(){
  var _url = '{{ url_for("ui_ns.wait_task", taskid=task.id) }}';
  $.ajax({
    url: _url ,
    type: 'GET',
    data: {
      js: 1,
      count: _cnt,
    },
    dataType: 'JSON',
    success: function(res) {
      _delay = res.count * 20;
      if (_delay > 2000){
        _delay = 2000;
      }
      _cnt = res.count;
      if (_cnt > 30) {
        $('#slow').show();
        $('.alert.alert-info').toggleClass("alert-info alert-warning");
      }
      $('#status').text(res.status);
      window.setTimeout(check_task_status, _delay);
    },
    error: function() {
      var _url = '{{ url_for("ui_ns.wait_task", taskid=task.id, prev=prev) | safe }}';
      _url += _url.includes('?') ? '&' : '?';
      _url += 'count=' + _cnt;
      console.log('Sending to ' + _url);
      window.location = _url;
    }
  });
}

$(document).ready(function() {
  window.setTimeout(check_task_status, _delay);
});
  </script>
{% endblock %}