diff --git a/dev/App/User.js b/dev/App/User.js index 46797eb6b..cd1ea93a1 100644 --- a/dev/App/User.js +++ b/dev/App/User.js @@ -112,7 +112,7 @@ export class AppUser extends AbstractApp { case FolderType.Trash: oMoveFolder = getFolderFromCacheList(FolderUserStore.trashFolder()); nSetSystemFoldersNotification = iFolderType; - bDelete = bDelete || UNUSED_OPTION_VALUE === FolderUserStore.trashFolder() + bDelete = bDelete/* || UNUSED_OPTION_VALUE === FolderUserStore.trashFolder()*/ || sFromFolderFullName === FolderUserStore.spamFolder() || sFromFolderFullName === FolderUserStore.trashFolder(); break; diff --git a/dev/Common/EnumsUser.js b/dev/Common/EnumsUser.js index bc3c873ba..a8948e5a7 100644 --- a/dev/Common/EnumsUser.js +++ b/dev/Common/EnumsUser.js @@ -71,7 +71,9 @@ MessageSetAction = { SetSeen: 0, UnsetSeen: 1, SetFlag: 2, - UnsetFlag: 3 + UnsetFlag: 3, + SetDeleted: 4, + UnsetDeleted: 5 }, /** diff --git a/dev/Model/Message.js b/dev/Model/Message.js index e3da3070a..ec004a52b 100644 --- a/dev/Model/Message.js +++ b/dev/Model/Message.js @@ -206,6 +206,7 @@ export class MessageModel extends AbstractModel { isUnseen: () => !this.flags().includes('\\seen'), isFlagged: () => this.flags().includes('\\flagged'), + isDeleted: () => this.flags().includes('\\deleted'), // isJunk: () => this.flags().includes('$junk') && !this.flags().includes('$nonjunk'), // isPhishing: () => this.flags().includes('$phishing'), @@ -363,7 +364,7 @@ export class MessageModel extends AbstractModel { lineAsCss(flags=1) { let classes = []; forEachObjectEntry({ - deleted: this.deleted(), + deleted: this.deleted() || this.isDeleted(), selected: this.selected(), checked: this.checked(), unseen: this.isUnseen(), diff --git a/dev/Stores/User/Messagelist.js b/dev/Stores/User/Messagelist.js index b6d9b0c29..3ad0b0bb5 100644 --- a/dev/Stores/User/Messagelist.js +++ b/dev/Stores/User/Messagelist.js @@ -36,6 +36,7 @@ import { baseCollator } from 'Common/Translator'; const isChecked = item => item.checked(), + isDeleted = item => item.isDeleted(), replaceHash = hash => { rl.route.off(); hasher.replaceHash(hash); @@ -142,6 +143,14 @@ MessagelistUserStore.hasCheckedOrSelected = koComputable(() => | !!MessagelistUserStore.find(isChecked) ).extend({ rateLimit: 50 }); +MessagelistUserStore.hasCheckedOrSelectedAndDeleted = koComputable( + () => !!MessagelistUserStore.listCheckedOrSelected().find(isDeleted) +).extend({ rateLimit: 50 }); + +MessagelistUserStore.hasCheckedOrSelectedAndUndeleted = koComputable( + () => !!MessagelistUserStore.listCheckedOrSelected().find(item => !item?.isDeleted()) +).extend({ rateLimit: 50 }); + MessagelistUserStore.notifyNewMessages = (folder, newMessages) => { if (getFolderInboxName() === folder && arrayLength(newMessages)) { @@ -370,6 +379,14 @@ MessagelistUserStore.setAction = (sFolderFullName, iSetAction, messages) => { messages.forEach(oMessage => oMessage.isFlagged() && rootUids.push(oMessage.uid) && oMessage.flags.remove('\\flagged') ); + } else if (iSetAction == MessageSetAction.SetDeleted) { + messages.forEach(oMessage => + !oMessage.isDeleted() && rootUids.push(oMessage.uid) && oMessage.flags.push('\\deleted') + ); + } else if (iSetAction == MessageSetAction.UnsetDeleted) { + messages.forEach(oMessage => + oMessage.isDeleted() && rootUids.push(oMessage.uid) && oMessage.flags.remove('\\deleted') + ); } rootUids = rootUids.validUnique(); length = rootUids.length; @@ -399,6 +416,15 @@ MessagelistUserStore.setAction = (sFolderFullName, iSetAction, messages) => { setAction: iSetAction == MessageSetAction.SetFlag ? 1 : 0 }); break; + + case MessageSetAction.SetDeleted: + case MessageSetAction.UnsetDeleted: + Remote.request('MessageSetDeleted', null, { + folder: sFolderFullName, + uids: rootUids.join(','), + setAction: iSetAction == MessageSetAction.SetDeleted ? 1 : 0 + }); + break; // no default } } diff --git a/dev/Styles/_End.less b/dev/Styles/_End.less index ffb4408fa..6e11aad1b 100644 --- a/dev/Styles/_End.less +++ b/dev/Styles/_End.less @@ -33,6 +33,10 @@ input:-webkit-autofill:active { transition: color 9999s ease-out, background-color 9999s ease-out; } +[data-icon].rotate::before { + transform: rotate(-180deg); +} + /* @media (pointer: coarse), (hover: none) { [title] { diff --git a/dev/View/User/MailBox/MessageList.js b/dev/View/User/MailBox/MessageList.js index 1ae32df1b..abe7e53dd 100644 --- a/dev/View/User/MailBox/MessageList.js +++ b/dev/View/User/MailBox/MessageList.js @@ -1,6 +1,7 @@ import ko from 'ko'; import { addObservablesTo, addComputablesTo } from 'External/ko'; +import { UNUSED_OPTION_VALUE } from 'Common/Consts'; import { ScopeFolderList, ScopeMessageList, ScopeMessageView } from 'Common/Enums'; import { ComposeType, FolderType, MessageSetAction } from 'Common/EnumsUser'; import { doc, @@ -326,7 +327,8 @@ export class MailMessageList extends AbstractViewRight { downloadZipCommand: canBeMovedHelper, forwardCommand: canBeMovedHelper, deleteWithoutMoveCommand: canBeMovedHelper, - deleteCommand: canBeMovedHelper, + deleteCommand: () => MessagelistUserStore.hasCheckedOrSelectedAndUndeleted(), + undeleteCommand: () => MessagelistUserStore.hasCheckedOrSelectedAndDeleted(), archiveCommand: canBeMovedHelper, spamCommand: canBeMovedHelper, notSpamCommand: canBeMovedHelper, @@ -400,8 +402,27 @@ export class MailMessageList extends AbstractViewRight { && moveMessagesToFolderType(FolderType.Trash, true); } + // User setting hideDeleted || immediatelyMoveToTrash ?? deleteCommand() { - moveMessagesToFolderType(FolderType.Trash); +// moveMessagesToFolderType(FolderType.Trash); + if (UNUSED_OPTION_VALUE === FolderUserStore.trashFolder() || '' === FolderUserStore.trashFolder()) { + listAction( + FolderUserStore.currentFolderFullName(), + MessageSetAction.SetDeleted, + MessagelistUserStore.listCheckedOrSelected() + ); + } else { + moveMessagesToFolderType(FolderType.Trash); + } + } + + // User setting !hideDeleted && !immediatelyMoveToTrash ?? + undeleteCommand() { + listAction( + FolderUserStore.currentFolderFullName(), + MessageSetAction.UnsetDeleted, + MessagelistUserStore.listCheckedOrSelected() + ); } archiveCommand() { diff --git a/dev/View/User/MailBox/MessageView.js b/dev/View/User/MailBox/MessageView.js index 237455424..db01e4ce7 100644 --- a/dev/View/User/MailBox/MessageView.js +++ b/dev/View/User/MailBox/MessageView.js @@ -1,6 +1,7 @@ import ko from 'ko'; import { addObservablesTo, addComputablesTo, addSubscribablesTo } from 'External/ko'; +import { UNUSED_OPTION_VALUE } from 'Common/Consts'; import { ScopeFolderList, ScopeMessageList, ScopeMessageView } from 'Common/Enums'; import { @@ -99,6 +100,20 @@ export class MailMessageView extends AbstractViewRight { currentMessage(null); rl.app.moveMessagesToFolderType(folderType, message.folder, new Set([message.uid]), bDelete); } + }, this.messageVisible), + createCommandSetHelper = action => + createCommand(() => setAction(action), this.messageVisible), + createCommandDeleteHelper = () => + createCommand(() => { + if (UNUSED_OPTION_VALUE === FolderUserStore.trashFolder() || '' === FolderUserStore.trashFolder()) { + setAction(MessageSetAction.SetDeleted); + } else { + const message = currentMessage(); + if (message) { + currentMessage(null); + rl.app.moveMessagesToFolderType(FolderType.Trash, message.folder, new Set([message.uid])); + } + } }, this.messageVisible); this.msgDefaultAction = SettingsUserStore.msgDefaultAction; @@ -197,6 +212,8 @@ export class MailMessageView extends AbstractViewRight { pgpSupported: () => currentMessage() && PgpUserStore.isSupported(), + canBeUndeleted: () => currentMessage()?.isDeleted(), + messageListOrViewLoading: () => MessagelistUserStore.isLoading() | MessageUserStore.loading() }); @@ -231,7 +248,11 @@ export class MailMessageView extends AbstractViewRight { this.forwardAsAttachmentCommand = createCommandReplyHelper(ComposeType.ForwardAsAttachment); this.editAsNewCommand = createCommandReplyHelper(ComposeType.EditAsNew); - this.deleteCommand = createCommandActionHelper(FolderType.Trash); +// this.deleteCommand = createCommandActionHelper(FolderType.Trash); + // User setting hideDeleted || immediatelyMoveToTrash ?? + this.deleteCommand = createCommandDeleteHelper(); + // User setting !hideDeleted && !immediatelyMoveToTrash ?? + this.undeleteCommand = createCommandSetHelper(MessageSetAction.UnsetDeleted); this.deleteWithoutMoveCommand = createCommandActionHelper(FolderType.Trash, true); this.archiveCommand = createCommandActionHelper(FolderType.Archive); this.spamCommand = createCommandActionHelper(FolderType.Junk); diff --git a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Messages.php b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Messages.php index f75be7a1d..6819a9ed3 100644 --- a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Messages.php +++ b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Messages.php @@ -449,6 +449,11 @@ trait Messages return $this->messageSetFlag(MessageFlag::FLAGGED, true); } + public function DoMessageSetDeleted() : array + { + return $this->messageSetFlag(MessageFlag::DELETED, true); + } + public function DoMessageSetKeyword() : array { return $this->messageSetFlag($this->GetActionParam('keyword', ''), true); diff --git a/snappymail/v/0.0.0/app/localization/ar/user.json b/snappymail/v/0.0.0/app/localization/ar/user.json index 06669f518..9b6720b4f 100644 --- a/snappymail/v/0.0.0/app/localization/ar/user.json +++ b/snappymail/v/0.0.0/app/localization/ar/user.json @@ -11,6 +11,7 @@ "CLOSE": "أغلق (Esc)", "CONTACTS": "جهات الإتصال", "DELETE": "حذف", + "UNDELETE": "Undelete", "DONE": "إنتهاء", "EMAIL": "إيميل", "FROM": "من", diff --git a/snappymail/v/0.0.0/app/localization/be/user.json b/snappymail/v/0.0.0/app/localization/be/user.json index ec2907de6..13de8161e 100644 --- a/snappymail/v/0.0.0/app/localization/be/user.json +++ b/snappymail/v/0.0.0/app/localization/be/user.json @@ -11,6 +11,7 @@ "CLOSE": "Закрыць (Esc)", "CONTACTS": "Кантакты", "DELETE": "Выдаліць", + "UNDELETE": "Undelete", "DONE": "Завяршыць", "EMAIL": "Пошта", "FROM": "Ад", diff --git a/snappymail/v/0.0.0/app/localization/bg/user.json b/snappymail/v/0.0.0/app/localization/bg/user.json index 6327e1aad..8cef8ae3e 100644 --- a/snappymail/v/0.0.0/app/localization/bg/user.json +++ b/snappymail/v/0.0.0/app/localization/bg/user.json @@ -11,6 +11,7 @@ "CLOSE": "Затваряне (Esc)", "CONTACTS": "Контакти", "DELETE": "Изтрий", + "UNDELETE": "Undelete", "DONE": "Готово", "EMAIL": "Акаунт", "FROM": "От", diff --git a/snappymail/v/0.0.0/app/localization/cs/user.json b/snappymail/v/0.0.0/app/localization/cs/user.json index 4ff005b66..400018c7c 100644 --- a/snappymail/v/0.0.0/app/localization/cs/user.json +++ b/snappymail/v/0.0.0/app/localization/cs/user.json @@ -11,6 +11,7 @@ "CLOSE": "Zavřít (Esc)", "CONTACTS": "Adresář", "DELETE": "Odstranit", + "UNDELETE": "Undelete", "DONE": "Dokončit", "EMAIL": "Email", "FROM": "Odesílatel", diff --git a/snappymail/v/0.0.0/app/localization/da/user.json b/snappymail/v/0.0.0/app/localization/da/user.json index b697984fa..766ec5635 100644 --- a/snappymail/v/0.0.0/app/localization/da/user.json +++ b/snappymail/v/0.0.0/app/localization/da/user.json @@ -11,6 +11,7 @@ "CLOSE": "Luk (Esc)", "CONTACTS": "Kontakter", "DELETE": "Slet", + "UNDELETE": "Undelete", "DONE": "Færdig", "EMAIL": "E-mail", "FROM": "Fra", diff --git a/snappymail/v/0.0.0/app/localization/de/user.json b/snappymail/v/0.0.0/app/localization/de/user.json index d5bcd0110..6b282a718 100644 --- a/snappymail/v/0.0.0/app/localization/de/user.json +++ b/snappymail/v/0.0.0/app/localization/de/user.json @@ -11,6 +11,7 @@ "CLOSE": "Schließen", "CONTACTS": "Kontakte", "DELETE": "Löschen", + "UNDELETE": "Undelete", "DONE": "Erledigt", "EMAIL": "E-Mail", "FROM": "Von", diff --git a/snappymail/v/0.0.0/app/localization/el/user.json b/snappymail/v/0.0.0/app/localization/el/user.json index 5a3b4cda6..02274b7a2 100644 --- a/snappymail/v/0.0.0/app/localization/el/user.json +++ b/snappymail/v/0.0.0/app/localization/el/user.json @@ -11,6 +11,7 @@ "CLOSE": "Κλείσιμο (Esc)", "CONTACTS": "Επαφές", "DELETE": "Διαγραφή", + "UNDELETE": "Undelete", "DONE": "Έγινε", "EMAIL": "Διεύθυνση ηλεκτρονικού ταχυδρομείου", "FROM": "Από", diff --git a/snappymail/v/0.0.0/app/localization/en/user.json b/snappymail/v/0.0.0/app/localization/en/user.json index 6171c384a..bf010228a 100644 --- a/snappymail/v/0.0.0/app/localization/en/user.json +++ b/snappymail/v/0.0.0/app/localization/en/user.json @@ -11,6 +11,7 @@ "CLOSE": "Close", "CONTACTS": "Contacts", "DELETE": "Delete", + "UNDELETE": "Undelete", "DONE": "Done", "EMAIL": "Email", "FROM": "From", diff --git a/snappymail/v/0.0.0/app/localization/es/user.json b/snappymail/v/0.0.0/app/localization/es/user.json index e612d5829..ef6a43873 100644 --- a/snappymail/v/0.0.0/app/localization/es/user.json +++ b/snappymail/v/0.0.0/app/localization/es/user.json @@ -11,6 +11,7 @@ "CLOSE": "Cerrar", "CONTACTS": "Contactos", "DELETE": "Eliminar", + "UNDELETE": "Undelete", "DONE": "Hecho", "EMAIL": "Email", "FROM": "De", diff --git a/snappymail/v/0.0.0/app/localization/et/user.json b/snappymail/v/0.0.0/app/localization/et/user.json index 5171aa92b..623c7e00c 100644 --- a/snappymail/v/0.0.0/app/localization/et/user.json +++ b/snappymail/v/0.0.0/app/localization/et/user.json @@ -11,6 +11,7 @@ "CLOSE": "Sulge (Esc)", "CONTACTS": "Kontaktid", "DELETE": "Kustuta", + "UNDELETE": "Undelete", "DONE": "Valmis", "EMAIL": "E-post", "FROM": "Saatja", diff --git a/snappymail/v/0.0.0/app/localization/eu/user.json b/snappymail/v/0.0.0/app/localization/eu/user.json index 40fe517d9..c41dd2f1f 100644 --- a/snappymail/v/0.0.0/app/localization/eu/user.json +++ b/snappymail/v/0.0.0/app/localization/eu/user.json @@ -11,6 +11,7 @@ "CLOSE": "Itxi", "CONTACTS": "Kontaktuak", "DELETE": "Ezabatu", + "UNDELETE": "Undelete", "DONE": "Eginda", "EMAIL": "Email", "FROM": "Nork", diff --git a/snappymail/v/0.0.0/app/localization/fa/user.json b/snappymail/v/0.0.0/app/localization/fa/user.json index 29ad91af5..56c9066ec 100644 --- a/snappymail/v/0.0.0/app/localization/fa/user.json +++ b/snappymail/v/0.0.0/app/localization/fa/user.json @@ -11,6 +11,7 @@ "CLOSE": "بستن (Esc)", "CONTACTS": "تماس‌ها", "DELETE": "حذف", + "UNDELETE": "Undelete", "DONE": "انجام شد", "EMAIL": "پست الکترونیک", "FROM": "از", diff --git a/snappymail/v/0.0.0/app/localization/fi/user.json b/snappymail/v/0.0.0/app/localization/fi/user.json index 85f708767..e12835132 100644 --- a/snappymail/v/0.0.0/app/localization/fi/user.json +++ b/snappymail/v/0.0.0/app/localization/fi/user.json @@ -11,6 +11,7 @@ "CLOSE": "Sulje (Esc)", "CONTACTS": "Yhteystiedot", "DELETE": "Poista", + "UNDELETE": "Undelete", "DONE": "Valmis", "EMAIL": "Sähköpostisi", "FROM": "Lähettäjä", diff --git a/snappymail/v/0.0.0/app/localization/fr/user.json b/snappymail/v/0.0.0/app/localization/fr/user.json index a184e2c4f..9c8844569 100644 --- a/snappymail/v/0.0.0/app/localization/fr/user.json +++ b/snappymail/v/0.0.0/app/localization/fr/user.json @@ -11,6 +11,7 @@ "CLOSE": "Fermer", "CONTACTS": "Contacts", "DELETE": "Supprimer", + "UNDELETE": "Undelete", "DONE": "Fait", "EMAIL": "Courriel", "FROM": "De", diff --git a/snappymail/v/0.0.0/app/localization/hu/user.json b/snappymail/v/0.0.0/app/localization/hu/user.json index e479fbd7c..27848297a 100644 --- a/snappymail/v/0.0.0/app/localization/hu/user.json +++ b/snappymail/v/0.0.0/app/localization/hu/user.json @@ -11,6 +11,7 @@ "CLOSE": "Bezárás (Esc)", "CONTACTS": "Névjegyek", "DELETE": "Törlés", + "UNDELETE": "Undelete", "DONE": "Kész", "EMAIL": "E-mail", "FROM": "Feladó", diff --git a/snappymail/v/0.0.0/app/localization/id/user.json b/snappymail/v/0.0.0/app/localization/id/user.json index 1e059de59..c0ae6d070 100644 --- a/snappymail/v/0.0.0/app/localization/id/user.json +++ b/snappymail/v/0.0.0/app/localization/id/user.json @@ -11,6 +11,7 @@ "CLOSE": "Tutup (esc)", "CONTACTS": "Kontak", "DELETE": "Hapus", + "UNDELETE": "Undelete", "DONE": "Selesai", "EMAIL": "Email", "FROM": "Dari", diff --git a/snappymail/v/0.0.0/app/localization/is/user.json b/snappymail/v/0.0.0/app/localization/is/user.json index f4a3efbcb..259cc5155 100644 --- a/snappymail/v/0.0.0/app/localization/is/user.json +++ b/snappymail/v/0.0.0/app/localization/is/user.json @@ -11,6 +11,7 @@ "CLOSE": "Loka (Esc)", "CONTACTS": "Tengiliðir", "DELETE": "Eyða", + "UNDELETE": "Undelete", "DONE": "Lokið", "EMAIL": "Tölvupóstfang", "FROM": "Frá", diff --git a/snappymail/v/0.0.0/app/localization/it/user.json b/snappymail/v/0.0.0/app/localization/it/user.json index 22bcba1db..d8360c08e 100644 --- a/snappymail/v/0.0.0/app/localization/it/user.json +++ b/snappymail/v/0.0.0/app/localization/it/user.json @@ -11,6 +11,7 @@ "CLOSE": "Chiudi (Esc)", "CONTACTS": "Contatti", "DELETE": "Elimina", + "UNDELETE": "Undelete", "DONE": "Fatto", "EMAIL": "Email", "FROM": "Da", diff --git a/snappymail/v/0.0.0/app/localization/ja/user.json b/snappymail/v/0.0.0/app/localization/ja/user.json index ba0a8bd70..8391284f1 100644 --- a/snappymail/v/0.0.0/app/localization/ja/user.json +++ b/snappymail/v/0.0.0/app/localization/ja/user.json @@ -11,6 +11,7 @@ "CLOSE": "閉じる(Esc)", "CONTACTS": "連絡先", "DELETE": "削除", + "UNDELETE": "Undelete", "DONE": "完了", "EMAIL": "メールアドレス", "FROM": "差出人", diff --git a/snappymail/v/0.0.0/app/localization/ko/user.json b/snappymail/v/0.0.0/app/localization/ko/user.json index 5bb14f16f..746b789b0 100644 --- a/snappymail/v/0.0.0/app/localization/ko/user.json +++ b/snappymail/v/0.0.0/app/localization/ko/user.json @@ -11,6 +11,7 @@ "CLOSE": "닫기 (Esc)", "CONTACTS": "연락처", "DELETE": "삭제", + "UNDELETE": "Undelete", "DONE": "완료", "EMAIL": "이메일", "FROM": "보내는 사람", diff --git a/snappymail/v/0.0.0/app/localization/lt/user.json b/snappymail/v/0.0.0/app/localization/lt/user.json index 0262be02e..47f7627b2 100644 --- a/snappymail/v/0.0.0/app/localization/lt/user.json +++ b/snappymail/v/0.0.0/app/localization/lt/user.json @@ -11,6 +11,7 @@ "CLOSE": "Uždaryti (Esc)", "CONTACTS": "Kontaktai", "DELETE": "Naikinti", + "UNDELETE": "Undelete", "DONE": "Atlikta", "EMAIL": "E-paštas", "FROM": "Nuo", diff --git a/snappymail/v/0.0.0/app/localization/lv/user.json b/snappymail/v/0.0.0/app/localization/lv/user.json index cd48686df..178b5e5f1 100644 --- a/snappymail/v/0.0.0/app/localization/lv/user.json +++ b/snappymail/v/0.0.0/app/localization/lv/user.json @@ -11,6 +11,7 @@ "CLOSE": "Aizvērt (Esc)", "CONTACTS": "Kontakti", "DELETE": "Dzēst", + "UNDELETE": "Undelete", "DONE": "Done", "EMAIL": "E-pasts", "FROM": "No", diff --git a/snappymail/v/0.0.0/app/localization/nb/user.json b/snappymail/v/0.0.0/app/localization/nb/user.json index b0c5fd85b..d164cd8b5 100644 --- a/snappymail/v/0.0.0/app/localization/nb/user.json +++ b/snappymail/v/0.0.0/app/localization/nb/user.json @@ -11,6 +11,7 @@ "CLOSE": "Lukk (Esc)", "CONTACTS": "Kontakter", "DELETE": "Slett", + "UNDELETE": "Undelete", "DONE": "Ferdig", "EMAIL": "E-postadresse", "FROM": "Fra", diff --git a/snappymail/v/0.0.0/app/localization/nl/user.json b/snappymail/v/0.0.0/app/localization/nl/user.json index 16cfa5b10..da6343689 100644 --- a/snappymail/v/0.0.0/app/localization/nl/user.json +++ b/snappymail/v/0.0.0/app/localization/nl/user.json @@ -11,6 +11,7 @@ "CLOSE": "Sluiten", "CONTACTS": "Contactpersonen", "DELETE": "Verwijder", + "UNDELETE": "Undelete", "DONE": "Klaar", "EMAIL": "E-mailadres", "FROM": "Van", diff --git a/snappymail/v/0.0.0/app/localization/pl/user.json b/snappymail/v/0.0.0/app/localization/pl/user.json index 472f88f8e..c2e223759 100644 --- a/snappymail/v/0.0.0/app/localization/pl/user.json +++ b/snappymail/v/0.0.0/app/localization/pl/user.json @@ -11,6 +11,7 @@ "CLOSE": "Zamknij (Esc)", "CONTACTS": "Kontakty", "DELETE": "Usuń", + "UNDELETE": "Undelete", "DONE": "Gotowe", "EMAIL": "Adres e-mail", "FROM": "Od", diff --git a/snappymail/v/0.0.0/app/localization/pt-BR/user.json b/snappymail/v/0.0.0/app/localization/pt-BR/user.json index c5487e859..5d19eef57 100644 --- a/snappymail/v/0.0.0/app/localization/pt-BR/user.json +++ b/snappymail/v/0.0.0/app/localization/pt-BR/user.json @@ -11,6 +11,7 @@ "CLOSE": "Fechar (Esc)", "CONTACTS": "Contatos", "DELETE": "Excluir", + "UNDELETE": "Undelete", "DONE": "Concluir", "EMAIL": "E-mail", "FROM": "De", diff --git a/snappymail/v/0.0.0/app/localization/pt/user.json b/snappymail/v/0.0.0/app/localization/pt/user.json index 2674585b8..9f6ba6b8b 100644 --- a/snappymail/v/0.0.0/app/localization/pt/user.json +++ b/snappymail/v/0.0.0/app/localization/pt/user.json @@ -11,6 +11,7 @@ "CLOSE": "Fechar", "CONTACTS": "Contactos", "DELETE": "Eliminar", + "UNDELETE": "Undelete", "DONE": "Terminado", "EMAIL": "Email", "FROM": "De", diff --git a/snappymail/v/0.0.0/app/localization/ro/user.json b/snappymail/v/0.0.0/app/localization/ro/user.json index ff3ce5737..e1e47ef52 100644 --- a/snappymail/v/0.0.0/app/localization/ro/user.json +++ b/snappymail/v/0.0.0/app/localization/ro/user.json @@ -11,6 +11,7 @@ "CLOSE": "Închide (Esc)", "CONTACTS": "Contacte", "DELETE": "Șterge", + "UNDELETE": "Undelete", "DONE": "Done", "EMAIL": "Email", "FROM": "De la", diff --git a/snappymail/v/0.0.0/app/localization/ru/user.json b/snappymail/v/0.0.0/app/localization/ru/user.json index 7fd163202..67ed5ec22 100644 --- a/snappymail/v/0.0.0/app/localization/ru/user.json +++ b/snappymail/v/0.0.0/app/localization/ru/user.json @@ -11,6 +11,7 @@ "CLOSE": "Закрыть (Esc)", "CONTACTS": "Контакты", "DELETE": "Удалить", + "UNDELETE": "Восстановить", "DONE": "Завершить", "EMAIL": "Почта", "FROM": "От", diff --git a/snappymail/v/0.0.0/app/localization/sk/user.json b/snappymail/v/0.0.0/app/localization/sk/user.json index f3473ed73..1fdd6b29f 100644 --- a/snappymail/v/0.0.0/app/localization/sk/user.json +++ b/snappymail/v/0.0.0/app/localization/sk/user.json @@ -11,6 +11,7 @@ "CLOSE": "Zatvoriť (Esc)", "CONTACTS": "Adresár", "DELETE": "Odstrániť", + "UNDELETE": "Undelete", "DONE": "Done", "EMAIL": "Email", "FROM": "Odosielateľ", diff --git a/snappymail/v/0.0.0/app/localization/sl/user.json b/snappymail/v/0.0.0/app/localization/sl/user.json index ac736edfb..a10963da9 100644 --- a/snappymail/v/0.0.0/app/localization/sl/user.json +++ b/snappymail/v/0.0.0/app/localization/sl/user.json @@ -11,6 +11,7 @@ "CLOSE": "Zapri (Esc)", "CONTACTS": "Stiki", "DELETE": "Izbriši", + "UNDELETE": "Undelete", "DONE": "Končaj", "EMAIL": "E-pošta", "FROM": "Od", diff --git a/snappymail/v/0.0.0/app/localization/sv/user.json b/snappymail/v/0.0.0/app/localization/sv/user.json index 45c737ffb..140d2ab90 100644 --- a/snappymail/v/0.0.0/app/localization/sv/user.json +++ b/snappymail/v/0.0.0/app/localization/sv/user.json @@ -11,6 +11,7 @@ "CLOSE": "Stäng (Esc)", "CONTACTS": "Kontakter", "DELETE": "Ta bort", + "UNDELETE": "Undelete", "DONE": "Klar", "EMAIL": "E-post", "FROM": "Från", diff --git a/snappymail/v/0.0.0/app/localization/tr/user.json b/snappymail/v/0.0.0/app/localization/tr/user.json index 0ed128153..9b9857a93 100644 --- a/snappymail/v/0.0.0/app/localization/tr/user.json +++ b/snappymail/v/0.0.0/app/localization/tr/user.json @@ -11,6 +11,7 @@ "CLOSE": "Kapat (Esc)", "CONTACTS": "Kişi Listesi", "DELETE": "Sil", + "UNDELETE": "Undelete", "DONE": "Done", "EMAIL": "E-Posta", "FROM": "Kimden", diff --git a/snappymail/v/0.0.0/app/localization/uk/user.json b/snappymail/v/0.0.0/app/localization/uk/user.json index 094d67d4d..57ab73118 100644 --- a/snappymail/v/0.0.0/app/localization/uk/user.json +++ b/snappymail/v/0.0.0/app/localization/uk/user.json @@ -11,6 +11,7 @@ "CLOSE": "Закрити (Esc)", "CONTACTS": "Контакти", "DELETE": "Видалити", + "UNDELETE": "Undelete", "DONE": "Зроблено", "EMAIL": "Пошта", "FROM": "Від", diff --git a/snappymail/v/0.0.0/app/localization/vi/user.json b/snappymail/v/0.0.0/app/localization/vi/user.json index 14e045966..7ddca21a9 100644 --- a/snappymail/v/0.0.0/app/localization/vi/user.json +++ b/snappymail/v/0.0.0/app/localization/vi/user.json @@ -11,6 +11,7 @@ "CLOSE": "Đóng", "CONTACTS": "Danh bạ", "DELETE": "Xóa", + "UNDELETE": "Undelete", "DONE": "Đã xong", "EMAIL": "Email", "FROM": "Đến từ", diff --git a/snappymail/v/0.0.0/app/localization/zh-TW/user.json b/snappymail/v/0.0.0/app/localization/zh-TW/user.json index f4b0ea1be..0e9d2c69b 100644 --- a/snappymail/v/0.0.0/app/localization/zh-TW/user.json +++ b/snappymail/v/0.0.0/app/localization/zh-TW/user.json @@ -11,6 +11,7 @@ "CLOSE": "關閉", "CONTACTS": "連絡人", "DELETE": "刪除", + "UNDELETE": "Undelete", "DONE": "完成", "EMAIL": "電子郵件", "FROM": "寄件者", diff --git a/snappymail/v/0.0.0/app/localization/zh/user.json b/snappymail/v/0.0.0/app/localization/zh/user.json index 67a44d43f..806fd80dd 100644 --- a/snappymail/v/0.0.0/app/localization/zh/user.json +++ b/snappymail/v/0.0.0/app/localization/zh/user.json @@ -11,6 +11,7 @@ "CLOSE": "关闭", "CONTACTS": "联系人", "DELETE": "删除", + "UNDELETE": "Undelete", "DONE": "完成", "EMAIL": "邮箱", "FROM": "发件人", diff --git a/snappymail/v/0.0.0/app/templates/Views/User/MailMessageList.html b/snappymail/v/0.0.0/app/templates/Views/User/MailMessageList.html index b29e7fc6f..5cb1c73c8 100644 --- a/snappymail/v/0.0.0/app/templates/Views/User/MailMessageList.html +++ b/snappymail/v/0.0.0/app/templates/Views/User/MailMessageList.html @@ -17,6 +17,9 @@ 🗑 +
@@ -82,9 +83,12 @@
  • -
  • +
  • +
  • + +