{% extends "base.html" %}
{% block title %}Atualizações{% endblock %}
{% block heading %}Atualizações do sistema{% endblock %}
{% block content %}

<section class="panel narrow">
  <p>Versão instalada: <strong>{{ app_version }}</strong></p>
  <p>Canal de atualização: <code>{{ cfg.licenca_url }}</code> (serviço de licenças)</p>
  <div class="flash flash-info">
    <strong>Atualizações do sistema são gratuitas.</strong> Não é necessário CNPJ,
    chave ou contrato ativo para verificar e baixar novas versões do DNS Shield ISP.
    A licença só é exigida para os módulos <em>AnaBlock</em> e <em>Federação</em>.
  </div>

  <form method="post" action="{{ url_for('update.check') }}">
    <input type="hidden" name="csrf_token" value="{{ csrf_token() }}" />
    <button class="btn btn-primary" type="submit">Verificar atualizações</button>
  </form>
</section>

{% if info %}
<section class="panel">
  <h2>Resultado da verificação</h2>
  <p class="hint">Consultado em {{ info.checked_at }}.</p>
  {% if info.error %}
    <div class="flash flash-error">{{ info.error }}</div>
  {% else %}
    <p>Versão publicada: <strong>{{ info.remote_version or '—' }}</strong></p>
    {% if info.update_available %}
      <div class="flash flash-success">Nova versão disponível: {{ info.remote_version }}</div>
      <form method="post" action="{{ url_for('update.apply') }}"
            data-confirm="Atualizar agora? O pacote será baixado do serviço de atualizações e o serviço reiniciado; os dados do SQLite serão preservados e um backup será gerado.">
        <input type="hidden" name="csrf_token" value="{{ csrf_token() }}" />
        <button class="btn btn-primary" type="submit">Atualizar agora</button>
      </form>
    {% else %}
      <div class="flash flash-success">O sistema já está na versão mais recente.</div>
    {% endif %}
  {% endif %}

  {% if info.changelog %}
  <h3>Notas da versão</h3>
  <pre class="changelog">{{ info.changelog }}</pre>
  {% endif %}
</section>
{% endif %}

{% if result %}
<section class="panel">
  <h2>Execução da atualização</h2>
  <table class="table">
    <thead><tr><th>Etapa</th><th>Status</th><th>Saída</th></tr></thead>
    <tbody>
      {% for step in result.steps %}
      <tr>
        <td>{{ step.step }}</td>
        <td class="{{ 'ok' if step.ok else 'bad' }}">{{ 'OK' if step.ok else 'ERRO' }}</td>
        <td class="wrap"><pre class="changelog small">{{ step.output }}</pre></td>
      </tr>
      {% endfor %}
    </tbody>
  </table>
</section>
{% endif %}

{% endblock %}

