Fix duplicates when clicking on select all with already one selected, and add the number of selected items

This commit is contained in:
Athozus 2023-04-12 16:00:07 +02:00
parent 3dcba740c0
commit 8d9e4e0160
No known key found for this signature in database
GPG key ID: B50895022E8484BF
10 changed files with 92 additions and 70 deletions

View file

@ -3,38 +3,38 @@ BCC=BCC
Cancel=Abbrechen Cancel=Abbrechen
Save draft=Entwurf Speichern Save draft=Entwurf Speichern
Send=Senden Send=Senden
CC=CC Delete=Löschen
Edit=Bearbeiten New=Neu
Name=Name
No drafts=Keine Entwürfe No drafts=Keine Entwürfe
Edit=Bearbeiten
Subject=Betreff
Player name=Spielername Player name=Spielername
your contacts.=ihre Kontakte. your contacts.=ihre Kontakte.
The contact=Der Kontakt The contact=Der Kontakt
Note=Notiz
Save=Speichern Save=Speichern
That name=Der Name That name=Der Name
is already in=ist bereits in is already in=ist bereits in
name cannot=Name kann nicht name cannot=Name kann nicht
be empty.=leer sein. be empty.=leer sein.
Back=Zurück
Note=Notiz
Maillist name=Verteilerlistenname Maillist name=Verteilerlistenname
Desc=Beschreibung Desc=Beschreibung
Players=Spieler Players=Spieler
your maillists.=ihre Verteilerlisten. your maillists.=ihre Verteilerlisten.
The maillist=Die Verteilerliste The maillist=Die Verteilerliste
Back=Zurück
Mark Read=Als gelesen makieren Mark Read=Als gelesen makieren
Mark Unread=Als ungelesen makieren Mark Unread=Als ungelesen makieren
From=Von From=Von
(No description)=(Keine Beschreibung) (No description)=(Keine Beschreibung)
No maillist=Keine Verteilerliste No maillist=Keine Verteilerliste
Delete=Löschen CC=CC
Subject=Betreff
New=Neu
Read=Lesen Read=Lesen
Ascending= Ascending=
Descending= Descending=
Filter= Filter=
Allow multiple selection= Allow multiple selection=
selected=
(Un)select all= (Un)select all=
No mail=Keine Nachrichten No mail=Keine Nachrichten
Inbox=Posteingang Inbox=Posteingang
@ -51,4 +51,5 @@ Reply all=Allen antworten
Forward=Weiter Forward=Weiter
Add=Hinzufügen Add=Hinzufügen
Remove=Entfernen Remove=Entfernen
Name=Name
To=An To=An

View file

@ -5,31 +5,37 @@ Save draft=Entwurf Speichern
Send=Senden Send=Senden
CC=CC CC=CC
Edit=Bearbeiten Edit=Bearbeiten
Note=Notiz
New=Neu
Name=Name Name=Name
No drafts=Keine Entwürfe No drafts=Keine Entwürfe
Player name=Spielername Player name=Spielername
your contacts.=ihre Kontakte. your contacts.=ihre Kontakte.
The contact=Der Kontakt 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 Maillist name=Verteilerlistenname
Desc=Beschreibung Desc=Beschreibung
Players=Spieler Players=Spieler
your maillists.=ihre Verteilerlisten. your maillists.=ihre Verteilerlisten.
The maillist=Die Verteilerliste The maillist=Die Verteilerliste
Back=Zurück 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 Read=Als gelesen makieren
Mark Unread=Als ungelesen makieren Mark Unread=Als ungelesen makieren
From=Von From=Von
(No description)=(Keine Beschreibung)
No maillist=Keine Verteilerliste
Delete=Löschen
Subject=Betreff
New=Neu
Read=Lesen Read=Lesen
Ascending= Ascending=
Descending= Descending=
Filter= Filter=
Allow multiple selection=
(Un)select all=
No mail=Keine Nachrichten No mail=Keine Nachrichten
Inbox=Posteingang Inbox=Posteingang
Sent messages=Nachrichten senden Sent messages=Nachrichten senden
@ -43,10 +49,6 @@ Date=Datum
Reply=Antworten Reply=Antworten
Reply all=Allen antworten Reply all=Allen antworten
Forward=Weiter Forward=Weiter
(No description)=(Keine Beschreibung)
No maillist=Keine Verteilerliste
Subject=Betreff
To=An
Delete=Löschen
Add=Hinzufügen Add=Hinzufügen
Remove=Entfernen Remove=Entfernen
To=An

