Skip to content

Commit 534b412

Browse files
committed
Tweaks for Filters
1 parent 34d3785 commit 534b412

File tree

5 files changed

+103
-72
lines changed

5 files changed

+103
-72
lines changed

src/Traits/Filters/HasFilterQueryString.php

Lines changed: 15 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,6 @@
66

77
trait HasFilterQueryString
88
{
9-
#[Locked]
10-
public bool $queryStringStatusForFilter = true;
11-
12-
protected ?string $queryStringAliasForFilter;
13-
149
protected function queryStringHasFilterQueryString(): array
1510
{
1611
return ($this->queryStringForFilterIsEnabled()) ?
@@ -20,6 +15,11 @@ protected function queryStringHasFilterQueryString(): array
2015
] : [];
2116
}
2217

18+
public function queryStringForFilterIsEnabled(): bool
19+
{
20+
return $this->getQueryStringStatusForFilter() && $this->filtersAreEnabled();
21+
}
22+
2323
public function hasQueryStringStatusForFilter(): bool
2424
{
2525
return $this->hasQueryStringConfigStatus('filters');
@@ -30,38 +30,32 @@ public function getQueryStringStatusForFilter(): bool
3030
return $this->getQueryStringConfigStatus('filters');
3131
}
3232

33-
public function queryStringForFilterIsEnabled(): bool
33+
public function hasQueryStringAliasForFilter(): bool
3434
{
35+
return $this->hasQueryStringConfigAlias('filters');
36+
}
3537

36-
return $this->getQueryStringStatusForFilter() && $this->filtersAreEnabled();
38+
public function getQueryStringAliasForFilter(): string
39+
{
40+
return $this->getQueryStringConfigAlias('filters');
3741
}
3842

39-
public function setQueryStringStatusForFilter(bool $status): self
43+
protected function setQueryStringStatusForFilter(bool $status): self
4044
{
4145
return $this->setQueryStringConfigStatus('filters', $status);
4246
}
4347

44-
public function setQueryStringForFilterEnabled(): self
48+
protected function setQueryStringForFilterEnabled(): self
4549
{
4650
return $this->setQueryStringStatusForFilter(true);
4751
}
4852

49-
public function setQueryStringForFilterDisabled(): self
53+
protected function setQueryStringForFilterDisabled(): self
5054
{
5155
return $this->setQueryStringStatusForFilter(false);
5256
}
5357

54-
public function hasQueryStringAliasForFilter(): bool
55-
{
56-
return $this->hasQueryStringConfigAlias('filters');
57-
}
58-
59-
public function getQueryStringAliasForFilter(): string
60-
{
61-
return $this->getQueryStringConfigAlias('filters');
62-
}
63-
64-
public function setQueryStringAliasForFilter(string $alias): self
58+
protected function setQueryStringAliasForFilter(string $alias): self
6559
{
6660
return $this->setQueryStringConfigAlias('filters', $alias);
6761
}

tests/Http/Livewire/BaseTable.php

Lines changed: 3 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -3,60 +3,12 @@
33
namespace Rappasoft\LaravelLivewireTables\Tests\Http\Livewire;
44

55
use Rappasoft\LaravelLivewireTables\DataTableComponent;
6+
use Rappasoft\LaravelLivewireTables\Tests\Http\Livewire\Traits\TestHelpers;
67

