Переглянути джерело

Changed the way dropdown filters work so that they populate based on other filters that are already applied.

ttreasure 4 місяців тому
батько
коміт
4ea4f0a3a9

+ 15 - 14
app/Http/Controllers/DataTablesController.php

@@ -70,21 +70,7 @@ class DataTablesController extends Controller
         $columnHeaders = json_decode($datatableConfig->column_headers, true);
         $columnConfig = json_decode($datatableConfig->columns_config, true);
 
-        //Get Data for Dropdown header columns
-        $dropdownData = new Collection();
-        foreach ($columnHeaders as $index => $columnHeader) {
-            if($columnHeader['searchtype'] === 'dropdown')
-            {
-                $ddColumnConfig = $columnConfig[$index];
-                $columnSnapshot = (clone $query)
-                    ->select($ddColumnConfig['name'])
-                    ->distinct()->orderBy($ddColumnConfig['name'])
-                    ->pluck($ddColumnConfig['name']);
-
-                $dropdownData[$index] = $columnSnapshot;
 
-            }
-        }
         //Apply search filters
         $searchTerms = $request->input('searchTerms', []);
         foreach ($searchTerms as $index => $value) {
@@ -116,6 +102,21 @@ class DataTablesController extends Controller
             }
         }
 
+        //Get Data for Dropdown header columns
+        $dropdownData = new Collection();
+        foreach ($columnHeaders as $index => $columnHeader) {
+            if($columnHeader['searchtype'] === 'dropdown')
+            {
+                $ddColumnConfig = $columnConfig[$index];
+                $columnSnapshot = (clone $query)
+                    ->select($ddColumnConfig['name'])
+                    ->distinct()->orderBy($ddColumnConfig['name'])
+                    ->pluck($ddColumnConfig['name']);
+
+                $dropdownData[$index] = $columnSnapshot;
+
+            }
+        }
 
         // Apply sorting
         $sorting = $request->order[0] ?? json_decode($datatableConfig->default_sorting, true)[0];

+ 1 - 1
resources/js/datatables.js

@@ -53,7 +53,7 @@ function initializeDataTable() {
                         //console.log(dropdown);
                         dropdown.empty().append($('<option>',{
                             value: '',
-                            text: '-- Select --'
+                            text: '-- Not  Filtered  --'
                         }));
                         json.dropdowndata[index].forEach(function (option) {
                             var selected = false;