mirror of
https://github.com/mt-mods/mail.git
synced 2025-04-30 16:31:43 -04:00
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:
parent
059fe74a1a
commit
2d02797253
1 changed files with 24 additions and 0 deletions
|
@ -52,6 +52,14 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
||||||
-- Hanmdle formspec event
|
-- Hanmdle formspec event
|
||||||
if fields.inbox then -- inbox table
|
if fields.inbox then -- inbox table
|
||||||
local evt = minetest.explode_table_event(fields.inbox)
|
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 mail.selected_idxs.multipleselection[name] then
|
||||||
if not mail.selected_idxs.inbox[name] then
|
if not mail.selected_idxs.inbox[name] then
|
||||||
mail.selected_idxs.inbox[name] = {}
|
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
|
if fields.sent then -- sent table
|
||||||
local evt = minetest.explode_table_event(fields.sent)
|
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 mail.selected_idxs.multipleselection[name] then
|
||||||
if not mail.selected_idxs.sent[name] then
|
if not mail.selected_idxs.sent[name] then
|
||||||
mail.selected_idxs.sent[name] = {}
|
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
|
if fields.drafts then -- drafts table
|
||||||
local evt = minetest.explode_table_event(fields.drafts)
|
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
|
mail.selected_idxs.drafts[name] = evt.row - 1
|
||||||
if evt.type == "DCL" and messagesDrafts[mail.selected_idxs.drafts[name]] then
|
if evt.type == "DCL" and messagesDrafts[mail.selected_idxs.drafts[name]] then
|
||||||
mail.show_compose(name,
|
mail.show_compose(name,
|
||||||
|
|
Loading…
Add table
Reference in a new issue