Skip to content

Commit 9b105e1

Browse files
committed
admin2: fixed sorting issues in players and resources gridlist
fixed disappearing text in players and resources tab gridlist if the user used gridlist sorting and search filter; unified player search to match the filter structure and method used in widgets; fixed selected player being unselected when using search filter
1 parent a74147b commit 9b105e1

File tree

2 files changed

+19
-31
lines changed

2 files changed

+19
-31
lines changed

[admin]/admin2/client/main/admin_players.lua

Lines changed: 18 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ function aPlayersTab.Create(tab)
113113
addEventHandler("onClientGUIClick", aPlayersTab.Context, aPlayersTab.onContextClick)
114114
addEventHandler("onClientGUIClick", aPlayersTab.InfoContext, aPlayersTab.onContextClick)
115115
addEventHandler("onClientGUIClick", aPlayersTab.Tab, aPlayersTab.onClientClick)
116-
addEventHandler("onClientGUIChanged", aPlayersTab.PlayerListSearch, aPlayersTab.onPlayerListSearch)
116+
addEventHandler("onClientGUIChanged", aPlayersTab.PlayerListSearch, aPlayersTab.onGUIChange)
117117
addEventHandler("onClientPlayerChangeNick", root, aPlayersTab.onClientPlayerChangeNick)
118118
addEventHandler("aClientPlayerJoin", root, aPlayersTab.onClientPlayerJoin)
119119
addEventHandler("onClientPlayerQuit", root, aPlayersTab.onClientPlayerQuit)
@@ -321,23 +321,9 @@ function aPlayersTab.onClientClick(button)
321321
end
322322
end
323323

324-
function aPlayersTab.onPlayerListSearch()
325-
guiGridListClear(aPlayersTab.PlayerList)
326-
local text = guiGetText(source)
327-
if (text == "") then
328-
for id, player in ipairs(getElementsByType("player")) do
329-
local row = guiGridListAddRow(aPlayersTab.PlayerList)
330-
guiGridListSetItemText(aPlayersTab.PlayerList, row, 1, getPlayerName(player), false, false)
331-
guiGridListSetItemData(aPlayersTab.PlayerList, row, 1, player)
332-
end
333-
else
334-
for id, player in ipairs(getElementsByType("player")) do
335-
if (string.find(string.upper(getPlayerName(player)), string.upper(text))) then
336-
local row = guiGridListAddRow(aPlayersTab.PlayerList)
337-
guiGridListSetItemText(aPlayersTab.PlayerList, row, 1, getPlayerName(player), false, false)
338-
guiGridListSetItemData(aPlayersTab.PlayerList, row, 1, player)
339-
end
340-
end
324+
function aPlayersTab.onGUIChange()
325+
if (source == aPlayersTab.PlayerListSearch) then
326+
aPlayersTab.Refresh()
341327
end
342328
end
343329

@@ -551,21 +537,25 @@ end
551537

552538
function aPlayersTab.Refresh()
553539
local selected = getSelectedPlayer()
554-
local list = aPlayersTab.PlayerList
555-
guiGridListClear(list)
556540
local strip = guiCheckBoxGetSelected(aPlayersTab.ColorCodes)
541+
local filter = guiGetText(aPlayersTab.PlayerListSearch):lower()
542+
local sortDirection = guiGetProperty(aPlayersTab.PlayerList, "SortDirection")
543+
guiGridListClear(aPlayersTab.PlayerList)
544+
guiSetProperty(aPlayersTab.PlayerList, "SortDirection", "None")
557545
for id, player in ipairs(getElementsByType("player")) do
558-
local row = guiGridListAddRow(list)
559546
local name = getPlayerName(player)
560-
if (strip) then
561-
name = stripColorCodes(name)
562-
end
563-
guiGridListSetItemText(list, row, 1, name, false, false)
564-
guiGridListSetItemData(list, row, 1, player)
565-
if (player == selected) then
566-
guiGridListSetSelectedItem(list, row, 1)
547+
if name:find(filter) or name:lower():find(filter) then
548+
if (strip) then
549+
name = stripColorCodes(name)
550+
end
551+
local row = guiGridListAddRow(aPlayersTab.PlayerList, name)
552+
guiGridListSetItemData(aPlayersTab.PlayerList, row, 1, player)
553+
if (player == selected) then
554+
guiGridListSetSelectedItem(aPlayersTab.PlayerList, row, 1)
555+
end
567556
end
568557
end
558+
guiSetProperty(aPlayersTab.PlayerList, "SortDirection", sortDirection)
569559
end
570560

571561
function getSelectedPlayer()

[admin]/admin2/client/main/admin_resources.lua

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -275,9 +275,7 @@ function aResourcesTab.listResources(type)
275275
end
276276
for id, resource in ipairs(temp) do
277277
if (filter and resource.name:lower():find(filter:lower())) or (not filter) then
278-
local row = guiGridListAddRow(resources)
279-
guiGridListSetItemText(resources, row, 1, resource.name, false, false)
280-
guiGridListSetItemText(resources, row, 2, resource.state, false, false)
278+
guiGridListAddRow(resources, resource.name, resource.state)
281279
end
282280
end
283281
end

0 commit comments

Comments
 (0)