% if (param 'q') {
%= search begin

% unless (param 'snippet') {
<div style="clear: both">
  <p class="found">
    <span class="pagination">
% my $url = url_with->query(['p' => '{page}']);
% my $pages = (stash('search.totalResults') / (stash('search.itemsPerPage') || 1));
% $pages = $pages < 0 ? 0 : $pages;
    </span>

    <div id="pagination">
%= pagination(stash('search.startPage'), $pages, $url)
    </div>

Found <span id="total-results"><%= commify(stash('search.totalResults')) %> matches</span>
% if (stash 'search.bm.hit') {
 in <%= stash 'search.bm.hit' %> (<%= stash 'search.bm.result' %>)
% }
  </p>
</div>

%= include 'query'
% };

<ol class="left-aligned">
%=  search_hits begin
  <li data-corpus-id="<%= $_->{corpusID} %>"
      data-doc-id="<%= korap_doc_id($_) %>"
      data-match-id="<%= korap_match_id($_) %>">
%# ID, title, corpusID, author, pubDate, textClass
    <div class="snippet"><%== $_->{snippet} %></div>
    <p><strong><%= $_->{title} %></strong><%= $_->{author} ? ' by ' . $_->{author}  : '' %>; published on <%= date_format $_->{pubDate} %> as <%= $_->{docID} %> (<%= $_->{corpusID} %>)</p>

%#    as <%= $_->{ID} %>
%#  textClass docID
%# foreach (grep { m!/morpho$! } split(/\s+/, $_->{foundries})) {
%#  <%= $_ %>
%# };

    <ul class="action right">
      <li onmouseup="closeSnippet(this)" title="close"><i class="fa fa-toggle-up"></i></li>
      <li onclick="showTable(this)" title="Annotations"><i class="fa fa-info-circle"></i></li>
      <li title="Tree Visualizations"><i class="fa fa-sitemap"></i></li>
      <li title="Remember"><i class="fa fa-star-o"></i></li>
    </ul>
  </li>
%   end
</ol>
% end
% }
