Better integration of groups conversations

This commit is contained in:
Pierre HUBERT 2021-04-05 17:08:59 +02:00
parent 0479a4d7a5
commit b99c1e4a7f
3 changed files with 26 additions and 11 deletions

View File

@ -222,10 +222,13 @@ function log(message){
* @param {number} id The ID of the conversation to open * @param {number} id The ID of the conversation to open
* @param {bool} fullscreen Specify whether the conversation has to * @param {bool} fullscreen Specify whether the conversation has to
* appear in full screen or not * appear in full screen or not
* @param {number} group_id Related group ID (if any)
*/ */
function openConversation(id, fullscreen = false){ function openConversation(id, fullscreen = false, group_id){
if(!fullscreen) if(!fullscreen)
ComunicWeb.components.conversations.manager.addConversation(id); ComunicWeb.components.conversations.manager.addConversation(id);
else if (group_id)
Page.openPage("groups/" + group_id + "/conversation/" + id);
else else
openPage("conversations/" + id); openPage("conversations/" + id);
} }

View File

@ -305,7 +305,7 @@ const ConvChatWindow = {
this.__conversationsCache["conversation-"+conversationID] = conversationInfos; this.__conversationsCache["conversation-"+conversationID] = conversationInfos;
//Change the name of the conversation //Change the name of the conversation
this.changeName(await getConvName(conv), conversationWindow); this.changeName(await getConvName(conv), conversationWindow, conv);
// Apply the color of the conversation (if any) // Apply the color of the conversation (if any)
if (conv.color) if (conv.color)
@ -395,9 +395,10 @@ const ConvChatWindow = {
* *
* @param {String} newName The new name for the conversation window * @param {String} newName The new name for the conversation window
* @param {Ojbect} info Information about the conversation window * @param {Ojbect} info Information about the conversation window
* @param {Conversation} conv Conversation information (if available)
* @return {Boolean} True for a success * @return {Boolean} True for a success
*/ */
changeName: function(newName, info){ changeName: function(newName, info, conv){
//Reduce new name //Reduce new name
if(newName.length > 18) if(newName.length > 18)
@ -412,7 +413,7 @@ const ConvChatWindow = {
appendTo: info.boxTitle, appendTo: info.boxTitle,
class: "fa fa-comments", class: "fa fa-comments",
ondblclick: () => { ondblclick: () => {
openConversation(info.conversationID, true); openConversation(info.conversationID, true, conv ? conv.group_id : null);
info.closeFunction(); info.closeFunction();
} }
}); });
@ -429,7 +430,7 @@ const ConvChatWindow = {
/** /**
* Update conversation members list * Update conversation members list
* *
* @param {Object} conv Information about the conversation * @param {Object} info Information about the conversation
* @return {Boolean} True for a success * @return {Boolean} True for a success
*/ */
updateMembersList: function(info) { updateMembersList: function(info) {
@ -544,6 +545,9 @@ const ConvChatWindow = {
innerHTML: (member.is_admin ? tr("Admin") : tr("Member")) + " " innerHTML: (member.is_admin ? tr("Admin") : tr("Member")) + " "
}); });
if (conv.group_id)
continue;
// Set / unset admin // Set / unset admin
if(canRemoveUsers && member.user_id != userID()) { if(canRemoveUsers && member.user_id != userID()) {
@ -716,6 +720,19 @@ const ConvChatWindow = {
settingsForm.allowEveryoneToAddMembers.parentNode.parentNode.remove(); settingsForm.allowEveryoneToAddMembers.parentNode.parentNode.remove();
} }
// It is not possible to update conversation info in managed conversations
if (conversation.infos.group_id) {
settingsForm.allowEveryoneToAddMembers.parentNode.parentNode.remove();
createElem2({
type: "a",
class: "a",
insertBefore: settingsForm.rootElem.children[0],
innerHTML: "This conversation is managed by a group",
onclick: () => openPage("groups/" + conversation.infos.group_id)
})
}
//Update follow conversation checkbox status //Update follow conversation checkbox status
$(settingsForm.followConversationInput).iCheck(conversation.infos.members.find(m => m.user_id == userID()).following ? "check" : "uncheck"); $(settingsForm.followConversationInput).iCheck(conversation.infos.members.find(m => m.user_id == userID()).following ? "check" : "uncheck");

View File

@ -600,12 +600,7 @@ const SidebarMain = {
let a = createElem2({ let a = createElem2({
appendTo: li, appendTo: li,
type: "a", type: "a",
onclick: () => { onclick: () => openConversation(conv.id, true, conv.group_id)
if (!conv.group_id)
openConversation(conv.id, true)
else
Page.openPage("groups/" + conv.group_id + "/conversation/" + conv.id);
}
}); });
// Icon // Icon