{% macro fatcat_bits(entity, entity_type, expand="", editgroup=None) -%}

{% if entity.state == None and editgroup %}
  <div class="ui segment pink inverted attached">
  {% if editgroup.changelog_index %}
    <b>Accepted Edit Version</b>
    <p>This is the version of the entity as of a specific merged editgroup:
  {% elif editgroup.submitted %}
    <b>Submitted Edit Version</b>
    <p>This is a version of the entity that has been submitted for approval as part of an editgroup:
  {% else %}
    <b>Edit In Progress</b>
    <p>This is a version of the entity that has not yet been submitted for approval, part of an editgroup:
  {% endif %}
  <b><a href="/editgroup/{{ editgroup.editgroup_id }}" style="color: white; font-weight: bold;">{{ editgroup.editgroup_id }}</a></b>
  </div>
{% elif entity.state == None and entity.ident == None %}
<div class="ui segment pink inverted attached">
  <b>Revision</b>
  <p>This is a specific, static metadata record, not necessarily linked to any current entity in the catalog.
</div>
{% elif entity.state == "wip" %}
<div class="ui segment pink inverted attached">
  <b>Work In Progress</b>
  <p>This entity has not been "accepted" into the official database yet.
</div>
{% endif %}

<div class="ui segment attached">
  <b>Fatcat Bits</b>
  <p>
  {% if entity.state %}
    State is "{{ entity.state }}".
  {% endif %}
  {% if entity.state != "deleted" %}
    Revision:
    <br><small><code><a href="/{{ entity_type }}/rev/{{ entity.revision }}">{{ entity.revision }}</a></code></small>
  {% endif %}
  <br><a href="
  {%- if config.FATCAT_DOMAIN == 'dev.fatcat.wiki' -%}
    http://localhost:9411
  {%- else -%}
    https://api.{{ config.FATCAT_DOMAIN }}
  {%- endif -%}
  /v0/{{ entity_type }}
  {%- if entity.ident -%}
    /{{ entity.ident }}
  {%- elif entity.revision -%}
    /rev/{{ entity.revision }}
  {% endif %}
  {% if expand %}?expand={{ expand}}{% endif %}">
  As JSON object via API
  </a>
</div>

<div class="two ui buttons bottom attached">
  <a href="{% if editgroup %}/editgroup/{{ editgroup.editgroup_id }}{% endif %}/{{ entity_type }}/{{ entity.ident }}/edit" class="ui blue button">Edit Metadata</a>
  <a href="/{{ entity_type }}/{{ entity.ident }}/history" class="ui button">View History</a>
</div>
{%- endmacro %}


{% macro extra_metadata(extra) -%}
<table class="ui definition single line fixed compact small unstackable table">
<tbody>
{% for (key, value) in extra.items()|sort %}
  {% if key in ("ia", "crossref", "datacite", "kbart", "arxiv", "jstor", "pubmed") and value is mapping and value %}
    {% for (inner_key, inner_value) in value.items()|sort %}
      <tr><td class="three wide right aligned"><code>{{ key }}.{{ inner_key }}</code></td>
          <td class="seven wide"><code>{{ inner_value }}</code>
    {% endfor %}
  {% elif key in ("urls", "webarchive_urls") and value and value is iterable and value is not string and value[0] is string %}
    <tr><td class="three wide right aligned"><code>{{ key }}</code></td>
        <td class="seven wide">
          <code>
          {% for u in value %}
            <a href="{{ u }}">{{ u }}</a><br>
          {% endfor %}
          </code>
  {% else %}
    <tr><td class="three wide right aligned"><code>{{ key }}</code></td>
        <td class="seven wide"><code>{% if value != None %}{{ value }}{% endif %}</code>
  {% endif %}
{% endfor %}
</tbody>
</table>
{%- endmacro %}