View file

@ -3,38 +3,38 @@ BCC=Cci
Cancel=Annuler Cancel=Annuler
Save draft=Enregistrer le brouillon Save draft=Enregistrer le brouillon
Send=Envoyer Send=Envoyer
CC=Cc Delete=Supprimer
Edit=Modifier New=Nouveau
Name=Nom
No drafts=Pas de brouillons No drafts=Pas de brouillons
Edit=Modifier
Subject=Objet
Player name=Nom du joueur Player name=Nom du joueur
your contacts.=vos contacts. your contacts.=vos contacts.
The contact=Ce contact The contact=Ce contact
Note=Note
Save=Sauvegarder Save=Sauvegarder
That name=Ce nom That name=Ce nom
is already in=existe déjà is already in=existe déjà
name cannot=nom ne peut pas name cannot=nom ne peut pas
be empty.=être vide. be empty.=être vide.
Back=Retour
Note=Note
Maillist name=Nom de la liste de diffusion Maillist name=Nom de la liste de diffusion
Desc=Desc Desc=Desc
Players=Joueurs Players=Joueurs
your maillists.=vos listes de diffusion. your maillists.=vos listes de diffusion.
The maillist=Cette liste de diffusion The maillist=Cette liste de diffusion
Back=Retour
Mark Read=Marquer comme lu Mark Read=Marquer comme lu
Mark Unread=Marquer non lu Mark Unread=Marquer non lu
From=De From=De
(No description)=Sans description (No description)=Sans description
No maillist=Aucune liste de diffusion No maillist=Aucune liste de diffusion
Delete=Supprimer CC=Cc
Subject=Objet
New=Nouveau
Read=Lire Read=Lire
Ascending=Croissant Ascending=Croissant
Descending=Décroissant Descending=Décroissant
Filter=Filtre Filter=Filtre
Allow multiple selection=Autoriser la sélection multiple Allow multiple selection=Autoriser la sélection multiple
selected=sélectionnés
(Un)select all=Tout (dé)selectionner (Un)select all=Tout (dé)selectionner
No mail=Aucun mail No mail=Aucun mail
Inbox=Boîte de réception Inbox=Boîte de réception
@ -51,4 +51,5 @@ Reply all=Répondre à tous
Forward=Transférer Forward=Transférer
Add=Ajouter Add=Ajouter
Remove=Enlever Remove=Enlever
Name=Nom
To=À To=À

View file

@ -5,31 +5,37 @@ Save draft=Enregistrer le brouillon
Send=Envoyer Send=Envoyer
CC=Cc CC=Cc
Edit=Modifier Edit=Modifier
Note=Note
New=Nouveau
Name=Nom Name=Nom
No drafts=Pas de brouillons No drafts=Pas de brouillons
Player name=Nom du joueur Player name=Nom du joueur
your contacts.=vos contacts. your contacts.=vos contacts.
The contact=Ce contact 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 Maillist name=Nom de la liste de diffusion
Desc=Desc Desc=Desc
Players=Joueurs Players=Joueurs
your maillists.=vos listes de diffusion. your maillists.=vos listes de diffusion.
The maillist=Cette liste de diffusion The maillist=Cette liste de diffusion
Back=Retour 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 Read=Marquer comme lu
Mark Unread=Marquer non lu Mark Unread=Marquer non lu
From=De From=De
(No description)=Sans description
No maillist=Aucune liste de diffusion
Delete=Supprimer
Subject=Objet
New=Nouveau
Read=Lire Read=Lire
Ascending=Croissant Ascending=Croissant
Descending=Décroissant Descending=Décroissant
Filter=Filtre Filter=Filtre
Allow multiple selection=Autoriser la sélection multiple
(Un)select all=Tout (dé)selectionner
No mail=Aucun mail No mail=Aucun mail
Inbox=Boîte de réception Inbox=Boîte de réception
Sent messages=Messages envoyés Sent messages=Messages envoyés
@ -43,10 +49,6 @@ Date=Date
Reply=Répondre Reply=Répondre
Reply all=Répondre à tous Reply all=Répondre à tous
Forward=Transférer Forward=Transférer
(No description)=Sans description
No maillist=Aucune liste de diffusion
Subject=Objet
To=À
Delete=Supprimer
Add=Ajouter Add=Ajouter
Remove=Enlever Remove=Enlever
To=À

