From 8d9e4e01605377b7d326e76407b01900ff78cc2b Mon Sep 17 00:00:00 2001 From: Athozus Date: Wed, 12 Apr 2023 16:00:07 +0200 Subject: [PATCH] Fix duplicates when clicking on select all with already one selected, and add the number of selected items --- locale/mail.de.tr | 17 +++++++++-------- locale/mail.de.tr.old | 26 ++++++++++++++------------ locale/mail.fr.tr | 17 +++++++++-------- locale/mail.fr.tr.old | 26 ++++++++++++++------------ locale/mail.zh_TW.tr | 17 +++++++++-------- locale/mail.zh_TW.tr.old | 26 ++++++++++++++------------ locale/template.txt | 17 +++++++++-------- ui/events.lua | 2 ++ ui/inbox.lua | 7 ++++++- ui/outbox.lua | 7 ++++++- 10 files changed, 92 insertions(+), 70 deletions(-) diff --git a/locale/mail.de.tr b/locale/mail.de.tr index b9a453e..b0ea0b2 100644 --- a/locale/mail.de.tr +++ b/locale/mail.de.tr @@ -3,38 +3,38 @@ BCC=BCC Cancel=Abbrechen Save draft=Entwurf Speichern Send=Senden -CC=CC -Edit=Bearbeiten -Name=Name +Delete=Löschen +New=Neu No drafts=Keine Entwürfe +Edit=Bearbeiten +Subject=Betreff Player name=Spielername your contacts.=ihre Kontakte. The contact=Der Kontakt -Note=Notiz Save=Speichern That name=Der Name is already in=ist bereits in name cannot=Name kann nicht be empty.=leer sein. +Back=Zurück +Note=Notiz Maillist name=Verteilerlistenname Desc=Beschreibung Players=Spieler your maillists.=ihre Verteilerlisten. The maillist=Die Verteilerliste -Back=Zurück Mark Read=Als gelesen makieren Mark Unread=Als ungelesen makieren From=Von (No description)=(Keine Beschreibung) No maillist=Keine Verteilerliste -Delete=Löschen -Subject=Betreff -New=Neu +CC=CC Read=Lesen Ascending= Descending= Filter= Allow multiple selection= +selected= (Un)select all= No mail=Keine Nachrichten Inbox=Posteingang @@ -51,4 +51,5 @@ Reply all=Allen antworten Forward=Weiter Add=Hinzufügen Remove=Entfernen +Name=Name To=An diff --git a/locale/mail.de.tr.old b/locale/mail.de.tr.old index 8d03913..b9a453e 100644 --- a/locale/mail.de.tr.old +++ b/locale/mail.de.tr.old @@ -5,31 +5,37 @@ Save draft=Entwurf Speichern Send=Senden CC=CC Edit=Bearbeiten -Note=Notiz -New=Neu Name=Name No drafts=Keine Entwürfe Player name=Spielername your contacts.=ihre Kontakte. The contact=Der Kontakt +Note=Notiz +Save=Speichern +That name=Der Name +is already in=ist bereits in +name cannot=Name kann nicht +be empty.=leer sein. Maillist name=Verteilerlistenname Desc=Beschreibung Players=Spieler your maillists.=ihre Verteilerlisten. The maillist=Die Verteilerliste Back=Zurück -Save=Speichern -That name=Der Name -is already in=ist bereits in -name cannot=Name kann nicht -be empty.=leer sein. Mark Read=Als gelesen makieren Mark Unread=Als ungelesen makieren From=Von +(No description)=(Keine Beschreibung) +No maillist=Keine Verteilerliste +Delete=Löschen +Subject=Betreff +New=Neu Read=Lesen Ascending= Descending= Filter= +Allow multiple selection= +(Un)select all= No mail=Keine Nachrichten Inbox=Posteingang Sent messages=Nachrichten senden @@ -43,10 +49,6 @@ Date=Datum Reply=Antworten Reply all=Allen antworten Forward=Weiter -(No description)=(Keine Beschreibung) -No maillist=Keine Verteilerliste -Subject=Betreff -To=An -Delete=Löschen Add=Hinzufügen Remove=Entfernen +To=An diff --git a/locale/mail.fr.tr b/locale/mail.fr.tr index 789c073..1fcd868 100644 --- a/locale/mail.fr.tr +++ b/locale/mail.fr.tr @@ -3,38 +3,38 @@ BCC=Cci Cancel=Annuler Save draft=Enregistrer le brouillon Send=Envoyer -CC=Cc -Edit=Modifier -Name=Nom +Delete=Supprimer +New=Nouveau No drafts=Pas de brouillons +Edit=Modifier +Subject=Objet Player name=Nom du joueur your contacts.=vos contacts. The contact=Ce contact -Note=Note Save=Sauvegarder That name=Ce nom is already in=existe déjà name cannot=nom ne peut pas be empty.=être vide. +Back=Retour +Note=Note Maillist name=Nom de la liste de diffusion Desc=Desc Players=Joueurs your maillists.=vos listes de diffusion. The maillist=Cette liste de diffusion -Back=Retour Mark Read=Marquer comme lu Mark Unread=Marquer non lu From=De (No description)=Sans description No maillist=Aucune liste de diffusion -Delete=Supprimer -Subject=Objet -New=Nouveau +CC=Cc Read=Lire Ascending=Croissant Descending=Décroissant Filter=Filtre Allow multiple selection=Autoriser la sélection multiple +selected=sélectionnés (Un)select all=Tout (dé)selectionner No mail=Aucun mail Inbox=Boîte de réception @@ -51,4 +51,5 @@ Reply all=Répondre à tous Forward=Transférer Add=Ajouter Remove=Enlever +Name=Nom To=À diff --git a/locale/mail.fr.tr.old b/locale/mail.fr.tr.old index c69b55e..789c073 100644 --- a/locale/mail.fr.tr.old +++ b/locale/mail.fr.tr.old @@ -5,31 +5,37 @@ Save draft=Enregistrer le brouillon Send=Envoyer CC=Cc Edit=Modifier -Note=Note -New=Nouveau Name=Nom No drafts=Pas de brouillons Player name=Nom du joueur your contacts.=vos contacts. The contact=Ce contact +Note=Note +Save=Sauvegarder +That name=Ce nom +is already in=existe déjà +name cannot=nom ne peut pas +be empty.=être vide. Maillist name=Nom de la liste de diffusion Desc=Desc Players=Joueurs your maillists.=vos listes de diffusion. The maillist=Cette liste de diffusion Back=Retour -Save=Sauvegarder -That name=Ce nom -is already in=existe déjà -name cannot=nom ne peut pas -be empty.=être vide. Mark Read=Marquer comme lu Mark Unread=Marquer non lu From=De +(No description)=Sans description +No maillist=Aucune liste de diffusion +Delete=Supprimer +Subject=Objet +New=Nouveau Read=Lire Ascending=Croissant Descending=Décroissant Filter=Filtre +Allow multiple selection=Autoriser la sélection multiple +(Un)select all=Tout (dé)selectionner No mail=Aucun mail Inbox=Boîte de réception Sent messages=Messages envoyés @@ -43,10 +49,6 @@ Date=Date Reply=Répondre Reply all=Répondre à tous Forward=Transférer -(No description)=Sans description -No maillist=Aucune liste de diffusion -Subject=Objet -To=À -Delete=Supprimer Add=Ajouter Remove=Enlever +To=À diff --git a/locale/mail.zh_TW.tr b/locale/mail.zh_TW.tr index 64c6736..b0f56ab 100644 --- a/locale/mail.zh_TW.tr +++ b/locale/mail.zh_TW.tr @@ -3,38 +3,38 @@ BCC=密件副本 Cancel=取消 Save draft=儲存草稿 Send=發送 -CC=副本 -Edit=編輯 -Name=名稱 +Delete=刪除 +New=新建 No drafts=沒有草稿 +Edit=編輯 +Subject=主旨 Player name=玩家名稱 your contacts.= The contact= -Note=備註 Save=儲存 That name= is already in= name cannot= be empty.= +Back=返回 +Note=備註 Maillist name=郵件列表名稱 Desc=描述 Players=玩家 your maillists.= The maillist= -Back=返回 Mark Read=標記已讀 Mark Unread=標記未讀 From=寄件者 (No description)=(沒有描述) No maillist=沒有郵件列表 -Delete=刪除 -Subject=主旨 -New=新建 +CC=副本 Read=閱讀 Ascending= Descending= Filter= Allow multiple selection= +selected= (Un)select all= No mail=沒有郵件 Inbox=收件箱 @@ -51,4 +51,5 @@ Reply all=回覆所有人 Forward=轉寄 Add=加入 Remove=移除 +Name=名稱 To=收件人 diff --git a/locale/mail.zh_TW.tr.old b/locale/mail.zh_TW.tr.old index 139758f..64c6736 100644 --- a/locale/mail.zh_TW.tr.old +++ b/locale/mail.zh_TW.tr.old @@ -5,31 +5,37 @@ Save draft=儲存草稿 Send=發送 CC=副本 Edit=編輯 -Note=備註 -New=新建 Name=名稱 No drafts=沒有草稿 Player name=玩家名稱 your contacts.= The contact= +Note=備註 +Save=儲存 +That name= +is already in= +name cannot= +be empty.= Maillist name=郵件列表名稱 Desc=描述 Players=玩家 your maillists.= The maillist= Back=返回 -Save=儲存 -That name= -is already in= -name cannot= -be empty.= Mark Read=標記已讀 Mark Unread=標記未讀 From=寄件者 +(No description)=(沒有描述) +No maillist=沒有郵件列表 +Delete=刪除 +Subject=主旨 +New=新建 Read=閱讀 Ascending= Descending= Filter= +Allow multiple selection= +(Un)select all= No mail=沒有郵件 Inbox=收件箱 Sent messages=寄件備份 @@ -43,10 +49,6 @@ Date=日期 Reply=回覆 Reply all=回覆所有人 Forward=轉寄 -(No description)=(沒有描述) -No maillist=沒有郵件列表 -Subject=主旨 -To=收件人 -Delete=刪除 Add=加入 Remove=移除 +To=收件人 diff --git a/locale/template.txt b/locale/template.txt index 6a114bf..9c1387f 100644 --- a/locale/template.txt +++ b/locale/template.txt @@ -3,38 +3,38 @@ BCC= Cancel= Save draft= Send= -CC= -Edit= -Name= +Delete= +New= No drafts= +Edit= +Subject= Player name= your contacts.= The contact= -Note= Save= That name= is already in= name cannot= be empty.= +Back= +Note= Maillist name= Desc= Players= your maillists.= The maillist= -Back= Mark Read= Mark Unread= From= (No description)= No maillist= -Delete= -Subject= -New= +CC= Read= Ascending= Descending= Filter= Allow multiple selection= +selected= (Un)select all= No mail= Inbox= @@ -51,4 +51,5 @@ Reply all= Forward= Add= Remove= +Name= To= diff --git a/ui/events.lua b/ui/events.lua index 1262690..b7c9573 100644 --- a/ui/events.lua +++ b/ui/events.lua @@ -225,6 +225,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if #mail.selected_idxs.inbox[name] >= #getInbox() then -- if selection is full mail.selected_idxs.inbox[name] = {} else + mail.selected_idxs.inbox[name] = {} -- reset to avoid duplicates mail.selected_idxs.multipleselection[name] = true for _, msg in ipairs(getInbox()) do table.insert(mail.selected_idxs.inbox[name], msg.id) @@ -237,6 +238,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if #mail.selected_idxs.sent[name] >= #getOutbox() then -- if selection is full mail.selected_idxs.sent[name] = {} else + mail.selected_idxs.inbox[name] = {} -- reset to avoid duplicates mail.selected_idxs.multipleselection[name] = true for _, msg in ipairs(getOutbox()) do table.insert(mail.selected_idxs.sent[name], msg.id) diff --git a/ui/inbox.lua b/ui/inbox.lua index 4fa148d..5bfd4e1 100644 --- a/ui/inbox.lua +++ b/ui/inbox.lua @@ -6,6 +6,10 @@ function mail.show_inbox(name, sortfieldindex, sortdirection, filter) sortfieldindex = tonumber(sortfieldindex or mail.selected_idxs.sortfield[name]) or 3 sortdirection = sortdirection or mail.selected_idxs.sortdirection[name] or "1" filter = mail.selected_idxs.filter[name] or filter or "" + local nb_selected = 0 + if mail.selected_idxs.inbox[name] then + nb_selected = #mail.selected_idxs.inbox[name] + end local inbox_formspec = "size[8.5,10;]" .. mail.theme .. [[ tabheader[0.3,1;boxtab;]] .. S("Inbox") .. "," .. S("Sent messages").. "," .. S("Drafts") .. [[;1;false;false] @@ -30,8 +34,9 @@ function mail.show_inbox(name, sortfieldindex, sortdirection, filter) field[4.25,8.85;1.4,0.5;filter;]] .. S("Filter") .. [[:;]] .. filter .. [[] button[5.14,8.52;0.85,0.5;search;Q] - checkbox[0,9.3;multipleselection;]] .. S("Allow multiple selection") .. [[;]] .. + checkbox[0,9.1;multipleselection;]] .. S("Allow multiple selection") .. [[;]] .. tostring(mail.selected_idxs.multipleselection[name]) .. [[] + label[0,9.65;]] .. tostring(nb_selected) .. " " .. S("selected") .. [[] button[3.5,9.5;2.5,0.5;selectall;]] .. S("(Un)select all") .. [[] tablecolumns[color;text;text] diff --git a/ui/outbox.lua b/ui/outbox.lua index b33c1fc..f2c243a 100644 --- a/ui/outbox.lua +++ b/ui/outbox.lua @@ -6,6 +6,10 @@ function mail.show_sent(name, sortfieldindex, sortdirection, filter) sortfieldindex = tonumber(sortfieldindex or mail.selected_idxs.sortfield[name]) or 3 sortdirection = sortdirection or mail.selected_idxs.sortdirection[name] or "1" filter = mail.selected_idxs.filter[name] or filter or "" + local nb_selected = 0 + if mail.selected_idxs.sent[name] then + nb_selected = #mail.selected_idxs.sent[name] + end local sent_formspec = "size[8.5,10;]" .. mail.theme .. [[ tabheader[0.3,1;boxtab;]] .. S("Inbox") .. "," .. S("Sent messages").. "," .. S("Drafts") .. [[;2;false;false] @@ -28,8 +32,9 @@ function mail.show_sent(name, sortfieldindex, sortdirection, filter) field[4.25,8.85;1.4,0.5;filter;]] .. S("Filter") .. [[:;]] .. filter .. [[] button[5.14,8.52;0.85,0.5;search;Q] - checkbox[0,9.3;multipleselection;]] .. S("Allow multiple selection") .. [[;]] .. + checkbox[0,9.1;multipleselection;]] .. S("Allow multiple selection") .. [[;]] .. tostring(mail.selected_idxs.multipleselection[name]) .. [[] + label[0,9.65;]] .. tostring(nb_selected) .. " " .. S("selected") .. [[] button[3.5,9.5;2.5,0.5;selectall;]] .. S("(Un)select all") .. [[] tablecolumns[color;text;text]