{% macro release_list(releases) -%}
<table class="ui very basic celled table">
<tbody>
{% for release in releases %}
  <tr><td class="collapsing center aligned">
        {% if release.release_date %}{{ release.release_date }}{% elif release.release_year %}{{ release.release_year }}{% else %}<i>unknown</i>{% endif %}
      <td class="">
        <b><a href="/release/{{ release.ident }}">{{ release.title }}</a></b>
        <br><small>{{ release.release_stage or "unknown status" }}
            | {{ release.release_type or "unknown type" }}
            {% if release.version %} | {{ release.version }}{% endif %}
            {% if release.license_slug %} | {{ release.license_slug }}{% endif %}
        </small>
        {% if release.ext_ids.doi %}
          <br><a href="https://doi.org/{{ release.ext_ids.doi }}" style="color:green;">doi:{{ release.ext_ids.doi }}</a>
        {% endif %}
{% endfor %}
</tbody>
</table>
{%- endmacro %}


{% macro url_list(urls) -%}
<table class="ui very basic compact single line fixed table">
<tbody>
  {% for url in urls %}
    <tr><td class="two wide right aligned">{{ url.rel }}
        <td class="eight wide"><small><code><a href="{{ url.url }}">
        {% if url.url.count('/') >= 3 and url.rel != "dweb" %}
          {{ '/'.join(url.url.split('/')[0:2]) }}/<b>{{ ''.join(url.url.split('/')[2]) }}</b>/{{ '/'.join(url.url.split('/')[3:]) }}
        {% else %}
          {{ url.url }}
        {% endif %}
        </a></code></small>
  {% endfor %}
</tbody>
</table>
{%- endmacro %}

{% macro lookup_form(entity_type, key, example, lookup_key, lookup_value, lookup_error) -%}
<form class="ui form" role="search" action="/{{ entity_type }}/lookup" method="get">
  <div class="ui form">
    <div class="field {% if key == lookup_key %}{% if lookup_error == 400 %}error{% elif lookup_error == 404 %}warning{% endif %}{% endif %}">
      {% if key == lookup_key and lookup_error == 400 %}
        <div class="ui pointing below red label">
          Not correct syntax. Expected, eg, {{ example }}
        </div>
      {% endif %}
      <div class="ui action input big fluid">
        <input type="text" placeholder="{% if example %}eg, {{ example }}{% endif %}" name="{{ key }}" value="{% if key == lookup_key %}{{ lookup_value }}{% endif %}" aria-label="{{ key }} lookup">
        <button class="ui button">Go!</button>
      </div>
    </div>
  </div>
</form>
{%- endmacro %}

