Fix header click + use them as sorting (#66)

* Abort checking messages when clicking on a header row (indexing a nil value)

* Use headers clicks to change sorting
This commit is contained in:
Athozus 2023-04-15 11:49:41 +02:00 committed by GitHub
parent 059fe74a1a
commit 2d02797253
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -52,6 +52,14 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
-- Hanmdle formspec event
if fields.inbox then -- inbox table
local evt = minetest.explode_table_event(fields.inbox)
if evt.row == 1 then -- header
if mail.selected_idxs.sortfield[name] == evt.column-1 then -- if already this field, then change direction
mail.selected_idxs.sortdirection[name] = mail.selected_idxs.sortdirection[name] == "2" and "1" or "2"
end
mail.selected_idxs.sortfield[name] = evt.column-1 -- update column
mail.show_mail_menu(name)
return
end
if mail.selected_idxs.multipleselection[name] then
if not mail.selected_idxs.inbox[name] then
mail.selected_idxs.inbox[name] = {}
@ -82,6 +90,14 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
if fields.sent then -- sent table
local evt = minetest.explode_table_event(fields.sent)
if evt.row == 1 then -- header
if mail.selected_idxs.sortfield[name] == evt.column-1 then -- if already this field, then change direction
mail.selected_idxs.sortdirection[name] = mail.selected_idxs.sortdirection[name] == "2" and "1" or "2"
end
mail.selected_idxs.sortfield[name] = evt.column-1 -- update column
mail.show_mail_menu(name)
return
end
if mail.selected_idxs.multipleselection[name] then
if not mail.selected_idxs.sent[name] then
mail.selected_idxs.sent[name] = {}
@ -112,6 +128,14 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
if fields.drafts then -- drafts table
local evt = minetest.explode_table_event(fields.drafts)
if evt.row == 1 then -- header
if mail.selected_idxs.sortfield[name] == evt.column-1 then -- if already this field, then change direction
mail.selected_idxs.sortdirection[name] = mail.selected_idxs.sortdirection[name] == "2" and "1" or "2"
end
mail.selected_idxs.sortfield[name] = evt.column-1 -- update column
mail.show_mail_menu(name)
return
end
mail.selected_idxs.drafts[name] = evt.row - 1
if evt.type == "DCL" and messagesDrafts[mail.selected_idxs.drafts[name]] then
mail.show_compose(name,