diff --git a/src/app/pages/chat/chat.page.html b/src/app/pages/chat/chat.page.html
index 999f7b612..10611a82c 100644
--- a/src/app/pages/chat/chat.page.html
+++ b/src/app/pages/chat/chat.page.html
@@ -112,14 +112,14 @@
+
{{group.name}}
-
{{group.lastMessage._updatedAt | date: 'HH:mm'}}
+
{{group.lastMessage._updatedAt | date: 'HH:mm'}}
-
+
{{group.lastMessage.u.name}}: {{group.lastMessage.msg}}
diff --git a/src/app/pages/chat/chat.page.ts b/src/app/pages/chat/chat.page.ts
index 3bd982683..1ee38f462 100644
--- a/src/app/pages/chat/chat.page.ts
+++ b/src/app/pages/chat/chat.page.ts
@@ -72,17 +72,7 @@ export class ChatPage implements OnInit {
this.getGroups();
}, 2000);
}
- getGroups(){
- this.showLoader = true;
- this.result = this.chatService.getAllPrivateGroups().subscribe((res:any)=>{
- this.privateGroups = res.groups;
- this.result = this.chatService.getAllUserChannels().subscribe((res:any)=>{
- this.publicGroups = res.channels;
- this.allGroups = this.privateGroups.concat(this.publicGroups);
- this.showLoader = false;
- });
- });
- }
+
getDirectMessages(){
this.showLoader = true;
@@ -93,7 +83,7 @@ export class ChatPage implements OnInit {
this.userDirectMessages = res.ims.sort((a,b)=>{
var dateA = new Date(a.lastMessage._updatedAt).getTime();
var dateB = new Date(b.lastMessage._updatedAt).getTime();
- return dateB - dateB;
+ return dateB - dateA;
});
console.log(this.userDirectMessages);
@@ -107,6 +97,24 @@ export class ChatPage implements OnInit {
console.log(this.dmUsers); */
});
}
+ getGroups(){
+ this.showLoader = true;
+ this.result = this.chatService.getAllPrivateGroups().subscribe((res:any)=>{
+ this.privateGroups = res.groups;
+ this.result = this.chatService.getAllUserChannels().subscribe((res:any)=>{
+ this.publicGroups = res.channels;
+ let all = this.privateGroups.concat(this.publicGroups);
+ this.allGroups = all.sort((a,b)=>{
+ var dateA = new Date(a.lastMessage._updatedAt).getTime();
+ var dateB = new Date(b.lastMessage._updatedAt).getTime();
+ return dateB - dateA;
+ });
+ console.log(this.allGroups);
+
+ this.showLoader = false;
+ });
+ });
+ }
/* getConnectedChannels(){
this.showLoader = true;
@@ -183,13 +191,15 @@ export class ChatPage implements OnInit {
await modal.present();
modal.onDidDismiss();
}
- async openGroupMessages(user:any){
+ async openGroupMessages(room:any){
+ console.log(room);
+
const modal = await this.modalController.create({
component: GroupMessagesPage,
cssClass: 'group-messages',
backdropDismiss: false,
componentProps: {
- user: user,
+ room: room,
},
});
await modal.present();
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 ca0a8e4b8..d4acf5806 100644
--- a/src/app/pages/chat/group-messages/group-messages.page.html
+++ b/src/app/pages/chat/group-messages/group-messages.page.html
@@ -4,7 +4,7 @@
@@ -31,7 +31,16 @@
A conversa original mantêm-se como chat individual
-
+
+
+ {{msg.u.username}}
+ {{msg._updatedAt | date: 'HH:mm' }}
+
+
+ {{msg.msg}}
+
+
+
@@ -106,7 +115,7 @@
-
+
diff --git a/src/app/pages/chat/group-messages/group-messages.page.scss b/src/app/pages/chat/group-messages/group-messages.page.scss
index cbe5a62e7..7606ec8d5 100644
--- a/src/app/pages/chat/group-messages/group-messages.page.scss
+++ b/src/app/pages/chat/group-messages/group-messages.page.scss
@@ -95,20 +95,19 @@
font-family: Roboto;
overflow: auto;
- .incoming, .outgoing{
+ .incoming-true, .incoming-false{
width: 305px;
padding: 15px 20px;
border-radius: 10px;
}
- .incoming{
+ .incoming-true{
margin: 10px 75px 10px 20px;
background: #ebebeb;
float: left;
-
}
}
- .outgoing{
+ .incoming-false{
margin: 10px 20px 10px 75px;
background: #e4f4fe;
float: right;
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 5399545da..cbded2e83 100644
--- a/src/app/pages/chat/group-messages/group-messages.page.ts
+++ b/src/app/pages/chat/group-messages/group-messages.page.ts
@@ -1,5 +1,7 @@
import { Component, OnInit } from '@angular/core';
-import { ActionSheetController, MenuController, ModalController, PopoverController } from '@ionic/angular';
+import { ActionSheetController, MenuController, ModalController, NavParams, PopoverController } from '@ionic/angular';
+import { AuthService } from 'src/app/services/auth.service';
+import { ChatService } from 'src/app/services/chat.service';
import { ChatOptionsPopoverPage } from 'src/app/shared/popover/chat-options-popover/chat-options-popover.page';
import { ChatPopoverPage } from 'src/app/shared/popover/chat-popover/chat-popover.page';
import { ContactsPage } from '../new-group/contacts/contacts.page';
@@ -11,8 +13,11 @@ import { NewGroupPage } from '../new-group/new-group.page';
styleUrls: ['./group-messages.page.scss'],
})
export class GroupMessagesPage implements OnInit {
-
+ loggedUser: any;
message:any;
+ messages:any;
+ room:any;
+ members:any;
contacts: string[] = [" Ana M.", "Andre F.", "Bruno G.", "Catarina T", "Tiago"];
constructor(
@@ -20,9 +25,67 @@ export class GroupMessagesPage implements OnInit {
private modalController: ModalController,
private actionSheetController: ActionSheetController,
public popoverController: PopoverController,
- ) { }
+ private chatService: ChatService,
+ private navParams: NavParams,
+ private authService: AuthService,
+ ) {
+ this.room = this.navParams.get('room');
+ }
ngOnInit() {
+ this.authService.userData$.subscribe((res:any)=>{
+ this.loggedUser=res;
+ console.log(this.loggedUser);
+ });
+ this.getGroupContacts();
+ this.loadGroupMessages()
+ }
+ getGroupContacts(){
+ //If group is private call getGroupMembers
+ if(this.room.t === 'p'){
+ this.chatService.getGroupMembers(this.room._id).subscribe(res=>{
+ console.log(res);
+ this.members = res['members'];
+ });
+ }
+ //Otherwise call getChannelMembers for públic groups
+ else{
+ this.chatService.getChannelMembers(this.room._id).subscribe(res=>{
+ console.log(res);
+ this.members = res['members'];
+ });
+ }
+ }
+ loadGroupMessages(){
+
+ //If group is private call getGroupMembers
+ if(this.room.t === 'p'){
+ this.chatService.getPrivateGroupMessages(this.room._id).subscribe(res=>{
+ console.log(res);
+ this.messages = res['messages'].reverse();
+ });
+ }
+ //Otherwise call getChannelMembers for públic groups
+ else{
+ this.chatService.getPublicGroupMessages(this.room._id).subscribe(res=>{
+ console.log(res);
+ this.messages = res['messages'].reverse();
+ });
+ }
+ }
+ sendMessage(){
+
+ let body = {
+ "message":
+ {
+ "rid": this.room._id, "msg": this.message
+ }
+ }
+
+ this.chatService.sendMessage(body).subscribe(res=> {
+ this.loadGroupMessages();
+ });
+ this.message = "";
}
async actionSheet() {
diff --git a/src/app/pages/chat/messages/messages.page.scss b/src/app/pages/chat/messages/messages.page.scss
index c485116ff..64f00a658 100644
--- a/src/app/pages/chat/messages/messages.page.scss
+++ b/src/app/pages/chat/messages/messages.page.scss
@@ -116,14 +116,12 @@
width: 305px;
padding: 15px 20px;
border-radius: 10px;
-
}
.incoming-true{
margin: 10px 75px 10px 20px;
background: #ebebeb;
float: left;
-
}
}
.incoming-false{
diff --git a/src/app/pages/gabinete-digital/expediente/expediente-detail/expediente-detail.page.ts b/src/app/pages/gabinete-digital/expediente/expediente-detail/expediente-detail.page.ts
index c84865057..ecc6680a0 100644
--- a/src/app/pages/gabinete-digital/expediente/expediente-detail/expediente-detail.page.ts
+++ b/src/app/pages/gabinete-digital/expediente/expediente-detail/expediente-detail.page.ts
@@ -84,8 +84,7 @@ export class ExpedienteDetailPage implements OnInit {
}
}
- viewDocument()
- {
+ viewDocument(){
const url: string = this.task.DocumentURL.replace("webTRIX.Viewer","webTRIX.Viewer.Branch1");
const browser = this.iab.create(url,"_blank");
browser.show();
diff --git a/src/app/services/chat.service.ts b/src/app/services/chat.service.ts
index f400ca1ca..7e2ecd145 100644
--- a/src/app/services/chat.service.ts
+++ b/src/app/services/chat.service.ts
@@ -56,9 +56,7 @@ export class ChatService {
});
} */
- getAllDirectMessages(){
- return this.http.get(environment.apiChatUrl+'im.list', this.options);
- }
+
getAllChannels(){
return this.http.get(environment.apiChatUrl+'channels.list', this.options);
}
@@ -96,7 +94,9 @@ export class ChatService {
loadJoinedRooms(){
return this.http.get(environment.apiChatUrl+'im.list', this.options);
}
-
+ getAllDirectMessages(){
+ return this.http.get(environment.apiChatUrl+'im.list', this.options);
+ }
//Load messages from roomId
getRoomMessages(roomId:any){
@@ -147,5 +147,52 @@ export class ChatService {
}
return this.http.get(environment.apiChatUrl+'im.messages', opts);
}
+
+ /* GROUPS */
+ getGroupMembers(roomId:string){
+ let params = new HttpParams();
+ let url=environment.apiChatUrl+'groups.members';
+ params = params.set("roomId", roomId);
+ let opts = {
+ headers: this.headers,
+ params: params
+ }
+ return this.http.get(url, opts);
+ }
+ getChannelMembers(roomId:string){
+ let params = new HttpParams();
+ let url=environment.apiChatUrl+'channels.members';
+ params = params.set("roomId", roomId);
+
+ let opts = {
+ headers: this.headers,
+ params: params
+ }
+ return this.http.get(url, opts);
+ }
+ /* MESSAGES */
+ getPrivateGroupMessages(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.history', opts);
+ }
+ getPublicGroupMessages(roomId:any){
+
+ let params = new HttpParams();
+ params = params.set("roomId", roomId);
+
+ let opts = {
+ headers: this.headers,
+ params: params
+ }
+ return this.http.get(environment.apiChatUrl+'channels.history', opts);
+ }
+
}