Skip to content

Commit f571b98

Browse files
feat: Update players table structure version and enhance column visibility handling
1 parent 2a9eee9 commit f571b98

1 file changed

Lines changed: 20 additions & 8 deletions

File tree

src/XtremeIdiots.Portal.Web/wwwroot/js/players-index.js

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,23 +13,29 @@ $(document).ready(function () {
1313
autoWidth: false,
1414
order: [[4, 'desc']], // Last Seen desc (index 4 after Name, IP, Guid, FirstSeen, LastSeen)
1515
stateSaveParams: function (settings, data) {
16-
data._playersStructureVersion = 3; // bump when changing column/filter persistence structure
16+
data._playersStructureVersion = 4; // bump when changing column/filter persistence structure
17+
if (data.columns) data.columns.forEach(function (c) { delete c.visible; });
1718
if (playersFilterSel) data.playersFilter = playersFilterSel.value || 'UsernameAndGuid';
1819
const gtSel = document.getElementById('filterGameType');
1920
if (gtSel) data.gameType = gtSel.value || '';
2021
},
2122
stateLoadParams: function (settings, data) {
22-
if (data._playersStructureVersion !== 3) return false; // invalidate older structures
23+
if (data._playersStructureVersion !== 4) {
24+
var key = 'DataTables_dataTable_' + window.location.pathname;
25+
try { localStorage.removeItem(key); } catch (e) { /* ignore */ }
26+
return false;
27+
}
28+
if (data.columns) data.columns.forEach(function (c) { delete c.visible; });
2329
if (playersFilterSel && data.playersFilter) playersFilterSel.value = data.playersFilter;
2430
const gtSel = document.getElementById('filterGameType');
2531
if (gtSel && typeof data.gameType !== 'undefined') gtSel.value = data.gameType;
2632
},
2733
columnDefs: [
2834
{ targets: 0, responsivePriority: 1, visible: true }, // Name (force visible)
29-
{ targets: 1, responsivePriority: 5 }, // Player IP
30-
{ targets: 2, responsivePriority: 3 }, // Guid
31-
{ targets: 3, responsivePriority: 4 }, // First Seen
32-
{ targets: 4, responsivePriority: 2 } // Last Seen
35+
{ targets: 1, responsivePriority: 2, visible: true }, // Player IP (force visible)
36+
{ targets: 2, responsivePriority: 4 }, // Guid
37+
{ targets: 3, responsivePriority: 5 }, // First Seen
38+
{ targets: 4, responsivePriority: 3 } // Last Seen
3339
],
3440
ajax: {
3541
url: dataUrl,
@@ -95,8 +101,14 @@ $(document).ready(function () {
95101
} catch { /* swallow */ }
96102
}
97103

98-
table.on('init.dt', function(){ relocateSearch(); });
99-
setTimeout(relocateSearch, 1000);
104+
table.on('init.dt', function () {
105+
relocateSearch();
106+
table.columns.adjust().responsive.recalc();
107+
});
108+
setTimeout(function () {
109+
relocateSearch();
110+
if (table.responsive) table.columns.adjust().responsive.recalc();
111+
}, 1000);
100112

101113
function reloadTable() { table.ajax.reload(null, false); }
102114

0 commit comments

Comments
 (0)