Now working full non-blocking (maybe leaky here and there)
diff --git a/templates/api-communication.html.ep b/templates/api-communication.html.ep
index 341a2da..30034af 100644
--- a/templates/api-communication.html.ep
+++ b/templates/api-communication.html.ep
@@ -1,11 +1,11 @@
% use JSON::XS;
-% if (stash('test_port') && stash('search.apirequest')) {
+% if (stash('test_port') && search->api_request) {
<pre class="query api" onclick="this.classList.toggle('active')">
<span>API Response for </span>
- <span style="font-size: 70%"><%= stash('search.apirequest') %></span>
+ <span style="font-size: 70%"><%= search->api_request %></span>
<code>
-<%= stash('search.apiresponse') =%>
+%= search->api_response
</code>
</pre>
%= javascript begin
diff --git a/templates/collections.html.ep b/templates/collections.html.ep
index 465b71e..0102536 100644
--- a/templates/collections.html.ep
+++ b/templates/collections.html.ep
@@ -1,6 +1,6 @@
<h2>Virtual Collections</h2>
<ul>
-% foreach my $vc (@{resource_info('collection')}) {
+% foreach my $vc (@{stash('search.resource') // []}) {
<li class="active" title="<%= $vc->{description} // '' %>"><h3><%= $vc->{name} %></h3>
% my $stats = $vc->{statistics};
<dl class="info">
diff --git a/templates/match.html.ep b/templates/match.html.ep
index e6e6866..adf5a0e 100644
--- a/templates/match.html.ep
+++ b/templates/match.html.ep
@@ -10,7 +10,7 @@
<div>
<div class="snippet"><%== $match->{snippet} %></div>
<div class="tokenInfo"></div>
- <div class="treeInfo"></div>
+%# <div class="treeInfo"></div>
</div>
%#
%# -- Reference string
@@ -31,7 +31,7 @@
<li class="open" title="Open in new tab"><a href="#<%= $match->{corpusID} %>-<%= $match->{docID} %>-<%= $match->{ID} %>" target="_blank"><i class="fa fa-external-link-square"></i></a></li>
% };
<li onclick="showTable(this)" title="Annotations"><i class="fa fa-info-circle"></i></li>
- <li onclick="showTree(this, 'xip', 'c')" title="Tree Visualizations"><i class="fa fa-sitemap"></i></li>
+%# <li onclick="showTree(this, 'xip', 'c')" title="Tree Visualizations"><i class="fa fa-sitemap"></i></li>
%# <li title="Remember"><i class="fa fa-star-o"></i></li>
</ul>
</li>
diff --git a/templates/query.html.ep b/templates/query.html.ep
index 9c077b8..8f58838 100644
--- a/templates/query.html.ep
+++ b/templates/query.html.ep
@@ -1,7 +1,7 @@
% use JSON::XS;
% use Mojo::JSON;
-% if (stash('search.query') && stash('test_port')) {
+% if (search->query_jsonld && stash('test_port')) {
% my $action;
% if (param('action') && param('action') eq 'inspect') {
% $action = ' active" style="cursor: default';
@@ -11,7 +11,7 @@
<span>JSON-LD Serialization for <%= param 'q' %> (<%= param 'ql' %>)</span>
<code>
%# Workaround to keep true, false, and null intact
-%= $json->encode($json->decode(Mojo::JSON::encode_json(stash('search.query'))))
+%= $json->encode($json->decode(Mojo::JSON::encode_json(search->query_jsonld)))
</code>
</pre>
%= javascript begin
diff --git a/templates/search.html.ep b/templates/search.html.ep
index 2bf4f80..ee24e79 100644
--- a/templates/search.html.ep
+++ b/templates/search.html.ep
@@ -3,28 +3,27 @@
% unless (param 'snippet') {
<div style="clear: both">
% my $url = url_with->query(['p' => '{page}']);
-% my $pages;
-% $pages = stash('search.totalResults') == -1 ? -1 : (stash('search.totalResults') / (stash('search.itemsPerPage') || 1));
- <div id="pagination"><%= pagination(stash('search.startPage'), $pages, $url) =%></div>
+% my $pages = search->total_pages;
+ <div id="pagination"><%= pagination(search->start_page, $pages, $url) =%></div>
<p class="found">Found
-% my $found = stash('search.totalResults');
+% my $found = search->total_results;
% if ($found == -1) {
% $found = 'unknown amount of';
-% } elsif (stash('search.timeExceeded')) {
+% } elsif (search->timeExceeded) {
% $found = 'more than ' . $found;
% };
<span id="total-results"><%= $found %> matches</span>
- <% if (stash 'search.benchmark') { %> in <%= stash 'search.benchmark' %><% } %>
+ <% if (search->benchmark) { %> in <%= search->benchmark %><% } %>
</p>
</div>
%= include 'query'
%= include 'api-communication'
% };
-% if (stash('search.totalResults') != 0 && scalar @{stash('search.hits')}) {
+% if (search->total_results != 0 && search->results->size) {
<div id="search">
<ol class="align-left">
-%= search_hits begin
+%= search_results begin
%= include 'match', match => $_
% end
</ol>