Fixed document, transaction and category list page pinned tab search issue..

This commit is contained in:
Cüneyt Şentürk 2026-03-12 01:47:58 +00:00
parent 9ddab69242
commit 311054bad7
1 changed files with 66 additions and 0 deletions

View File

@ -16,6 +16,9 @@ use Illuminate\Pagination\Paginator;
use Illuminate\Pagination\LengthAwarePaginator; use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Routing\Controller as BaseController; use Illuminate\Routing\Controller as BaseController;
/**
* @property string $type
*/
abstract class Controller extends BaseController abstract class Controller extends BaseController
{ {
use AuthorizesRequests, Jobs, Permissions, Relationships, SearchString, ValidatesRequests; use AuthorizesRequests, Jobs, Permissions, Relationships, SearchString, ValidatesRequests;
@ -114,6 +117,19 @@ abstract class Controller extends BaseController
} }
} }
if (! request()->has('list_records') && request()->has('search')) {
$status = $this->getSearchStringValue('status');
if (empty($status)) {
$tab_pins = setting('favorites.tab.' . user()->id, []);
$tab_pins = ! empty($tab_pins) ? json_decode($tab_pins, true) : [];
if (! empty($tab_pins) && (($tab_pins[$this->type] ?? null) === 'all')) {
request()->offsetSet('list_records', 'all');
}
}
}
if (request()->get('list_records') == 'all') { if (request()->get('list_records') == 'all') {
return; return;
} }
@ -152,6 +168,41 @@ abstract class Controller extends BaseController
} }
} }
} }
if (! request()->has('list_records') && request()->has('search')) {
$type = $this->getSearchStringValue('type');
if (empty($type)) {
$tab_pins = setting('favorites.tab.' . user()->id, []);
$tab_pins = ! empty($tab_pins) ? json_decode($tab_pins, true) : [];
if (! empty($tab_pins) && (($tab_pins['transactions'] ?? null) === 'all')) {
request()->offsetSet('list_records', 'all');
}
}
}
if (request()->get('list_records') == 'all') {
return;
}
$type = $this->getSearchStringValue('type');
if (empty($type)) {
$search = config('type.transaction.transactions.route.params.income.search');
request()->offsetSet('search', $search);
request()->offsetSet('programmatic', '1');
} else {
$income = str_replace('type:', 'income', config('type.transaction.transactions.route.params.income.search'));
$expense = str_replace('type:', 'expense', config('type.transaction.transactions.route.params.expense.search'));
if (($type == $income) || ($type == $expense)) {
return;
}
request()->offsetSet('list_records', 'all');
}
} }
public function setActiveTabForCategories(): void public function setActiveTabForCategories(): void
@ -171,6 +222,19 @@ abstract class Controller extends BaseController
} }
} }
if (! request()->has('list_records') && request()->has('search')) {
$type = $this->getSearchStringValue('type');
if (empty($type)) {
$tab_pins = setting('favorites.tab.' . user()->id, []);
$tab_pins = ! empty($tab_pins) ? json_decode($tab_pins, true) : [];
if (! empty($tab_pins) && (($tab_pins['categories'] ?? null) === 'all')) {
request()->offsetSet('list_records', 'all');
}
}
}
if (request()->get('list_records') == 'all') { if (request()->get('list_records') == 'all') {
return; return;
} }
@ -186,6 +250,7 @@ abstract class Controller extends BaseController
request()->offsetSet('list_records', $tab); request()->offsetSet('list_records', $tab);
$currentSearch = request('search', ''); $currentSearch = request('search', '');
$searchParts = array_filter(explode(' ', $currentSearch), function($part) { $searchParts = array_filter(explode(' ', $currentSearch), function($part) {
return !empty(trim($part)) && !str_starts_with(trim($part), 'type:'); return !empty(trim($part)) && !str_starts_with(trim($part), 'type:');
}); });
@ -194,6 +259,7 @@ abstract class Controller extends BaseController
request()->offsetSet('search', implode(' ', $searchParts)); request()->offsetSet('search', implode(' ', $searchParts));
request()->offsetSet('programmatic', '1'); request()->offsetSet('programmatic', '1');
return; return;
} }
} }