View file

@ -3,38 +3,38 @@ BCC=密件副本
Cancel=取消 Cancel=取消
Save draft=儲存草稿 Save draft=儲存草稿
Send=發送 Send=發送
CC=副本 Delete=刪除
Edit=編輯 New=新建
Name=名稱
No drafts=沒有草稿 No drafts=沒有草稿
Edit=編輯
Subject=主旨
Player name=玩家名稱 Player name=玩家名稱
your contacts.= your contacts.=
The contact= The contact=
Note=備註
Save=儲存 Save=儲存
That name= That name=
is already in= is already in=
name cannot= name cannot=
be empty.= be empty.=
Back=返回
Note=備註
Maillist name=郵件列表名稱 Maillist name=郵件列表名稱
Desc=描述 Desc=描述
Players=玩家 Players=玩家
your maillists.= your maillists.=
The maillist= The maillist=
Back=返回
Mark Read=標記已讀 Mark Read=標記已讀
Mark Unread=標記未讀 Mark Unread=標記未讀
From=寄件者 From=寄件者
(No description)=(沒有描述) (No description)=(沒有描述)
No maillist=沒有郵件列表 No maillist=沒有郵件列表
Delete=刪除 CC=副本
Subject=主旨
New=新建
Read=閱讀 Read=閱讀
Ascending= Ascending=
Descending= Descending=
Filter= Filter=
Allow multiple selection= Allow multiple selection=
selected=
(Un)select all= (Un)select all=
No mail=沒有郵件 No mail=沒有郵件
Inbox=收件箱 Inbox=收件箱
@ -51,4 +51,5 @@ Reply all=回覆所有人
Forward=轉寄 Forward=轉寄
Add=加入 Add=加入
Remove=移除 Remove=移除
Name=名稱
To=收件人 To=收件人

View file

@ -5,31 +5,37 @@ Save draft=儲存草稿
Send=發送 Send=發送
CC=副本 CC=副本
Edit=編輯 Edit=編輯
Note=備註
New=新建
Name=名稱 Name=名稱
No drafts=沒有草稿 No drafts=沒有草稿
Player name=玩家名稱 Player name=玩家名稱
your contacts.= your contacts.=
The contact= The contact=
Note=備註
Save=儲存
That name=
is already in=
name cannot=
be empty.=
Maillist name=郵件列表名稱 Maillist name=郵件列表名稱
Desc=描述 Desc=描述
Players=玩家 Players=玩家
your maillists.= your maillists.=
The maillist= The maillist=
Back=返回 Back=返回
Save=儲存
That name=
is already in=
name cannot=
be empty.=
Mark Read=標記已讀 Mark Read=標記已讀
Mark Unread=標記未讀 Mark Unread=標記未讀
From=寄件者 From=寄件者
(No description)=(沒有描述)
No maillist=沒有郵件列表
Delete=刪除
Subject=主旨
New=新建
Read=閱讀 Read=閱讀
Ascending= Ascending=
Descending= Descending=
Filter= Filter=
Allow multiple selection=
(Un)select all=
No mail=沒有郵件 No mail=沒有郵件
Inbox=收件箱 Inbox=收件箱
Sent messages=寄件備份 Sent messages=寄件備份
@ -43,10 +49,6 @@ Date=日期
Reply=回覆 Reply=回覆
Reply all=回覆所有人 Reply all=回覆所有人
Forward=轉寄 Forward=轉寄
(No description)=(沒有描述)
No maillist=沒有郵件列表
Subject=主旨
To=收件人
Delete=刪除
Add=加入 Add=加入
Remove=移除 Remove=移除
To=收件人

View file

