Allow crossed search between terms and tags

* Partial fix of 
  * Current use case: search term + click on tag.
  * LinkFilter now returns all links if no filter is given.
  * Unit tests.
This commit is contained in:
ArthurHoaro 2016-02-23 19:21:14 +01:00
parent 6c3d6a31f4
commit c51fae92dc
6 changed files with 178 additions and 65 deletions

View file

@ -11,16 +11,16 @@
<div id="headerform" class="search">
<form method="GET" class="searchform" name="searchform">
<input type="text" tabindex="1" id="searchform_value" name="searchterm" placeholder="Search text"
{if="!empty($search_crits) && $search_type=='fulltext'"}
value="{$search_crits}"
{if="!empty($search_term)"}
value="{$search_term}"
{/if}
>
<input type="submit" value="Search" class="bigbutton">
</form>
<form method="GET" class="tagfilter" name="tagfilter">
<input type="text" tabindex="2" name="searchtags" id="tagfilter_value" placeholder="Filter by tag"
{if="!empty($search_crits) && $search_type=='tags'"}
value="{function="implode(' ', $search_crits)"}"
{if="!empty($search_tags)"}
value="{$search_tags}"
{/if}
autocomplete="off" class="awesomplete" data-multiple data-minChars="1"
data-list="{loop="$tags"}{$key}, {/loop}"
@ -44,19 +44,23 @@
</div>
{if="count($links)==0"}
<div id="searchcriteria">Nothing found.</i></div>
{else}
{if="$search_type=='fulltext'"}
<div id="searchcriteria">{$result_count} results for <i>{$search_crits}</i></div>
{/if}
{if="$search_type=='tags'"}
<div id="searchcriteria">{$result_count} results for tags <i>
{loop="search_crits"}
<span class="linktag" title="Remove tag">
<a href="?removetag={function="urlencode($value)"}">{$value} <span class="remove">x</span></a>
</span>
{/loop}</i></div>
{/if}
<div id="searchcriteria">Nothing found.</div>
{elseif="!empty($search_term) or !empty($search_tags)"}
<div id="searchcriteria">
{$result_count} results
{if="!empty($search_term)"}
for <em>{$search_term}</em>
{/if}
{if="!empty($search_tags)"}
{$exploded_tags=explode(' ', $search_tags)}
tagged
{loop="$exploded_tags"}
<span class="linktag" title="Remove tag">
<a href="?removetag={function="urlencode($value)"}">{$value} <span class="remove">x</span></a>
</span>
{/loop}
{/if}
</div>
{/if}
<ul>
{loop="links"}