|
13 | 13 | minetest.register_on_player_receive_fields(function(player, formname, fields)
|
14 | 14 | if formname ~= "mail:inbox" and formname ~= "mail:sent" and formname ~= "mail:drafts" then
|
15 | 15 | return
|
| 16 | + elseif fields.quit then |
| 17 | + return |
16 | 18 | end
|
17 | 19 |
|
18 | 20 | -- Get player name and handle / convert common input fields
|
@@ -50,6 +52,14 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
50 | 52 | -- Hanmdle formspec event
|
51 | 53 | if fields.inbox then -- inbox table
|
52 | 54 | local evt = minetest.explode_table_event(fields.inbox)
|
| 55 | + if evt.row == 1 then -- header |
| 56 | + if mail.selected_idxs.sortfield[name] == evt.column-1 then -- if already this field, then change direction |
| 57 | + mail.selected_idxs.sortdirection[name] = mail.selected_idxs.sortdirection[name] == "2" and "1" or "2" |
| 58 | + end |
| 59 | + mail.selected_idxs.sortfield[name] = evt.column-1 -- update column |
| 60 | + mail.show_mail_menu(name) |
| 61 | + return |
| 62 | + end |
53 | 63 | if mail.selected_idxs.multipleselection[name] then
|
54 | 64 | if not mail.selected_idxs.inbox[name] then
|
55 | 65 | mail.selected_idxs.inbox[name] = {}
|
@@ -80,6 +90,14 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
80 | 90 |
|
81 | 91 | if fields.sent then -- sent table
|
82 | 92 | local evt = minetest.explode_table_event(fields.sent)
|
| 93 | + if evt.row == 1 then -- header |
| 94 | + if mail.selected_idxs.sortfield[name] == evt.column-1 then -- if already this field, then change direction |
| 95 | + mail.selected_idxs.sortdirection[name] = mail.selected_idxs.sortdirection[name] == "2" and "1" or "2" |
| 96 | + end |
| 97 | + mail.selected_idxs.sortfield[name] = evt.column-1 -- update column |
| 98 | + mail.show_mail_menu(name) |
| 99 | + return |
| 100 | + end |
83 | 101 | if mail.selected_idxs.multipleselection[name] then
|
84 | 102 | if not mail.selected_idxs.sent[name] then
|
85 | 103 | mail.selected_idxs.sent[name] = {}
|
@@ -110,6 +128,14 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
110 | 128 |
|
111 | 129 | if fields.drafts then -- drafts table
|
112 | 130 | local evt = minetest.explode_table_event(fields.drafts)
|
| 131 | + if evt.row == 1 then -- header |
| 132 | + if mail.selected_idxs.sortfield[name] == evt.column-1 then -- if already this field, then change direction |
| 133 | + mail.selected_idxs.sortdirection[name] = mail.selected_idxs.sortdirection[name] == "2" and "1" or "2" |
| 134 | + end |
| 135 | + mail.selected_idxs.sortfield[name] = evt.column-1 -- update column |
| 136 | + mail.show_mail_menu(name) |
| 137 | + return |
| 138 | + end |
113 | 139 | mail.selected_idxs.drafts[name] = evt.row - 1
|
114 | 140 | if evt.type == "DCL" and messagesDrafts[mail.selected_idxs.drafts[name]] then
|
115 | 141 | mail.show_compose(name,
|
@@ -248,7 +274,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
248 | 274 | if #mail.selected_idxs.sent[name] >= #getOutbox() then -- if selection is full
|
249 | 275 | mail.selected_idxs.sent[name] = {}
|
250 | 276 | else
|
251 |
| - mail.selected_idxs.inbox[name] = {} -- reset to avoid duplicates |
| 277 | + mail.selected_idxs.sent[name] = {} -- reset to avoid duplicates |
252 | 278 | mail.selected_idxs.multipleselection[name] = true
|
253 | 279 | for _, msg in ipairs(getOutbox()) do
|
254 | 280 | table.insert(mail.selected_idxs.sent[name], msg.id)
|
|
0 commit comments