@ -3,38 +3,38 @@ BCC=
Cancel= Cancel=
Save draft= Save draft=
Send= Send=
CC= Delete=
Edit= New=
Name=
No drafts= No drafts=
Edit=
Subject=
Player name= Player name=
your contacts.= your contacts.=
The contact= The contact=
Note=
Save= Save=
That name= That name=
is already in= is already in=
name cannot= name cannot=
be empty.= be empty.=
Back=
Note=
Maillist name= Maillist name=
Desc= Desc=
Players= Players=
your maillists.= your maillists.=
The maillist= The maillist=
Back=
Mark Read= Mark Read=
Mark Unread= Mark Unread=
From= From=
(No description)= (No description)=
No maillist= No maillist=
Delete= CC=
Subject=
New=
Read= Read=
Ascending= Ascending=
Descending= Descending=
Filter= Filter=
Allow multiple selection= Allow multiple selection=
selected=
(Un)select all= (Un)select all=
No mail= No mail=
Inbox= Inbox=
@ -51,4 +51,5 @@ Reply all=
Forward= Forward=
Add= Add=
Remove= Remove=
Name=
To= To=

View file

@ -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 if #mail.selected_idxs.inbox[name] >= #getInbox() then -- if selection is full
mail.selected_idxs.inbox[name] = {} mail.selected_idxs.inbox[name] = {}
else else
mail.selected_idxs.inbox[name] = {} -- reset to avoid duplicates
mail.selected_idxs.multipleselection[name] = true mail.selected_idxs.multipleselection[name] = true
for _, msg in ipairs(getInbox()) do for _, msg in ipairs(getInbox()) do
table.insert(mail.selected_idxs.inbox[name], msg.id) 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 if #mail.selected_idxs.sent[name] >= #getOutbox() then -- if selection is full
mail.selected_idxs.sent[name] = {} mail.selected_idxs.sent[name] = {}
else else
mail.selected_idxs.inbox[name] = {} -- reset to avoid duplicates
mail.selected_idxs.multipleselection[name] = true mail.selected_idxs.multipleselection[name] = true
for _, msg in ipairs(getOutbox()) do for _, msg in ipairs(getOutbox()) do
table.insert(mail.selected_idxs.sent[name], msg.id) table.insert(mail.selected_idxs.sent[name], msg.id)

View file

@ -6,6 +6,10 @@ function mail.show_inbox(name, sortfieldindex, sortdirection, filter)
sortfieldindex = tonumber(sortfieldindex or mail.selected_idxs.sortfield[name]) or 3 sortfieldindex = tonumber(sortfieldindex or mail.selected_idxs.sortfield[name]) or 3
sortdirection = sortdirection or mail.selected_idxs.sortdirection[name] or "1" sortdirection = sortdirection or mail.selected_idxs.sortdirection[name] or "1"
filter = mail.selected_idxs.filter[name] or filter or "" 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 .. [[ local inbox_formspec = "size[8.5,10;]" .. mail.theme .. [[
tabheader[0.3,1;boxtab;]] .. S("Inbox") .. "," .. S("Sent messages").. "," .. S("Drafts") .. [[;1;false;false] 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 .. [[] field[4.25,8.85;1.4,0.5;filter;]] .. S("Filter") .. [[:;]] .. filter .. [[]
button[5.14,8.52;0.85,0.5;search;Q] 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]) .. [[] 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") .. [[] button[3.5,9.5;2.5,0.5;selectall;]] .. S("(Un)select all") .. [[]
tablecolumns[color;text;text] tablecolumns[color;text;text]

View file

@ -6,6 +6,10 @@ function mail.show_sent(name, sortfieldindex, sortdirection, filter)
sortfieldindex = tonumber(sortfieldindex or mail.selected_idxs.sortfield[name]) or 3 sortfieldindex = tonumber(sortfieldindex or mail.selected_idxs.sortfield[name]) or 3
sortdirection = sortdirection or mail.selected_idxs.sortdirection[name] or "1" sortdirection = sortdirection or mail.selected_idxs.sortdirection[name] or "1"
filter = mail.selected_idxs.filter[name] or filter or "" 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 .. [[ local sent_formspec = "size[8.5,10;]" .. mail.theme .. [[
tabheader[0.3,1;boxtab;]] .. S("Inbox") .. "," .. S("Sent messages").. "," .. S("Drafts") .. [[;2;false;false] 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 .. [[] field[4.25,8.85;1.4,0.5;filter;]] .. S("Filter") .. [[:;]] .. filter .. [[]
button[5.14,8.52;0.85,0.5;search;Q] 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]) .. [[] 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") .. [[] button[3.5,9.5;2.5,0.5;selectall;]] .. S("(Un)select all") .. [[]
tablecolumns[color;text;text] tablecolumns[color;text;text]