From 30a20318670e8884724ae3593508e371d7a2d55c Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Thu, 17 Jan 2019 11:14:28 +0530 Subject: [PATCH] Datagrid filters bug fix due to return statement used it was working on only first filter only --- packages/Webkul/Ui/src/DataGrid/DataGrid.php | 16 +++++++++------- .../src/Resources/views/datagrid/table.blade.php | 6 ++++++ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/packages/Webkul/Ui/src/DataGrid/DataGrid.php b/packages/Webkul/Ui/src/DataGrid/DataGrid.php index efa4007a1..2bf786338 100644 --- a/packages/Webkul/Ui/src/DataGrid/DataGrid.php +++ b/packages/Webkul/Ui/src/DataGrid/DataGrid.php @@ -174,13 +174,13 @@ abstract class DataGrid if (array_keys($info)[0] == "like" || array_keys($info)[0] == "nlike") { foreach ($info as $condition => $filter_value) { if ($this->enableFilterMap && isset($this->filterMap[$columnName])) { - return $collection->where( + $collection->where( $this->filterMap[$columnName], config("datagrid.operators.{$condition}"), '%'.$filter_value.'%' ); } else { - return $collection->where( + $collection->where( $columnName, config("datagrid.operators.{$condition}"), '%'.$filter_value.'%' @@ -191,13 +191,13 @@ abstract class DataGrid foreach ($info as $condition => $filter_value) { if ($columnType == 'datetime') { if ($this->enableFilterMap && isset($this->filterMap[$columnName])) { - return $collection->whereDate( - $this->filterMap[$columnname], + $collection->whereDate( + $this->filterMap[$columnName], config("datagrid.operators.{$condition}"), $filter_value ); } else { - return $collection->whereDate( + $collection->whereDate( $columnName, config("datagrid.operators.{$condition}"), $filter_value @@ -205,13 +205,13 @@ abstract class DataGrid } } else { if ($this->enableFilterMap && isset($this->filterMap[$columnName])) { - return $collection->where( + $collection->where( $this->filterMap[$columnName], config("datagrid.operators.{$condition}"), $filter_value ); } else { - return $collection->where( + $collection->where( $columnName, config("datagrid.operators.{$condition}"), $filter_value @@ -222,6 +222,8 @@ abstract class DataGrid } } } + dd($collection->toSql()); + return $collection; } public function prepareMassActions() { diff --git a/packages/Webkul/Ui/src/Resources/views/datagrid/table.blade.php b/packages/Webkul/Ui/src/Resources/views/datagrid/table.blade.php index 9b4e7a368..95939b233 100644 --- a/packages/Webkul/Ui/src/Resources/views/datagrid/table.blade.php +++ b/packages/Webkul/Ui/src/Resources/views/datagrid/table.blade.php @@ -440,6 +440,12 @@ filterRepeated = 1; return false; + } else if(this.filters[j].cond == condition && this.filters[j].val != response) { + filterRepeated = 1; + + this.filters[j].val = response; + + this.makeURL(); } } }