mirror of
				https://github.com/pierre42100/ComunicWeb
				synced 2025-11-03 19:54:14 +00:00 
			
		
		
		
	Can leave / delete a conversation
This commit is contained in:
		@@ -571,7 +571,7 @@ const ConvChatWindow = {
 | 
			
		||||
				removeLink.addEventListener("click", async e => {
 | 
			
		||||
					e.preventDefault();
 | 
			
		||||
 | 
			
		||||
					if(!await showConfirmDialog(tr("Do you really want to remove %1% from the conversation ?", {"1": user.fullName})))
 | 
			
		||||
					if(!await showConfirmDialog(tr("Do you really want to remove %1% from the conversation?", {"1": user.fullName})))
 | 
			
		||||
						return;
 | 
			
		||||
					
 | 
			
		||||
					try {
 | 
			
		||||
@@ -585,6 +585,36 @@ const ConvChatWindow = {
 | 
			
		||||
				})
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			// Leave conversation
 | 
			
		||||
			if(member.user_id == userID()) {
 | 
			
		||||
				let removeLink = createElem2({
 | 
			
		||||
					type: "a",
 | 
			
		||||
					appendTo: status,
 | 
			
		||||
					innerHTML: tr("Leave")
 | 
			
		||||
				})
 | 
			
		||||
 | 
			
		||||
				removeLink.addEventListener("click", async e => {
 | 
			
		||||
					e.preventDefault();
 | 
			
		||||
 | 
			
		||||
					const isLastAdmin = conv.members.filter(m => m.is_admin && m.user_id != userID()).length == 0;
 | 
			
		||||
					const msg = isLastAdmin ? tr("As you are its last admin, if you leave this conversation, it will be permanently deleted!")
 | 
			
		||||
						 : tr("Do you really want to leave this conversation?");
 | 
			
		||||
 | 
			
		||||
					if(!await showConfirmDialog(msg))
 | 
			
		||||
						return;
 | 
			
		||||
					
 | 
			
		||||
					try {
 | 
			
		||||
						await ConversationsInterface.leaveConversation(conv.id, member.user_id);
 | 
			
		||||
 | 
			
		||||
						// Close the conversation
 | 
			
		||||
						info.box.closeFunction();
 | 
			
		||||
					} catch(e) {
 | 
			
		||||
						console.error(e);
 | 
			
		||||
						notify(tr("Failed to leave conversation!"), "danger");
 | 
			
		||||
					}
 | 
			
		||||
				})
 | 
			
		||||
			}
 | 
			
		||||
			
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Enable slimscrooll
 | 
			
		||||
 
 | 
			
		||||
@@ -483,6 +483,18 @@ const ConversationsInterface = {
 | 
			
		||||
		}, true);
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Leave a conversation
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @param {number} convID Conversation ID
 | 
			
		||||
	 * @param {number} userID Target user
 | 
			
		||||
	 */
 | 
			
		||||
	leaveConversation: async function(convID, userID) {
 | 
			
		||||
		await api("conversations/delete", {
 | 
			
		||||
			conversationID: convID,
 | 
			
		||||
			userID: userID
 | 
			
		||||
		}, true);
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Empty conversations cache
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user