fix(file): fixed file index filtering
This commit is contained in:
parent
d41884226d
commit
0e00207fb4
5 changed files with 25 additions and 12 deletions
|
@ -7,4 +7,12 @@ Content-Disposition: form-data; name="file"; filename="test_sintonia.mp3"
|
|||
< ./test_sintonia.mp3
|
||||
--WebAppBoundary--
|
||||
|
||||
###
|
||||
GET http://127.0.0.1:9876/file?
|
||||
page=1 &
|
||||
per_page=10 &
|
||||
artist_name=Cattle
|
||||
|
||||
|
||||
|
||||
###
|
|
@ -15,9 +15,9 @@ class FileFilters
|
|||
'per_page' => 20
|
||||
];
|
||||
|
||||
public function apply($query)
|
||||
public function apply($query, $filters)
|
||||
{
|
||||
foreach ($this->receivedFilters() as $name => $value) {
|
||||
foreach ($this->receivedFilters($filters) as $name => $value) {
|
||||
if ($name != 'per_page') {
|
||||
$filterInstance = new $this->filters[$name];
|
||||
$query = $filterInstance($query, $name, $value);
|
||||
|
@ -28,8 +28,8 @@ class FileFilters
|
|||
}
|
||||
|
||||
|
||||
public function receivedFilters()
|
||||
public function receivedFilters($filters)
|
||||
{
|
||||
return request()->only(array_keys($this->filters));
|
||||
return $filters->only(array_keys($this->filters));
|
||||
}
|
||||
}
|
|
@ -19,14 +19,17 @@ class FileController extends Controller
|
|||
* @param FileFilters $filters
|
||||
* @return mixed
|
||||
*/
|
||||
public function index(FileFilters $filters) {
|
||||
if (!isset($filters->per_page) || is_null($filters)) {
|
||||
public function index(Request $request) {
|
||||
|
||||
if (!isset($request->per_page) || is_null($request)) {
|
||||
$pagination = 5;
|
||||
} else {
|
||||
$pagination = $filters->per_page;
|
||||
$pagination = $request->per_page;
|
||||
}
|
||||
|
||||
return File::searchFilter($filters)->with('trackType')->orderBy('artist_name')->paginate($pagination);
|
||||
$test = File::searchFilter($request);
|
||||
|
||||
return File::searchFilter($request)->with('trackType')->orderBy('artist_name')->paginate($pagination);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
namespace App\Models;
|
||||
|
||||
use App\Filters\FileFilters;
|
||||
use App\Filters\SmartBlockCriteriaFilters;
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
|
@ -92,9 +93,9 @@ class File extends Model
|
|||
return $this->belongsTo(TrackType::class, 'track_type_id');
|
||||
}
|
||||
|
||||
public function scopeSearchFilter($query, $filters) {
|
||||
//dd($filters);
|
||||
return $filters->apply($query);
|
||||
public function scopeSearchFilter($query, $request) {
|
||||
$filters = new FileFilters();
|
||||
return $filters->apply($query, $request);
|
||||
}
|
||||
|
||||
public function scopeSmartBlockFilter($query, Collection $filters) {
|
||||
|
|
|
@ -31,7 +31,7 @@ const getItems = (page_info) => {
|
|||
return axios.get(`/file`, {
|
||||
params: {
|
||||
page: page_info.page,
|
||||
per_page: page_info.per_page,
|
||||
per_page: page_info.itemsPerPage,
|
||||
}
|
||||
}).then((response) => {
|
||||
console.log(response)
|
||||
|
@ -66,6 +66,7 @@ const getItems = (page_info) => {
|
|||
loading-text="Loading..."
|
||||
:loading="items.length === 0"
|
||||
@update:options="getItems"
|
||||
@update:items-per-page="getItems"
|
||||
disable-sort
|
||||
>
|
||||
</v-data-table-server>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue