Handle tag filtering in the Bookmark service
This commit is contained in:
parent
72caf4e84c
commit
c79473bd84
5 changed files with 3 additions and 15 deletions
|
@ -296,6 +296,7 @@ public function bookmarksCountPerTag($filteringTags = [], $visibility = null)
|
||||||
if (empty($tag)
|
if (empty($tag)
|
||||||
|| (! $this->isLoggedIn && startsWith($tag, '.'))
|
|| (! $this->isLoggedIn && startsWith($tag, '.'))
|
||||||
|| $tag === BookmarkMarkdownFormatter::NO_MD_TAG
|
|| $tag === BookmarkMarkdownFormatter::NO_MD_TAG
|
||||||
|
|| in_array($tag, $filteringTags, true)
|
||||||
) {
|
) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,9 +39,6 @@ public function index(Request $request, Response $response): Response
|
||||||
$logMaxCount = $maxCount > 1 ? log($maxCount, 30) : 1;
|
$logMaxCount = $maxCount > 1 ? log($maxCount, 30) : 1;
|
||||||
$tagList = [];
|
$tagList = [];
|
||||||
foreach ($tags as $key => $value) {
|
foreach ($tags as $key => $value) {
|
||||||
if (in_array($key, $filteringTags)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
// Tag font size scaling:
|
// Tag font size scaling:
|
||||||
// default 15 and 30 logarithm bases affect scaling,
|
// default 15 and 30 logarithm bases affect scaling,
|
||||||
// 2.2 and 0.8 are arbitrary font sizes in em.
|
// 2.2 and 0.8 are arbitrary font sizes in em.
|
||||||
|
|
|
@ -625,11 +625,6 @@ function renderPage($conf, $pluginManager, $bookmarkService, $history, $sessionM
|
||||||
$visibility = ! empty($_SESSION['visibility']) ? $_SESSION['visibility'] : '';
|
$visibility = ! empty($_SESSION['visibility']) ? $_SESSION['visibility'] : '';
|
||||||
$filteringTags = isset($_GET['searchtags']) ? explode(' ', $_GET['searchtags']) : [];
|
$filteringTags = isset($_GET['searchtags']) ? explode(' ', $_GET['searchtags']) : [];
|
||||||
$tags = $bookmarkService->bookmarksCountPerTag($filteringTags, $visibility);
|
$tags = $bookmarkService->bookmarksCountPerTag($filteringTags, $visibility);
|
||||||
foreach ($filteringTags as $tag) {
|
|
||||||
if (array_key_exists($tag, $tags)) {
|
|
||||||
unset($tags[$tag]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (! empty($_GET['sort']) && $_GET['sort'] === 'alpha') {
|
if (! empty($_GET['sort']) && $_GET['sort'] === 'alpha') {
|
||||||
alphabetical_sort($tags, false, true);
|
alphabetical_sort($tags, false, true);
|
||||||
|
|
|
@ -816,7 +816,6 @@ public function testAllTags()
|
||||||
);
|
);
|
||||||
$this->assertEquals(
|
$this->assertEquals(
|
||||||
[
|
[
|
||||||
'web' => 4,
|
|
||||||
'cartoon' => 2,
|
'cartoon' => 2,
|
||||||
'gnu' => 1,
|
'gnu' => 1,
|
||||||
'dev' => 1,
|
'dev' => 1,
|
||||||
|
@ -833,7 +832,6 @@ public function testAllTags()
|
||||||
);
|
);
|
||||||
$this->assertEquals(
|
$this->assertEquals(
|
||||||
[
|
[
|
||||||
'web' => 1,
|
|
||||||
'html' => 1,
|
'html' => 1,
|
||||||
'w3c' => 1,
|
'w3c' => 1,
|
||||||
'css' => 1,
|
'css' => 1,
|
||||||
|
@ -968,7 +966,6 @@ public function testCountLinkPerTagAllNoFilter()
|
||||||
public function testCountLinkPerTagAllWithFilter()
|
public function testCountLinkPerTagAllWithFilter()
|
||||||
{
|
{
|
||||||
$expected = [
|
$expected = [
|
||||||
'gnu' => 2,
|
|
||||||
'hashtag' => 2,
|
'hashtag' => 2,
|
||||||
'-exclude' => 1,
|
'-exclude' => 1,
|
||||||
'.hidden' => 1,
|
'.hidden' => 1,
|
||||||
|
@ -991,7 +988,6 @@ public function testCountLinkPerTagAllWithFilter()
|
||||||
public function testCountLinkPerTagPublicWithFilter()
|
public function testCountLinkPerTagPublicWithFilter()
|
||||||
{
|
{
|
||||||
$expected = [
|
$expected = [
|
||||||
'gnu' => 2,
|
|
||||||
'hashtag' => 2,
|
'hashtag' => 2,
|
||||||
'-exclude' => 1,
|
'-exclude' => 1,
|
||||||
'.hidden' => 1,
|
'.hidden' => 1,
|
||||||
|
@ -1015,7 +1011,6 @@ public function testCountLinkPerTagPrivateWithFilter()
|
||||||
{
|
{
|
||||||
$expected = [
|
$expected = [
|
||||||
'cartoon' => 1,
|
'cartoon' => 1,
|
||||||
'dev' => 1,
|
|
||||||
'tag1' => 1,
|
'tag1' => 1,
|
||||||
'tag2' => 1,
|
'tag2' => 1,
|
||||||
'tag3' => 1,
|
'tag3' => 1,
|
||||||
|
|
|
@ -127,8 +127,8 @@ public function testValidCloudControllerInvokeWithParameters(): void
|
||||||
->expects(static::once())
|
->expects(static::once())
|
||||||
->method('bookmarksCountPerTag')
|
->method('bookmarksCountPerTag')
|
||||||
->with(['ghi', 'def'], BookmarkFilter::$PRIVATE)
|
->with(['ghi', 'def'], BookmarkFilter::$PRIVATE)
|
||||||
->willReturnCallback(function () use ($allTags): array {
|
->willReturnCallback(function (): array {
|
||||||
return $allTags;
|
return ['abc' => 3];
|
||||||
})
|
})
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue