diff --git a/modoboa/extensions/webmail/imaputils.py b/modoboa/extensions/webmail/imaputils.py index f0df4c845..382dc38ab 100644 --- a/modoboa/extensions/webmail/imaputils.py +++ b/modoboa/extensions/webmail/imaputils.py @@ -512,6 +512,8 @@ class IMAPconnector(object): self.select_mailbox(mbox, False) resp = self._cmd("SEARCH", "ALL") seq = ",".join(resp[0].split()) + if seq == "": + return self._cmd("STORE", seq, "+FLAGS", r'(\Deleted)') self._cmd("EXPUNGE") diff --git a/modoboa/extensions/webmail/static/webmail/js/webmail.js b/modoboa/extensions/webmail/static/webmail/js/webmail.js index d98a1c081..b56ede806 100644 --- a/modoboa/extensions/webmail/static/webmail/js/webmail.js +++ b/modoboa/extensions/webmail/static/webmail/js/webmail.js @@ -647,15 +647,24 @@ Webmail.prototype = { delete_messages: function(e) { e.preventDefault(); var $link = get_target(e, "a"); + if ($link.hasClass("disabled")) { + return; + } var msgs = this.htmltable.current_selection(); var selection = []; + var unseen_cnt = 0; if (!msgs.length) { return; } $.each(msgs, function(idx, item) { - selection.push($(item).attr("id")); + var $tr = $(item); + selection.push($tr.attr("id")); + if ($tr.hasClass("unseen")) { + unseen_cnt++; + } }); + this.change_unseen_messages(this.get_current_mailbox(), -unseen_cnt); $.ajax({ url: $link.attr("href"), data: {mbox: this.get_current_mailbox(), selection: selection}, diff --git a/modoboa/extensions/webmail/templatetags/webextras.py b/modoboa/extensions/webmail/templatetags/webextras.py index 026271c40..7efffbb13 100644 --- a/modoboa/extensions/webmail/templatetags/webextras.py +++ b/modoboa/extensions/webmail/templatetags/webextras.py @@ -77,7 +77,7 @@ def listmailbox_menu(selection, folder, user): "class" : "btn"}, {"name": "totrash", "label": "", - "class": "btn", + "class": "", "img": "icon-trash", "url": reverse("modoboa.extensions.webmail.views.delete"), }, @@ -104,7 +104,8 @@ def listmailbox_menu(selection, folder, user): }, ] if folder == parameters.get_user(user, "TRASH_FOLDER"): - entries[2]["menu"] += [ + entries[1]["class"] += " disabled" + entries[3]["menu"] += [ {"name" : "empty", "label" : _("Empty folder"), "url" : reverse(webmail.views.empty, args=[folder])}