mirror of
				https://github.com/pierre42100/ComunicWeb
				synced 2025-11-04 04:04:20 +00:00 
			
		
		
		
	Better integration of groups conversations
This commit is contained in:
		@@ -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);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user