{%extends "phenotypes/base.html"%}
{%from "cli-output.html" import cli_output%}
{%from "flash_messages.html" import flash_all_messages%}
{%from "macro-table-pagination.html" import table_pagination%}
{%from "phenotypes/macro-display-pheno-dataset-card.html" import display_pheno_dataset_card%}

{%block extrameta%}
{%if job and job.status not in ("success", "completed:success", "error", "completed:error")%}
<meta http-equiv="refresh" content="5" />
{%endif%}
{%endblock%}

{%block title%}Phenotypes{%endblock%}

{%block pagetitle%}Phenotypes{%endblock%}

{%block lvl4_breadcrumbs%}
<li {%if activelink=="add-phenotypes"%}
    class="breadcrumb-item active"
    {%else%}
    class="breadcrumb-item"
    {%endif%}>
  <a href="{{url_for('species.populations.phenotypes.add_phenotypes',
           species_id=species.SpeciesId,
           population_id=population.Id,
           dataset_id=dataset.Id)}}">View Datasets</a>
</li>
{%endblock%}

{%block contents%}

{%if job%}
<h4 class="subheading">Progress</h4>
<div class="row" style="overflow:scroll;">
  <p><strong>Process Status:</strong> {{job.status}}</p>
  {%if metadata%}
  <table class="table table-responsive">
    <thead>
      <tr>
        <th>File</th>
        <th>Status</th>
        <th>Lines Processed</th>
        <th>Total Errors</th>
      </tr>
    </thead>

    <tbody>
      {%for file,meta in metadata.items()%}
      <tr>
        <td>{{file}}</td>
        <td>{{meta.status}}</td>
        <td>{{meta.linecount}}</td>
        <td>{{meta["total-errors"]}}</td>
      </tr>
      {%endfor%}
    </tbody>
  </table>
  {%endif%}
</div>

<div class="row">
  {%if  job.status in ("completed:success", "success")%}
  <p>
    {%if errors | length == 0%}
    <a href="{{url_for('species.populations.phenotypes.review_job_data',
           species_id=species.SpeciesId,
           population_id=population.Id,
           dataset_id=dataset.Id,
           job_id=job_id)}}"
       class="btn btn-primary"
       title="Continue to process data">Continue</a>
    {%else%}
    <span class="text-muted"
          disabled="disabled"
          style="border: solid 2px;border-radius: 5px;padding: 0.3em;">
      Cannot continue due to errors. Please fix the errors first.
    </span>
    {%endif%}
  </p>
  {%endif%}
</div>

<h4 class="subheading">Errors</h4>
<div class="row" style="max-height: 20em; overflow: scroll;">
  {%if errors | length == 0 %}
  <p class="text-info">
    <span class="glyphicon glyphicon-info-sign"></span>
    No errors found so far
  </p>
  {%else%}
  <table class="table table-responsive">
    <thead style="position: sticky; top: 0; background: white;">
      <tr>
        <th>File</th>
        <th>Row</th>
        <th>Column</th>
        <th>Value</th>
        <th>Message</th>
      </tr>
    </thead>

    <tbody style="font-size: 0.9em;">
      {%for error in errors%}
      <tr>
        <td>{{error.filename}}</td>
        <td>{{error.rowtitle}}</td>
        <td>{{error.coltitle}}</td>
        <td>{%if error.cellvalue | length > 25%}
          {{error.cellvalue[0:24]}}&hellip;
          {%else%}
          {{error.cellvalue}}
          {%endif%}
        </td>
        <td>
          {%if error.message | length > 250 %}
          {{error.message[0:249]}}&hellip;
          {%else%}
          {{error.message}}
          {%endif%}
        </td>
      </tr>
      {%endfor%}
    </tbody>
  </table>
  {%endif%}
</div>

<div class="row">
  {{cli_output(job, "stdout")}}
</div>

<div class="row">
  {{cli_output(job, "stderr")}}
</div>

{%else%}
<div class="row">
  <h3 class="text-danger">No Such Job</h3>
  <p>Could not find a job with the ID: {{job_id}}</p>
  <p>
    Please go back to
    <a href="{{url_for('species.populations.phenotypes.view_dataset',
             species_id=species.SpeciesId,
             population_id=population.Id,
             dataset_id=dataset.Id)}}"
       title="'{{dataset.Name}}' dataset page">
      the '{{dataset.Name}}' dataset page</a>
    to upload new phenotypes or edit existing ones.</p>
</div>
{%endif%}
{%endblock%}

{%block sidebarcontents%}
{{display_pheno_dataset_card(species, population, dataset)}}
{%endblock%}