blob: 4d3cacfb9ebb663970fa901fbd2649544f78055b [file] [log] [blame]
Akron30ee5142015-06-26 01:50:14 +02001% use Mojo::JSON qw/encode_json/;
2% my $match = stash('match') || {};
3% my %match_data = %$match;
4% delete @match_data{qw/snippet startMore endMore field/};
Akron0a6768f2016-07-13 18:00:43 +02005% my $text_sigle = $match->{textSigle} // join('/', $match->{corpusID}, $match->{docID}, $match->{textID});
6% my $id = $text_sigle . '#' . $match->{matchID};
Akrondffa9392018-10-12 16:26:09 +02007% # Legacy:
8% my $layer_infos = $match->{layerInfos} // $match->{layerInfo} // 'cnx/c=spans corenlp/ne=tokens corenlp/p=tokens mate/l=tokens mate/m=tokens mate/p=tokens opennlp/p=tokens tt/l=tokens tt/p=tokens xip/c=spans';
Akron0a6768f2016-07-13 18:00:43 +02009<li data-match-id="<%= $match->{matchID} %>"
10 data-text-sigle="<%= $text_sigle %>"
Akrondffa9392018-10-12 16:26:09 +020011 data-available-info="<%= $layer_infos %>"
Akron30ee5142015-06-26 01:50:14 +020012 data-info="<%== b(encode_json(\%match_data))->decode->xml_escape %>"
Akrondffa9392018-10-12 16:26:09 +020013 id="<%= $id %>"<% if (current_route eq 'match') { %> class="active"<% } =%>>
Akron46b9f212017-05-01 13:55:17 +020014%# This should be done using JavaScript
Marc Kupietzf3011de2026-03-02 16:51:26 +010015% my @vfields_fields = @{stash('vfields_fields')};
16% my $is_new = ($text_sigle ne (stash('last_text_sigle') // ''));
17% my $flip = stash('flip') // 'flip';
18% if ($is_new) {
19% stash(last_text_sigle => $text_sigle);
Akron46b9f212017-05-01 13:55:17 +020020% $flip = $flip eq 'flip' ? 'flop' : 'flip';
21% stash(flip => $flip);
Akrondffa9392018-10-12 16:26:09 +020022% }
Marc Kupietzf3011de2026-03-02 16:51:26 +010023% foreach my $field (@vfields_fields) {
24% my $info = match_field($match, $field);
25% my $val = ($is_new && defined $info->{raw} && $info->{raw} ne '') ? $info->{html} : '';
26 <div class="meta <%= $flip %><%= $info->{type} ? " type-" . $info->{type} : '' %>"><% if ($val ne '') { %><span><%== $val %></span><% } %></div>
27% }
Akron08b82d62016-12-05 15:06:05 +010028 <div class="match-main">
29 <div class="match-wrap">
Nils Diewaldfccfbcb2015-04-29 20:48:19 +000030%# --- Snippet
Akron08b82d62016-12-05 15:06:05 +010031 <div class="snippet<%= $match->{startMore} ? ' startMore' : '' %><%= $match->{endMore} ? ' endMore' : '' %>"><%== $match->{snippet} %></div>
32 </div>
Nils Diewald4af3f0b2014-06-25 01:43:17 +000033 </div>
Nils Diewald996aa552014-12-02 03:26:44 +000034%# -- Reference string
Nils Diewaldfccfbcb2015-04-29 20:48:19 +000035 <p class="ref">\
36<% if ($match->{title}) { %><strong><%= $match->{title} %></strong><% }; %>\
37<%= $match->{author} ? ' ' . loc('by') . ' ' . $match->{author} : '' %>\
Akron22b008a2024-06-26 17:06:05 +020038% if ($match->{pubDate} || ($match->{pages} && ref $match->{pages} eq 'ARRAY')) {
39 (\
40% if ($match->{pubDate}) {
41<time datetime="<%= $match->{pubDate} %>"><%= $match->{pubDate} %></time>\
42% };
43% if ($match->{pages}) {
44% if ($match->{pubDate}) {
45, \
46% };
47% if (@{$match->{pages}} == 1) {
48<span class="pages"><%=loc 'page_sg' %> <%= $match->{pages}->[0] %></span>\
49% } else {
50<span class="pages"><%=loc 'page_pl' %> <%= $match->{pages}->[0] %>&ndash;<%= $match->{pages}->[-1] %></span>\
51% };
52% };
53) \
Akron30ee5142015-06-26 01:50:14 +020054% };
Akron22b008a2024-06-26 17:06:05 +020055<span class="sigle">[<%= $text_sigle %>]</span> \
Nils Diewald996aa552014-12-02 03:26:44 +000056</p>
Nils Diewald4af3f0b2014-06-25 01:43:17 +000057</li>