Can get and set oldest message ID known of a conversation

This commit is contained in:
Pierre 2018-04-26 06:50:23 +02:00
parent 6170a4eb03
commit 09fbdb2933
2 changed files with 81 additions and 1 deletions

View File

@ -831,7 +831,7 @@ ComunicWeb.components.conversations.chatWindows = {
element: textMessage, element: textMessage,
}); });
//Enable slimscrool //Enable slimscroll
$(convInfos.box.messagesArea).slimscroll({ $(convInfos.box.messagesArea).slimscroll({
height: "250px", height: "250px",
}); });
@ -842,9 +842,54 @@ ComunicWeb.components.conversations.chatWindows = {
scrollTo: scrollBottom scrollTo: scrollBottom
}); });
//Initialize top scroll detection if required
this.initTopScrollDetection(conversationID);
//Success //Success
return true; return true;
}, },
/**
* Init top scroll detection (if required)
*
* @param {number} conversationID The ID of the target conversation
*/
initTopScrollDetection: function(conversationID){
//Extract conversation informations
var convInfo = this.__conversationsCache["conversation-"+conversationID];
//Check if nothing has to be done
if(convInfo.box.initializedScrollDetection)
return;
//Mark scroll detection as initialized
convInfo.box.initializedScrollDetection = true;
var scrollDetectionLocked = false;
var scrollTopCount = 0;
$(convInfo.box.messagesArea).slimScroll().bind("slimscrolling", function(e, pos){
if(scrollDetectionLocked)
return;
if(pos != 0){
scrollTopCount = 0;
}
scrollTopCount++;
//Check top count
if(scrollTopCount < 3)
return;
//Lock the detection
scrollDetectionLocked = true;
//Fetch older messages
console.log("Fetch old messages");
});
}
} }
//Register conversations cache cleaning function //Register conversations cache cleaning function

View File

@ -226,6 +226,41 @@ ComunicWeb.components.conversations.service = {
return true; return true;
}, },
/**
* Get the oldest messages of a conversation
*
* @param {number} conversationID The ID of the target conversation
* @return {numbert} The ID of the oldest message / -1 in case of failure
*/
getOldestMessageID: function(conversationID){
//Try to fetch information
if(this.__serviceCache){
if(this.__serviceCache['conversation-'+conversationID]){
return this.__serviceCache['conversation-'+conversationID].first_message_id;
}
}
//The conversation was not found
return -1;
},
/**
* Set the oldest messages of a conversation
*
* @param {number} conversationID The ID of the target conversation
* @param {numbert} firstMessageID New value for the first known message id
*/
setOldestMessageID: function(conversationID, firstMessageID){
//Try to fetch information
if(this.__serviceCache){
if(this.__serviceCache['conversation-'+conversationID]){
this.__serviceCache['conversation-'+conversationID].first_message_id = firstMessageID;
}
}
},
/** /**
* Empty service cache (unregister all conversations) * Empty service cache (unregister all conversations)
* *