From fc90443952926996402d2e4643c978a32d7d8e2c Mon Sep 17 00:00:00 2001 From: Athozus Date: Fri, 21 Apr 2023 23:24:52 +0200 Subject: [PATCH] Fix message infos (#75) * Fix weird showing of message informations in outbox.lua * Fix reply button on message view --- ui/message.lua | 16 ++++++++-------- ui/outbox.lua | 43 ++++++++++++++++++++++++------------------- 2 files changed, 32 insertions(+), 27 deletions(-) diff --git a/ui/message.lua b/ui/message.lua index 2d96618..e621e66 100644 --- a/ui/message.lua +++ b/ui/message.lua @@ -97,35 +97,35 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) elseif fields.reply then local message = "" - if mail.selected_idxs.inbox[name] then + if mail.selected_idxs.inbox[name] and mail.selected_idxs.boxtab[name] == 1 then message = mail.get_message(name, mail.selected_idxs.inbox[name][#mail.selected_idxs.inbox[name]]) - elseif mail.selected_idxs.sent[name] then + elseif mail.selected_idxs.sent[name] and mail.selected_idxs.boxtab[name] == 2 then message = mail.get_message(name, mail.selected_idxs.sent[name][#mail.selected_idxs.sent[name]]) end mail.reply(name, message) elseif fields.replyall then local message = "" - if mail.selected_idxs.inbox[name] then + if mail.selected_idxs.inbox[name] and mail.selected_idxs.boxtab[name] == 1 then message = mail.get_message(name, mail.selected_idxs.inbox[name][#mail.selected_idxs.inbox[name]]) - elseif mail.selected_idxs.sent[name] then + elseif mail.selected_idxs.sent[name] and mail.selected_idxs.boxtab[name] == 2 then message = mail.get_message(name, mail.selected_idxs.sent[name][#mail.selected_idxs.sent[name]]) end mail.replyall(name, message) elseif fields.forward then local message = "" - if mail.selected_idxs.inbox[name] then + if mail.selected_idxs.inbox[name] and mail.selected_idxs.boxtab[name] == 1 then message = mail.get_message(name, mail.selected_idxs.inbox[name][#mail.selected_idxs.inbox[name]]) - elseif mail.selected_idxs.sent[name] then + elseif mail.selected_idxs.sent[name] and mail.selected_idxs.boxtab[name] == 2 then message = mail.get_message(name, mail.selected_idxs.sent[name][#mail.selected_idxs.sent[name]]) end mail.forward(name, message) elseif fields.delete then - if mail.selected_idxs.inbox[name] then + if mail.selected_idxs.inbox[name] and mail.selected_idxs.boxtab[name] == 1 then mail.delete_mail(name, mail.selected_idxs.inbox[name][#mail.selected_idxs.inbox[name]]) - elseif mail.selected_idxs.sent[name] then + elseif mail.selected_idxs.sent[name] and mail.selected_idxs.boxtab[name] == 2 then mail.delete_mail(name, mail.selected_idxs.sent[name][#mail.selected_idxs.sent[name]]) end mail.show_mail_menu(name) diff --git a/ui/outbox.lua b/ui/outbox.lua index eece127..17a4757 100644 --- a/ui/outbox.lua +++ b/ui/outbox.lua @@ -44,7 +44,7 @@ function mail.show_sent(name, sortfieldindex, sortdirection, filter) mail.message_drafts[name] = nil if #messages > 0 then - for _, message in ipairs(messages) do + for _, message in ipairs(messages) do local selected_id = 0 -- check if message is in selection list and return its id if mail.selected_idxs.sent[name] and #mail.selected_idxs.sent[name] > 0 then @@ -56,27 +56,32 @@ function mail.show_sent(name, sortfieldindex, sortdirection, filter) end end if selected_id > 0 then - formspec[#formspec + 1] = ",#466432" + formspec[#formspec + 1] = ",#466432" else formspec[#formspec + 1] = "," - end - formspec[#formspec + 1] = "," - formspec[#formspec + 1] = minetest.formspec_escape(message.to) - formspec[#formspec + 1] = "," - if message.subject ~= "" then - if string.len(message.subject) > 30 then - formspec[#formspec + 1] = minetest.formspec_escape(string.sub(message.subject, 1, 27)) - formspec[#formspec + 1] = "..." - else - formspec[#formspec + 1] = minetest.formspec_escape(message.subject) - end + end + formspec[#formspec + 1] = "," + if string.len(message.to) > 20 then + formspec[#formspec + 1] = minetest.formspec_escape(string.sub(message.to, 1, 17)) + formspec[#formspec + 1] = "..." else - formspec[#formspec + 1] = S("(No subject)") + formspec[#formspec + 1] = minetest.formspec_escape(message.to) end - end - formspec[#formspec + 1] = "]" - else - formspec[#formspec + 1] = "]label[2.25,4.5;" .. S("No mail") .. "]" - end + formspec[#formspec + 1] = "," + if message.subject ~= "" then + if string.len(message.subject) > 30 then + formspec[#formspec + 1] = minetest.formspec_escape(string.sub(message.subject, 1, 27)) + formspec[#formspec + 1] = "..." + else + formspec[#formspec + 1] = minetest.formspec_escape(message.subject) + end + else + formspec[#formspec + 1] = S("(No subject)") + end + end + formspec[#formspec + 1] = "]" + else + formspec[#formspec + 1] = "]label[2.25,4.5;" .. S("No mail") .. "]" + end minetest.show_formspec(name, "mail:sent", table.concat(formspec, "")) end