78
abstract class BaseTable extends DataTableComponent
89
{
9-
public string $paginationTest = 'standard';
10-
11-
public function enableDetailedPagination(string $type = 'standard')
12-
{
13-
$this->setPerPageAccepted([1, 3, 5, 10, 15, 25, 50])->setPerPage(3);
14-
$this->setPaginationMethod($type);
15-
$this->setDisplayPaginationDetailsEnabled();
16-
17-
}
18-
19-
public function disableDetailedPagination(string $type = 'standard')
20-
{
21-
$this->setPerPageAccepted([1, 3, 5, 10, 15, 25, 50])->setPerPage(3);
22-
$this->setPaginationMethod($type);
23-
$this->setDisplayPaginationDetailsDisabled();
24-
}
10+
use TestHelpers;
2511

26-
public function setPaginationTest(string $type)
27-
{
28-
$this->paginationTest = $type;
29-
}
30-
31-
public function bootAll()
32-
{
33-
$view = view('livewire-tables::datatable');
34-
35-
$this->boot();
36-
$this->bootedComponentUtilities();
37-
$this->bootedHasFiltersCore();
38-
$this->bootedWithColumns();
39-
$this->bootedWithColumnSelect();
40-
$this->booted();
41-
$this->mountHasFiltersCore();
42-
$this->mountComponentUtilities();
43-
$this->mountWithSorting();
44-
$this->renderAll($view);
45-
}
46-
47-
public function renderAll($view = null)
48-
{
49-
if (is_null($view)) {
50-
$view = view('livewire-tables::datatable');
51-
}
52-
$this->renderingWithColumns($view, $view->getData());
53-
$this->renderingWithColumnSelect($view, $view->getData());
54-
$this->renderingWithCustomisations($view, $view->getData());
55-
$this->renderingWithData($view, $view->getData());
56-
$this->renderingWithReordering($view, $view->getData());
57-
$this->renderingWithPagination($view, $view->getData());
58-
$this->render();
12+
public string $paginationTest = 'standard';
5913

60-
return $view;
61-
}
6214
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
<?php
2+
3+
namespace Rappasoft\LaravelLivewireTables\Tests\Http\Livewire\Traits;
4+
5+
trait TestHelpers
6+
{
7+
use TestPaginationHelpers;
8+
9+
public function bootAll()
10+
{
11+
$view = view('livewire-tables::datatable');
12+
13+
$this->boot();
14+
$this->bootedComponentUtilities();
15+
$this->bootedHasFiltersCore();
16+
$this->bootedWithColumns();
17+
$this->bootedWithColumnSelect();
18+
$this->booted();
19+
$this->mountHasFiltersCore();
20+
$this->mountComponentUtilities();
21+
$this->mountWithSorting();
22+
$this->renderAll($view);
23+
}
24+
25+
public function renderAll($view = null)
26+
{
27+
if (is_null($view)) {
28+
$view = view('livewire-tables::datatable');
29+
}
30+
$this->renderingWithColumns($view, $view->getData());
31+
$this->renderingWithColumnSelect($view, $view->getData());
32+
$this->renderingWithCustomisations($view, $view->getData());
33+
$this->renderingWithData($view, $view->getData());
34+
$this->renderingWithReordering($view, $view->getData());
35+
$this->renderingWithPagination($view, $view->getData());
36+
$this->render();
37+
38+
return $view;
39+
}
40+
41+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<?php
2+
3+
namespace Rappasoft\LaravelLivewireTables\Tests\Http\Livewire\Traits;
4+
5+
trait TestPaginationHelpers
6+
{
7+
public function enableDetailedPagination(string $type = 'standard')
8+
{
9+
$this->setPerPageAccepted([1, 3, 5, 10, 15, 25, 50])->setPerPage(3);
10+
$this->setPaginationMethod($type);
11+
$this->setDisplayPaginationDetailsEnabled();
12+
13+
}
14+
15+
public function disableDetailedPagination(string $type = 'standard')
16+
{
17+
$this->setPerPageAccepted([1, 3, 5, 10, 15, 25, 50])->setPerPage(3);
18+
$this->setPaginationMethod($type);
19+
$this->setDisplayPaginationDetailsDisabled();
20+
}
21+
22+
public function setPaginationTest(string $type)
23+
{
24+
$this->paginationTest = $type;
25+
}
26+
27+
28+
}

tests/Unit/Traits/Core/QueryStrings/QueryStringTestBase.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,22 @@ public function configure(): void
2323
{
2424
$this->setDataTableFingerprint('test');
2525
}
26+
27+
public function setQueryStringAliasForFilter(string $alias): self
28+
{
29+
return parent::setQueryStringAliasForFilter($alias);
30+
}
31+
32+
public function setQueryStringForFilterEnabled(): self
33+
{
34+
return parent::setQueryStringForFilterEnabled();
35+
}
36+
37+
public function setQueryStringForFilterDisabled(): self
38+
{
39+
return parent::setQueryStringForFilterDisabled();
40+
}
41+
2642
};
2743
}
2844
}

0 commit comments

Comments
 (0)