From ac0fc383fd43e8955b0ab22f70463159b14c74b0 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Mon, 23 Dec 2013 11:33:41 +0100 Subject: Fix so message flags modified by another client are applied on the list on refresh (#1485186) --- program/js/app.js | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'program/js') diff --git a/program/js/app.js b/program/js/app.js index 138fcbb13..a001a3bff 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -6923,6 +6923,16 @@ function rcube_webmail() case 'refresh': case 'check-recent': + // update message flags + $.each(this.env.recent_flags || {}, function(uid, flags) { + ref.set_message(uid, 'deleted', flags.deleted); + ref.set_message(uid, 'replied', flags.answered); + ref.set_message(uid, 'unread', !flags.seen); + ref.set_message(uid, 'forwarded', flags.forwarded); + ref.set_message(uid, 'flagged', flags.flagged); + }); + delete this.env.recent_flags; + case 'getunread': case 'search': this.env.qsearch = null; @@ -7246,13 +7256,18 @@ function rcube_webmail() if (this.gui_objects.mailboxlist) params._folderlist = 1; - if (this.gui_objects.messagelist) - params._list = 1; if (this.gui_objects.quotadisplay) params._quota = 1; if (this.env.search_request) params._search = this.env.search_request; + if (this.gui_objects.messagelist) { + params._list = 1; + + // message uids for flag updates check + params._uids = $.map(this.message_list.rows, function(row, uid) { return uid; }).join(','); + } + return params; }; -- cgit v1.2.3