7d86f40bdb
Fixes #784 From now, searching for tags with an empty value will return only not tagged links, with the search bar showing `x results [not tagged]`. Note that using the api, the searchtags request parameter must be set to `false` to get the same result. - [ ] Update API doc
257 lines
8.9 KiB
HTML
257 lines
8.9 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
{include="includes"}
|
|
</head>
|
|
<body>
|
|
{include="page.header"}
|
|
|
|
<div class="linkcount pure-u-0 pure-u-lg-visible">
|
|
{if="!empty($linkcount)"}
|
|
<span class="strong">{$linkcount}</span> {function="t('shaare', 'shaares', $linkcount)"}
|
|
{if="$privateLinkcount>0"}
|
|
<br><span class="strong">{$privateLinkcount}</span> {function="t('private link', 'private links', $privateLinkcount)"}
|
|
{/if}
|
|
{/if}
|
|
</div>
|
|
|
|
<div id="search-linklist">
|
|
|
|
<div class="pure-g">
|
|
<div class="pure-u-1 pure-u-lg-1-2">
|
|
<form method="GET" class="searchform" name="searchform">
|
|
<input type="text" tabindex="1" name="searchterm" placeholder="{'Search text'|t}"
|
|
{if="!empty($search_term)"}
|
|
value="{$search_term}"
|
|
{/if}
|
|
>
|
|
<button type="submit" class="search-button"><i class="fa fa-search"></i></button>
|
|
</form>
|
|
</div>
|
|
<div class="pure-u-1 pure-u-lg-1-2">
|
|
<form method="GET" class="tagfilter" name="tagfilter">
|
|
<input type="text" tabindex="2" name="searchtags" placeholder="{'Filter by tag'|t}"
|
|
{if="!empty($search_tags)"}
|
|
value="{$search_tags}"
|
|
{/if}
|
|
autocomplete="off" data-multiple data-autofirst data-minChars="1"
|
|
data-list="{loop="$tags"}{$key}, {/loop}"
|
|
>
|
|
<button type="submit" class="search-button"><i class="fa fa-search"></i></button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
{loop="$plugins_header.fields_toolbar"}
|
|
<form
|
|
{loop="$value.attr"}
|
|
{$key}="{$value}"
|
|
{/loop}>
|
|
<div class="toolbar-plugin pure-u-lg-1">
|
|
{loop="$value.inputs"}
|
|
<input
|
|
{loop="$value"}
|
|
{$key}="{$value}"
|
|
{/loop}>
|
|
{/loop}
|
|
</div>
|
|
</form>
|
|
{/loop}
|
|
|
|
<div id="linklist">
|
|
<div class="pure-g">
|
|
<div class="pure-u-lg-2-24 pure-u-1-24"></div>
|
|
<div class="pure-u-lg-20-24 pure-u-22-24">
|
|
<div class="linkcount pure-u-lg-0 center">
|
|
{if="!empty($linkcount)"}
|
|
<span class="strong">{$linkcount}</span> {function="t('shaare', 'shaares', $linkcount)"}
|
|
{if="$privateLinkcount>0"}
|
|
· <span class="strong">{$privateLinkcount}</span> {function="t('private link', 'private links', $privateLinkcount)"}
|
|
{/if}
|
|
{/if}
|
|
</div>
|
|
|
|
{include="linklist.paging"}
|
|
|
|
<div id="plugin_zone_start_linklist" class="plugin_zone">
|
|
{loop="$plugin_start_zone"}
|
|
{$value}
|
|
{/loop}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
{if="count($links)==0"}
|
|
<div class="pure-g pure-alert pure-alert-error search-result">
|
|
<div class="pure-u-2-24"></div>
|
|
<div class="pure-u-20-24">
|
|
<div id="searchcriteria">{'Nothing found.'|t}</div>
|
|
</div>
|
|
</div>
|
|
{elseif="!empty($search_term) or $search_tags !== '' or !empty($visibility)"}
|
|
<div class="pure-g pure-alert pure-alert-success search-result">
|
|
<div class="pure-u-2-24"></div>
|
|
<div class="pure-u-20-24">
|
|
{function="t('%s result', '%s results', $result_count)"}
|
|
{if="!empty($search_term)"}
|
|
{'for'|t} <em><strong>{$search_term}</strong></em>
|
|
{/if}
|
|
{if="!empty($search_tags)"}
|
|
{$exploded_tags=explode(' ', $search_tags)}
|
|
{'tagged'|t}
|
|
{loop="$exploded_tags"}
|
|
<span class="label label-tag" title="{'Remove tag'|t}">
|
|
<a href="?removetag={function="urlencode($value)"}">{$value}<span class="remove"><i class="fa fa-times"></i></span></a>
|
|
</span>
|
|
{/loop}
|
|
{elseif="$search_tags === false"}
|
|
<span class="label label-tag" title="{'Remove tag'|t}">
|
|
<a href="?">{'untagged'|t}<span class="remove"><i class="fa fa-times"></i></span></a>
|
|
</span>
|
|
{/if}
|
|
{if="!empty($visibility)"}
|
|
{'with status'|t}
|
|
<span class="label label-private">
|
|
{$visibility|t}
|
|
</span>
|
|
{/if}
|
|
</div>
|
|
</div>
|
|
{/if}
|
|
|
|
<div class="pure-g">
|
|
<div class="pure-u-lg-2-24 pure-u-1-24"></div>
|
|
<div class="pure-u-lg-20-24 pure-u-22-24">
|
|
{loop="links"}
|
|
<div class="anchor" id="{$value.shorturl}"></div>
|
|
<div class="linklist-item{if="$value.class"} {$value.class}{/if}">
|
|
|
|
<div class="linklist-item-title">
|
|
{if="isLoggedIn()"}
|
|
<div class="linklist-item-editbuttons">
|
|
{if="$value.private"}
|
|
<span class="label label-private">{'Private'|t}</span>
|
|
{/if}
|
|
<!-- FIXME! JS translation -->
|
|
<a href="?edit_link={$value.id}" title="{'Edit'|t}"><i class="fa fa-pencil-square-o edit-link"></i></a>
|
|
<a href="#" title="{'Fold'|t}" class="fold-button"><i class="fa fa-chevron-up"></i></a>
|
|
</div>
|
|
{/if}
|
|
|
|
<h2>
|
|
<a href="{$value.real_url}">
|
|
{if="strpos($value.url, $value.shorturl) === false"}
|
|
<i class="fa fa-external-link"></i>
|
|
{else}
|
|
<i class="fa fa-sticky-note"></i>
|
|
{/if}
|
|
|
|
<span class="linklist-link">{$value.title}</span>
|
|
</a>
|
|
</h2>
|
|
</div>
|
|
|
|
{$thumb=thumbnail($value.url)}
|
|
{if="$thumb!=false"}
|
|
<div class="linklist-item-thumbnail">{$thumb}</div>
|
|
{/if}
|
|
|
|
{if="$value.description"}
|
|
<div class="linklist-item-description">
|
|
{$value.description}
|
|
</div>
|
|
{/if}
|
|
|
|
<div class="linklist-item-infos clear">
|
|
{if="$value.tags"}
|
|
<div class="linklist-item-tags">
|
|
<i class="fa fa-tags"></i>
|
|
{$tag_counter=count($value.taglist)}
|
|
{loop="value.taglist"}
|
|
<span class="label label-tag" title="Add tag">
|
|
<a href="?addtag={$value|urlencode}">{$value}</a>
|
|
</span>
|
|
{if="$tag_counter - 1 != $counter"}·{/if}
|
|
{/loop}
|
|
</div>
|
|
{/if}
|
|
|
|
<div class="pure-g">
|
|
<div class="linklist-item-infos-dateblock pure-u-lg-3-8 pure-u-1">
|
|
<a href="?{$value.shorturl}" title="{'Permalink'|t}">
|
|
{if="!$hide_timestamps || isLoggedIn()"}
|
|
{$updated=$value.updated_timestamp ? 'Edited: '. format_date($value.updated) : 'Permalink'}
|
|
<span class="linkdate" title="{$updated}">
|
|
<i class="fa fa-clock-o"></i>
|
|
{$value.created|format_date}
|
|
{if="$value.updated_timestamp"}*{/if}
|
|
·
|
|
</span>
|
|
{/if}
|
|
{'permalink'|t}
|
|
</a>
|
|
|
|
<div class="pure-u-0 pure-u-lg-visible">
|
|
{if="isset($value.link_plugin)"}
|
|
·
|
|
{$link_plugin_counter=count($value.link_plugin)}
|
|
{loop="$value.link_plugin"}
|
|
{$value}
|
|
{if="$link_plugin_counter - 1 != $counter"}·{/if}
|
|
{/loop}
|
|
{/if}
|
|
</div>
|
|
</div><div
|
|
{ignore}do not add space or line break between these div - Firefox issue{/ignore}
|
|
class="linklist-item-infos-url pure-u-lg-5-8 pure-u-1">
|
|
<a href="{$value.real_url}" title="{$value.title}">
|
|
<i class="fa fa-link"></i> {$value.url}
|
|
</a>
|
|
{if="isLoggedIn()"}
|
|
<a href="?delete_link&lf_linkdate={$value.id}&token={$token}"
|
|
title="{'Delete'|t}" class="delete-link pure-u-0 pure-u-lg-visible confirm-delete">
|
|
<i class="fa fa-trash"></i>
|
|
</a>
|
|
{/if}
|
|
</div>
|
|
<div class="mobile-buttons pure-u-1 pure-u-lg-0">
|
|
{if="isset($value.link_plugin)"}
|
|
{$link_plugin_counter=count($value.link_plugin)}
|
|
{loop="$value.link_plugin"}
|
|
{$value}
|
|
{if="$link_plugin_counter - 1 != $counter"}·{/if}
|
|
{/loop}
|
|
{/if}
|
|
{if="isLoggedIn()"}
|
|
·
|
|
<a href="?delete_link&lf_linkdate={$value.id}&token={$token}"
|
|
title="{'Delete'|t}" class="delete-link confirm-delete">
|
|
<i class="fa fa-trash"></i>
|
|
</a>
|
|
{/if}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{/loop}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="plugin_zone_end_linklist" class="plugin_zone">
|
|
{loop="$plugin_end_zone"}
|
|
{$value}
|
|
{/loop}
|
|
</div>
|
|
|
|
<div class="pure-g">
|
|
<div class="pure-u-lg-2-24 pure-u-1-24"></div>
|
|
<div class="pure-u-lg-20-24 pure-u-22-24">
|
|
{include="linklist.paging"}
|
|
</div>
|
|
</div>
|
|
|
|
{include="page.footer"}
|
|
</body>
|
|
</html>
|