{% macro release_search_result_row(paper) -%}
<div>
  <h4 style="margin-top: 1em; margin-bottom: 0px; font-size: 1.1em;">
    <a href="/release/{{ paper.ident }}" style="color: #2224c7;">
      {% if paper.title %}
        {{ paper.title[:512] }}
        {% if paper.title|length > 512 %}...{% endif %}
      {% else %}
        [blank]
      {% endif %}
    </a>
  </h4>
  {% if paper.best_pdf_url %}
  <div style="float: right; padding: 4px;">
  &nbsp;&nbsp;<a href="{{ paper.best_pdf_url }}" class="ui violet tag label"><i class="file icon"></i>fulltext</a>
  </div>
  {% endif %}
  {#
  <h5 style="margin-top: 4px; margin-bottom: 4px; font-size: 1em;">{{ ", ".join(paper.contrib_names[:12]) }}
    {% if paper.contrib_names|length > 12 %}<i>(+{{ paper.contrib_names|length - 12 }} others)</i>{% endif %}
  </h5>
  #}
  {% if paper.contrib_names %}
    <div style="margin-top: 0px; margin-bottom: 0px; font-size: 1em;">
    <b>
    {{ ", ".join(paper.contrib_names[:12]) }}
    {% if paper.contrib_names|length > 12 %}<i>(+{{ paper.contrib_names|length - 12 }} others)</i>{% endif %}
    </b>
    </div>
  {% endif %}
  {% if paper.release_year %}
    {{ paper.release_year }}
  {% endif %}
  {% if paper.release_type %}
    {% if paper.release_type in ("article-journal", "paper-conference") %}
      <span class="ui black basic label small">{{ paper.release_type }}</span>
    {% elif paper.release_type in ("book") %}
      <span class="ui brown basic label small">{{ paper.release_type }}</span>
    {% else %}
      <span class="ui grey basic label small">{{ paper.release_type }}</span>
    {% endif %}
  {% endif %}
  {% if paper.withdrawn_status %}
    <span class="ui red label small">{{ paper.withdrawn_status }}</span>
  {% endif %}
  {% if paper.release_stage and paper.release_stage != "published" %}
    <span class="ui pink basic label small">{{ paper.release_stage }}</span>
  {% elif not paper.release_stage %}
    <span class="ui red basic label small">unknown</span>
  {% endif %}
  {% if paper.container_name %}
    {% if paper.container_id %}
      <a href="/container/{{ paper.container_id }}" style="color: black;">{{ paper.container_name }}</a>
    {% else %}
      {{ paper.container_name }}
    {% endif %}
    {% if paper.container_is_oa %}<i class="icon unlock orange small"></i>{% endif %}
  {% endif %}
  {% if paper.doi or paper.pmid or paper.arxiv_id or paper.jstor_id %}
  <br>
  {% endif %}
  {% if paper.doi %}
    <a href="https://doi.org/{{paper.doi }}" style="color: green;">doi:{{ paper.doi }}</a> &nbsp;
  {% endif %}
  {% if paper.pmid %}
    <a href="https://www.ncbi.nlm.nih.gov/pubmed/{{paper.pmid }}" style="color: green;">pmid:{{ paper.pmid }}</a> &nbsp;
  {% endif %}
  {% if paper.arxiv_id %}
    <a href="https://arxiv.org/abs/{{paper.arxiv_id }}" style="color: green;">arXiv:{{ paper.arxiv_id }}</a> &nbsp;
  {% endif %}
  {% if False %} {# XXX: elastic release work grouping searches #}
  <br>
  <a href="/work/{{ paper.work_id }}"><i class="sitemap icon"></i> and 5 other versions of the same work!</a>
  {% endif %}
</div>
{% endmacro %}

{% macro progress_color(frac) -%}
{% if frac >= 1 %}
green
{% elif frac > 0.95 %}
olive
{% elif frac < 0.5 %}
red
{% else %}
yellow
{% endif %}
{%- endmacro %}

{% macro top_results(found) -%}

<i>Showing
  {% if found.offset == 0 %}
  first
  {% else %}
  results {{ found.offset }} &mdash;
  {% endif %}
  
  {{ found.offset + found.count_returned }}
  out of {{ found.count_found }} results
</i>

{%- endmacro %}


{% macro bottom_results(found) -%}

{% if found.offset > 0 %}
  {% if found.offset - found.limit < 0 %}
    <a href="{{ url_for('release_search', q=found.query.q, offset=0) }}">&#xab; Previous</a>
  {% else %}
    <a href="{{ url_for('release_search', q=found.query.q, offset=found.offset - found.limit) }}">&#xab; Previous</a>
  {% endif %}
{% else %}
  <span style="color:gray">&#xab; Previous</span>
{% endif %}

&nbsp;&nbsp;<i>Showing results {{ found.offset }} &mdash; {{ found.offset +
found.count_returned }} out of {{ found.count_found }} results</i>&nbsp;&nbsp;

{% if found.offset + found.limit < found.count_found and found.offset + found.limit < found.deep_page_limit %}
  <a href="{{ url_for('release_search', q=found.query.q, offset=found.offset + found.limit) }}">Next &#xbb;</a>
  {% else %}
  <span style="color:gray">Next &#xbb;</span>
{% endif %}

</div>

{%- endmacro %}