فهرست منبع

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

ttreasure 10 ماه پیش
والد
کامیت
4ea4f0a3a9
2فایلهای تغییر یافته به همراه16 افزوده شده و 15 حذف شده
  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;