mirror of
https://github.com/mt-mods/mail.git
synced 2025-04-30 16:31:43 -04:00
Better sort settings behaviour
This commit is contained in:
parent
61f3eb6222
commit
f54e4fc435
1 changed files with 22 additions and 11 deletions
|
@ -39,6 +39,20 @@ function mail.show_settings(name)
|
||||||
minetest.show_formspec(name, FORMNAME, formspec)
|
minetest.show_formspec(name, FORMNAME, formspec)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function update_sort_settings(playername, default_field, default_direction)
|
||||||
|
local defaultsortfield = default_field or mail.get_setting("defaultsortfield")
|
||||||
|
local defaultsortdirection = default_direction or mail.get_setting("defaultsortdirection")
|
||||||
|
mail.set_setting(playername, {
|
||||||
|
name = "defaultsortfield",
|
||||||
|
value = tonumber(defaultsortfield),
|
||||||
|
})
|
||||||
|
|
||||||
|
mail.set_setting(playername, {
|
||||||
|
name = "defaultsortdirection",
|
||||||
|
value = tonumber(defaultsortdirection),
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
minetest.register_on_player_receive_fields(function(player, formname, fields)
|
minetest.register_on_player_receive_fields(function(player, formname, fields)
|
||||||
if formname ~= FORMNAME then
|
if formname ~= FORMNAME then
|
||||||
return
|
return
|
||||||
|
@ -47,17 +61,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
||||||
local playername = player:get_player_name()
|
local playername = player:get_player_name()
|
||||||
|
|
||||||
if fields.back then
|
if fields.back then
|
||||||
local defaultsortfield = fields.defaultsortfield or mail.get_setting("defaultsortfield")
|
update_sort_settings(playername, fields.defaultsortfield, fields.defaultsortdirection)
|
||||||
local defaultsortdirection = fields.defaultsortdirection or mail.get_setting("defaultsortdirection")
|
|
||||||
mail.set_setting(playername, {
|
|
||||||
name = "defaultsortfield",
|
|
||||||
value = tonumber(defaultsortfield),
|
|
||||||
})
|
|
||||||
|
|
||||||
mail.set_setting(playername, {
|
|
||||||
name = "defaultsortdirection",
|
|
||||||
value = tonumber(defaultsortdirection),
|
|
||||||
})
|
|
||||||
mail.show_mail_menu(playername)
|
mail.show_mail_menu(playername)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@ -65,9 +69,11 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
||||||
mail.reset_settings(playername)
|
mail.reset_settings(playername)
|
||||||
|
|
||||||
elseif fields.optionstab == "1" then
|
elseif fields.optionstab == "1" then
|
||||||
|
update_sort_settings(playername, fields.defaultsortfield, fields.defaultsortdirection)
|
||||||
mail.selected_idxs.optionstab[playername] = 1
|
mail.selected_idxs.optionstab[playername] = 1
|
||||||
|
|
||||||
elseif fields.optionstab == "2" then
|
elseif fields.optionstab == "2" then
|
||||||
|
update_sort_settings(playername, fields.defaultsortfield, fields.defaultsortdirection)
|
||||||
mail.selected_idxs.optionstab[playername] = 2
|
mail.selected_idxs.optionstab[playername] = 2
|
||||||
mail.show_about(playername)
|
mail.show_about(playername)
|
||||||
return
|
return
|
||||||
|
@ -78,6 +84,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
||||||
value = fields.chat_notifications == "true",
|
value = fields.chat_notifications == "true",
|
||||||
}
|
}
|
||||||
mail.set_setting(playername, setting)
|
mail.set_setting(playername, setting)
|
||||||
|
update_sort_settings(playername, fields.defaultsortfield, fields.defaultsortdirection)
|
||||||
|
|
||||||
elseif fields.onjoin_notifications then
|
elseif fields.onjoin_notifications then
|
||||||
local setting = {
|
local setting = {
|
||||||
|
@ -85,6 +92,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
||||||
value = fields.onjoin_notifications == "true",
|
value = fields.onjoin_notifications == "true",
|
||||||
}
|
}
|
||||||
mail.set_setting(playername, setting)
|
mail.set_setting(playername, setting)
|
||||||
|
update_sort_settings(playername, fields.defaultsortfield, fields.defaultsortdirection)
|
||||||
|
|
||||||
elseif fields.hud_notifications then
|
elseif fields.hud_notifications then
|
||||||
local setting = {
|
local setting = {
|
||||||
|
@ -93,6 +101,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
||||||
}
|
}
|
||||||
mail.set_setting(playername, setting)
|
mail.set_setting(playername, setting)
|
||||||
mail.hud_update(playername, mail.get_storage_entry(playername).inbox)
|
mail.hud_update(playername, mail.get_storage_entry(playername).inbox)
|
||||||
|
update_sort_settings(playername, fields.defaultsortfield, fields.defaultsortdirection)
|
||||||
|
|
||||||
elseif fields.unreadcolorenable then
|
elseif fields.unreadcolorenable then
|
||||||
local setting = {
|
local setting = {
|
||||||
|
@ -100,6 +109,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
||||||
value = fields.unreadcolorenable == "true",
|
value = fields.unreadcolorenable == "true",
|
||||||
}
|
}
|
||||||
mail.set_setting(playername, setting)
|
mail.set_setting(playername, setting)
|
||||||
|
update_sort_settings(playername, fields.defaultsortfield, fields.defaultsortdirection)
|
||||||
|
|
||||||
elseif fields.cccolorenable then
|
elseif fields.cccolorenable then
|
||||||
local setting = {
|
local setting = {
|
||||||
|
@ -107,6 +117,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
||||||
value = fields.cccolorenable == "true",
|
value = fields.cccolorenable == "true",
|
||||||
}
|
}
|
||||||
mail.set_setting(playername, setting)
|
mail.set_setting(playername, setting)
|
||||||
|
update_sort_settings(playername, fields.defaultsortfield, fields.defaultsortdirection)
|
||||||
end
|
end
|
||||||
|
|
||||||
mail.show_settings(playername)
|
mail.show_settings(playername)
|
||||||
|
|
Loading…
Add table
Reference in a new issue