mail/ui/settings.lua
2023-05-04 12:19:47 +02:00

106 lines
3.7 KiB
Lua

-- translation
local S = minetest.get_translator("mail")
local FORMNAME = "mail:settings"
function mail.show_settings(name)
local formspec = [[
size[10,6;]
tabheader[0.3,1;optionstab;]] .. S("Settings") .. "," .. S("About") .. [[;1;false;false]
button[9.35,0;0.75,0.5;back;X]
box[0,0.8;3,0.45;#466432]
label[0.2,0.8;]] .. S("Notifications") .. [[]
checkbox[0,1.2;chatnotif;]] .. S("Chat notifications") .. [[;]] ..
tostring(mail.get_setting(name, "chatnotif")) .. [[]
checkbox[0,1.6;onjoinnotif;]] .. S("On join notifications") .. [[;]] ..
tostring(mail.get_setting(name, "onjoinnotif")) .. [[]
checkbox[0,2.0;hudnotif;]] .. S("HUD notifications") .. [[;]] ..
tostring(mail.get_setting(name, "hudnotif")) .. [[]
box[5,0.8;3,0.45;#466432]
label[5.2,0.8;]] .. S("Message list") .. [[]
checkbox[5,1.2;unreadcolorenable;]] .. S("Show unread in different color") .. [[;]] ..
tostring(mail.get_setting(name, "unreadcolorenable")) .. [[]
checkbox[5,1.6;cccolorenable;]] .. S("Show CC/BCC in different color") .. [[;]] ..
tostring(mail.get_setting(name, "cccolorenable")) .. [[]
label[5,2.6;]] .. S("Default sorting fields") .. [[]
dropdown[5.5,3.0;2,0.5;defaultsortfield;]] ..
S("From/To") .. "," .. S("Subject") .. "," .. S("Date") .. [[;]] ..
mail.get_setting(name, "defaultsortfield") .. [[;true]
dropdown[7.5,3.0;2,0.5;defaultsortdirection;]] ..
S("Ascending") .. "," .. S("Descending") .. [[;]] ..
mail.get_setting(name, "defaultsortdirection") .. [[;true]
button[0,5.5;2.5,0.5;reset;]] .. S("Reset") .. [[]
]] .. mail.theme
minetest.show_formspec(name, FORMNAME, formspec)
end
minetest.register_on_player_receive_fields(function(player, formname, fields)
if formname ~= FORMNAME then
return
end
local playername = player:get_player_name()
mail.set_setting(playername, { name = "defaultsortfield", value = tonumber(fields.defaultsortfield) } )
mail.set_setting(playername, { name = "defaultsortdirection", value = tonumber(fields.defaultsortdirection) } )
if fields.back then
mail.show_mail_menu(playername)
return
elseif fields.reset then
mail.reset_settings(playername)
elseif fields.optionstab == "1" then
mail.selected_idxs.optionstab[playername] = 1
elseif fields.optionstab == "2" then
mail.selected_idxs.optionstab[playername] = 2
mail.show_about(playername)
return
elseif fields.chatnotif then
local setting = {
name = "chatnotif",
value = fields.chatnotif == "true",
}
mail.set_setting(playername, setting)
elseif fields.onjoinnotif then
local setting = {
name = "onjoinnotif",
value = fields.onjoinnotif == "true",
}
mail.set_setting(playername, setting)
elseif fields.hudnotif then
local setting = {
name = "hudnotif",
value = fields.hudnotif == "true",
}
mail.set_setting(playername, setting)
mail.hud_update(playername, mail.get_storage_entry(playername).inbox)
elseif fields.unreadcolorenable then
local setting = {
name = "unreadcolorenable",
value = fields.unreadcolorenable == "true",
}
mail.set_setting(playername, setting)
elseif fields.cccolorenable then
local setting = {
name = "cccolorenable",
value = fields.cccolorenable == "true",
}
mail.set_setting(playername, setting)
end
mail.show_settings(playername)
return
end)