diff --git a/src/app/guards/auth.guard.ts b/src/app/guards/auth.guard.ts index cb879693d..17b45ac9f 100644 --- a/src/app/guards/auth.guard.ts +++ b/src/app/guards/auth.guard.ts @@ -1,6 +1,7 @@ import { Injectable } from '@angular/core'; import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, Router } from '@angular/router'; import { Observable } from 'rxjs'; +import { AuthService } from '../services/auth.service'; import { LocalstoreService } from '../store/localstore.service'; import { SessionStore } from '../store/session.service'; @@ -10,7 +11,8 @@ import { SessionStore } from '../store/session.service'; export class AuthGuard implements CanActivate { constructor( private router:Router, - private localstoreService: LocalstoreService + private localstoreService: LocalstoreService, + private authService: AuthService, ){} canActivate( @@ -27,7 +29,8 @@ export class AuthGuard implements CanActivate { this.router.navigate(['/']); return false } else { - return true + this.authService.loginChat(); + return true; } } diff --git a/src/app/modals/set-room-owner/set-room-owner.page.ts b/src/app/modals/set-room-owner/set-room-owner.page.ts index ac9939bf2..89d728161 100644 --- a/src/app/modals/set-room-owner/set-room-owner.page.ts +++ b/src/app/modals/set-room-owner/set-room-owner.page.ts @@ -84,7 +84,6 @@ export class SetRoomOwnerPage implements OnInit { } this.chatService.addGroupOwner(body).subscribe((res)=>{ - alert('here'); console.log(res); this.close(); this.toastService._successMessage('Operação realizada com sucesso'); diff --git a/src/app/pages/chat/messages/messages.page.ts b/src/app/pages/chat/messages/messages.page.ts index eec98fa08..2fc1a0aab 100644 --- a/src/app/pages/chat/messages/messages.page.ts +++ b/src/app/pages/chat/messages/messages.page.ts @@ -38,6 +38,7 @@ import { FileType } from 'src/app/models/fileType'; import { SearchPage } from 'src/app/pages/search/search.page'; import { Storage } from '@ionic/storage'; import { FileToBase64Service } from 'src/app/services/file/file-to-base64.service'; +import { Camera, CameraResultType, CameraSource } from '@capacitor/camera'; const IMAGE_DIR = 'stored-images'; @@ -551,6 +552,10 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { }) } + + async addImageMobile() { + this.addFileToChatMobile(['image/apng', 'image/jpeg', 'image/png']) + } async addImage() { this.addFileToChat(['image/apng', 'image/jpeg', 'image/png']) @@ -604,13 +609,51 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { }); } + async addFileToChatMobile(types: typeof FileType[] ) { + const roomId = this.roomId + + const file = await Camera.getPhoto({ + quality: 90, + // allowEditing: true, + resultType: CameraResultType.Base64, + source: CameraSource.Photos + }); + console.log('ADDFILECHAT', file) + //const imageData = await this.fileToBase64Service.convert(file) + //console.log('ADDFILECHAT', imageData) + + const response = await fetch('data:image/jpeg;base64,'+ file.base64String!); + const blob = await response.blob(); + + const formData = new FormData(); + formData.append("blobFile", blob); + + this.wsChatMethodsService.getDmRoom(roomId).send({ + file: { + "type": "application/img", + "guid": '', + "image_url": 'data:image/jpeg;base64,' +file.base64String + }, + temporaryData: formData, + attachments: [{ + "title": file.path , + "image_url": 'data:image/jpeg;base64,' +file.base64String, + "text": "description", + "title_link_download": false, + }] + }) + + } + async addFileToChat(types: typeof FileType[] ) { const roomId = this.roomId const file: any = await this.fileService.getFileFromDevice(types); + console.log('ADDFILECHAT', file) const imageData = await this.fileToBase64Service.convert(file) + console.log('ADDFILECHAT', imageData) const formData = new FormData(); formData.append("blobFile", file); @@ -656,7 +699,7 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { this.takePicture() } else if (res['data'] == 'add-picture') { - this.addImage() + this.addImageMobile() } else if (res['data'] == 'add-document') { this.addFile() diff --git a/src/app/pages/gabinete-digital/expediente/book-meeting-modal/book-meeting-modal.page.ts b/src/app/pages/gabinete-digital/expediente/book-meeting-modal/book-meeting-modal.page.ts index 87b8de6dd..08d599ff8 100644 --- a/src/app/pages/gabinete-digital/expediente/book-meeting-modal/book-meeting-modal.page.ts +++ b/src/app/pages/gabinete-digital/expediente/book-meeting-modal/book-meeting-modal.page.ts @@ -261,7 +261,6 @@ export class BookMeetingModalPage implements OnInit { } if(this.task.FsId == '8') { - alert('Chegou') const loader = this.toastService.loading() try { switch (this.loggeduser.Profile) { diff --git a/src/app/pages/inactivity/inactivity.page.ts b/src/app/pages/inactivity/inactivity.page.ts index 7b52d83da..4a60452d7 100644 --- a/src/app/pages/inactivity/inactivity.page.ts +++ b/src/app/pages/inactivity/inactivity.page.ts @@ -36,11 +36,11 @@ export class InactivityPage implements OnInit { loop = false ngOnInit() { - + // window.addEventListener('resize', (event) => { // if(this.router.url != '/login') return false - + // if(this.loop == false) { // this.loop = true // this.runloop() @@ -54,7 +54,7 @@ export class InactivityPage implements OnInit { // const containerHeight = 651 // let circleHeight = document.querySelector('.circle')['offsetHeight'] - // let circleWidth = document.querySelector('.circle')['offsetWidth'] + // let circleWidth = document.querySelector('.circle')['offsetWidth'] // console.log(window.innerHeight, ' < ', containerHeight) // console.log(circleHeight) @@ -64,7 +64,7 @@ export class InactivityPage implements OnInit { // e['style']['width'] = (circleWidth -1 )+'px' // }) - + // if( window.innerHeight< containerHeight) { // setTimeout(()=>{ // this.runloop() @@ -114,14 +114,14 @@ export class InactivityPage implements OnInit { let attempt = await this.authService.login(this.userattempt, {saveSession: false}) if (attempt) { - + // if current attemp is equal to the current user if (attempt.UserId == SessionStore.user.UserId) { await this.authService.SetSession(attempt, this.userattempt); - this.authService.loginChat(this.userattempt); + this.authService.loginChat(); this.getToken(); SessionStore.setInativity(true) - + this.goback() } else { SessionStore.delete() @@ -174,10 +174,10 @@ export class InactivityPage implements OnInit { const code = this.code.join('') if( SessionStore.validatePin(code)) { - + SessionStore.setInativity(true) this.goback() - + setTimeout(()=>{ this.clearCode() }, 1000) @@ -196,7 +196,7 @@ export class InactivityPage implements OnInit { } else { this.router.navigate(['/home/events'], {replaceUrl: true}); } - + } storePin() { diff --git a/src/app/pages/login/login.page.ts b/src/app/pages/login/login.page.ts index 7373f3c72..de8e9d8f8 100644 --- a/src/app/pages/login/login.page.ts +++ b/src/app/pages/login/login.page.ts @@ -100,10 +100,9 @@ export class LoginPage implements OnInit { // login to API successfully if (attempt) { - if (attempt.UserId == SessionStore.user.UserId) { await this.authService.SetSession(attempt, this.userattempt); - await this.authService.loginChat(this.userattempt); + await this.authService.loginChat(); this.getToken(); SessionStore.setInativity(true); @@ -117,7 +116,7 @@ export class LoginPage implements OnInit { await this.authService.SetSession(attempt, this.userattempt); this.changeProfileService.run() - await this.authService.loginChat(this.userattempt); + await this.authService.loginChat(); this.getToken(); this.router.navigateByUrl('/pin', { replaceUrl: true }); } diff --git a/src/app/services/auth.service.ts b/src/app/services/auth.service.ts index 69f04318d..f0d13f94e 100644 --- a/src/app/services/auth.service.ts +++ b/src/app/services/auth.service.ts @@ -108,12 +108,17 @@ export class AuthService { } } - //Login to rocketChat server - async loginChat(user: UserForm) { - const expireDate = new Date(new Date().getTime() + 60*1000); + //Login to rocketChat server2 + //user: UserForm + async loginChat() { + + const expirationMinutes = 60; + let date = new Date().getTime(); + let expirationDate = new Date(new Date().getTime() + expirationMinutes*60*1000); + let postData = { - "user": user.username, - "password": user.password, + "user": SessionStore.user.RochetChatUser, + "password": SessionStore.user.Password, } let responseChat = await this.httpService.post('login', postData).toPromise(); @@ -126,17 +131,19 @@ export class AuthService { this.ValidatedUserChat = responseChat; localStorage.setItem('userChat', JSON.stringify(responseChat)); this.storageService.store(AuthConnstants.AUTH, responseChat); - - /* this.autologout(10000); */ - - return true; - } else{ console.log('Network error'); this.presentAlert('Network error'); - return false; } + + this.autoLoginChat(expirationDate.getTime() - date); + } + + async autoLoginChat(expirationDate:number){ + setTimeout(()=>{ + this.loginChat(); + }, expirationDate) } private loginToChatWs() { @@ -151,8 +158,8 @@ export class AuthService { }) - this.NfService.beforeSendAttachment = async (message: MessageService, room?: RoomService) => { - + this.NfService.beforeSendAttachment = async (message: MessageService, room?: RoomService) => { + if(message.hasFile) { if(message.file.type != 'application/webtrix') { const formData = message.temporaryData @@ -164,14 +171,14 @@ export class AuthService { console.log('add picture to chat IMAGE SAVED') message.getFileFromDb() }); - + return true } catch(e) { return false } } else { - try { + try { const res = message.temporaryData let url = await this.processesService.GetDocumentUrl(res.data.selected.Id, res.data.selected.ApplicationType).toPromise(); let url_no_options: string = url.replace("webTRIX.Viewer","webTRIX.Viewer.Branch1"); @@ -182,7 +189,7 @@ export class AuthService { } catch(e) { return false } - + } } diff --git a/src/app/services/chat/ws-chat-methods.service.ts b/src/app/services/chat/ws-chat-methods.service.ts index 616f2e56a..c9056f1ef 100644 --- a/src/app/services/chat/ws-chat-methods.service.ts +++ b/src/app/services/chat/ws-chat-methods.service.ts @@ -214,12 +214,12 @@ export class WsChatMethodsService { */ private defaultSubtribe(id: any) { this.WsChatService.streamRoomMessages(id).then((subscription)=>{ - console.log('streamRoomMessages', subscription) + //console.log('streamRoomMessages', subscription) }) this.WsChatService.subStreamNotifyRoom(id, 'typing', false) this.WsChatService.streamNotifyRoomDeleteMessage(id).then((subscription)=>{ - console.log('streamNotifyRoomDeleteMessage', subscription); + //console.log('streamNotifyRoomDeleteMessage', subscription); }) } diff --git a/src/app/services/chat/ws-chat.service.ts b/src/app/services/chat/ws-chat.service.ts index 256d713a7..5b9cf96c8 100644 --- a/src/app/services/chat/ws-chat.service.ts +++ b/src/app/services/chat/ws-chat.service.ts @@ -657,11 +657,11 @@ updateRoomEventss(roomId, collection:string, funx: Function, ) { for (const [key, item] of Object.entries(this.wsMsgQueue)) { if(item.loginRequired == true && this.isLogin == true) { - console.log('run msgQueue ', key) + //console.log('run msgQueue ', key) this.ws.send(item); delete this.wsMsgQueue[key] } else if(item.loginRequired == false) { - console.log('run msgQueue ', key) + //console.log('run msgQueue ', key) this.ws.send(item); delete this.wsMsgQueue[key] } diff --git a/src/app/services/functions/file.service.ts b/src/app/services/functions/file.service.ts index 4ab379fa8..2554b51d6 100644 --- a/src/app/services/functions/file.service.ts +++ b/src/app/services/functions/file.service.ts @@ -62,7 +62,7 @@ export class FileService { data: base64Data, directory: Directory.Data }); - + } //new method 3 @@ -160,7 +160,7 @@ export class FileService { return new Promise((resolve, reject)=>{ input.onchange = async () => { const file = this.fileLoaderService.getFirstFile(input) - + resolve(file); }; }) diff --git a/src/app/shared/chat/new-group/new-group.page.ts b/src/app/shared/chat/new-group/new-group.page.ts index 9bcc2eddc..75b4f7d37 100644 --- a/src/app/shared/chat/new-group/new-group.page.ts +++ b/src/app/shared/chat/new-group/new-group.page.ts @@ -67,7 +67,6 @@ export class NewGroupPage implements OnInit{ } /* ngOnDestroy(){ - alert('Destroy') this.dataService.set("newGroup", false); this.dataService.set("task", null); this.dataService.set("newGroupName", ''); diff --git a/src/app/store/session.service.ts b/src/app/store/session.service.ts index 3e480e7bc..e1f510138 100644 --- a/src/app/store/session.service.ts +++ b/src/app/store/session.service.ts @@ -12,7 +12,7 @@ class SessionService { // main data private _user = new UserSession() // local storage keyName - private keyName: string; + private keyName: string; constructor() { @@ -73,7 +73,7 @@ class SessionService { return false } return this._user.PIN.length >= 2 - + } reset(user) { @@ -98,4 +98,4 @@ class SessionService { } -export const SessionStore = new SessionService() \ No newline at end of file +export const SessionStore = new SessionService()