Fix ticket #2914: Realtime no longer tells you it's got a message queued up when it's really the one you just sent out and is already visible.
This commit is contained in:
parent
f222e2132d
commit
c6f5975554
|
@ -112,13 +112,15 @@ RealtimeUpdate = {
|
||||||
*
|
*
|
||||||
* @param {Object} data: extended JSON API-formatted notice
|
* @param {Object} data: extended JSON API-formatted notice
|
||||||
*
|
*
|
||||||
* @fixme Ticket #2914: already-visible sent notices are still queued up
|
|
||||||
* when paused, inflating the queue count
|
|
||||||
*
|
|
||||||
* @access public
|
* @access public
|
||||||
*/
|
*/
|
||||||
receive: function(data)
|
receive: function(data)
|
||||||
{
|
{
|
||||||
|
if (RealtimeUpdate.isNoticeVisible(data.id)) {
|
||||||
|
// Probably posted by the user in this window, and so already
|
||||||
|
// shown by the AJAX form handler. Ignore it.
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (RealtimeUpdate._paused === false) {
|
if (RealtimeUpdate._paused === false) {
|
||||||
RealtimeUpdate.purgeLastNoticeItem();
|
RealtimeUpdate.purgeLastNoticeItem();
|
||||||
|
|
||||||
|
@ -149,7 +151,7 @@ RealtimeUpdate = {
|
||||||
*/
|
*/
|
||||||
insertNoticeItem: function(data) {
|
insertNoticeItem: function(data) {
|
||||||
// Don't add it if it already exists
|
// Don't add it if it already exists
|
||||||
if ($("#notice-"+data.id).length > 0) {
|
if (RealtimeUpdate.isNoticeVisible(data.id)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -164,6 +166,21 @@ RealtimeUpdate = {
|
||||||
SN.U.NoticeWithAttachment($('#'+noticeItemID));
|
SN.U.NoticeWithAttachment($('#'+noticeItemID));
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if the given notice is visible in the timeline currently.
|
||||||
|
* Used to avoid duplicate processing of notices that have been
|
||||||
|
* displayed by other means.
|
||||||
|
*
|
||||||
|
* @param {number} id: notice ID to check
|
||||||
|
*
|
||||||
|
* @return boolean
|
||||||
|
*
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
isNoticeVisible: function(id) {
|
||||||
|
return ($("#notice-"+id).length > 0);
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Trims a notice off the end of the timeline if we have more than the
|
* Trims a notice off the end of the timeline if we have more than the
|
||||||
* maximum number of notices visible.
|
* maximum number of notices visible.
|
||||||
|
|
2
plugins/Realtime/realtimeupdate.min.js
vendored
2
plugins/Realtime/realtimeupdate.min.js
vendored
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user