* Simplify sorting and make it more readable
* Make sorter local
* Fix sorters dropdowns go back to default
* Fix luacheck
* Move sorting dropdown values to selected_idxs
* Show previous sorters when going back from message/contacts/...
* Use shallow copy instead of original table
* Open mail interface with previous tab/dropdowns
* Rework mail.sort_messages
* Combine filter and sort, make filtering safe
* Remove checks and logging from sorters
---------
Co-authored-by: Athozus <athozus@gmail.com>
* Add tabheader & sent formspec
* Add show_sent function and show sent messages
* Remove comment on selected_idxs test (show_sent)
* Add variable to keep the previous tab instead of going back to the first one
* Remove index variable verification on mark read/unread buttons since they are necessarily clicked on inbox view
* Resize messages table to be aligned with close button at the bottom
* Show date time (#27)
* Show date in message reading
* Fix wrong registered dates
Co-authored-by: SX <50966843+S-S-X@users.noreply.github.com>
* Rework header layout to add better space for date
---------
Co-authored-by: SX <50966843+S-S-X@users.noreply.github.com>
* Add insertion of messages into global storage mail.messages.json
* Receive player messages from global storage
* Add automatic generation of status for a new message (unread)
* Mark read/unread/delete a message
* Fix messages loading
* Show every message received/sent via specific functions
* Use global contacts functions and reconfigure add/remove functions
* Create mail lists formspec based on contacts
* Add deleting contact
* Add ability to create mail lists
* Fix inability to edit contact
* Rework on editing/deletion of contacts/maillists
* Add at symbol as prefix on maillists view
* Add ability to choose default status (to/cc/bcc)
Signed-off-by: Athozus <athozus@gmail.com>
* Add ability to add multiples players and choose their default status (to/cc/bcc)
* Add ability to use maillist in messages and receive messages from them
* Fix repetition of code causing a crash
* Avoid multiples occurences of the same messages due to player both in maillist and receivers
* Fix selected indexes for inbox/sent
Now separated, fixed show_message() func selection of id from table dcl/read btn
* Fix many issues related to maillists
Notably : edit, delete, selection, creation, registration of players
* Set up database version v3 and its migration from v2
+ Check versions to choose v1->v2 or v2->v3
* Fix mtt.lua
Due to old function getMessages(), replaced by getPlayerInboxMessages()
* Add 10 seconds security to mtt.lua
* Fix migrate.lua non-declared variable
* Send msg table with string keys in mtt
* Better log messages
* Add message check
* Fix mtt crash
* Better syntax in storage.lua
* Fix bcc forgotten in mail.send()
* Fix mtt issue
* Better compatibility for messages storage
Co-authored-by: SX <50966843+S-S-X@users.noreply.github.com>
* Replace mail.split by builtin func
Co-authored-by: SX <50966843+S-S-X@users.noreply.github.com>
* Use builtin split func
Co-authored-by: SX <50966843+S-S-X@users.noreply.github.com>
* Use builtin split func in storage.lua
* re-add mtt if
* luacheck on PR
* add check for an ancient issue with missing `to` field
* Fix luacheck on storage.lua
* Fix luacheck warnings in migrate.lua
* Fix luacheck warnings in gui.lua
* Fix luacheck (too long lines) in storage.lua
* Unused loop values in migrate.lua
* Whitespace line in gui.lua
* Whitespace line (init.lua)
* Whitespace line (api.lua)
* Significantly improve maillist behaviour
Replace maillist by its players when sending a message
List of players separated by ,
Avoid doublons when editing more than 2 times a maillist
* Fix luacheck
* Fix table insertions at first index when no needed
* Use funcs
* Do not add maillist as a new contact when sending a mail
* Fix removing elements from tables
* Check maillists not added in contacts
* storage rewrite wip
* storage format docs
* refactor ui components
* show_compose cleanup
* remove unused channel.lua
* error -> err
* status refactoring
* contacts refactoring
* maillist refactoring
* docs
* tests
* fix some issues
* re-enable migrations
* contributors
* prefix mail entries in the mod storage
* internalize old mail-paths to migration module
* add v1 and v2 player db examples and migration test
* Ui improvements & fixes
Move events code (if fields.x then) to events.lua (instead of inbox.lua), fix tab selection when going backward
* Show most recent messages at first (outbox)
* unified-inv fix
---------
Signed-off-by: Athozus <athozus@gmail.com>
Co-authored-by: SX <50966843+S-S-X@users.noreply.github.com>
Co-authored-by: BuckarooBanzay <BuckarooBanzay@users.noreply.github.com>
- introduce pairsByKeys() (from http://www.lua.org/pil/19.3.html but adding current index and total length as iterator return values)
- use pairsByKeys() everywhere, where contacts are iterated over (for now only when displaying in gui.lua) so the order stays the same although the structure is a hashmap
- correctly update selected position when adding/removing contacts to TO/CC/BCC fields
- remove print statements in storage.lua
- restructured storage.lua so reading/writing json is not duplicated
- when a player joins and has no contacts file yet, automatically add all players he wrote to