-
+
diff --git a/src/app/pages/gabinete-digital/gabinete-digital.page.ts b/src/app/pages/gabinete-digital/gabinete-digital.page.ts index 285af08d2..fa90ee7a4 100644 --- a/src/app/pages/gabinete-digital/gabinete-digital.page.ts +++ b/src/app/pages/gabinete-digital/gabinete-digital.page.ts @@ -22,7 +22,7 @@ import { CustomTaskPipe } from 'src/app/pipes/custom-task.pipe'; //import { NotificationsService } from 'src/app/services/notifications.service'; import { DespachoService } from 'src/app/Rules/despacho.service'; import { ChangeProfileService } from 'src/app/services/change-profile.service'; -import { PermissionService } from 'src/app/services/worker/permission.service'; +import { PermissionService } from 'src/app/services/permission.service'; import { ThemeService } from 'src/app/services/theme.service' @@ -115,6 +115,9 @@ export class GabineteDigitalPage implements OnInit, DoCheck { customTaskPipe = new CustomTaskPipe() + permissions = { + Agenda: 530 + } @ViewChild(ExpedientsPage) expedientesPage: ExpedientsPage; @ViewChild(PendentesPage) pendentesListPage: PendentesPage; @ViewChild(EventsToApprovePage) eventsToApprove: EventsToApprovePage; @@ -256,7 +259,7 @@ export class GabineteDigitalPage implements OnInit, DoCheck { let date = new Date(element.taskStartDate); date.setMonth(date.getMonth() + 1); let taskDate = date.getFullYear() + "-" + date.getMonth() + "-" + date.getDate() + " " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds(); - + let task = { "SerialNumber": element.serialNumber, "Folio": element.workflowInstanceDataFields.Subject, @@ -274,11 +277,11 @@ export class GabineteDigitalPage implements OnInit, DoCheck { "Agenda": element.workflowInstanceDataFields.Agenda, "customDate": this.setFormatDate(new Date(element.workflowInstanceDataFields.StartDate), new Date(element.workflowInstanceDataFields.EndDate), element.workflowInstanceDataFields.IsAllDayEvent), } - + this.allProcessesList.push(task); this.allProcessesList = removeDuplicate(this.allProcessesList); this.allProcessesList = this.sortService.sortDate(this.allProcessesList, 'CreateDate') - + }); }) } else { @@ -287,9 +290,9 @@ export class GabineteDigitalPage implements OnInit, DoCheck { let date = new Date(element.taskStartDate); date.setMonth(date.getMonth() + 1); let taskDate = date.getFullYear() + "-" + date.getMonth() + "-" + date.getDate() + " " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds(); - + var workflowInstanceDataFields = JSON.parse(element.workflowInstanceDataFields); - + let task = { "SerialNumber": element.serialNumber, "Folio": workflowInstanceDataFields.Subject, @@ -306,11 +309,11 @@ export class GabineteDigitalPage implements OnInit, DoCheck { "Agenda": workflowInstanceDataFields.Agenda, "customDate": this.setFormatDate(new Date(workflowInstanceDataFields.StartDate), new Date(workflowInstanceDataFields.EndDate), workflowInstanceDataFields.IsAllDayEvent), } - + this.allProcessesList.push(task); this.allProcessesList = removeDuplicate(this.allProcessesList) this.allProcessesList = this.sortService.sortDate(this.allProcessesList, 'CreateDate') - + }); console.log("All process from db ", allprocess) }) diff --git a/src/app/pages/gabinete-digital/pedidos/pedido/pedido.page.ts b/src/app/pages/gabinete-digital/pedidos/pedido/pedido.page.ts index 0874bd07e..79204effd 100644 --- a/src/app/pages/gabinete-digital/pedidos/pedido/pedido.page.ts +++ b/src/app/pages/gabinete-digital/pedidos/pedido/pedido.page.ts @@ -23,7 +23,7 @@ import { PedidoService } from 'src/app/Rules/pedido.service'; import { SqliteService } from 'src/app/services/sqlite.service'; import { BackgroundService } from 'src/app/services/background.service'; -import { PermissionService } from 'src/app/services/worker/permission.service'; +import { PermissionService } from 'src/app/services/permission.service'; import { ViewDocumentPage } from 'src/app/modals/view-document/view-document.page'; import { ThemeService } from 'src/app/services/theme.service' import { DataService } from 'src/app/services/data.service'; diff --git a/src/app/services/permission.service.spec.ts b/src/app/services/permission.service.spec.ts index 8ddccabff..1a77304d8 100644 --- a/src/app/services/permission.service.spec.ts +++ b/src/app/services/permission.service.spec.ts @@ -1,6 +1,6 @@ import { TestBed } from '@angular/core/testing'; -import { PermissionService } from './worker/permission.service'; +import { PermissionService } from './permission.service'; describe('PermissionService', () => { let service: PermissionService; diff --git a/src/app/services/worker/permission.service.ts b/src/app/services/permission.service.ts similarity index 58% rename from src/app/services/worker/permission.service.ts rename to src/app/services/permission.service.ts index e093625c9..9ff448f36 100644 --- a/src/app/services/worker/permission.service.ts +++ b/src/app/services/permission.service.ts @@ -1,5 +1,5 @@ import { Injectable } from '@angular/core'; -import { SessionStore } from '../../store/session.service'; +import { SessionStore } from '../store/session.service'; @Injectable({ providedIn: 'root' @@ -15,12 +15,26 @@ export class PermissionService { if(!Array.isArray(args)) { args = [args] } - - return args.includes(this.SessionStore.user.Profile) + + return args.includes(this.SessionStore.user.Profile) + } + + userPermission(args) { + + if(!Array.isArray(args)) { + args = [args] + } + for(let permission of this.SessionStore.user.UserPermissions){ + if (args.includes(permission)){ + return true; + } + } + return false; + } role(args: any) { - + let UserRoleIsValid = this.userRole(args) return { @@ -39,4 +53,4 @@ export class PermissionService { } -} \ No newline at end of file +} diff --git a/src/app/services/rules/event.service.ts b/src/app/services/rules/event.service.ts index c066e5223..a4f4e1be3 100644 --- a/src/app/services/rules/event.service.ts +++ b/src/app/services/rules/event.service.ts @@ -1,7 +1,7 @@ import { Injectable } from '@angular/core'; import { AttachmentsService } from '../attachments.service'; import { EventsService } from '../events.service'; -import { PermissionService } from '../worker/permission.service'; +import { PermissionService } from '../permission.service'; @@ -18,7 +18,7 @@ export class EventService { create({body, calendar}) { - + if(this.p.userRole(['PR'])) { return this.eventService.postEventPr(body, calendar) diff --git a/src/app/shared/header/header.page.html b/src/app/shared/header/header.page.html index bab69b979..d0db46512 100644 --- a/src/app/shared/header/header.page.html +++ b/src/app/shared/header/header.page.html @@ -76,7 +76,7 @@ Início
-
@@ -85,7 +85,7 @@ Agenda
-
@@ -94,7 +94,7 @@ Gabinete
-
@@ -102,7 +102,7 @@ Acções
-
diff --git a/src/app/shared/header/header.page.ts b/src/app/shared/header/header.page.ts index d71c5512f..c92feddb9 100644 --- a/src/app/shared/header/header.page.ts +++ b/src/app/shared/header/header.page.ts @@ -12,6 +12,7 @@ import { EventTrigger } from '../../services/eventTrigger.service'; import { ThemeService } from '../../services/theme.service'; import { interval } from 'rxjs'; import { RouteService } from 'src/app/services/route.service'; +import { PermissionList } from 'src/app/models/permissionList'; @Component({ selector: 'app-header', @@ -29,6 +30,7 @@ export class HeaderPage implements OnInit { notificationLength: 0; SessionStore = SessionStore check: boolean; + permissionList = new PermissionList(); production = environment.production diff --git a/src/app/shared/popover/despachos-options/despachos-options.page.ts b/src/app/shared/popover/despachos-options/despachos-options.page.ts index 8d3fa6e25..6d7fe5146 100644 --- a/src/app/shared/popover/despachos-options/despachos-options.page.ts +++ b/src/app/shared/popover/despachos-options/despachos-options.page.ts @@ -9,7 +9,7 @@ import { BookMeetingModalPage } from 'src/app/pages/gabinete-digital/expediente/ import { DiscartExpedientModalPage } from 'src/app/pages/gabinete-digital/discart-expedient-modal/discart-expedient-modal.page'; import { ToastService } from 'src/app/services/toast.service'; import { customTask, fullTask } from 'src/app/models/dailyworktask.model'; -import { PermissionService } from 'src/app/services/worker/permission.service'; +import { PermissionService } from 'src/app/services/permission.service'; import { ThemeService } from 'src/app/services/theme.service' import { Location } from '@angular/common' import { RouteService } from 'src/app/services/route.service'; @@ -35,7 +35,7 @@ export class DespachosOptionsPage implements OnInit { public p: PermissionService, public ThemeService: ThemeService, private RouteService: RouteService, - ) { + ) { this.task = this.navParams.get('task') this.fulltask = this.navParams.get('fulltask') @@ -84,7 +84,7 @@ export class DespachosOptionsPage implements OnInit { this.toastService._badRequest('Processo não encontrado') }); } - + async distartExpedientModal(){ this.popoverController.dismiss(); console.log(this.fulltask); @@ -98,7 +98,7 @@ export class DespachosOptionsPage implements OnInit { cssClass: 'discart-expedient-modal', backdropDismiss: false }); - + await modal.present(); modal.onDidDismiss().then(res=>{ if(res['data']=='close'){ @@ -127,7 +127,7 @@ export class DespachosOptionsPage implements OnInit { await modal.present(); modal.onDidDismiss(); } - + async openDelegarModal(task: any) { this.popoverController.dismiss(); let classs; @@ -157,8 +157,8 @@ export class DespachosOptionsPage implements OnInit { } async generateDiploma(note:string, documents:any){ - let body = { - "serialNumber": this.serialNumber, + let body = { + "serialNumber": this.serialNumber, "action": "Reencaminhar", "ActionTypeId": 99999839, "dataFields": { @@ -198,20 +198,20 @@ export class DespachosOptionsPage implements OnInit { cssClass: classs, backdropDismiss: true }); - + await modal.present(); - + modal.onDidDismiss().then(async (res) => { console.log(res); if(res.data) { - + const DocumentToSave = res.data.documents.map((e) => { return { ApplicationId: e.ApplicationType, SourceId: e.Id, } }); - + let docs = { ProcessInstanceID: "", Attachments: DocumentToSave, @@ -235,11 +235,11 @@ export class DespachosOptionsPage implements OnInit { this.goBack(); } }); - } + } async arquivar(note:string, documents:any) { - let body = { - "serialNumber": this.serialNumber, + let body = { + "serialNumber": this.serialNumber, "action": "Arquivo", "ActionTypeId": 95, "dataFields": { @@ -259,14 +259,14 @@ export class DespachosOptionsPage implements OnInit { } finally { loader.remove() } - + } async executado(note:string, documents:any){ - let body = { - "serialNumber": this.serialNumber, + let body = { + "serialNumber": this.serialNumber, "action": "Conhecimento", "ActionTypeId": 104, "dataFields": { @@ -290,10 +290,10 @@ export class DespachosOptionsPage implements OnInit { } - + async reexecutar(note:string, documents:any){ - let body = { - "serialNumber": this.serialNumber, + let body = { + "serialNumber": this.serialNumber, "action": "Reexecutar", "ActionTypeId": 100000010, "dataFields": { diff --git a/src/app/shared/popover/despachos-pr-options/despachos-pr-options.page.ts b/src/app/shared/popover/despachos-pr-options/despachos-pr-options.page.ts index f77c7996e..ddf480f2e 100644 --- a/src/app/shared/popover/despachos-pr-options/despachos-pr-options.page.ts +++ b/src/app/shared/popover/despachos-pr-options/despachos-pr-options.page.ts @@ -9,7 +9,7 @@ import { BookMeetingModalPage } from 'src/app/pages/gabinete-digital/expediente/ import { DiscartExpedientModalPage } from 'src/app/pages/gabinete-digital/discart-expedient-modal/discart-expedient-modal.page'; import { ToastService } from 'src/app/services/toast.service'; import { Location } from '@angular/common' -import { PermissionService } from 'src/app/services/worker/permission.service'; +import { PermissionService } from 'src/app/services/permission.service'; import { ThemeService } from 'src/app/services/theme.service' import { RouteService } from 'src/app/services/route.service'; @@ -36,11 +36,11 @@ export class DespachosPrOptionsPage implements OnInit { private RouteService: RouteService, public p: PermissionService, public ThemeService: ThemeService, - + ) { } ngOnInit() { - + this.profile = "mdgpr"; this.activatedRoute.queryParams.subscribe(params => { @@ -86,7 +86,7 @@ export class DespachosPrOptionsPage implements OnInit { console.log(res['data']); if(res['data']=='openDiscart') { console.log('open discart'); - + this.distartExpedientModal(); } else { @@ -108,7 +108,7 @@ export class DespachosPrOptionsPage implements OnInit { this.toastService._badRequest('Processo não encontrado') }); } - + async distartExpedientModal() { this.popoverController.dismiss(); console.log(this.fulltask); @@ -122,7 +122,7 @@ export class DespachosPrOptionsPage implements OnInit { cssClass: 'discart-expedient-modal', backdropDismiss: false }); - + await modal.present(); modal.onDidDismiss().then(res=>{ if(res['data']=='close'){ @@ -132,7 +132,7 @@ export class DespachosPrOptionsPage implements OnInit { this.openMenu(); */ } this.popoverController.dismiss('close') - + }); } @@ -157,7 +157,7 @@ export class DespachosPrOptionsPage implements OnInit { modal.onDidDismiss() } - + async openDelegarModal(task: any) { this.popoverController.dismiss(); let classs; @@ -187,8 +187,8 @@ export class DespachosPrOptionsPage implements OnInit { } async generateDiploma(note:string, documents:any) { - let body = { - "serialNumber": this.serialNumber, + let body = { + "serialNumber": this.serialNumber, "action": "Reencaminhar", "ActionTypeId": 99999839, "dataFields": { @@ -227,22 +227,22 @@ export class DespachosPrOptionsPage implements OnInit { cssClass: classs, backdropDismiss: true }); - + await modal.present(); - + modal.onDidDismiss().then(async (res) => { console.log(res); if(res.data){ - + const DocumentToSave = res.data.documents.map((e) => { return { ApplicationId: e.ApplicationType, SourceId: e.Id, } }); - + let docs = { ProcessInstanceID: "", Attachments: DocumentToSave, @@ -259,15 +259,15 @@ export class DespachosPrOptionsPage implements OnInit { } else if(actionName == 'Reexecução') { await this.reexecutar(res.data.note, docs); - } + } else if(actionName == 'Concluido') { await this.concluir(res.data.note, docs); } - + this.goBack(); } }); - } + } async concluir(note:string, documents:any){ @@ -297,8 +297,8 @@ export class DespachosPrOptionsPage implements OnInit { } async arquivar(note:string, documents:any){ - let body = { - "serialNumber": this.serialNumber, + let body = { + "serialNumber": this.serialNumber, "action": "Arquivo", "ActionTypeId": 95, "dataFields": { @@ -323,8 +323,8 @@ export class DespachosPrOptionsPage implements OnInit { async executado(note:string, documents:any){ - let body = { - "serialNumber": this.serialNumber, + let body = { + "serialNumber": this.serialNumber, "action": "Conhecimento", "ActionTypeId": 104, "dataFields": { @@ -347,10 +347,10 @@ export class DespachosPrOptionsPage implements OnInit { } - + async reexecutar(note:string, documents:any){ - let body = { - "serialNumber": this.serialNumber, + let body = { + "serialNumber": this.serialNumber, "action": "Reexecutar", "ActionTypeId": 100000010, "dataFields": { diff --git a/src/app/shared/popover/event-details-documents-options/event-details-documents-options.page.ts b/src/app/shared/popover/event-details-documents-options/event-details-documents-options.page.ts index bda7c7d7f..7afa5feea 100644 --- a/src/app/shared/popover/event-details-documents-options/event-details-documents-options.page.ts +++ b/src/app/shared/popover/event-details-documents-options/event-details-documents-options.page.ts @@ -7,7 +7,7 @@ import { ToastService } from 'src/app/services/toast.service'; import { Location } from '@angular/common'; import { TaskService } from 'src/app/Rules/task.service' import { ExpedienteService } from 'src/app/Rules/expediente.service'; -import { PermissionService } from 'src/app/services/worker/permission.service'; +import { PermissionService } from 'src/app/services/permission.service'; @Component({ selector: 'app-event-details-documents-options', diff --git a/src/app/shared/popover/opts-expediente/opts-expediente.page.ts b/src/app/shared/popover/opts-expediente/opts-expediente.page.ts index bf2c55c37..10e656a02 100644 --- a/src/app/shared/popover/opts-expediente/opts-expediente.page.ts +++ b/src/app/shared/popover/opts-expediente/opts-expediente.page.ts @@ -15,7 +15,7 @@ import { ToastService } from 'src/app/services/toast.service'; import { Location } from '@angular/common'; import { TaskService } from 'src/app/Rules/task.service' import { ExpedienteService } from 'src/app/Rules/expediente.service'; -import { PermissionService } from 'src/app/services/worker/permission.service'; +import { PermissionService } from 'src/app/services/permission.service'; import { ThemeService } from 'src/app/services/theme.service' import { NewGroupPage } from 'src/app/pages/chat/new-group/new-group.page'; import { RouteService } from 'src/app/services/route.service'; diff --git a/src/app/shared/popover/request-options/request-options.page.ts b/src/app/shared/popover/request-options/request-options.page.ts index f59911563..9ea60decb 100644 --- a/src/app/shared/popover/request-options/request-options.page.ts +++ b/src/app/shared/popover/request-options/request-options.page.ts @@ -9,7 +9,7 @@ import { BookMeetingModalPage } from 'src/app/pages/gabinete-digital/expediente/ import { ProcessesService } from 'src/app/services/processes.service'; import { ToastService } from 'src/app/services/toast.service'; import { PedidoService } from 'src/app/Rules/pedido.service'; -import { PermissionService } from 'src/app/services/worker/permission.service'; +import { PermissionService } from 'src/app/services/permission.service'; import { DataService } from 'src/app/services/data.service'; import { NewGroupPage } from 'src/app/pages/chat/new-group/new-group.page'; diff --git a/src/app/shared/popover/searched-document-options/searched-document-options.page.ts b/src/app/shared/popover/searched-document-options/searched-document-options.page.ts index b74b48a0a..8a3259c0f 100644 --- a/src/app/shared/popover/searched-document-options/searched-document-options.page.ts +++ b/src/app/shared/popover/searched-document-options/searched-document-options.page.ts @@ -1,6 +1,6 @@ import { Component, OnInit } from '@angular/core'; import {PopoverController } from '@ionic/angular'; -import { PermissionService } from 'src/app/services/worker/permission.service'; +import { PermissionService } from 'src/app/services/permission.service'; @Component({ selector: 'app-searched-document-options', From 2fab7e01d50f5de7a2820f7a26fa0929540fbc8a Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Mon, 28 Mar 2022 16:37:32 +0100 Subject: [PATCH 35/63] fix --- src/app/models/beast-orm.ts | 10 +++--- src/app/services/chat/message.service.ts | 3 -- src/app/services/chat/room.service.ts | 35 ++++++++++--------- .../services/chat/ws-chat-methods.service.ts | 11 ++++-- src/environments/environment.ts | 10 +++--- 5 files changed, 36 insertions(+), 33 deletions(-) diff --git a/src/app/models/beast-orm.ts b/src/app/models/beast-orm.ts index a09954a36..b6f130385 100644 --- a/src/app/models/beast-orm.ts +++ b/src/app/models/beast-orm.ts @@ -12,12 +12,12 @@ export class MessageModel extends models.Model { rid = models.CharField() ts = JsonField({blank:true}) u = JsonField() - _id = models.CharField({unique:true, blank:true}) + _id = models.CharField({blank:true}) _updatedAt = models.IntegerField() messageSend = models.BooleanField() offline = models.BooleanField() - viewed = ArrayField() - received = ArrayField() + viewed = ArrayField({blank:true}) + received = ArrayField({blank:true}) localReference = models.CharField({blank:true}) attachments = ArrayField({blank:true}) file = JsonField({blank:true}) @@ -28,10 +28,8 @@ export class DeleteMessageModel extends models.Model { messageId = models.CharField() rid = models.CharField() - ts = JsonField() u = JsonField() needToReceiveBy = ArrayField() - } @@ -39,6 +37,6 @@ export class DeleteMessageModel extends models.Model { models.register({ databaseName: 'chat-storage', type: 'indexedDB', - version: 1, + version: 4, models: [MessageModel, DeleteMessageModel] }) \ No newline at end of file diff --git a/src/app/services/chat/message.service.ts b/src/app/services/chat/message.service.ts index 0cc33911f..fb7f144b2 100644 --- a/src/app/services/chat/message.service.ts +++ b/src/app/services/chat/message.service.ts @@ -222,7 +222,6 @@ export class MessageService { if (event.type === HttpEventType.DownloadProgress) { - console.log('FILE TYPE 33', this.file.type) } else if (event.type === HttpEventType.Response) { if (this.file.type == "application/img") { downloadFile = 'data:image/jpeg;base64,' + btoa(new Uint8Array(event.body).reduce((data, byte) => data + String.fromCharCode(byte), '')); @@ -242,7 +241,6 @@ export class MessageService { ts: this.attachments[0].ts } - console.log(this.attachments) // save the changes to the storage this.save() } @@ -262,7 +260,6 @@ export class MessageService { async delateDB() { - // alert('delete data') const message = await MessageModel.get({_id: this._id}) await message.delete() diff --git a/src/app/services/chat/room.service.ts b/src/app/services/chat/room.service.ts index 910c80f1e..3147642de 100644 --- a/src/app/services/chat/room.service.ts +++ b/src/app/services/chat/room.service.ts @@ -394,13 +394,13 @@ export class RoomService { this.messages[i]?.delateDB() - console.log(_id,'==',this.messages[i]?._id, true) + // console.log(_id,'==',this.messages[i]?._id, true) this.messages.splice(i, 1) return true } else { - console.log(_id,'==',this.messages[i]?._id, false) + // console.log(_id,'==',this.messages[i]?._id, false) } } @@ -430,19 +430,20 @@ export class RoomService { await message.delateStatusFalse() this.ChatMethodsService.deleteMessage({_id:msgId, msgId:msgId, roomId:message.rid}).subscribe( - (response: any) => { + async (response: any) => { message.delateRequest = true - message.save() + await message.save() this.deleteMessage(msgId) }, - (response) => { + async (response) => { if (response.error.error.startsWith('No message found with the id of')) { this.deleteMessage(msgId) message.delateRequest = true + await message.save() } else { this.WsChatService.registerCallback({ @@ -626,25 +627,25 @@ export class RoomService { await this.restoreMessageFromDB() } - await this.WsChatService.loadHistory(this.id, limit).then( async (chatHistory:chatHistory) => { + // await this.WsChatService.loadHistory(this.id, limit).then( async (chatHistory:chatHistory) => { - console.log('load chatHistory', JSON.stringify(chatHistory)) + // console.log('load chatHistory', JSON.stringify(chatHistory)) - const messagesId = this.messages.map((message)=> message._id) + // const messagesId = this.messages.map((message)=> message._id) - chatHistory.result.messages.reverse().forEach(async(message: any) => { + // chatHistory.result.messages.reverse().forEach(async(message: any) => { - if (!messagesId.includes(message._id)) { - const messagesToSave = await this.prepareMessageCreateIfNotExist_iD({message: message}); - if(messagesToSave) { - await messagesToSave.addMessageDB() - } - } + // if (!messagesId.includes(message._id)) { + // const messagesToSave = await this.prepareMessageCreateIfNotExist_iD({message: message}); + // if(messagesToSave) { + // await messagesToSave.addMessageDB() + // } + // } - }) + // }) - }) + // }) setTimeout(() => { this.scrollDown() diff --git a/src/app/services/chat/ws-chat-methods.service.ts b/src/app/services/chat/ws-chat-methods.service.ts index 8bf0bed1f..db3e320d7 100644 --- a/src/app/services/chat/ws-chat-methods.service.ts +++ b/src/app/services/chat/ws-chat-methods.service.ts @@ -160,7 +160,10 @@ export class WsChatMethodsService { } catch(e){} - this.sortRoomList() + setTimeout(()=>{ + this.sortRoomList() + }, 1000) + } async getAllRooms () { @@ -204,7 +207,11 @@ export class WsChatMethodsService { console.log('save rooms', rooms) await this.storage.set('Rooms', rooms); - this.sortRoomList() + + setTimeout(()=>{ + this.sortRoomList() + }, 1000) + this.loadingWholeList = false } diff --git a/src/environments/environment.ts b/src/environments/environment.ts index 2c9100ef6..b1b64de1a 100644 --- a/src/environments/environment.ts +++ b/src/environments/environment.ts @@ -4,12 +4,12 @@ export const environment = { production: false, - apiURL: 'https://gabinetedigital.dyndns.info/GabineteDigital.Services/V5/api/', - // apiURL: 'http://gpr-dev-01.gabinetedigital.local/GabineteDigital.Services/V5/api/', - apiChatUrl: 'https://gabinetedigitalchat.dyndns.info/api/v1/', + //apiURL: 'https://gabinetedigital.dyndns.info/GabineteDigital.Services/V5/api/', + apiURL: 'http://gpr-dev-01.gabinetedigital.local/GabineteDigital.Services/V5/api/', + //apiChatUrl: 'https://gabinetedigitalchat.dyndns.info/api/v1/', apiWsChatUrl: 'wss://gabinetedigitalchat.dyndns.info/websocket', - //apiChatUrl: 'https://www.tabularium.pt/api/v1/', - /* apiChatUrl: 'http://chat.gabinetedigital.local:3000/api/v1/', */ + apiChatUrl: 'https://www.tabularium.pt/api/v1/', + //apiChatUrl: 'http://chat.gabinetedigital.local:3000/api/v1/', domain: 'gabinetedigital.local', //gabinetedigital.local defaultuser: 'paulo.pinto@gabinetedigital.local',//paulo.pinto paulo.pinto@gabinetedigital.local defaultuserpwd: 'tabteste@006', //tabteste@006, From 7b1153be77e2621523872b5888416e32ea495f21 Mon Sep 17 00:00:00 2001 From: "tiago.kayaya" Date: Mon, 28 Mar 2022 16:39:15 +0100 Subject: [PATCH 36/63] save --- src/app/services/permission.service.ts | 2 -- src/app/shared/header/header.page.html | 16 ++++++++++++---- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/app/services/permission.service.ts b/src/app/services/permission.service.ts index 9ff448f36..9d350366e 100644 --- a/src/app/services/permission.service.ts +++ b/src/app/services/permission.service.ts @@ -20,7 +20,6 @@ export class PermissionService { } userPermission(args) { - if(!Array.isArray(args)) { args = [args] } @@ -30,7 +29,6 @@ export class PermissionService { } } return false; - } role(args: any) { diff --git a/src/app/shared/header/header.page.html b/src/app/shared/header/header.page.html index d0db46512..01a982036 100644 --- a/src/app/shared/header/header.page.html +++ b/src/app/shared/header/header.page.html @@ -76,7 +76,9 @@ Início
-
+ +
@@ -85,7 +87,9 @@ Agenda
-
+ +
@@ -94,7 +98,9 @@ Gabinete
-
+ +
@@ -102,7 +108,9 @@ Acções
-
+ +
From 105280cfe74201b31186cf6a41a8a48614bb62d6 Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Mon, 28 Mar 2022 16:39:54 +0100 Subject: [PATCH 37/63] fix --- src/app/services/chat/room.service.ts | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/app/services/chat/room.service.ts b/src/app/services/chat/room.service.ts index 3147642de..11dd10f93 100644 --- a/src/app/services/chat/room.service.ts +++ b/src/app/services/chat/room.service.ts @@ -627,25 +627,25 @@ export class RoomService { await this.restoreMessageFromDB() } - // await this.WsChatService.loadHistory(this.id, limit).then( async (chatHistory:chatHistory) => { + await this.WsChatService.loadHistory(this.id, limit).then( async (chatHistory:chatHistory) => { - // console.log('load chatHistory', JSON.stringify(chatHistory)) + console.log('load chatHistory', JSON.stringify(chatHistory)) - // const messagesId = this.messages.map((message)=> message._id) + const messagesId = this.messages.map((message)=> message._id) - // chatHistory.result.messages.reverse().forEach(async(message: any) => { + chatHistory.result.messages.reverse().forEach(async(message: any) => { - // if (!messagesId.includes(message._id)) { - // const messagesToSave = await this.prepareMessageCreateIfNotExist_iD({message: message}); - // if(messagesToSave) { - // await messagesToSave.addMessageDB() - // } - // } + if (!messagesId.includes(message._id)) { + const messagesToSave = await this.prepareMessageCreateIfNotExist_iD({message: message}); + if(messagesToSave) { + await messagesToSave.addMessageDB() + } + } - // }) + }) - // }) + }) setTimeout(() => { this.scrollDown() From c35d14d970f8216cc596bd7b76af098f03f1aeff Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Mon, 28 Mar 2022 21:47:10 +0100 Subject: [PATCH 38/63] fix --- package-lock.json | 6 +++--- package.json | 2 +- src/app/models/beast-orm.ts | 7 +++++-- src/app/services/permission.service.ts | 6 ++++-- src/app/shared/header/header.page.ts | 1 - src/environments/environment.prod.ts | 5 ++++- src/environments/environment.ts | 8 ++++---- 7 files changed, 21 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index bd3ac05e9..80c0d2804 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6230,9 +6230,9 @@ } }, "beast-orm": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/beast-orm/-/beast-orm-1.0.1.tgz", - "integrity": "sha512-6RNJuVs4Kk4T/nb+Jbtwi5AR+Fd109yuoM0us/eZkuEPPG/QTst4wrukOIH3cf1HZjtcpsZJ7qySNw2U0ZEl2Q==" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/beast-orm/-/beast-orm-1.0.3.tgz", + "integrity": "sha512-kSTc8Sosm1CbLjSGc+nA1s9i4QmGQoF1rfWDmhTrHOvH+uZAtRXbZAypzscMmF67g04mK5XAuB+TUoKV5XmNiQ==" }, "big-integer": { "version": "1.6.49", diff --git a/package.json b/package.json index eb0f54efe..39938b7c9 100644 --- a/package.json +++ b/package.json @@ -99,7 +99,7 @@ "angular-svg-icon": "^12.0.0", "angular-tag-cloud-module": "^5.2.2", "base64-js": "^1.5.1", - "beast-orm": "1.0.1", + "beast-orm": "^1.0.3", "bootstrap": "^4.5.0", "build": "0.1.4", "capacitor-voice-recorder": "^2.1.0", diff --git a/src/app/models/beast-orm.ts b/src/app/models/beast-orm.ts index 56ec5b874..4e795c7a0 100644 --- a/src/app/models/beast-orm.ts +++ b/src/app/models/beast-orm.ts @@ -1,4 +1,4 @@ -import { models } from '../../plugin/beast-orm/' +import { models } from 'beast-orm' import { AESEncrypt } from '../services/aesencrypt.service' const _AESEncrypt = new AESEncrypt() @@ -39,4 +39,7 @@ models.register({ type: 'indexedDB', version: 4, models: [MessageModel, DeleteMessageModel] -}) \ No newline at end of file +}) + + +window['MessageModel'] = MessageModel \ No newline at end of file diff --git a/src/app/services/permission.service.ts b/src/app/services/permission.service.ts index 9ff448f36..01b46da8d 100644 --- a/src/app/services/permission.service.ts +++ b/src/app/services/permission.service.ts @@ -24,12 +24,14 @@ export class PermissionService { if(!Array.isArray(args)) { args = [args] } - for(let permission of this.SessionStore.user.UserPermissions){ + + + for(let permission of (this.SessionStore.user.UserPermissions || [])){ if (args.includes(permission)){ return true; } } - return false; + return true; } diff --git a/src/app/shared/header/header.page.ts b/src/app/shared/header/header.page.ts index 1fca4f00d..36a61ad9c 100644 --- a/src/app/shared/header/header.page.ts +++ b/src/app/shared/header/header.page.ts @@ -6,7 +6,6 @@ import { LoginUserRespose } from 'src/app/models/user.model'; import { ProfilePage } from 'src/app/modals/profile/profile.page'; import { StorageService } from '../../services/storage.service'; import { SessionStore } from 'src/app/store/session.service'; -//import { NotificationsService } from '../../services/notifications.service'; import { environment } from 'src/environments/environment'; import { EventTrigger } from '../../services/eventTrigger.service'; import { ThemeService } from '../../services/theme.service'; diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts index e5f72e4c6..0a5b0df12 100644 --- a/src/environments/environment.prod.ts +++ b/src/environments/environment.prod.ts @@ -1,8 +1,11 @@ export const environment = { - production: true, + apiURL: 'https://gabinetedigital.dyndns.info/GabineteDigital.Services/V5/api/', apiChatUrl: 'https://gabinetedigitalchat.dyndns.info/api/v1/', apiWsChatUrl: 'wss://gabinetedigitalchat.dyndns.info/websocket', + //apiChatUrl: 'https://www.tabularium.pt/api/v1/', + + production: true, domain: 'gabinetedigital.local', defaultuser: '',//paulo.pinto paulo.pinto@gabinetedigital.local defaultuserpwd: '', //tabteste@006, diff --git a/src/environments/environment.ts b/src/environments/environment.ts index b1b64de1a..942a9e5a9 100644 --- a/src/environments/environment.ts +++ b/src/environments/environment.ts @@ -4,11 +4,11 @@ export const environment = { production: false, - //apiURL: 'https://gabinetedigital.dyndns.info/GabineteDigital.Services/V5/api/', - apiURL: 'http://gpr-dev-01.gabinetedigital.local/GabineteDigital.Services/V5/api/', - //apiChatUrl: 'https://gabinetedigitalchat.dyndns.info/api/v1/', + apiURL: 'https://gabinetedigital.dyndns.info/GabineteDigital.Services/V5/api/', + //apiURL: 'http://gpr-dev-01.gabinetedigital.local/GabineteDigital.Services/V5/api/', + apiChatUrl: 'https://gabinetedigitalchat.dyndns.info/api/v1/', apiWsChatUrl: 'wss://gabinetedigitalchat.dyndns.info/websocket', - apiChatUrl: 'https://www.tabularium.pt/api/v1/', + //apiChatUrl: 'https://www.tabularium.pt/api/v1/', //apiChatUrl: 'http://chat.gabinetedigital.local:3000/api/v1/', domain: 'gabinetedigital.local', //gabinetedigital.local defaultuser: 'paulo.pinto@gabinetedigital.local',//paulo.pinto paulo.pinto@gabinetedigital.local From 3598d7c8510258c1c4593bff0120ee4fc4a9ed7b Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Mon, 28 Mar 2022 22:10:08 +0100 Subject: [PATCH 39/63] fix --- src/app/services/permission.service.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/services/permission.service.ts b/src/app/services/permission.service.ts index 01b46da8d..3587a5dc6 100644 --- a/src/app/services/permission.service.ts +++ b/src/app/services/permission.service.ts @@ -31,7 +31,7 @@ export class PermissionService { return true; } } - return true; + return false; } From 3a5f630a652da632cc3ae984e606a9b46cd398fa Mon Sep 17 00:00:00 2001 From: "tiago.kayaya" Date: Tue, 29 Mar 2022 00:03:54 +0100 Subject: [PATCH 40/63] save --- src/app/models/beast-orm.ts | 18 ++++++------- src/app/pages/chat/messages/messages.page.ts | 4 ++- src/app/services/chat/message.service.ts | 25 ++++++++++--------- src/app/shared/chat/messages/messages.page.ts | 14 +++++++---- 4 files changed, 34 insertions(+), 27 deletions(-) diff --git a/src/app/models/beast-orm.ts b/src/app/models/beast-orm.ts index 49809e81f..d06d84c6c 100644 --- a/src/app/models/beast-orm.ts +++ b/src/app/models/beast-orm.ts @@ -1,7 +1,7 @@ import { models } from 'beast-orm' import { AESEncrypt } from '../services/aesencrypt.service' -const _AESEncrypt = new AESEncrypt() +const _AESEncrypt = new AESEncrypt() const { ArrayField, JsonField} = models.indexedDB.fields export class MessageModel extends models.Model { @@ -10,17 +10,17 @@ export class MessageModel extends models.Model { mentions = ArrayField() msg = models.CharField() rid = models.CharField() - ts = models.CharField() + ts = models.CharField({blank:true}) u = JsonField() - _id = models.CharField({unique:true}) + _id = models.CharField() _updatedAt = models.CharField() messageSend = models.BooleanField() offline = models.BooleanField() - viewed = ArrayField() - received = ArrayField() + viewed = ArrayField({blank:true}) + received = ArrayField({blank:true}) localReference = models.CharField({blank:true}) - attachments = ArrayField() - file = ArrayField() + attachments = ArrayField({blank:true}) + file = ArrayField({blank:true}) } @@ -38,7 +38,7 @@ export class DeleteMessageModel extends models.Model { models.register({ databaseName: 'chat-storage', - type: 'indexedDB', + type: 'indexedDB', version: 1, models: [MessageModel, DeleteMessageModel] -}) \ No newline at end of file +}) diff --git a/src/app/pages/chat/messages/messages.page.ts b/src/app/pages/chat/messages/messages.page.ts index 4468a1960..aad3eb97b 100644 --- a/src/app/pages/chat/messages/messages.page.ts +++ b/src/app/pages/chat/messages/messages.page.ts @@ -392,7 +392,7 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { const roomId = this.roomId let audioFile; this.storage.get('recordData').then((recordData) => { - console.log(recordData); + audioFile = recordData; if(recordData.value.recordDataBase64.includes('data:audio')){ this.audioRecorded = recordData.value.recordDataBase64; @@ -401,6 +401,8 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { this.audioRecorded = `data:${recordData.value.mimeType};base64,${recordData.value.recordDataBase64}`; } + console.log(this.audioRecorded); + //Converting base64 to blob const encodedData = btoa(this.audioRecorded); const blob = this.base64toBlob(encodedData, recordData.value.mimeType) diff --git a/src/app/services/chat/message.service.ts b/src/app/services/chat/message.service.ts index 472164861..5bb432203 100644 --- a/src/app/services/chat/message.service.ts +++ b/src/app/services/chat/message.service.ts @@ -22,10 +22,10 @@ export class MessageService { msg = '' rid = '' ts = {} - - u = { - name: '', - username: '', + + u = { + name: '', + username: '', _id: "" } @@ -138,7 +138,7 @@ export class MessageService { if(!this.hasFile) { const params = {roomId:this.rid, msg:this.msg, localReference: this.localReference} - + await this.sendRequest(params) } else { @@ -178,7 +178,7 @@ export class MessageService { return new Promise((resolve, reject)=>{ reject(false) }) - + } } @@ -197,12 +197,12 @@ export class MessageService { this.WsChatService.registerCallback({ type: 'reConnect', funx: async ()=> { - + this.WsChatService.send(params).then(({message, requestId}) => { let ChatMessage = message.result this.messageSend = true this.redefinedMessage(ChatMessage) - + }) return true } @@ -213,7 +213,7 @@ export class MessageService { async redefinedMessage(ChatMessage , update = true) { ChatMessage = this.NfService.fix_updatedAt(ChatMessage) - + const message = this.getChatObj() ChatMessage = Object.assign(message, ChatMessage) @@ -241,7 +241,7 @@ export class MessageService { } async delateDB() { - + // alert('delete data') const message = await MessageModel.get({_id: this._id}) await message.delete() @@ -261,8 +261,8 @@ export class MessageService { return { channels: this.channels, mentions: this.mentions, - //msg: this.AESEncrypt.encrypt(this.msg, SessionStore.user.RochetChatUser), - msg:this.msg, + //msg: this.AESEncrypt.encrypt(this.msg, SessionStore.user.RochetChatUser), + msg:this.msg, rid: this.rid, ts: this.ts, u: this.u, @@ -294,6 +294,7 @@ export class MessageService { async save() { const message = this.getChatObj() + console.log(message); await MessageModel.update(message) diff --git a/src/app/shared/chat/messages/messages.page.ts b/src/app/shared/chat/messages/messages.page.ts index 34fcd92ec..66821e7b2 100644 --- a/src/app/shared/chat/messages/messages.page.ts +++ b/src/app/shared/chat/messages/messages.page.ts @@ -257,11 +257,13 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy this.storage.get('recordData').then((recordData) => { console.log(recordData); - if(recordData.value.recordDataBase64.includes('data:audio')){ - this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(recordData.value.recordDataBase64); - } - else{ - this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(`data:${recordData.value.mimeType};base64,${recordData.value.recordDataBase64}`); + if(recordData){ + if(recordData.value.recordDataBase64.includes('data:audio')){ + this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(recordData.value.recordDataBase64); + } + else{ + this.audioRecorded = this.sanitiser.bypassSecurityTrustResourceUrl(`data:${recordData.value.mimeType};base64,${recordData.value.recordDataBase64}`); + } } }); } @@ -389,6 +391,8 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy this.audioRecorded = `data:${recordData.value.mimeType};base64,${recordData.value.recordDataBase64}`; } + console.log(this.audioRecorded); + //Converting base64 to blob const encodedData = btoa(this.audioRecorded); const blob = this.base64toBlob(encodedData, recordData.value.mimeType) From 37ec193f22e2afb76d8dc01c13e8a2e206dabb26 Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Tue, 29 Mar 2022 16:48:24 +0100 Subject: [PATCH 41/63] message --- package-lock.json | 6 +- package.json | 2 +- src/app/services/chat/chat-methods.service.ts | 5 -- src/app/services/chat/message.service.ts | 43 +++++++----- src/app/services/chat/room.service.ts | 70 +++++++------------ .../services/chat/ws-chat-methods.service.ts | 6 +- .../services/network-service.service.spec.ts | 16 +++++ src/app/services/network-service.service.ts | 62 ++++++++++++++++ src/app/services/permission.service.ts | 6 +- 9 files changed, 140 insertions(+), 76 deletions(-) create mode 100644 src/app/services/network-service.service.spec.ts create mode 100644 src/app/services/network-service.service.ts diff --git a/package-lock.json b/package-lock.json index 80c0d2804..cc410f1a9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3175,9 +3175,9 @@ } }, "@ionic-native/network": { - "version": "5.36.0", - "resolved": "https://registry.npmjs.org/@ionic-native/network/-/network-5.36.0.tgz", - "integrity": "sha512-gpa7cJqodEK+zmmViYJCqEpXoKSXcaYLaaRKdv5gn5M++bpmiw2pKM9JH8VoqYWaYDcUwD3S0yYeBBkG5DE0Kg==", + "version": "5.22.0-beta-1", + "resolved": "https://registry.npmjs.org/@ionic-native/network/-/network-5.22.0-beta-1.tgz", + "integrity": "sha512-reOgFhHkyzCujqoGc1x8U9AZ40SBzdYT4HCFA6L2RwQT1NMyv+sDsp5er64p419Rfxg1k2QVTaDlEh+xPwhEqQ==", "requires": { "@types/cordova": "^0.0.34" }, diff --git a/package.json b/package.json index 39938b7c9..b208ddaa9 100644 --- a/package.json +++ b/package.json @@ -72,7 +72,7 @@ "@ionic-native/local-notifications": "^4.20.0", "@ionic-native/media": "^5.36.0", "@ionic-native/media-capture": "^5.36.0", - "@ionic-native/network": "^5.36.0", + "@ionic-native/network": "^5.22.0-beta-1", "@ionic-native/photo-viewer": "^5.36.0", "@ionic-native/screen-orientation": "^5.35.0", "@ionic-native/social-sharing": "^5.36.0", diff --git a/src/app/services/chat/chat-methods.service.ts b/src/app/services/chat/chat-methods.service.ts index 61e446163..379d048b5 100644 --- a/src/app/services/chat/chat-methods.service.ts +++ b/src/app/services/chat/chat-methods.service.ts @@ -47,13 +47,8 @@ export class ChatMethodsService { return this.chatService.sendMessage(body) } - deleteMessage(body) { return this.chatService.deleteMessage(body) } - - - - } \ No newline at end of file diff --git a/src/app/services/chat/message.service.ts b/src/app/services/chat/message.service.ts index fb7f144b2..68108025a 100644 --- a/src/app/services/chat/message.service.ts +++ b/src/app/services/chat/message.service.ts @@ -12,6 +12,7 @@ import { MessageModel, DeleteMessageModel } from '../../models/beast-orm' import { AESEncrypt } from '../aesencrypt.service' import { HttpClient, HttpEventType } from '@angular/common/http'; import { AttachmentsService } from 'src/app/services/attachments.service'; +import { NetworkServiceService , ConnectionStatus} from 'src/app/services/network-service.service'; @Injectable({ providedIn: 'root' @@ -62,7 +63,8 @@ export class MessageService { private ChatStorageService: ChatStorageService, private ChatMethodsService: ChatMethodsService, private AESEncrypt: AESEncrypt, - private AttachmentsService: AttachmentsService,) { + private AttachmentsService: AttachmentsService, + private NetworkServiceService: NetworkServiceService) { } setData({customFields = {}, channels, mentions, msg ,rid ,ts, u, t, _id, id, _updatedAt, file, attachments, temporaryData, localReference , viewed = [], received = [], delate = false, delateRequest =false, }:Message) { @@ -184,24 +186,29 @@ export class MessageService { delete params?.attachments?.image_url } - this.ChatMethodsService.send(params).subscribe( - (response: any) => { - const ChatMessage = response.message - this.messageSend = true - this.redefinedMessage(ChatMessage) - }, - (error) => { - this.WsChatService.registerCallback({ - type: 'reConnect', - funx: async ()=> { - - this.send() - return true - } - }) - } - ) + if(this.NetworkServiceService.getCurrentNetworkStatus() == ConnectionStatus.Online) { + + this.WsChatService.send(params).then( + (ChatMessage: any) => { + ChatMessage = ChatMessage.message.result + + this.messageSend = true + this.redefinedMessage(ChatMessage) + } + ) + + } else { + this.WsChatService.registerCallback({ + type: 'reConnect', + funx: async ()=> { + + this.send() + return true + } + }) + } + } async redefinedMessage(ChatMessage , update = true) { diff --git a/src/app/services/chat/room.service.ts b/src/app/services/chat/room.service.ts index b5099f4fe..80fcab564 100644 --- a/src/app/services/chat/room.service.ts +++ b/src/app/services/chat/room.service.ts @@ -22,6 +22,7 @@ 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'; @Injectable({ providedIn: 'root' @@ -77,18 +78,16 @@ export class RoomService { private ChatStorageService: ChatStorageService, private ChatMethodsService: ChatMethodsService, private AESEncrypt: AESEncrypt, - private AttachmentsService: AttachmentsService + private AttachmentsService: AttachmentsService, + private NetworkServiceService: NetworkServiceService ) { this.NativeNotificationService.askForPermission() - // this.restoreMessageFromDB() - this.WsChatService.getUserStatus((d) => { const userId = d.fields.args[0][0] const statusNum = d.fields.args[0][2] const statusText = this.statusNumberToText(statusNum) - // if(this.members?.map) { const membersIds = this.members.map((user)=> user._id) @@ -145,7 +144,7 @@ export class RoomService { } } - setData({members, u, customFields = {}, id, name, t, lastMessage = new MessageService(this.storage, this.NfService, this.WsChatService, this.ChatStorageService, this.ChatMethodsService, this.AESEncrypt, this.AttachmentsService), _updatedAt }) { + setData({members, u, customFields = {}, id, name, t, lastMessage = new MessageService(this.storage, this.NfService, this.WsChatService, this.ChatStorageService, this.ChatMethodsService, this.AESEncrypt, this.AttachmentsService, this.NetworkServiceService), _updatedAt }) { this.customFields = customFields this.id = id this.name = name @@ -343,7 +342,6 @@ export class RoomService { } - async receiveMessageDelete() { this.WsChatService.updateRoomEventss( @@ -372,14 +370,6 @@ export class RoomService { if(this.messages[i]?._id == id ) { - - //Get previous last message from room - const previousLastMessage = this.messages.slice(-1)[0]; - this.lastMessage = previousLastMessage; - - this.calDateDuration(previousLastMessage._updatedAt) - this.sortRoomList() - if (SessionStore.user.RochetChatUser == this.messages[i]?.u?.username) { const allMemberThatIsOffline = this.getAllMemberThatIsOffline() @@ -393,10 +383,14 @@ export class RoomService { } this.messages[i]?.delateDB() - - // console.log(_id,'==',this.messages[i]?._id, true) this.messages.splice(i, 1) + //Get previous last message from room + const previousLastMessage = this.messages.slice(-1)[0]; + this.lastMessage = previousLastMessage; + this.calDateDuration(previousLastMessage._updatedAt) + this.sortRoomList() + return true } else { @@ -429,40 +423,28 @@ export class RoomService { const message = this.messages.find((e)=>e._id == msgId) await message.delateStatusFalse() - this.ChatMethodsService.deleteMessage({_id:msgId, msgId:msgId, roomId:message.rid}).subscribe( - async (response: any) => { - + if(this.NetworkServiceService.getCurrentNetworkStatus() == ConnectionStatus.Online) { + + this.WsChatService.deleteMessage(msgId).then(async() => { message.delateRequest = true await message.save() this.deleteMessage(msgId) + }) - }, - async (response) => { - - if (response?.error?.error.startsWith('No message found with the id of')) { + } else { + this.WsChatService.registerCallback({ + type: 'reConnect', + funx: async ()=> { - this.deleteMessage(msgId) - message.delateRequest = true - await message.save() - - } else { - this.WsChatService.registerCallback({ - type: 'reConnect', - funx: async ()=> { - - this.sendDeleteRequest(msgId) - return true - } - }) + this.sendDeleteRequest(msgId) + return true } - - } - ) + }) + } } - /** * @description sen text message */ @@ -629,7 +611,7 @@ export class RoomService { await this.WsChatService.loadHistory(this.id, limit).then( async (chatHistory:chatHistory) => { - console.log('load chatHistory', JSON.stringify(chatHistory)) + // console.log('load chatHistory', JSON.stringify(chatHistory)) const messagesId = this.messages.map((message)=> message._id) @@ -685,7 +667,7 @@ export class RoomService { message = this.fix_updatedAt(message) - const wewMessage = new MessageService(this.storage, this.NfService, this.WsChatService, this.ChatStorageService, this.ChatMethodsService, this.AESEncrypt, this.AttachmentsService) + const wewMessage = new MessageService(this.storage, this.NfService, this.WsChatService, this.ChatStorageService, this.ChatMethodsService, this.AESEncrypt, this.AttachmentsService, this.NetworkServiceService) wewMessage.setData(message) wewMessage.loadHistory = this.hasLoadHistory @@ -742,7 +724,7 @@ export class RoomService { async prepareCreate({message, save = true}): Promise { message = this.fix_updatedAt(message) - const wewMessage = new MessageService(this.storage, this.NfService, this.WsChatService, this.ChatStorageService, this.ChatMethodsService, this.AESEncrypt, this.AttachmentsService) + const wewMessage = new MessageService(this.storage, this.NfService, this.WsChatService, this.ChatStorageService, this.ChatMethodsService, this.AESEncrypt, this.AttachmentsService, this.NetworkServiceService) wewMessage.setData(message) wewMessage.loadHistory = this.hasLoadHistory @@ -754,7 +736,7 @@ export class RoomService { simplePrepareMessage(message) { message = this.fix_updatedAt(message) - const wewMessage = new MessageService(this.storage, this.NfService, this.WsChatService, this.ChatStorageService, this.ChatMethodsService, this.AESEncrypt, this.AttachmentsService) + const wewMessage = new MessageService(this.storage, this.NfService, this.WsChatService, this.ChatStorageService, this.ChatMethodsService, this.AESEncrypt, this.AttachmentsService, this.NetworkServiceService) wewMessage.setData(message) wewMessage.loadHistory = this.hasLoadHistory diff --git a/src/app/services/chat/ws-chat-methods.service.ts b/src/app/services/chat/ws-chat-methods.service.ts index db3e320d7..82dae5b98 100644 --- a/src/app/services/chat/ws-chat-methods.service.ts +++ b/src/app/services/chat/ws-chat-methods.service.ts @@ -20,6 +20,7 @@ import { ChatStorageService } from './chat-storage.service' import { ChatMethodsService } from './chat-methods.service' import { AESEncrypt } from '../aesencrypt.service' import { AttachmentsService } from 'src/app/services/attachments.service'; +import { NetworkServiceService} from 'src/app/services/network-service.service'; @Injectable({ providedIn: 'root' @@ -57,7 +58,8 @@ export class WsChatMethodsService { private ChatStorageService: ChatStorageService, private ChatMethodsService:ChatMethodsService, private AESEncrypt: AESEncrypt, - private AttachmentsService:AttachmentsService + private AttachmentsService:AttachmentsService, + private NetworkServiceService: NetworkServiceService ) { this.loggedUser = authService.ValidatedUserChat['data']; @@ -314,7 +316,7 @@ export class WsChatMethodsService { // 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.storage, this.platform, this.sqlservice, this.NativeNotificationService, this.sortService, this.ChatService, this.NfService , this.ChatStorageService, this.ChatMethodsService, this.AESEncrypt, this.AttachmentsService) + 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) room.setData(setData) room.receiveMessage() room.getAllUsers = this.getUsers diff --git a/src/app/services/network-service.service.spec.ts b/src/app/services/network-service.service.spec.ts new file mode 100644 index 000000000..987fc15ec --- /dev/null +++ b/src/app/services/network-service.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { NetworkServiceService } from './network-service.service'; + +describe('NetworkServiceService', () => { + let service: NetworkServiceService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(NetworkServiceService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/services/network-service.service.ts b/src/app/services/network-service.service.ts new file mode 100644 index 000000000..8e5e32d36 --- /dev/null +++ b/src/app/services/network-service.service.ts @@ -0,0 +1,62 @@ +import { Injectable } from '@angular/core'; +import { ToastController, Platform } from '@ionic/angular'; +import { BehaviorSubject, Observable } from 'rxjs'; +import { Network } from '@ionic-native/network/ngx' + + +export enum ConnectionStatus { + Online, + Offline +} + + +@Injectable({ + providedIn: 'root' +}) +export class NetworkServiceService { + private status: BehaviorSubject = new BehaviorSubject(ConnectionStatus.Offline); + + constructor(private network: Network, private toastController: ToastController, private plt: Platform) { + this.plt.ready().then(() => { + this.initializeNetworkEvents(); + let status = this.network.type !== 'none' ? ConnectionStatus.Online : ConnectionStatus.Offline; + this.status.next(status); + }); + + } + + public initializeNetworkEvents() { + + this.network.onDisconnect().subscribe(() => { + if (this.status.getValue() === ConnectionStatus.Online) { + this.updateNetworkStatus(ConnectionStatus.Offline); + } + }); + + this.network.onConnect().subscribe(() => { + if (this.status.getValue() === ConnectionStatus.Offline) { + this.updateNetworkStatus(ConnectionStatus.Online); + } + }); + } + + private async updateNetworkStatus(status: ConnectionStatus) { + this.status.next(status); + + let connection = status == ConnectionStatus.Offline ? 'Offline' : 'Online'; + let toast = this.toastController.create({ + message: `You are now ${connection}`, + duration: 3000, + position: 'bottom' + }); + toast.then(toast => toast.present()); + } + + public onNetworkChange(): Observable { + return this.status.asObservable(); + } + + public getCurrentNetworkStatus(): ConnectionStatus { + return this.status.getValue(); + } +} diff --git a/src/app/services/permission.service.ts b/src/app/services/permission.service.ts index 3587a5dc6..7c3b84e0b 100644 --- a/src/app/services/permission.service.ts +++ b/src/app/services/permission.service.ts @@ -26,8 +26,8 @@ export class PermissionService { } - for(let permission of (this.SessionStore.user.UserPermissions || [])){ - if (args.includes(permission)){ + for(let permission of (this.SessionStore.user.UserPermissions || [])) { + if (args.includes(permission)) { return true; } } @@ -46,7 +46,7 @@ export class PermissionService { role = [role] } - if(!UserRoleIsValid) {return false } + if(!UserRoleIsValid) { return false } return true From 4684ed1e981b4329a4216b10d56eb4f622f99686 Mon Sep 17 00:00:00 2001 From: "tiago.kayaya" Date: Tue, 29 Mar 2022 16:49:51 +0100 Subject: [PATCH 42/63] add further permission on the navigation --- src/app/guards/inactivity.guard.ts | 32 +++++++++++++++++++++---- src/app/home/home.page.html | 2 +- src/app/pages/login/login.page.ts | 33 +++++++++++++++++++------- src/app/services/auth.service.ts | 1 - src/app/shared/header/header.page.html | 2 +- 5 files changed, 53 insertions(+), 17 deletions(-) diff --git a/src/app/guards/inactivity.guard.ts b/src/app/guards/inactivity.guard.ts index d23bfb54e..a712a50e1 100644 --- a/src/app/guards/inactivity.guard.ts +++ b/src/app/guards/inactivity.guard.ts @@ -3,15 +3,20 @@ import { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTr import { Observable } from 'rxjs'; import { SessionStore } from '../store/session.service'; import { AlertController, Platform } from '@ionic/angular'; +import { PermissionService } from '../services/permission.service'; +import { PermissionList } from '../models/permissionList'; @Injectable({ providedIn: 'root' }) export class InactivityGuard implements CanActivate { + permissionList = new PermissionList(); + constructor( private router:Router, private platform: Platform, + public permissionService: PermissionService, ){} canActivate( @@ -19,17 +24,34 @@ export class InactivityGuard implements CanActivate { state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree { if (this.platform.is('desktop') || this.platform.is('mobileweb')) { - this.router.navigate(['/home/events']); + if(this.permissionService.userPermission(this.permissionList.Agenda) || this.permissionService.userPermission(this.permissionList.Gabinete)){ + this.router.navigate(['/home/events']); + } + else if(this.permissionService.userPermission(this.permissionList.Chat)){ + this.router.navigate(['/home/chat']); + } + else if(this.permissionService.userPermission(this.permissionList.Actions)){ + this.router.navigate(['/home/publications']); + } return false } else if(SessionStore.exist && SessionStore.user.Inactivity && !SessionStore.hasPin ) { return true } else if(SessionStore.exist && !SessionStore.user.Inactivity) { return true - } else { - this.router.navigate(['/home/events']); + }//Mobile or Tablet without session + else { + if(this.permissionService.userPermission(this.permissionList.Agenda) || this.permissionService.userPermission(this.permissionList.Gabinete)){ + this.router.navigate(['/home/events']); + } + else if(this.permissionService.userPermission(this.permissionList.Chat)){ + this.router.navigate(['/home/chat']); + } + else if(this.permissionService.userPermission(this.permissionList.Actions)){ + this.router.navigate(['/home/publications']); + } return false } - + } - + } diff --git a/src/app/home/home.page.html b/src/app/home/home.page.html index a923fb919..80c3b0444 100644 --- a/src/app/home/home.page.html +++ b/src/app/home/home.page.html @@ -2,7 +2,7 @@ - + diff --git a/src/app/pages/login/login.page.ts b/src/app/pages/login/login.page.ts index 37a27b44f..9072eb405 100644 --- a/src/app/pages/login/login.page.ts +++ b/src/app/pages/login/login.page.ts @@ -12,6 +12,8 @@ import { ChangeProfileService } from 'src/app/services/change-profile.service'; import { ThemeService } from 'src/app/services/theme.service'; import { StorageService } from 'src/app/services/storage.service'; import { ChatService } from 'src/app/services/chat.service'; +import { PermissionService } from 'src/app/services/permission.service'; +import { PermissionList } from 'src/app/models/permissionList'; @Component({ selector: 'app-login', @@ -29,7 +31,8 @@ export class LoginPage implements OnInit { hasPin: boolean loginPreference: string - sessionStore = SessionStore + sessionStore = SessionStore; + permissionList = new PermissionList(); constructor( private notificatinsservice: NotificationsService, @@ -40,7 +43,8 @@ export class LoginPage implements OnInit { private clearStoreService: ClearStoreService, private changeProfileService: ChangeProfileService, public ThemeService: ThemeService, - private storageservice: StorageService + private storageservice: StorageService, + public permissionService: PermissionService, ) {} ngOnInit() { @@ -101,26 +105,29 @@ 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(); - await this.authService.loginToChatWs() + await this.authService.loginToChatWs(); this.getToken(); SessionStore.setInativity(true); - this.goback() + this.goback(); + } else { - this.clearStoreService.clear() - SessionStore.delete() + this.clearStoreService.clear(); + SessionStore.delete(); window.localStorage.clear(); await this.authService.SetSession(attempt, this.userattempt); - this.changeProfileService.run() + this.changeProfileService.run(); await this.authService.loginChat(); - await this.authService.loginToChatWs() + await this.authService.loginToChatWs(); this.getToken(); this.router.navigateByUrl('/pin', { replaceUrl: true }); + } } else{ @@ -141,7 +148,15 @@ export class LoginPage implements OnInit { if(pathName) { this.router.navigate([pathName]); } else { - this.router.navigate(['/home/events']); + if(this.permissionService.userPermission(this.permissionList.Agenda) || this.permissionService.userPermission(this.permissionList.Gabinete)){ + this.router.navigate(['/home/events']); + } + else if(this.permissionService.userPermission(this.permissionList.Chat)){ + this.router.navigate(['/home/chat']); + } + else if(this.permissionService.userPermission(this.permissionList.Actions)){ + this.router.navigate(['/home/publications']); + } } } diff --git a/src/app/services/auth.service.ts b/src/app/services/auth.service.ts index b2790df57..f4f015d41 100644 --- a/src/app/services/auth.service.ts +++ b/src/app/services/auth.service.ts @@ -131,7 +131,6 @@ export class AuthService { let responseChat = await this.httpService.post('login', postData).toPromise(); if(responseChat) { - console.log('Login to Rocket chat OK', responseChat); this.ValidatedUserChat = responseChat; localStorage.setItem('userChat', JSON.stringify(responseChat)); diff --git a/src/app/shared/header/header.page.html b/src/app/shared/header/header.page.html index d0db46512..7769fc17e 100644 --- a/src/app/shared/header/header.page.html +++ b/src/app/shared/header/header.page.html @@ -66,7 +66,7 @@
-
From 5ff9ba77cb13e640d3f095695c5e39feb6dab486 Mon Sep 17 00:00:00 2001 From: "tiago.kayaya" Date: Tue, 29 Mar 2022 17:10:32 +0100 Subject: [PATCH 43/63] save --- src/app/shared/header/header.page.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/app/shared/header/header.page.html b/src/app/shared/header/header.page.html index 016b7f375..d361bc732 100644 --- a/src/app/shared/header/header.page.html +++ b/src/app/shared/header/header.page.html @@ -78,7 +78,7 @@ -
@@ -89,7 +89,7 @@ -
@@ -100,7 +100,7 @@ -
@@ -110,7 +110,7 @@ -
From 236cc86fbf99066ae284b1d26fd2525eb3ae20a7 Mon Sep 17 00:00:00 2001 From: "tiago.kayaya" Date: Wed, 30 Mar 2022 15:08:23 +0100 Subject: [PATCH 44/63] further improvements in permission --- src/app/guards/inactivity.guard.ts | 15 ++++++++------- src/app/home/home.page.html | 10 +++++----- src/app/home/home.page.ts | 3 ++- src/app/models/permission/actions.permission.ts | 9 +++++++++ src/app/models/permission/agenda-permission.ts | 3 +++ src/app/models/permission/chat-permission.ts | 3 +++ src/app/models/permission/gabinete-permission.ts | 5 +++++ src/app/models/permission/permissionList.ts | 11 +++++++++++ src/app/models/permissionList.ts | 6 ------ src/app/pages/events/events.page.html | 4 ++-- src/app/pages/events/events.page.ts | 9 +++++++-- src/app/pages/login/login.page.ts | 9 +++++---- src/app/shared/header/header.page.html | 10 +++++----- src/app/shared/header/header.page.ts | 2 +- 14 files changed, 66 insertions(+), 33 deletions(-) create mode 100644 src/app/models/permission/actions.permission.ts create mode 100644 src/app/models/permission/agenda-permission.ts create mode 100644 src/app/models/permission/chat-permission.ts create mode 100644 src/app/models/permission/gabinete-permission.ts create mode 100644 src/app/models/permission/permissionList.ts delete mode 100644 src/app/models/permissionList.ts diff --git a/src/app/guards/inactivity.guard.ts b/src/app/guards/inactivity.guard.ts index a712a50e1..64fad8b0b 100644 --- a/src/app/guards/inactivity.guard.ts +++ b/src/app/guards/inactivity.guard.ts @@ -4,7 +4,7 @@ import { Observable } from 'rxjs'; import { SessionStore } from '../store/session.service'; import { AlertController, Platform } from '@ionic/angular'; import { PermissionService } from '../services/permission.service'; -import { PermissionList } from '../models/permissionList'; +import { PermissionList } from '../models/permission/permissionList'; @Injectable({ providedIn: 'root' @@ -24,13 +24,14 @@ export class InactivityGuard implements CanActivate { state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree { if (this.platform.is('desktop') || this.platform.is('mobileweb')) { - if(this.permissionService.userPermission(this.permissionList.Agenda) || this.permissionService.userPermission(this.permissionList.Gabinete)){ + console.log(this.permissionList); + if(this.permissionService.userPermission(this.permissionList.Agenda.access) || this.permissionService.userPermission(this.permissionList.Gabinete.access)){ this.router.navigate(['/home/events']); } - else if(this.permissionService.userPermission(this.permissionList.Chat)){ + else if(this.permissionService.userPermission(this.permissionList.Chat.access) && this.permissionService.userPermission(this.permissionList.Actions.access)){ this.router.navigate(['/home/chat']); } - else if(this.permissionService.userPermission(this.permissionList.Actions)){ + else if(this.permissionService.userPermission(this.permissionList.Actions.access)){ this.router.navigate(['/home/publications']); } return false @@ -40,13 +41,13 @@ export class InactivityGuard implements CanActivate { return true }//Mobile or Tablet without session else { - if(this.permissionService.userPermission(this.permissionList.Agenda) || this.permissionService.userPermission(this.permissionList.Gabinete)){ + if(this.permissionService.userPermission(this.permissionList.Agenda.access) || this.permissionService.userPermission(this.permissionList.Gabinete.access)){ this.router.navigate(['/home/events']); } - else if(this.permissionService.userPermission(this.permissionList.Chat)){ + else if(this.permissionService.userPermission(this.permissionList.Chat.access) && this.permissionService.userPermission(this.permissionList.Actions.access)){ this.router.navigate(['/home/chat']); } - else if(this.permissionService.userPermission(this.permissionList.Actions)){ + else if(this.permissionService.userPermission(this.permissionList.Actions.access)){ this.router.navigate(['/home/publications']); } return false diff --git a/src/app/home/home.page.html b/src/app/home/home.page.html index 80c3b0444..d730cc84d 100644 --- a/src/app/home/home.page.html +++ b/src/app/home/home.page.html @@ -2,7 +2,7 @@ - + @@ -10,14 +10,14 @@ Início - + Agenda - + @@ -26,13 +26,13 @@ Gabinete - + Ações - + Chat diff --git a/src/app/home/home.page.ts b/src/app/home/home.page.ts index 6e7d3c71a..04b9a5291 100644 --- a/src/app/home/home.page.ts +++ b/src/app/home/home.page.ts @@ -31,7 +31,7 @@ import { environment } from 'src/environments/environment'; import { v4 as uuidv4 } from 'uuid' import { NativeNotificationService } from 'src/app/services/native-notification.service'; import { UserSession } from '../models/user.model'; -import { PermissionList } from '../models/permissionList'; +import { PermissionList } from '../models/permission/permissionList'; @Component({ selector: 'app-home', @@ -180,6 +180,7 @@ export class HomePage implements OnInit { myWorker.postMessage('ali'); */ this.clearTabButtonSelection(); + } clearTabButtonSelection(){ diff --git a/src/app/models/permission/actions.permission.ts b/src/app/models/permission/actions.permission.ts new file mode 100644 index 000000000..8dcbc9a83 --- /dev/null +++ b/src/app/models/permission/actions.permission.ts @@ -0,0 +1,9 @@ +export class ActionsPermission{ + access = 534; + create = 535; + remove = 536; + edit = 537; + createPost = 538; + removePost = 539; + editPost = 540; +} diff --git a/src/app/models/permission/agenda-permission.ts b/src/app/models/permission/agenda-permission.ts new file mode 100644 index 000000000..bb3afb868 --- /dev/null +++ b/src/app/models/permission/agenda-permission.ts @@ -0,0 +1,3 @@ +export class AgendaPermission{ + access = 530 +} diff --git a/src/app/models/permission/chat-permission.ts b/src/app/models/permission/chat-permission.ts new file mode 100644 index 000000000..4f780e33c --- /dev/null +++ b/src/app/models/permission/chat-permission.ts @@ -0,0 +1,3 @@ +export class ChatPermission{ + access = 541; +} diff --git a/src/app/models/permission/gabinete-permission.ts b/src/app/models/permission/gabinete-permission.ts new file mode 100644 index 000000000..be9fa5c45 --- /dev/null +++ b/src/app/models/permission/gabinete-permission.ts @@ -0,0 +1,5 @@ +export class GabinetePermission{ + access = 531; + pr_tasks = 532; + md_tasks = 533; +} diff --git a/src/app/models/permission/permissionList.ts b/src/app/models/permission/permissionList.ts new file mode 100644 index 000000000..43a3fd3b8 --- /dev/null +++ b/src/app/models/permission/permissionList.ts @@ -0,0 +1,11 @@ +import { ActionsPermission } from "./actions.permission"; +import { AgendaPermission } from "./agenda-permission"; +import { ChatPermission } from "./chat-permission"; +import { GabinetePermission } from "./gabinete-permission"; + +export class PermissionList{ + Agenda = new AgendaPermission(); + Gabinete = new GabinetePermission(); + Actions = new ActionsPermission(); + Chat = new ChatPermission(); +} diff --git a/src/app/models/permissionList.ts b/src/app/models/permissionList.ts deleted file mode 100644 index cfaf80f57..000000000 --- a/src/app/models/permissionList.ts +++ /dev/null @@ -1,6 +0,0 @@ -export class PermissionList{ - Agenda = 530; - Gabinete = 531; - Actions = 534; - Chat = 541; -} diff --git a/src/app/pages/events/events.page.html b/src/app/pages/events/events.page.html index 168f4252c..730a225d3 100644 --- a/src/app/pages/events/events.page.html +++ b/src/app/pages/events/events.page.html @@ -26,7 +26,7 @@
-
+
@@ -94,7 +94,7 @@
-
+
diff --git a/src/app/pages/events/events.page.ts b/src/app/pages/events/events.page.ts index e4055a9a8..752a14fe0 100644 --- a/src/app/pages/events/events.page.ts +++ b/src/app/pages/events/events.page.ts @@ -22,6 +22,8 @@ import { BackgroundService } from 'src/app/services/background.service'; import { momentG } from 'src/plugin/momentG'; import { ThemeService } from 'src/app/services/theme.service' import { Storage } from '@ionic/storage'; +import { PermissionList } from 'src/app/models/permission/permissionList'; +import { PermissionService } from 'src/app/services/permission.service'; @Component({ selector: 'app-events', templateUrl: './events.page.html', @@ -81,6 +83,8 @@ export class EventsPage implements OnInit { /* existingScreenOrientation: string; */ + permissionList = new PermissionList(); + constructor( private eventService: EventsService, private router: Router, @@ -97,7 +101,8 @@ export class EventsPage implements OnInit { private networkconnection: NetworkConnectionService, private backgroundservice: BackgroundService, public ThemeService: ThemeService, - private storage: Storage + private storage: Storage, + public p: PermissionService, ) { /* this.existingScreenOrientation = this.screenOrientation.type; console.log(this.existingScreenOrientation); */ @@ -213,7 +218,7 @@ export class EventsPage implements OnInit { let mdPessoalEvents = await this.eventService.getAllMdPessoalEvents(start, end).toPromise(); const list = mdOficialEvents.concat(mdPessoalEvents); - + this.addEventToDb(list); this.listToPresent = list diff --git a/src/app/pages/login/login.page.ts b/src/app/pages/login/login.page.ts index 9072eb405..a915cdc21 100644 --- a/src/app/pages/login/login.page.ts +++ b/src/app/pages/login/login.page.ts @@ -13,7 +13,7 @@ import { ThemeService } from 'src/app/services/theme.service'; import { StorageService } from 'src/app/services/storage.service'; import { ChatService } from 'src/app/services/chat.service'; import { PermissionService } from 'src/app/services/permission.service'; -import { PermissionList } from 'src/app/models/permissionList'; +import { PermissionList } from 'src/app/models/permission/permissionList'; @Component({ selector: 'app-login', @@ -148,13 +148,14 @@ export class LoginPage implements OnInit { if(pathName) { this.router.navigate([pathName]); } else { - if(this.permissionService.userPermission(this.permissionList.Agenda) || this.permissionService.userPermission(this.permissionList.Gabinete)){ + if(this.permissionService.userPermission(this.permissionList.Agenda.access) || this.permissionService.userPermission(this.permissionList.Gabinete.access)){ this.router.navigate(['/home/events']); } - else if(this.permissionService.userPermission(this.permissionList.Chat)){ + else if(this.permissionService.userPermission(this.permissionList.Chat.access) && this.permissionService.userPermission(this.permissionList.Actions.access)){ this.router.navigate(['/home/chat']); } - else if(this.permissionService.userPermission(this.permissionList.Actions)){ + else if(this.permissionService.userPermission(this.permissionList.Actions.access)){ + alert('here') this.router.navigate(['/home/publications']); } } diff --git a/src/app/shared/header/header.page.html b/src/app/shared/header/header.page.html index d361bc732..06d76d173 100644 --- a/src/app/shared/header/header.page.html +++ b/src/app/shared/header/header.page.html @@ -66,7 +66,7 @@
-
@@ -78,7 +78,7 @@ -
@@ -89,7 +89,7 @@ -
@@ -100,7 +100,7 @@ -
@@ -110,7 +110,7 @@ -
diff --git a/src/app/shared/header/header.page.ts b/src/app/shared/header/header.page.ts index 36a61ad9c..b91aa2d7a 100644 --- a/src/app/shared/header/header.page.ts +++ b/src/app/shared/header/header.page.ts @@ -11,7 +11,7 @@ import { EventTrigger } from '../../services/eventTrigger.service'; import { ThemeService } from '../../services/theme.service'; import { interval } from 'rxjs'; import { RouteService } from 'src/app/services/route.service'; -import { PermissionList } from 'src/app/models/permissionList'; +import { PermissionList } from 'src/app/models/permission/permissionList'; import { PermissionService } from 'src/app/services/permission.service'; @Component({ From 274f8f0d62f4990a8434bd2f3d158cd51226ffe0 Mon Sep 17 00:00:00 2001 From: "tiago.kayaya" Date: Wed, 30 Mar 2022 16:32:56 +0100 Subject: [PATCH 45/63] add permission on actions module --- src/app/models/permission/actions.permission.ts | 2 +- .../publication-detail/publication-detail.page.html | 4 ++-- .../publication-detail/publication-detail.page.ts | 4 +++- src/app/pages/publications/publications.page.html | 6 +++--- src/app/pages/publications/publications.page.ts | 4 +++- .../publication-detail/publication-detail.page.html | 4 ++-- .../publication-detail/publication-detail.page.ts | 4 +++- .../view-publications/view-publications.page.html | 6 +++--- .../view-publications/view-publications.page.ts | 6 ++++-- src/app/services/permission.service.ts | 2 ++ .../publication-detail/publication-detail.page.html | 4 ++-- .../publication-detail/publication-detail.page.ts | 4 +++- .../view-publications/view-publications.page.html | 6 +++--- .../publication/view-publications/view-publications.page.ts | 6 ++++-- 14 files changed, 38 insertions(+), 24 deletions(-) diff --git a/src/app/models/permission/actions.permission.ts b/src/app/models/permission/actions.permission.ts index 8dcbc9a83..bf4d4af1a 100644 --- a/src/app/models/permission/actions.permission.ts +++ b/src/app/models/permission/actions.permission.ts @@ -4,6 +4,6 @@ export class ActionsPermission{ remove = 536; edit = 537; createPost = 538; - removePost = 539; + deletePost = 539; editPost = 540; } diff --git a/src/app/pages/publications/publication-detail/publication-detail.page.html b/src/app/pages/publications/publication-detail/publication-detail.page.html index ea16990a6..d778e071d 100644 --- a/src/app/pages/publications/publication-detail/publication-detail.page.html +++ b/src/app/pages/publications/publication-detail/publication-detail.page.html @@ -56,12 +56,12 @@ - +