mirror of
https://github.com/pierre42100/ComunicWeb
synced 2024-11-22 20:19:21 +00:00
Display the list of conversations
This commit is contained in:
parent
1d9ae0dadd
commit
e376c789a6
@ -49,6 +49,115 @@ ComunicWeb.pages.conversations.listPane = {
|
|||||||
class: "conv-list-loading-msg",
|
class: "conv-list-loading-msg",
|
||||||
innerHTML: "Loading, please wait..."
|
innerHTML: "Loading, please wait..."
|
||||||
});
|
});
|
||||||
|
|
||||||
|
//Load the list of conversations
|
||||||
|
ComunicWeb.components.conversations.interface.getList(function(result){
|
||||||
|
|
||||||
|
//Check for errors
|
||||||
|
if(result.error){
|
||||||
|
loadingMsg.innerHTML = "An error occured !";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Remove loading message
|
||||||
|
loadingMsg.remove();
|
||||||
|
|
||||||
|
//Display the list of conversations
|
||||||
|
ComunicWeb.pages.conversations.listPane._display_list(boxBody, result);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display the list of conversations
|
||||||
|
*
|
||||||
|
* @param {HTMLElement} target The target for the list
|
||||||
|
* @param {Object} list The list of conversations
|
||||||
|
*/
|
||||||
|
_display_list: function(target, list){
|
||||||
|
|
||||||
|
//Create the conversations container
|
||||||
|
var conversationsContainer = createElem2({
|
||||||
|
appendTo: target,
|
||||||
|
type: "ul",
|
||||||
|
class: "nav nav-pills nav-stacked"
|
||||||
|
});
|
||||||
|
|
||||||
|
//Process the list of conversations
|
||||||
|
for (const num in list) {
|
||||||
|
if (list.hasOwnProperty(num)) {
|
||||||
|
const conversation = list[num];
|
||||||
|
|
||||||
|
//Display conversation element
|
||||||
|
this._display_entry(conversationsContainer, conversation);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display a single conversation entry
|
||||||
|
*
|
||||||
|
* @param {HTMLElement} target The target for the conversation
|
||||||
|
* @param {Object} info Information about the conversation to display
|
||||||
|
*/
|
||||||
|
_display_entry: function(target, info){
|
||||||
|
|
||||||
|
//Create conversation container element
|
||||||
|
var convContainer = createElem2({
|
||||||
|
appendTo: target,
|
||||||
|
type: "li"
|
||||||
|
});
|
||||||
|
|
||||||
|
//Create conversation link element
|
||||||
|
var convLink = createElem2({
|
||||||
|
appendTo: convContainer,
|
||||||
|
type: "a"
|
||||||
|
});
|
||||||
|
|
||||||
|
//Add conversation last activity on the rigth
|
||||||
|
var lastActivityContainer = createElem2({
|
||||||
|
appendTo: convLink,
|
||||||
|
type: "small",
|
||||||
|
class: "pull-right last-activity",
|
||||||
|
innerHTML: "<i class='fa fa-clock-o'></i> "
|
||||||
|
});
|
||||||
|
|
||||||
|
//Add last activity
|
||||||
|
createElem2({
|
||||||
|
appendTo: lastActivityContainer,
|
||||||
|
type: "span",
|
||||||
|
innerHTML: ComunicWeb.common.date.timeDiffToStr(info.last_active)
|
||||||
|
});
|
||||||
|
|
||||||
|
//Add conversation name
|
||||||
|
var conversationName = createElem2({
|
||||||
|
appendTo: convLink,
|
||||||
|
type: "strong",
|
||||||
|
innerHTML: "Loading..."
|
||||||
|
});
|
||||||
|
ComunicWeb.components.conversations.utils.getName(info, function(name){
|
||||||
|
conversationName.innerHTML = name;
|
||||||
|
});
|
||||||
|
|
||||||
|
//Append the number of members of the conversation
|
||||||
|
var membersNumberContainer = createElem2({
|
||||||
|
appendTo: convLink,
|
||||||
|
type: "p",
|
||||||
|
class: "number-members-conversation"
|
||||||
|
});
|
||||||
|
|
||||||
|
var membersNumberContainerSmall = createElem2({
|
||||||
|
appendTo: membersNumberContainer,
|
||||||
|
type: "small",
|
||||||
|
innerHTML: "<i class='fa fa-users'></i> "
|
||||||
|
});
|
||||||
|
createElem2({
|
||||||
|
appendTo: membersNumberContainerSmall,
|
||||||
|
type: "span",
|
||||||
|
innerHTML: (info.members.length === 1 ? "1 member" : info.members.length + " members")
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user