From 95ea7277dcc3f6fdbe1c10a83698d95b3b8f3faf Mon Sep 17 00:00:00 2001 From: "Beau Beauchamp, WebTigers" Date: Mon, 17 Aug 2026 09:12:21 -0400 Subject: [PATCH] DataTables: persist grid state (page / length / search / order) The shared tigerDataTable helper didn't enable stateSave, so every admin grid forgot its page, page-length, search, and ordering on reload/navigation. Turn on stateSave (localStorage, keyed by table id + path) with stateDuration 0 (keep until changed). House-wide: Users, Orgs, Code, CMS, Media, Skills all remember where you were. A caller can opt out with stateSave:false. Co-Authored-By: Claude Opus 4.8 --- themes/puma/assets/js/tiger.datatable.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/themes/puma/assets/js/tiger.datatable.js b/themes/puma/assets/js/tiger.datatable.js index fffde1d..855d764 100644 --- a/themes/puma/assets/js/tiger.datatable.js +++ b/themes/puma/assets/js/tiger.datatable.js @@ -34,10 +34,15 @@ var extra = (typeof opts.extraData === 'function') ? opts.extraData : function () { return {}; }; // Sensible defaults; caller's opts win. `service`/`extraData` are ours, not DT's. + // stateSave persists page / length / search / order per grid (localStorage, keyed by table id + + // path) so a grid remembers where you were across reloads + navigation. A caller can opt out with + // `stateSave: false`. stateDuration 0 = keep until explicitly changed (no time-based expiry). var config = $.extend({ serverSide: true, processing: true, pageLength: 25, + stateSave: true, + stateDuration: 0, language: { search: '', searchPlaceholder: 'Search…' } }, opts); delete config.service;