mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-16 21:13:23 +01:00
* Mail: Fix changing flags does not affect immidiately on mail list
r48418: also need to set/remove "read" flag when removing/adding "unseen" class
This commit is contained in:
parent
4ce1b299b3
commit
0af2cceaab
@ -1943,6 +1943,9 @@ app.classes.mail = AppJS.extend(
|
|||||||
// Update cache & call callbacks - updates list
|
// Update cache & call callbacks - updates list
|
||||||
dataElem.data.class = classes.join(' ');
|
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Notify server of changes
|
// Notify server of changes
|
||||||
@ -1971,6 +1974,54 @@ app.classes.mail = AppJS.extend(
|
|||||||
//this.mail_refreshFolderStatus();
|
//this.mail_refreshFolderStatus();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update changes on filtered mail rows in nm, triggers manual refresh
|
||||||
|
*
|
||||||
|
* @param {type} _uid mail uid
|
||||||
|
* @param {type} _actionId action id sended by nm action
|
||||||
|
* @param {type} _filters activefilters
|
||||||
|
*/
|
||||||
|
updateFilter_data: function (_uid, _actionId, _filters)
|
||||||
|
{
|
||||||
|
var uid = _uid.replace('mail::','');
|
||||||
|
var action = '';
|
||||||
|
switch (_actionId)
|
||||||
|
{
|
||||||
|
case 'flagged':
|
||||||
|
action = 'flagged';
|
||||||
|
break;
|
||||||
|
case 'read':
|
||||||
|
if (_filters.filter == 'seen')
|
||||||
|
{
|
||||||
|
action = 'seen';
|
||||||
|
}
|
||||||
|
else if (_filters.filter == 'unseen')
|
||||||
|
{
|
||||||
|
action = 'unseen';
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'label1':
|
||||||
|
action = 'keyword1';
|
||||||
|
break;
|
||||||
|
case 'label2':
|
||||||
|
action = 'keyword2';
|
||||||
|
break;
|
||||||
|
case 'label3':
|
||||||
|
action = 'keyword3';
|
||||||
|
break;
|
||||||
|
case 'label4':
|
||||||
|
action = 'keyword4';
|
||||||
|
break;
|
||||||
|
case 'label4':
|
||||||
|
action = 'keyword4';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (action == _filters.filter)
|
||||||
|
{
|
||||||
|
egw.refresh('','mail',uid, 'delete');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Flag mail as 'read', 'unread', 'flagged' or 'unflagged'
|
* Flag mail as 'read', 'unread', 'flagged' or 'unflagged'
|
||||||
*
|
*
|
||||||
@ -2648,6 +2699,14 @@ app.classes.mail = AppJS.extend(
|
|||||||
// Update class
|
// Update class
|
||||||
dataElem.data.class += ' ' + _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)
|
// Update record, which updates all listeners (including nextmatch)
|
||||||
egw.dataStoreUID(mail_uid,dataElem.data);
|
egw.dataStoreUID(mail_uid,dataElem.data);
|
||||||
}
|
}
|
||||||
@ -2698,6 +2757,14 @@ app.classes.mail = AppJS.extend(
|
|||||||
classes.splice(classes.indexOf(_class),1);
|
classes.splice(classes.indexOf(_class),1);
|
||||||
dataElem.data.class = classes.join(' ');
|
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)
|
// Update record, which updates all listeners (including nextmatch)
|
||||||
egw.dataStoreUID(mail_uid,dataElem.data);
|
egw.dataStoreUID(mail_uid,dataElem.data);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user