diff --git a/packages/Webkul/Admin/src/DataGrids/TestDataGrid.php b/packages/Webkul/Admin/src/DataGrids/TestDataGrid.php index 263f9b12a..9a9f9b3bb 100644 --- a/packages/Webkul/Admin/src/DataGrids/TestDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/TestDataGrid.php @@ -29,7 +29,7 @@ class TestDataGrid extends AbsGrid 'alias' => 'productid', 'label' => 'ID', 'type' => 'number', - 'searchable' => true, + 'searchable' => false, 'sortable' => true, 'width' => '40px' ]); diff --git a/packages/Webkul/Ui/src/DataGrid/AbsGrid.php b/packages/Webkul/Ui/src/DataGrid/AbsGrid.php index 991b483b3..3f98abe59 100644 --- a/packages/Webkul/Ui/src/DataGrid/AbsGrid.php +++ b/packages/Webkul/Ui/src/DataGrid/AbsGrid.php @@ -122,14 +122,18 @@ abstract class AbsGrid throw new \Exception('Multiple Sort keys Found, Please Resolve the URL Manually'); } } else if($key == "search") { - if ($count_keys == 1) { - $collection->orderBy( - str_replace('_', '.', array_keys($info)[0]), - array_values($info)[0] - ); - } else { + $count_keys = count(array_keys($info)); + + if($count_keys > 1) { throw new \Exception('Multiple Search keys Found, Please Resolve the URL Manually'); } + + $collection->where(function () use($collection, $info) { + foreach ($this->allColumns as $column) { + if($column['searchable'] == true) + $collection->orWhere($column['column'], 'like', '%'.$info['all'].'%'); + } + }); } else { if (array_keys($info)[0] == "like" || array_keys($info)[0] == "nlike") { foreach ($info as $condition => $filter_value) { diff --git a/packages/Webkul/Ui/src/Resources/views/testgrid/table.blade.php b/packages/Webkul/Ui/src/Resources/views/testgrid/table.blade.php index 6f7fa41ec..24f266011 100644 --- a/packages/Webkul/Ui/src/Resources/views/testgrid/table.blade.php +++ b/packages/Webkul/Ui/src/Resources/views/testgrid/table.blade.php @@ -1,8 +1,6 @@
- - {{-- @include('ui::testgrid.head', ['columns' => $results['columns']]) --}} - + @include('ui::testgrid.body', ['records' => $results['records']])
@@ -11,9 +9,9 @@ @@ -155,6 +160,7 @@ sortAsc: 'asc', isActive: false, isHidden: true, + searchValue: '', filterColumn: true, filters: [], columnOrAlias: '', @@ -243,11 +249,11 @@ }, sortCollection(alias) { - this.formURL("sort", alias, this.sortAsc, params); + this.formURL("sort", alias, this.sortAsc); }, - searchCollection(alias) { - this.formURL("search", alias, 'search', params); + searchCollection(searchValue) { + this.formURL("search", 'all', searchValue); }, //function triggered to check whether the query exists or not and then call the make filters from the url @@ -312,8 +318,6 @@ if(column == "sort") { sort_exists = 0; - console.log(column, condition, response); - console.log(this.filters); for(j = 0; j < this.filters.length; j++) { if(this.filters[j].column == "sort") { if(this.filters[j].column == column && this.filters[j].cond == condition) { @@ -364,6 +368,7 @@ if(column == "search") { search_found = 0; + for(j = 0;j < this.filters.length;j++) { if(this.filters[j].column == "search") { this.filters[j].column = column; @@ -385,7 +390,6 @@ obj.cond = condition; obj.val = response; - this.filters.push(obj); obj = {}; @@ -453,25 +457,27 @@ obj = {}; } + + console.log(this.filters); } // //Use the label to prevent the display of column name on the body // function makeTags() { // var filterRepeat = 0; - // if(allFilters.length != 0) - // for(var i = 0;i 0) + // for(var i = 0;i'+ col_label_tag +''+ allFilters[i].val +''; + // var filter_card = ''+ col_label_tag +''+ this.filters[i].val +''; - // sorted_col = allFilters[i].cond; + // sorted_col = this.filters[i].cond; // var apply_on_column = $('th[data-column-name="'+sorted_col+'"]').children('.icon'); - // if(allFilters[i].val == "asc") { + // if(this.filters[i].val == "asc") { // apply_on_column.addClass('sort-down-icon'); // } else { // apply_on_column.addClass('sort-up-icon'); @@ -479,17 +485,17 @@ // $('.filter-row-two').append(filter_card); - // } else if(allFilters[i].column == "search") { + // } else if(this.filters[i].column == "search") { // col_label_tag = "Search"; - // var filter_card = ''+ col_label_tag +''+ allFilters[i].val +''; + // var filter_card = ''+ col_label_tag +''+ this.filters[i].val +''; // $('.filter-row-two').append(filter_card); // } else { - // col_label_tag = $('li[data-name="'+allFilters[i].column+'"]').text().trim(); + // col_label_tag = $('li[data-name="'+this.filters[i].column+'"]').text().trim(); - // var filter_card = ''+ col_label_tag +''+ allFilters[i].val +''; + // var filter_card = ''+ col_label_tag +''+ this.filters[i].val +''; // $('.filter-row-two').append(filter_card); // }