diff options
| author | Bryan Newbold <bnewbold@archive.org> | 2021-01-19 19:43:26 -0800 | 
|---|---|---|
| committer | Bryan Newbold <bnewbold@archive.org> | 2021-01-19 19:49:39 -0800 | 
| commit | 892da3ccc83f398eb9f92785e79ac624894fbabe (patch) | |
| tree | cdd64227d9d67f1f8fcf3f50b24596d28899659d | |
| parent | 09f10227b2ce140c969bed934508d51a6b74204d (diff) | |
| download | fatcat-scholar-892da3ccc83f398eb9f92785e79ac624894fbabe.tar.gz fatcat-scholar-892da3ccc83f398eb9f92785e79ac624894fbabe.zip | |
html: new <detail> dropdown main link
| -rw-r--r-- | fatcat_scholar/templates/base.html | 20 | ||||
| -rw-r--r-- | fatcat_scholar/templates/search_macros.html | 185 | 
2 files changed, 148 insertions, 57 deletions
| diff --git a/fatcat_scholar/templates/base.html b/fatcat_scholar/templates/base.html index 56b10c3..9fd1351 100644 --- a/fatcat_scholar/templates/base.html +++ b/fatcat_scholar/templates/base.html @@ -48,7 +48,7 @@      .ui.labeled.icon.button.serp-button {        padding-left: 3.0em!important;        padding-right: 1em!important; -      min-width: 12em; +      min-width: 10em;        max-width: 15em;        box-shadow: 1px 1px 2px 1px rgba(0, 0, 0, 0.3);      } @@ -97,9 +97,6 @@          font-size: 16px;          line-height: 20px;        } -      .ui.serp.card { -        max-width: 180px; -      }        div.fulltext-link {          width: 180px;        } @@ -109,12 +106,10 @@      }      .ui.serp.card { +      max-width: 180px;        margin-bottom: 0.2em;        border-radius: 0;      } -    .ui.serp.card img { -      max-width: 100%; -    }      .hit-count {        font-weight: bold;        line-height: 1.28571429em; @@ -262,6 +257,17 @@        overflow: auto;      } +    details.access-options summary { +        text-decoration: none; +        color: inherit; +    } +    details.access-options .menu { +        /* border: 1px solid black; */ +        margin: 0.5em; +        width: auto; +        padding: 1em; +    } +      details.serp-action-menu[open] > summary .ui.basic.button {          box-shadow: 0 0 0 1px rgba(0,0,0,.15) inset, 0 1px 4px 0 rgba(34,36,38,.15) inset;          background: #f8f8f8!important; diff --git a/fatcat_scholar/templates/search_macros.html b/fatcat_scholar/templates/search_macros.html index fab9510..d267cdc 100644 --- a/fatcat_scholar/templates/search_macros.html +++ b/fatcat_scholar/templates/search_macros.html @@ -50,6 +50,24 @@    {% endif %}  {% endmacro %} +{% macro ia_access_button(access) -%} +  {% set access_alt = _('fulltext access') %} +  <a target="_blank" rel="noopener" href="{{ access.access_url}}" title="{{ access_alt }}" {% if settings.ENABLE_GOATCOUNTER %}data-goatcounter-click="serp-fulltext-button"{% endif %}> +    <button class="ui compact black labeled icon button serp-button"> +      <i class="icon" style="background: no-repeat center / 50% url('/static/ia-favicon.ico');"></i> +      {% if access.access_type in ["wayback",] %} +        Wayback +      {% elif access.access_type in ["ia_file",] %} +        File +      {% elif access.access_type == "ia_sim" %} +        Microfilm +      {% else %} +        Other +      {% endif %} +    </button> +  </a> +{% endmacro %} +  {% macro journal_row(biblio, paper) -%}    {# NOTE: should be able to call with paper.biblio or any paper.release[] #}    {% if biblio.release_year %} @@ -84,18 +102,21 @@  {% macro fulltext_search_result_row(paper, locale=None, debug_mode=False) -%}  <div class="ui stackable doubling grid">  <div class="thirteen wide column biblio-record"> + +<details class="access-options"> +<summary>    {# ### TITLE ROW #}    <h3 class="biblio-title">      {% if paper.doc_type == "work" %} -      <a style="color: #2224c7; cursor: pointer;" onclick="document.getElementById('access-modal-{{ paper.key }}').showModal()"> +      <span style="color: #2224c7; cursor: pointer;">          {% if paper.biblio.title %}            {{ paper.biblio.title[:512] }}            {% if paper.biblio.title|length > 512 %}...{% endif %}          {% else %}            [blank]          {% endif %} -      </a> +      </span>        {# release type suffix #}        <span class="release-type" >        {% if paper.biblio.release_type in ("article-journal", "paper-conference") or paper.doc_type == "sim_page" %} @@ -138,6 +159,113 @@    {# ### JOURNAL ROW #}    {{ journal_row(paper.biblio, paper) }} +</summary> +<div class="menu"> +  {# ### FULLTEXT ACCESS OPTIONS #} +  <h4 class="ui horizontal divider header"> +    {% trans %}Preserved Fulltext{% endtrans %} +  </h4> + +  {% if paper.fulltext %} +    <div class="ui items"> +      <div class="item"> +        <div class="image"> +          <a target="_blank" rel="noopener" href="{{ paper.fulltext.access_url }}"> +          {% if paper.fulltext.thumbnail_url %} +            <div class="ui serp card"> +              <img src="{{ paper.fulltext.thumbnail_url }}" alt="fulltext thumbnail" loading="lazy"> +            </div> +          {% else %} +            <div class="ui serp card" style="box-shadow: none;"> +              <img src="/static/document-icon.svg" style="opacity: 0.6;" alt=""> +            </div> +          {% endif %} +          </a> +        </div> +        <div class="content"> +          <div class="header"> +            <a href="{{ paper.fulltext.access_url }}"> +            {% if paper.fulltext.access_type == "wayback" %} +              Web Archive Capture +            {% elif paper.fulltext.access_type == "ia_file" %} +              Archive Collections +            {% elif paper.fulltext.access_type == "ia_sim" %} +              Digitized Microfilm +            {% endif %} +            </a> +          </div> +          <div class="description"> +            {% if paper.fulltext.access_type == "wayback" %} +              <p>A copy of this work was available on the public web and has been preserved in the Wayback Machine. The capture dates from {{ paper.fulltext.access_url.split('/')[4][:4] }}; you can also visit <a href="{{ '/'.join(paper.fulltext.access_url.split('/')[5:]) }}">the original URL</a>. +            {% elif paper.fulltext.access_type == "ia_file" %} +              <p>{% trans %}The Internet Archive has a preservation copy of this work in our general collections.{% endtrans %} +            {% elif paper.fulltext.access_type == "ia_sim" %} +              <p>{% trans %}The Internet Archive has digitized a microfilm copy of this work. It may be possible to borrow a copy for reading.{% endtrans %} +            {% endif %} + +            {% if paper.fulltext.file_mimetype %} +              <p>The file type is <code>{{ paper.fulltext.file_mimetype }}</code>. +            {% endif %} + +            {% if paper.fulltext.release_ident and (paper.biblio.release_ident != paper.fulltext.release_ident) %} +              {# Fulltext copy is different from biblio version! #} +              <p>Note that this fulltext copy is not of the "primary" version +              of this work. The version it corresponds to is: +              <div class="ui fitted divider"></div> +              {% for release in paper.releases if release.ident == paper.fulltext.release_ident %} +                {{ journal_row(release, paper) }} +                <br> +                {{ external_identifiers(release) }} +              {% endfor %} +              <div class="ui fitted divider"></div> +            {% endif %} +          </div> +          <div class="extra"> +          {# currently, ia_sim access types are not linked to specific versions #} +          {% for access in paper.access if access.access_type != paper.fulltext.access_type and (access.release_ident == paper.fulltext.release_ident or access.release_ident == paper.biblio.release_ident or access.access_type == 'ia_sim') %} +            {% if loop.first %} +              <p>Additional access options for the primary version of this work: +            {% endif %} +            {{ ia_access_button(access )}} +          {% endfor %} +          </div> +        </div> +      </div> +    </div> +  {% else %} +    {# No fulltext case #} +    <p>{% trans %}We don't yet know of a public preservation copy of this work. You may be able to obtain a copy of this work to read from the publisher, platforms, or institutional libraries.{% endtrans %} +    {% if paper.doc_type == "work" %} +      {% set save_paper_now_url = "https://fatcat.wiki/release/" + paper.biblio.release_ident + "/save" %} +      <p>{% trans %}If you know of a legal, public version that we should archive, please let us know via <a rel="noopener" href="{{ save_paper_now_url }}">"Save Paper Now"</a>.{% endtrans %} +    {% endif %} +  {% endif %} + +  {% if paper.releases|length > 1 %} +  <h4 class="ui horizontal divider header"> +    {# <i class="tag icon"></i> #} +    Other Versions +  </h4> +    {% for release in paper.releases if (release.ident != paper.biblio.release_ident and release.ident != paper.fulltext.release_ident) %} +      <div class="biblio-record"> +        {{ journal_row(release, paper) }} +        <br> +        {{ external_identifiers(release) }} +        <br> +        {% for access in paper.access if access.release_ident == release.ident %} +          {{ ia_access_button(access )}} +        {% endfor %} +      </div> +      {% if not loop.last %} +        <div class="ui divider"></div> +      {% endif %} +    {% endfor %} +  {% endif %} +  <div class="ui divider"></div> +</div> +</details> + +    {# ### ABSTRACT / QUERY HIGHLIGHT #}    {% if paper._highlights %}      <div style="padding-top: 0.5em; padding-bottom: 0.5em;" class="search_highlights"> @@ -216,7 +344,7 @@            {% elif paper.fulltext.file_mimetype == "text/xml" %}              XML            {% else %} -            File |{{ paper.fulltext.file_mimetype }}| +            File            {% endif %}            {% if paper.fulltext.size_bytes %}              ({{ paper.fulltext.size_bytes|filesizeformat }}) @@ -287,12 +415,10 @@    {# ### VERSIONS #}    {% if (paper.access and paper.access|length > 1) or (paper.releases and paper.releases|length > 1) %} -    <a style="color: #2224c7; cursor: pointer;" onclick="document.getElementById('access-modal-{{ paper.key }}').showModal()"> -      <div class="ui fluid compact basic blue labeled icon button serp-button"> -        <i class="ui icon add"></i> -        {% trans %}Other Versions{% endtrans %} -      </div> -    </a> +    <div class="ui fluid compact basic blue labeled icon button serp-button"> +      <i class="ui icon add"></i> +      {% trans %}Multiple Versions{% endtrans %} +    </div>    {% endif %}    {# ### COLLAPSED HITS  #} @@ -340,47 +466,6 @@  </div> -{# ### VERSIONS MODAL #} -<dialog id="access-modal-{{ paper.key }}"> -  <button class="circular ui right floated compact basic icon button" onclick="this.parentElement.close()"> -    <i class="close icon"></i> -  </button> - -  <h2>{% trans %}Access Options{% endtrans %}</h2> -  {% if paper.fulltext and paper.fulltext.thumbnail_url %} -    <a href="{{ paper.fulltext.access_url }}"> -      <img src="{{ paper.fulltext.thumbnail_url }}" alt="fulltext thumbnail" loading="lazy"> -    </a> -  {% endif %} - -  {% for access in paper.access %} -    {% if access.access_type == "ia_sim" %} -      <p>There is a digitized microfilm copy <a href="{{ access.access_url }}">at archive.org</a>. -    {% elif access.access_type == "ia_file" %} -      <p>There is a <code>{{ access.mimetype }}</code> file <a href="{{ access.access_url }}">at archive.org</a>. -    {% elif access.access_type == "wayback" %} -      <p>There is a <code>{{ access.mimetype }}</code> file <a href="{{ access.access_url }}">in The Wayback Machine</a>. -    {% else %} -      <p>Some other <a href="{{ access.access_url }}">access here</a>. -    {% endif %} -  {% endfor %} -  {% if paper.biblio.doi %} -    <p>You can visit the publisher <a href="{{ paper.biblio.doi }}">landing page</a>. -  {% endif %} - -  {% if paper.releases|length > 1 %} -    <h2>All Versions</h2> -    {% for release in paper.releases %} -      <div class="biblio-record"> -        {{ journal_row(release, paper) }} -        <br> -        {{ external_identifiers(release) }} -      </div> -      <br> -    {% endfor %} -  {% endif %} -</dialog> -  </div> {# final row close #}  {% endmacro %} | 
