diff --git a/src/app/guards/login.guard.ts b/src/app/guards/login.guard.ts index d086c6180..d035602a3 100644 --- a/src/app/guards/login.guard.ts +++ b/src/app/guards/login.guard.ts @@ -19,9 +19,6 @@ export class LoginGuard implements CanActivate { route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree { - // console.log(SessionStore.exist, SessionStore.user.Inactivity, SessionStore.user.LoginPreference) - - console.log(SessionStore.exist, SessionStore.user.Inactivity, SessionStore.user.LoginPreference) if(SessionStore.exist && SessionStore.user.Inactivity && SessionStore.user.LoginPreference != 'Pin' ) { this.router.navigate(['/home/events']); return false diff --git a/src/app/pages/chat/chat.page.html b/src/app/pages/chat/chat.page.html index 913bdbebe..17440a86f 100644 --- a/src/app/pages/chat/chat.page.html +++ b/src/app/pages/chat/chat.page.html @@ -128,7 +128,7 @@ {{group.name.split('-').join(' ')}}
{{group.duration}}
-
{{countDownDate(group.customFields.countDownDate, group.id)}}
+
{{group.countDownTime}}
{{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 959fd66c4..56e136bf9 100644 --- a/src/app/pages/chat/chat.page.ts +++ b/src/app/pages/chat/chat.page.ts @@ -44,7 +44,6 @@ export class ChatPage implements OnInit { X_Auth_Token: any; loggedUser: any; - /* Set segment variable */ segment: string; allGroups: any[]; privateGroups: any[]; @@ -90,8 +89,6 @@ export class ChatPage implements OnInit { "support": ["1"] }; - - /* Fim websockets variables*/ loggedUserChat: any; hideRefreshBtn = true; @@ -128,7 +125,6 @@ export class ChatPage implements OnInit { this.showLoader = true; - //this.load() } ngOnInit() { @@ -497,16 +493,11 @@ export class ChatPage implements OnInit { } async getChatMembers() { - //return await this.chatService.getMembers(roomId).toPromise(); + this.chatService.getAllUsers().subscribe(res => { // this.transformDataUserList(res['users']) - /* if (this.platform.is('desktop') || this.platform.is('mobileweb')) { - this.dmUsers = res['users'].filter(data => data.username != this.loggedUserChat.me.username); - // - }*/ - }); } @@ -563,23 +554,6 @@ export class ChatPage implements OnInit { }) - /* this.sqlservice.getAllChatUsers().then((userslist: any) => { - - let chatusersArray = []; - userslist.forEach(element => { - - let userListDB = { - _id: element.Id, - name: element.Name, - username: element.Username - } - - chatusersArray.push(userListDB); - }); - - this.dmUsers = chatusersArray.filter(data => data.username != this.loggedUserChat.me.username); - - }) */ } } @@ -635,16 +609,7 @@ export class ChatPage implements OnInit { 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 = this.privateGroups.sort((a, b) => { - var dateA = new Date(a._updatedAt).getTime(); - var dateB = new Date(b._updatedAt).getTime(); - return dateB - dateA; - }); */ - // - /* }); */ + if (this.route.url != "/home/chat") { // } @@ -735,10 +700,5 @@ export class ChatPage implements OnInit { modal.onDidDismiss(); } - // this.crop.crop('path/to/image.jpg', {quality: 75}) - // .then( - // newImage => - // error => console.error('Error cropping image', error) - // ); - } + diff --git a/src/app/services/alert.service.ts b/src/app/services/alert.service.ts index da8612c3d..f8036a981 100644 --- a/src/app/services/alert.service.ts +++ b/src/app/services/alert.service.ts @@ -58,7 +58,7 @@ export class AlertService { handler: () => { //const loader = this.toastService.loading(); - this.wsChatMethodsService.deleteMessage(msgId).then(()=>{ + this.wsChatMethodsService.deleteMessage(msgId).then(() => { room.deleteMessage(msgId) }) //this.wsChatMethodsService.subscribeToRoomUpdate(room._id, room); diff --git a/src/app/services/chat/room.service.ts b/src/app/services/chat/room.service.ts index 42e167c69..7b319d875 100644 --- a/src/app/services/chat/room.service.ts +++ b/src/app/services/chat/room.service.ts @@ -2,7 +2,6 @@ import { Injectable } from '@angular/core'; import { WsChatService } from 'src/app/services/chat/ws-chat.service'; import { MessageService } from 'src/app/services/chat/message.service'; import { showDateDuration } from 'src/plugin/showDateDuration'; -import { ToastsService } from '../toast.service'; import { chatHistory } from 'src/app/models/chatMethod'; import { Storage } from '@ionic/storage'; import { Platform } from '@ionic/angular'; @@ -16,13 +15,14 @@ import { environment } from 'src/environments/environment'; import { ChatService } from 'src/app/services/chat.service'; import { NfService } from 'src/app/services/chat/nf.service'; import { v4 as uuidv4 } from 'uuid' -import { ChatStorageService } from './chat-storage.service' -import { ChatMethodsService } from './chat-methods.service' -import { DeleteMessageModel, MessageModel } from '../../models/beast-orm' -import { AESEncrypt } from '../aesencrypt.service' +import { ChatStorageService } from './chat-storage.service'; +import { ChatMethodsService } from './chat-methods.service'; +import { DeleteMessageModel, MessageModel } from '../../models/beast-orm'; +import { AESEncrypt } from '../aesencrypt.service'; import { IncomingChatMessage, ChatMessageInterface, falseTypingMethod } from 'src/app/models/message.model'; import { AttachmentsService } from 'src/app/services/attachments.service'; import { ConnectionStatus, NetworkServiceService} from 'src/app/services/network-service.service'; +import { WsChatMethodsService } from './ws-chat-methods.service'; @Injectable({ providedIn: 'root' @@ -52,6 +52,7 @@ export class RoomService { members = [] u sessionStore = SessionStore + countDownTime = '' scrollDown = () => { } @@ -80,7 +81,8 @@ export class RoomService { private ChatMethodsService: ChatMethodsService, private AESEncrypt: AESEncrypt, private AttachmentsService: AttachmentsService, - private NetworkServiceService: NetworkServiceService + private NetworkServiceService: NetworkServiceService, + private wsChatMethodsService: WsChatMethodsService ) { this.NativeNotificationService.askForPermission() @@ -157,6 +159,58 @@ export class RoomService { this.calDateDuration() this.restoreMessageFromDB() + + if(this.customFields?.countDownDate) { + this.countDownDate(this.customFields.countDownDate); + } + + } + + countDownDate(date) { + let difference = new Date(date).getTime() - new Date().getTime(); + let c_day = Math.floor(difference/(1000*60*60*24)); + let c_hours = Math.floor((difference % (1000*60*60*24)) / (1000*60*60)); + let c_minutes = Math.floor((difference % (1000*60*60)) / (1000*60)); + let c_seconds = Math.floor((difference % (1000*60)) / 1000); + + this.countDownTime = this.addZero(c_day) + " : " + this.addZero(c_hours) + " : " + this.addZero(c_minutes) + " : " + this.addZero(c_seconds) ; + + if(difference < 0) { + + this.deleteRoom() + + } else { + setTimeout(() => { + this.countDownDate(date) + }, 1000) + } + } + + addZero(i) { + if (i < 10) { + i = "0" + i; + } + return i; + } + + deleteRoom() { + this.countDownTime = "Expired"; + let body = { "roomId": this.id } + + this.chatService.getRoomInfo(this.id).subscribe(room=>{ + + + if(this.t === 'p') { + this.chatService.deleteGroup(body).subscribe(res=>{ + this.wsChatMethodsService.deleteRoom(this.id) + }); + } + else { + this.chatService.deleteChannel(body).subscribe(res=>{ + this.wsChatMethodsService.deleteRoom(this.id) + }); + } + }); } diff --git a/src/app/services/chat/ws-chat-methods.service.ts b/src/app/services/chat/ws-chat-methods.service.ts index 8f787e4d6..3afc12ba9 100644 --- a/src/app/services/chat/ws-chat-methods.service.ts +++ b/src/app/services/chat/ws-chat-methods.service.ts @@ -60,7 +60,7 @@ export class WsChatMethodsService { private ChatMethodsService:ChatMethodsService, private AESEncrypt: AESEncrypt, private AttachmentsService:AttachmentsService, - private NetworkServiceService: NetworkServiceService + private NetworkServiceService: NetworkServiceService, ) { this.loggedUser = authService.ValidatedUserChat['data']; @@ -106,14 +106,14 @@ export class WsChatMethodsService { } async ReLoadChat() { - await this.restoreRooms() + await this.restoreRooms(); await this.getAllRooms(); - this.subscribeToRoom() + this.subscribeToRoom(); // - await this.getUser() - this.getUserStatus() + await this.getUser(); + this.getUserStatus(); } clearChat() { @@ -321,11 +321,11 @@ export class WsChatMethodsService { members: roomData.members } - let roomId = this.getRoomId(roomData) + let roomId = this.getRoomId(roomData); // create room if(!this.roomExist(roomId)) { - let room:RoomService = new RoomService(this.WsChatService, new MessageService(this.storage, this.NfService, this.WsChatService, this.ChatStorageService, this.ChatMethodsService, this.AESEncrypt, this.AttachmentsService, this.NetworkServiceService), this.storage, this.platform, this.sqlservice, this.NativeNotificationService, this.sortService, this.ChatService, this.NfService , this.ChatStorageService, this.ChatMethodsService, this.AESEncrypt, this.AttachmentsService, this.NetworkServiceService) + let room:RoomService = new RoomService(this.WsChatService, new MessageService(this.storage, this.NfService, this.WsChatService, this.ChatStorageService, this.ChatMethodsService, this.AESEncrypt, this.AttachmentsService, this.NetworkServiceService), this.storage, this.platform, this.sqlservice, this.NativeNotificationService, this.sortService, this.ChatService, this.NfService , this.ChatStorageService, this.ChatMethodsService, this.AESEncrypt, this.AttachmentsService, this.NetworkServiceService, this) room.setData(setData) room.receiveMessage() room.getAllUsers = this.getUsers @@ -365,10 +365,7 @@ export class WsChatMethodsService { deleteRoom(roomId) { delete this.group[roomId]; - - const index = this._group.findIndex((e)=> e.id == roomId); - - this._group = this._group.splice(index, 1); + this._group = this._group.filter((e)=> e.id != roomId); } roomExist(roomId) { @@ -463,7 +460,7 @@ export class WsChatMethodsService { } - addRoomOwner(roomid, userId){ + addRoomOwner(roomid, userId) { return this.WsChatService.addRoomOwner(roomid, userId); } diff --git a/src/app/services/functions/time.service.ts b/src/app/services/functions/time.service.ts index 5d4f3848f..08c2fecb2 100644 --- a/src/app/services/functions/time.service.ts +++ b/src/app/services/functions/time.service.ts @@ -1,5 +1,6 @@ import { Injectable } from '@angular/core'; import { ChatService } from '../chat.service'; +import { WsChatMethodsService } from '../chat/ws-chat-methods.service'; @Injectable({ providedIn: 'root' @@ -8,14 +9,13 @@ export class TimeService { countDownTime: any; room: any; - constructor(private chatService: ChatService) { } + constructor(private chatService: ChatService, + public wsChatMethodsService: WsChatMethodsService,) { } - showDateDuration(start:any){ + showDateDuration(start:any) { let end; end = new Date(); start = new Date(start); - let customizedDate; - const totalSeconds = Math.floor((end - (start))/1000);; const totalMinutes = Math.floor(totalSeconds/60); @@ -26,51 +26,51 @@ export class TimeService { const minutes = totalMinutes - ( totalDays * 24 * 60 ) - ( hours * 60 ); const seconds = totalSeconds - ( totalDays * 24 * 60 * 60 ) - ( hours * 60 * 60 ) - ( minutes * 60 ); - if(totalDays == 0){ - if(start.getDate() == new Date().getDate()){ + if(totalDays == 0) { + if(start.getDate() == new Date().getDate()) { let time = start.getHours() + ":" + this.addZero(start.getUTCMinutes()); return time; } - else{ + else { return 'Ontem'; } } - else{ + else { let date = this.addZero(start.getDate()) + "/" + this.addZero(start.getMonth()+1) + "/" + start.getFullYear(); return date; } } countDownDate(date:any, roomId:string){ - /* let timer = setInterval(() =>{ */ - let difference = new Date(date).getTime() - new Date().getTime(); - let c_day = Math.floor(difference/(1000*60*60*24)); - let c_hours = Math.floor((difference % (1000*60*60*24)) / (1000*60*60)); - let c_minutes = Math.floor((difference % (1000*60*60)) / (1000*60)); - let c_seconds = Math.floor((difference % (1000*60)) / 1000); + + let difference = new Date(date).getTime() - new Date().getTime(); + let c_day = Math.floor(difference/(1000*60*60*24)); + let c_hours = Math.floor((difference % (1000*60*60*24)) / (1000*60*60)); + let c_minutes = Math.floor((difference % (1000*60*60)) / (1000*60)); + let c_seconds = Math.floor((difference % (1000*60)) / 1000); - this.countDownTime = this.addZero(c_day) + " : " + this.addZero(c_hours) + " : " + this.addZero(c_minutes) + " : " + this.addZero(c_seconds) ; + this.countDownTime = this.addZero(c_day) + " : " + this.addZero(c_hours) + " : " + this.addZero(c_minutes) + " : " + this.addZero(c_seconds) ; - if(difference < 0){ - //clearInterval(timer); - this.countDownTime = "Expired"; - let body = { "roomId":roomId, } - this.chatService.getRoomInfo(roomId).subscribe(room=>{ - this.room = room['room']; + if(difference < 0){ - if(this.room.t === 'p'){ - this.chatService.deleteGroup(body).subscribe(res=>{ - - }); - } - else{ - this.chatService.deleteChannel(body).subscribe(res=>{ - - }); - } - }); - } - //}) + this.countDownTime = "Expired"; + let body = { "roomId":roomId, } + this.chatService.getRoomInfo(roomId).subscribe(room=>{ + this.room = room['room']; + + if(this.room.t === 'p'){ + this.chatService.deleteGroup(body).subscribe(res=>{ + + }); + } + else{ + this.chatService.deleteChannel(body).subscribe(res=>{ + + }); + } + }); + } + return this.countDownTime; } @@ -84,7 +84,7 @@ export class TimeService { this.countDownTime = this.addZero(c_day) + " : " + this.addZero(c_hours) + " : " + this.addZero(c_minutes) + " : " + this.addZero(c_seconds) ; - if(difference < 0){ + if(difference < 0) { clearInterval(timer); this.countDownTime = "Expired"; let body = { "roomId":roomId, } @@ -93,12 +93,13 @@ export class TimeService { if(this.room.t === 'p'){ this.chatService.deleteGroup(body).subscribe(res=>{ - + this.wsChatMethodsService.deleteRoom(roomId) }); } else{ + this.chatService.deleteChannel(body).subscribe(res=>{ - + this.wsChatMethodsService.deleteRoom(roomId) }); } }); 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 4670a1537..19f1cb18d 100644 --- a/src/app/shared/popover/chat-popover/chat-popover.page.ts +++ b/src/app/shared/popover/chat-popover/chat-popover.page.ts @@ -79,9 +79,6 @@ export class ChatPopoverPage implements OnInit { let res:any = await this.wsChatMethodsService.leaveRoom(this.roomId); this.wsChatMethodsService.deleteRoom(this.roomId) - - - if(res.error){ if(res.error.error = "error-you-are-last-owner"){ @@ -101,55 +98,7 @@ export class ChatPopoverPage implements OnInit { } this.close('leave'); - //this.wsChatMethodsService.subscribeToRoomUpdate(this.roomId, res.result); - - /* this.chatService.getRoomInfo(this.roomId).subscribe(room=>{ - this.room = room['room']; - - if(this.room.t === 'p'){ - this.chatService.leaveGroup(body).subscribe(res=>{ - - this.close('leave'); - }, - (e)=>{ - if(e.error.errorType = "error-you-are-last-owner"){ - this.toastService._badRequest("Você é o último administrador do grupo. Por favor, defina o novo administrador antes de sair da grupo."); - - this.close('cancel'); - - this.setRoomOwner(); - } - else{ - this.toastService._badRequest("Não foi possível sair do grupo"); - this.close('cancel'); - } - - }, - ()=>{ - //loader.remove() - }); - } - else{ - this.chatService.leaveChannel(body).subscribe(res=>{ - - this.close('leave'); - }, - (e)=>{ - if(e.error.errorType = "error-you-are-last-owner"){ - this.toastService._badRequest("Você é o último administrador do grupo. Por favor, defina o novo administrador antes de sair da grupo."); - this.close('cancel'); - } - else{ - this.toastService._badRequest("Não foi possível sair do grupo"); - this.close('cancel'); - } - }, - ()=>{ - //loader.remove() - }); - } - }); */ } //Delete @@ -160,12 +109,12 @@ export class ChatPopoverPage implements OnInit { if(this.room.t === 'p'){ this.chatService.deleteGroup(body).subscribe(res=>{ - + this.wsChatMethodsService.deleteRoom(this.roomId) }); } else{ this.chatService.deleteChannel(body).subscribe(res=>{ - + this.wsChatMethodsService.deleteRoom(this.roomId) }); } });