diff --git a/server/ui-src/App.vue b/server/ui-src/App.vue index 4bfd9a5..1432b01 100644 --- a/server/ui-src/App.vue +++ b/server/ui-src/App.vue @@ -74,6 +74,13 @@ export default { }, canNext: function () { return this.total > (this.start + this.count); + }, + unreadInSearch: function () { + if (!this.searching) { + return false; + } + + return this.items.filter(i => !i.Read).length; } }, @@ -304,6 +311,24 @@ export default { }); }, + // delete messages displayed in current search + deleteSearch: function () { + let ids = this.items.map(item => item.ID); + + if (!ids.length) { + return false; + } + + let self = this; + let uri = 'api/v1/messages'; + self.delete(uri, { 'ids': ids }, function (response) { + window.location.hash = ""; + self.scrollInPlace = true; + self.loadMessages(); + }); + }, + + // delete all messages from mailbox deleteAll: function () { let self = this; let uri = 'api/v1/messages'; @@ -313,6 +338,7 @@ export default { }); }, + // mark current message as read markUnread: function () { let self = this; if (!self.message) { @@ -326,6 +352,7 @@ export default { }); }, + // mark all messages in mailbox as read markAllRead: function () { let self = this; let uri = 'api/v1/messages' @@ -336,6 +363,24 @@ export default { }); }, + // mark messages in current search as read + markSearchRead: function () { + let ids = this.items.map(item => item.ID); + + if (!ids.length) { + return false; + } + + let self = this; + let uri = 'api/v1/messages'; + self.put(uri, { 'read': true, 'ids': ids }, function (response) { + window.location.hash = ""; + self.scrollInPlace = true; + self.loadMessages(); + }); + }, + + // mark selected messages as read markSelectedRead: function () { let self = this; if (!self.selected.length) { @@ -349,6 +394,7 @@ export default { }); }, + // mark selected messages as unread markSelectedUnread: function () { let self = this; if (!self.selected.length) { @@ -362,7 +408,7 @@ export default { }); }, - // test of any selected emails are unread + // test if any selected emails are unread selectedHasUnread: function () { if (!this.selected.length) { return false; @@ -709,7 +755,8 @@ export default { Mailpit