-
+
- Secretário Assuntos sociais
- 14:23
+ {{msg.u.username}}
+ {{msg._updatedAt | date: 'HH:mm' }}
-

-
Investidura Filipe Nyusi
-
-
-
-
- Secretário Assuntos sociais
- 14:23
-
-
- Caros colegas, partilho o momento de confraternização do presidente Filipe Nyusi e de dua excelência, o presidente da república
-
-
-
-
- Presidente da República
- 14:23
-
-
- Pois é, momentos históricos
-
-
-
-
- Ministro do interior
- 16:23
-
-
- Grande momento
-
-
-
-
- Secretário Assuntos sociais
- 14:23
-
-
- Caros colegas, partilho o momento de confraternização do presidente Filipe Nyusi e de dua excelência, o presidente da república
-
-
-
-
- Secretário Assuntos sociais
- 14:23
-
-
- Caros colegas, partilho o momento de confraternização do presidente Filipe Nyusi e de dua excelência, o presidente da república
+ {{msg.msg}}
@@ -106,7 +60,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..3aadb96a8 100644
--- a/src/app/pages/chat/group-messages/group-messages.page.ts
+++ b/src/app/pages/chat/group-messages/group-messages.page.ts
@@ -1,9 +1,12 @@
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';
import { NewGroupPage } from '../new-group/new-group.page';
+import { GroupContactsPage } from './group-contacts/group-contacts.page';
@Component({
selector: 'app-group-messages',
@@ -11,8 +14,14 @@ import { NewGroupPage } from '../new-group/new-group.page';
styleUrls: ['./group-messages.page.scss'],
})
export class GroupMessagesPage implements OnInit {
-
+ isGroupCreated:boolean;
+ loggedUser: any;
message:any;
+ messages:any;
+
+
+ room:any;
+ members:any;
contacts: string[] = [" Ana M.", "Andre F.", "Bruno G.", "Catarina T", "Tiago"];
constructor(
@@ -20,9 +29,72 @@ export class GroupMessagesPage implements OnInit {
private modalController: ModalController,
private actionSheetController: ActionSheetController,
public popoverController: PopoverController,
- ) { }
+ private chatService: ChatService,
+ private navParams: NavParams,
+ private authService: AuthService,
+ ) {
+ this.isGroupCreated = true;
+ this.room = this.navParams.get('room');
+ }
ngOnInit() {
+ this.authService.userData$.subscribe((res:any)=>{
+ this.loggedUser=res;
+ console.log(this.loggedUser);
+ });
+ this.getGroupContacts();
+ this.loadGroupMessages()
+ }
+ close(){
+ this.modalController.dismiss();
+ }
+ 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);
+ let msgOnly = res['messages'].filter(data => data.t != 'au');
+ this.messages = msgOnly.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() {
@@ -54,23 +126,39 @@ export class GroupMessagesPage implements OnInit {
component: ChatPopoverPage,
cssClass: 'chat-popover',
event: ev,
+ componentProps: {
+ room: this.room,
+ },
translucent: true
});
- return await popover.present();
+ await popover.present();
+ popover.onDidDismiss().then(res=>{
+ if(res.data){
+ this.modalController.dismiss();
+ };
+
+ });
}
async openChatOptions(ev: any) {
const popover = await this.popoverController.create({
component: ChatOptionsPopoverPage,
cssClass: 'chat-options-popover',
event: ev,
+ componentProps: {
+ room: this.room,
+ },
translucent: true
});
return await popover.present();
}
async addContacts(){
+ this.close();
const modal = await this.modalController.create({
- component: ContactsPage,
- componentProps: {},
+ component: GroupContactsPage,
+ componentProps: {
+ isCreated: this.isGroupCreated,
+ room: this.room,
+ },
cssClass: 'contacts',
backdropDismiss: false
});
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/chat/messages/messages.page.ts b/src/app/pages/chat/messages/messages.page.ts
index ce5a3f1a5..ba034b2c4 100644
--- a/src/app/pages/chat/messages/messages.page.ts
+++ b/src/app/pages/chat/messages/messages.page.ts
@@ -46,10 +46,10 @@ export class MessagesPage implements OnInit, AfterViewChecked {
/* console.log(this.dm); */
- setInterval(()=>{
+ /* setInterval(()=>{ */
this.checkUserPresence();
this.loadMessages();
- }, 2000);
+ /* }, 2000); */
this.getChatMembers();
diff --git a/src/app/pages/chat/new-group/new-group.page.html b/src/app/pages/chat/new-group/new-group.page.html
index 5dbfe0769..8aa56b1cc 100644
--- a/src/app/pages/chat/new-group/new-group.page.html
+++ b/src/app/pages/chat/new-group/new-group.page.html
@@ -17,7 +17,7 @@
-
+
diff --git a/src/app/pages/chat/new-group/new-group.page.ts b/src/app/pages/chat/new-group/new-group.page.ts
index 4cd6e03be..f68fa0f96 100644
--- a/src/app/pages/chat/new-group/new-group.page.ts
+++ b/src/app/pages/chat/new-group/new-group.page.ts
@@ -1,8 +1,8 @@
import { analyzeAndValidateNgModules } from '@angular/compiler';
import { Component, OnInit } from '@angular/core';
-import { ModalController, PickerController, PopoverController } from '@ionic/angular';
+import { ModalController, NavParams, PickerController, PopoverController } from '@ionic/angular';
import { GroupDurationPage } from 'src/app/shared/popover/group-duration/group-duration.page';
-import { ContactsPage } from './contacts/contacts.page';
+import { GroupContactsPage } from '../group-messages/group-contacts/group-contacts.page';
@Component({
selector: 'app-new-group',
@@ -10,17 +10,22 @@ import { ContactsPage } from './contacts/contacts.page';
styleUrls: ['./new-group.page.scss'],
})
export class NewGroupPage implements OnInit {
+ isGroupCreated:boolean;
showLoader: boolean;
displayDuration: any;
showDuration: boolean;
selectedDuration = ['','',''];
+ groupName:string;
constructor(
private pickerController: PickerController,
private popoverController: PopoverController,
- private modalController: ModalController,
- ) {
-
+ private modalController: ModalController,
+ private navParams: NavParams,
+ )
+ {
+ this.isGroupCreated = false;
+ this.groupName = this.navParams.get('name');
}
ngOnInit() {
@@ -34,15 +39,20 @@ export class NewGroupPage implements OnInit {
}
async addContacts(){
+ this.modalController.dismiss();
+
const modal = await this.modalController.create({
- component: ContactsPage,
- componentProps: {},
+ component: GroupContactsPage,
+ componentProps: {
+ isCreated:this.isGroupCreated,
+ name:this.groupName,
+ duration:'',
+ },
cssClass: 'contacts',
backdropDismiss: false
});
await modal.present();
-
modal.onDidDismiss();
}
diff --git a/src/app/pages/events/attendee-modal/attendee-modal.page.html b/src/app/pages/events/attendee-modal/attendee-modal.page.html
index a00756b0c..84045ca5d 100644
--- a/src/app/pages/events/attendee-modal/attendee-modal.page.html
+++ b/src/app/pages/events/attendee-modal/attendee-modal.page.html
@@ -2,7 +2,7 @@
Adicionar intervenientes
-
+
@@ -11,7 +11,7 @@
-
+
{{ attendee.Name }}
{{ attendee.EmailAddress }}
diff --git a/src/app/pages/events/attendee-modal/attendee-modal.page.ts b/src/app/pages/events/attendee-modal/attendee-modal.page.ts
index 6671e9c40..bd4ca69d2 100644
--- a/src/app/pages/events/attendee-modal/attendee-modal.page.ts
+++ b/src/app/pages/events/attendee-modal/attendee-modal.page.ts
@@ -22,9 +22,11 @@ export class AttendeeModalPage implements OnInit {
}
save(){
- this.modalCtrl.dismiss(this.contacts.filter(function(contact) {
+ this.modalCtrl.dismiss(
+ this.contacts.filter(function(contact) {
return contact.IsRequired == true;
- }));
+ })
+ );
}
close(){
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/pages/login/login.page.ts b/src/app/pages/login/login.page.ts
index 962278a8d..3bbb3788a 100644
--- a/src/app/pages/login/login.page.ts
+++ b/src/app/pages/login/login.page.ts
@@ -67,7 +67,7 @@ export class LoginPage implements OnInit {
async Login(){
- /* try { */
+ try {
//Go to our home in home/feed.
//this.router.navigate(['/home/events']);
if(this.validateInput()){
@@ -91,9 +91,9 @@ export class LoginPage implements OnInit {
//this.toastService.presentToast('Preencha todos campos');
this.presentAlert('Por favor, insira o seu nome de utilizador e palavra-passe.');
}
- /* } catch (error) {
+ } catch (error) {
error
- this.presentAlert('Ocorreu um erro ao fazer login. Contacte o administrador de sistema. '+ error);
- } */
+ this.presentAlert('Ocorreu um erro ao fazer login. Contacte o administrador de sistema. ');
+ }
}
}
diff --git a/src/app/services/chat.service.ts b/src/app/services/chat.service.ts
index f400ca1ca..76c0ea9df 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);
}
@@ -69,6 +67,13 @@ export class ChatService {
getAllRooms(){
return this.http.get(environment.apiChatUrl+'rooms.get', this.options);
}
+ customsRooms(params:any){
+ let opts = {
+ headers: this.headers,
+ params: params
+ }
+ return this.http.get(environment.apiChatUrl+'rooms.get', opts);
+ }
getAllPrivateGroups(){
return this.http.get(environment.apiChatUrl+'groups.list', this.options);
}
@@ -96,7 +101,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 +154,79 @@ export class ChatService {
}
return this.http.get(environment.apiChatUrl+'im.messages', opts);
}
+
+ /* GROUPS */
+ addGroup(body:any){
+ return this.http.post(environment.apiChatUrl+'groups.create', body, this.options);
+ }
+ 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);
+ }
+ /* GROUP 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);
+ }
+ closeGroup(body:any){
+ return this.http.post(environment.apiChatUrl+'groups.close', body, this.options);
+ }
+ closeChannel(body:any){
+ return this.http.post(environment.apiChatUrl+'channels.close', body, this.options);
+ }
+ deleteGroup(body:any){
+ return this.http.post(environment.apiChatUrl+'groups.delete', body, this.options);
+ }
+ 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);
+ }
+
}
diff --git a/src/app/shared/popover/chat-popover/chat-popover.page.html b/src/app/shared/popover/chat-popover/chat-popover.page.html
index 93794cd0d..99e7c0640 100644
--- a/src/app/shared/popover/chat-popover/chat-popover.page.html
+++ b/src/app/shared/popover/chat-popover/chat-popover.page.html
@@ -1,7 +1,7 @@
-
+
@@ -12,7 +12,7 @@
-
+
diff --git a/src/app/shared/popover/chat-popover/chat-popover.page.ts b/src/app/shared/popover/chat-popover/chat-popover.page.ts
index 07c0841ee..e7e1b18f0 100644
--- a/src/app/shared/popover/chat-popover/chat-popover.page.ts
+++ b/src/app/shared/popover/chat-popover/chat-popover.page.ts
@@ -1,5 +1,6 @@
import { Component, OnInit } from '@angular/core';
-import { PopoverController } from '@ionic/angular';
+import { NavParams, PopoverController } from '@ionic/angular';
+import { ChatService } from 'src/app/services/chat.service';
@Component({
selector: 'app-chat-popover',
@@ -7,15 +8,54 @@ import { PopoverController } from '@ionic/angular';
styleUrls: ['./chat-popover.page.scss'],
})
export class ChatPopoverPage implements OnInit {
+ room:any;
constructor(
private popoverController: PopoverController,
- ) { }
+ private navParams: NavParams,
+ private chatService: ChatService,
+ ) {
+ this.room = this.navParams.get('room');
+ }
ngOnInit() {
+ console.log(this.room);
+
}
close(){
this.popoverController.dismiss();
}
+ //Top menu options
+ //Close
+ leaveGroup(){
+ let body = { "roomId":this.room._id, }
+ if(this.room.t === 'p'){
+ this.chatService.closeGroup(body).subscribe(res=>{
+ console.log(res);
+ });
+ }
+ else{
+ this.chatService.closeChannel(body).subscribe(res=>{
+ console.log(res);
+ });
+ }
+ this.popoverController.dismiss(true);
+ }
+ //Delete
+ deleteGroup(){
+ let body = { "roomId":this.room._id, }
+ if(this.room.t === 'p'){
+ this.chatService.deleteGroup(body).subscribe(res=>{
+ console.log(res);
+ });
+ }
+ else{
+ this.chatService.deleteChannel(body).subscribe(res=>{
+ console.log(res);
+ });
+ }
+ this.popoverController.dismiss(true);
+ }
+
}