From 90672ca3af37d1fe18d3efbc6f0dd4888bc2992c Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Wed, 3 Sep 2014 10:34:14 +0000 Subject: [PATCH] also need to set/remove "read" flag when removing/adding "unseen" class --- mail/js/app.js | 36 ++++++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/mail/js/app.js b/mail/js/app.js index 6091aa09df..528b924c4e 100644 --- a/mail/js/app.js +++ b/mail/js/app.js @@ -1942,8 +1942,8 @@ app.classes.mail = AppJS.extend( // Update cache & call callbacks - updates list dataElem.data.class = classes.join(' '); - egw.dataStoreUID(msg.msg[i],dataElem.data); - + egw.dataStoreUID(msg.msg[i],dataElem.data); + //Refresh the nm rows after we told dataComponent about all changes, since the dataComponent doesn't talk to nm, we need to do it manually this.updateFilter_data(msg.msg[i], _action.id, msg.activeFilters); } @@ -1973,11 +1973,11 @@ app.classes.mail = AppJS.extend( if (_action.id=='read' || _action.id=='readall') this.mail_refreshFolderStatus(_folder,'thisfolderonly',false,true); //this.mail_refreshFolderStatus(); }, - + /** * Update changes on filtered mail rows in nm, triggers manual refresh - * - * @param {type} _uid mail uid + * + * @param {type} _uid mail uid * @param {type} _actionId action id sended by nm action * @param {type} _filters activefilters */ @@ -2003,16 +2003,16 @@ app.classes.mail = AppJS.extend( case 'label1': action = 'keyword1'; break; - case 'label2': + case 'label2': action = 'keyword2'; break; - case 'label3': + case 'label3': action = 'keyword3'; break; - case 'label4': + case 'label4': action = 'keyword4'; break; - case 'label4': + case 'label4': action = 'keyword4'; break; } @@ -2021,7 +2021,7 @@ app.classes.mail = AppJS.extend( egw.refresh('','mail',uid, 'delete'); } }, - + /** * Flag mail as 'read', 'unread', 'flagged' or 'unflagged' * @@ -2699,6 +2699,14 @@ app.classes.mail = AppJS.extend( // Update class dataElem.data.class += ' ' + _class; + // need to update flags too + switch(_class) + { + case 'unseen': + delete dataElem.data.flags.read; + break; + } + // Update record, which updates all listeners (including nextmatch) egw.dataStoreUID(mail_uid,dataElem.data); } @@ -2749,6 +2757,14 @@ app.classes.mail = AppJS.extend( classes.splice(classes.indexOf(_class),1); dataElem.data.class = classes.join(' '); + // need to update flags too + switch(_class) + { + case 'unseen': + dataElem.data.flags.read = true; + break; + } + // Update record, which updates all listeners (including nextmatch) egw.dataStoreUID(mail_uid,dataElem.data); }