Explorar el Código

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

ttreasure hace 10 meses
padre
commit
4ea4f0a3a9
Se han modificado 2 ficheros con 16 adiciones y 15 borrados
  1. 15 14
      app/Http/Controllers/DataTablesController.php
  2. 1 1
      resources/js/datatables.js

+ 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;