diff --git a/src/app/models/chat/contact.model.ts b/src/app/models/chat/contact.model.ts index d0b33b646..3ab50877d 100644 --- a/src/app/models/chat/contact.model.ts +++ b/src/app/models/chat/contact.model.ts @@ -1,7 +1,6 @@ export class Contact{ _id: string; username: string; - name: string; - email:string; - isRequired: boolean; + name:string; + isChecked: boolean; } \ No newline at end of file diff --git a/src/app/pages/chat/group-messages/group-contacts/group-contacts.page.html b/src/app/pages/chat/group-messages/group-contacts/group-contacts.page.html index 302cb5b5f..c8d3791ed 100644 --- a/src/app/pages/chat/group-messages/group-contacts/group-contacts.page.html +++ b/src/app/pages/chat/group-messages/group-contacts/group-contacts.page.html @@ -8,7 +8,7 @@
Contactos
- + diff --git a/src/app/pages/chat/group-messages/group-contacts/group-contacts.page.ts b/src/app/pages/chat/group-messages/group-contacts/group-contacts.page.ts index 374a05ab6..9ed6da903 100644 --- a/src/app/pages/chat/group-messages/group-contacts/group-contacts.page.ts +++ b/src/app/pages/chat/group-messages/group-contacts/group-contacts.page.ts @@ -20,13 +20,14 @@ export class GroupContactsPage implements OnInit { headers: HttpHeaders; options:any; - + listContacts: any[]; contacts: any; textSearch:string; room:any; dm:any; isGroupCreated:boolean; groupName:string; + selectedUserList:any; constructor( private modalController: ModalController, @@ -59,7 +60,20 @@ export class GroupContactsPage implements OnInit { }; this.chatService.getAllUsers().subscribe((res:any)=>{ console.log(res.users); - this.contacts = res.users.filter(data => data.username != this.loggedUser.me.username); + res.users.forEach(user =>{ + let usr = { + "_id": user._id, + "username": user.username, + "name":user.name, + "isChecked": false, + } + if(this.listContacts == null){ + this.listContacts = new Array(); + } + this.listContacts.push(usr); + }); + + this.contacts = this.listContacts.filter(data => data.username != this.loggedUser.me.username); this.users = this.contacts.sort((a,b) => { if(a.name < b.name){ return -1; @@ -69,6 +83,8 @@ export class GroupContactsPage implements OnInit { } return 0; }); + console.log(this.users); + this.showLoader = false; }); } @@ -121,22 +137,54 @@ export class GroupContactsPage implements OnInit { } selectedContact(user:any){ - this.groupName = this.room.name; - console.log(user); - + /* this.groupName = this.room.name; */ + user.isChecked = !user.isChecked; + + } + addContacts(room:any){ + console.log(room); + this.selectedUserList = this.users.filter(function(contact) { + return contact.isChecked == true; + }); + console.log( this.selectedUserList); + this.selectedUserList.forEach(user=>{ + let body ={ + "roomId":room._id, + "userId":user._id, + + } + this.chatService.addUserToGroup(body).subscribe(res=>{ + console.log(res['success']); + }); + }); + } + createGroup(){ if(!this.isGroupCreated){ let body = { "name":this.groupName, } this.chatService.addGroup(body).subscribe(res=>{ + console.log('group created'); console.log(res['group']); + this.addContacts(res['group']); this.openGroupMessages(res['group']); + }); + } else{ + this.addContacts(this.room); this.openGroupMessages(this.room); + /* this.chatService.getGroupInfo(this.room._id).subscribe(res=>{ + console.log(res); + + this.addContacts(res['group']); + this.openGroupMessages(res['group']); + }) */ + } } + async newGroup(){ this.close(); const modal = await this.modalController.create({ @@ -149,9 +197,6 @@ export class GroupContactsPage implements OnInit { } async openGroupMessages(room:any){ - console.log(room); - this.createGroup(); - this.isGroupCreated=true; this.close(); const modal = await this.modalController.create({ component: GroupMessagesPage, diff --git a/src/app/pages/chat/group-messages/group-messages.page.html b/src/app/pages/chat/group-messages/group-messages.page.html index 77ed67714..207ee50e3 100644 --- a/src/app/pages/chat/group-messages/group-messages.page.html +++ b/src/app/pages/chat/group-messages/group-messages.page.html @@ -10,9 +10,9 @@ -
+
- +
diff --git a/src/app/pages/chat/group-messages/group-messages.page.ts b/src/app/pages/chat/group-messages/group-messages.page.ts index 98ce03818..3aadb96a8 100644 --- a/src/app/pages/chat/group-messages/group-messages.page.ts +++ b/src/app/pages/chat/group-messages/group-messages.page.ts @@ -45,6 +45,9 @@ export class GroupMessagesPage implements OnInit { this.getGroupContacts(); this.loadGroupMessages() } + close(){ + this.modalController.dismiss(); + } getGroupContacts(){ //If group is private call getGroupMembers if(this.room.t === 'p'){ @@ -67,7 +70,8 @@ export class GroupMessagesPage implements OnInit { if(this.room.t === 'p'){ this.chatService.getPrivateGroupMessages(this.room._id).subscribe(res=>{ console.log(res); - this.messages = res['messages'].reverse(); + let msgOnly = res['messages'].filter(data => data.t != 'au'); + this.messages = msgOnly.reverse(); }); } //Otherwise call getChannelMembers for públic groups @@ -148,6 +152,7 @@ export class GroupMessagesPage implements OnInit { return await popover.present(); } async addContacts(){ + this.close(); const modal = await this.modalController.create({ component: GroupContactsPage, componentProps: { diff --git a/src/app/services/chat.service.ts b/src/app/services/chat.service.ts index 983751144..76c0ea9df 100644 --- a/src/app/services/chat.service.ts +++ b/src/app/services/chat.service.ts @@ -194,7 +194,6 @@ export class ChatService { return this.http.get(environment.apiChatUrl+'groups.history', opts); } getPublicGroupMessages(roomId:any){ - let params = new HttpParams(); params = params.set("roomId", roomId); @@ -216,5 +215,18 @@ export class ChatService { deleteChannel(body:any){ return this.http.post(environment.apiChatUrl+'channels.delete', body, this.options); } + addUserToGroup(body:any){ + return this.http.post(environment.apiChatUrl+'groups.invite', body, this.options); + } + getGroupInfo(roomId:any){ + let params = new HttpParams(); + params = params.set("roomId", roomId); + + let opts = { + headers: this.headers, + params: params + } + return this.http.get(environment.apiChatUrl+'groups.info', opts); + } }