This commit is contained in:
tiago.kayaya
2021-08-18 18:59:02 +01:00
17 changed files with 232 additions and 53 deletions
+2 -2
View File
@@ -15,8 +15,8 @@
<ion-tab-button tab="gabinete-digital">
<!-- <ion-icon name="file-tray-stacked"></ion-icon> -->
<ion-icon class="nav-icon" src="assets/images/icons-nav-gabinete-inactive.svg"></ion-icon>
<ion-badge color="danger" *ngIf="p.userRole(['MDGPR'])" >{{ documentCounterService.mdTotalDocument }}</ion-badge>
<ion-badge color="danger" *ngIf="p.userRole(['PR'])" >{{ documentCounterService.prTotalDocument }}</ion-badge>
<ion-badge color="danger" *ngIf="p.userRole(['MDGPR'])" >{{ totalDocumentStore.count }}</ion-badge>
<ion-badge color="danger" *ngIf="p.userRole(['PR'])" >{{ totalDocumentStore.count }}</ion-badge>
<ion-label>Gabinete</ion-label>
</ion-tab-button>
<ion-tab-button tab="publications">
+2 -1
View File
@@ -13,6 +13,7 @@ import { ToastService } from '../services/toast.service';
import { ToDayEventStorage } from '../store/to-day-event-storage.service';
import { DocumentCounterService } from 'src/app/OtherService/document-counter.service'
import { PermissionService } from '../OtherService/permission.service';
import { TotalDocumentService, TotalDocumentStore } from '../store/total-document.service';
// import * as Sentry from "@sentry/browser";
@@ -42,8 +43,8 @@ export class HomePage implements OnInit {
totalExpediente = 0;
profile: string;
toDayEventStorage = ToDayEventStorage
totalDocumentStore = TotalDocumentStore
adding: "intervenient" | "CC" = "intervenient";
mobileComponent = {
+1 -1
View File
@@ -34,7 +34,7 @@
<ion-list>
<div class="item cursor-pointer ion-no-padding ion-no-margin" lines="none"
*ngFor = "let item of notificationdata; let i = index"
(click)="notificatinsRoutes(item.Service,item.Object,item.IdObject,item.FolderId)"
(click)="notificatinsRoutes(item.index,item.Service,item.Object,item.IdObject,item.FolderId)"
>
<div class="item-content width-100">
<div class="notification-item">
+42 -32
View File
@@ -1,7 +1,7 @@
///<reference path="../../../../plugins/cordova-plugin-mfp/typings/worklight.d.ts" />
///<reference path="../../../../plugins/cordova-plugin-mfp-jsonstore/typings/jsonstore.d.ts" />
import { Component, OnInit,NgZone } from '@angular/core';
import { Router,NavigationExtras } from '@angular/router';
import { Component, OnInit, NgZone } from '@angular/core';
import { Router, NavigationExtras } from '@angular/router';
import { AnimationController, ModalController } from '@ionic/angular';
import { User } from 'src/app/models/user.model';
import { AuthService } from 'src/app/services/auth.service';
@@ -9,6 +9,7 @@ import { LocalstoreService } from 'src/app/store/localstore.service';
import { EditProfilePage } from './edit-profile/edit-profile.page';
import { JsonStore } from '../../services/jsonStore.service';
import { StorageService } from '../../services/storage.service';
import { NotificationsService } from '../../services/notifications.service';
@Component({
selector: 'app-profile',
@@ -30,6 +31,7 @@ export class ProfilePage implements OnInit {
private jsonstore: JsonStore,
private storageservice: StorageService,
private zone: NgZone,
private notificationservice: NotificationsService
) {
this.loggeduser = authService.ValidatedUser;
@@ -43,10 +45,11 @@ export class ProfilePage implements OnInit {
this.storageservice.get("Notifications").then((value) => {
var data = JSON.parse(value);
data.forEach(element => {
data.forEach((element, i) => {
console.log("ARaaAA", element)
var payload = JSON.parse(element.payload)
let notificationObject = {
index: i,
alert: element.alert,
Service: payload.Service,
Object: payload.Object,
@@ -75,65 +78,72 @@ export class ProfilePage implements OnInit {
notImplemented() { }
notificatinsRoutes = (Service,Object,IdObject,FolderId) => {
notificatinsRoutes = (index, Service, Object, IdObject, FolderId) => {
if (Service === "agenda") {
this.zone.run(() => this.router.navigate(['/home/agenda', IdObject, 'agenda']));
}
else if (Service === "gabinete-digital" && Object === "expediente") {
this.zone.run(() => this.router.navigate(['/home/gabinete-digital/expediente',IdObject,'gabinete-digital']));
this.zone.run(() => this.router.navigate(['/home/gabinete-digital/expediente', IdObject, 'gabinete-digital']));
}
else if (Service === "gabinete-digital" && Object === "event-list") {
this.zone.run(() => this.router.navigate(['/home/gabinete-digital/event-list/approve-event',IdObject, 'gabinete-digital']));
}else if (Service === "gabinete-digital" && Object === "despachos") {
this.zone.run(() => this.router.navigate(['/home/gabinete-digital/event-list/approve-event', IdObject, 'gabinete-digital']));
} else if (Service === "gabinete-digital" && Object === "despachos") {
this.zone.run(() => this.router.navigate(['/home/gabinete-digital/despachos',IdObject,'gabinete-digital'],{replaceUrl: true}));
this.zone.run(() => this.router.navigate(['/home/gabinete-digital/despachos', IdObject, 'gabinete-digital'], { replaceUrl: true }));
}
else if (Service === "gabinete-digital" && Object === "parecer") {
this.zone.run(() => this.router.navigate(['/home/gabinete-digital/pedidos',IdObject,'gabinete-digital']));
this.zone.run(() => this.router.navigate(['/home/gabinete-digital/pedidos', IdObject, 'gabinete-digital']));
}
else if (Service === "gabinete-digital" && Object === "deferimento") {
this.zone.run(() => this.router.navigate(['/home/gabinete-digital/pedidos',IdObject,'gabinete-digital']));
this.zone.run(() => this.router.navigate(['/home/gabinete-digital/pedidos', IdObject, 'gabinete-digital']));
}
else if (Service === "gabinete-digital" && Object === "despachos-pr") {
this.zone.run(() =>this.router.navigate(['/home/gabinete-digital/despachos-pr',IdObject,'gabinete-digital']));
}
else if (Service === "accoes" && Object === "accao") {
this.zone.run(() => this.router.navigate(['/home/publications', IdObject]));
}
else if (Service === "accoes" && Object === "publicacao") {
this.zone.run(() => this.router.navigate(['/home/publications/view-publications', FolderId, IdObject]));
}
else if (Service === "gabinete-digital" && Object === "diplomas") {
this.zone.run(() => this.router.navigate(['/home/gabinete-digital/diplomas', IdObject, 'gabinete-digital']));
}
else if (Service === "gabinete-digital" && Object === "diplomas-assinar") {
let navigationExtras: NavigationExtras = {
queryParams: {
"serialNumber": IdObject,
}
};
this.zone.run(() =>this.router.navigate(['/home/gabinete-digital/despachos-pr/despacho-pr'], navigationExtras));
}
else if (Service === "accoes" && Object === "accao") {
this.zone.run(() => this.router.navigate(['/home/publications',IdObject]));
}
else if (Service === "accoes" && Object === "publicacao") {
this.zone.run(() => this.router.navigate(['/home/publications/view-publications',FolderId,IdObject]));
}
else if (Service === "gabinete-digital" && Object === "diplomas") {
this.zone.run(() =>this.router.navigate(['/home/gabinete-digital/diplomas', IdObject, 'gabinete-digital']));
}
else if (Service === "gabinete-digital" && Object === "diplomas-assinar") {
let navigationExtras: NavigationExtras = {
queryParams: {
"serialNumber": IdObject,
}
};
this.zone.run(() =>this.router.navigate(['/home/gabinete-digital/diplomas-assinar/diploma-assinar'], navigationExtras));
this.zone.run(() => this.router.navigate(['/home/gabinete-digital/diplomas-assinar/diploma-assinar'], navigationExtras));
}
else if (Service === "gabinete-digital" && Object === "expedientes-pr") {
this.zone.run(() =>this.router.navigate(['/home/gabinete-digital/expedientes-pr',IdObject,'gabinete-digital']));
this.zone.run(() => this.router.navigate(['/home/gabinete-digital/expedientes-pr', IdObject, 'gabinete-digital']));
}
const indexx = this.notificationdata.indexOf(index, 0);
if (indexx > -1) {
this.notificationdata.splice(index, 1);
console.log('This notificatio', this.notificationdata);
}
this.notificationservice.removeDepartment(index);
console.log('This notificatio 2', this.notificationdata);
}
logout() {
window.localStorage.clear();
setTimeout(()=> {
setTimeout(() => {
this.router.navigateByUrl('/', { replaceUrl: true });
},100)
}, 100)
}
checkState() {
+4 -3
View File
@@ -11,8 +11,6 @@ export class DailyWorkTask{
Status: string;
}
export class fullTask {
actions: null;
activityInstanceName: string;
@@ -67,7 +65,9 @@ export class fullTask {
workflowInstanceID: number
workflowName: string
}
export class tasksList extends fullTask{}
export class customTaskList {
SerialNumber: string
Folio : string
@@ -82,4 +82,5 @@ export class customTaskList {
activityInstanceName : string
Status : string
}
export class customTask extends customTaskList{}
export class customTask extends customTaskList{}
+4 -4
View File
@@ -91,7 +91,7 @@ export class MessagesPage implements OnInit, AfterViewChecked {
} catch(err) { }
}
sendMessage(){
sendMessage() {
let body = {
"message":
{
@@ -104,7 +104,7 @@ export class MessagesPage implements OnInit, AfterViewChecked {
this.message = "";
}
loadMessages(){
loadMessages() {
this.showLoader = true;
this.chatService.getRoomMessages(this.roomId).subscribe(res => {
/* console.log(res); */
@@ -113,7 +113,7 @@ export class MessagesPage implements OnInit, AfterViewChecked {
this.showLoader = false;
})
}
getChatMembers(){
getChatMembers() {
this.showLoader = true;
this.chatService.getMembers(this.roomId).subscribe(res=> {
this.members = res['members'];
@@ -167,7 +167,7 @@ export class MessagesPage implements OnInit, AfterViewChecked {
return await popover.present();
}
async serverLongPull(){
async serverLongPull() {
this.chatService.getRoomMessages(this.roomId).subscribe(async res => {
if (res == 502) {
@@ -95,7 +95,7 @@
<fa-icon class="icon-selected" icon="align-justify"></fa-icon>
</div>
<p class="text-center exp-card-title ">Todas as tarefas</p>
<p class="text-center exp-card-content">{{count_all_processes}} <span class="title1">Documentos</span></p>
<p class="text-center exp-card-content">{{ totalDocumentStore.count }} <span class="title1">Documentos</span></p>
</div>
<div (click)="openEventsToApprovePage();selectedElement='approval'" [class.active]="selectedElement == 'approval'" class="exp-card d-flex flex-column" *ngIf="loggeduser.Profile == 'MDGPR'" >
@@ -18,6 +18,7 @@ import { DespachosprStore } from 'src/app/store/despachospr-store.service';
import { PermissionService } from 'src/app/OtherService/permission.service';
import { removeDuplicate } from 'src/plugin/removeDuplicate.js'
import { WaitForDomService } from 'src/app/services/dom/wait-for-dom.service';
import { TotalDocumentStore } from 'src/app/store/total-document.service';
@Component({
selector: 'app-gabinete-digital',
@@ -94,6 +95,7 @@ export class GabineteDigitalPage implements OnInit, DoCheck {
pedidosstore = PedidosStore;
expedienteprstore = ExpedienteprStore;
despachoprstore = DespachosprStore;
totalDocumentStore = TotalDocumentStore
@ViewChild(ExpedientsPage) expedientesPage: ExpedientsPage;
@ViewChild(PendentesPage) pendentesListPage: PendentesPage;
@@ -211,6 +213,8 @@ export class GabineteDigitalPage implements OnInit, DoCheck {
this.allProcessesList.push(task);
this.allProcessesList = removeDuplicate( this.allProcessesList)
this.allProcessesList = this.sortArrayISODate(this.allProcessesList).reverse();
this.totalDocumentStore.resetCount( this.allProcessesList.length)
});
this.skeletonLoader = false;
-2
View File
@@ -206,8 +206,6 @@ export class LoginPage implements OnInit {
this.localstoreService.set('UserData', userData)
this.localstoreService.set('PIN', encrypted)
this.router.navigate(['/home/events']);
+15 -7
View File
@@ -165,6 +165,16 @@ export class NotificationsService {
}
removeDepartment(index): void {
/* this.DataArray[this.DataArray.findIndex(item => item.index == index)];
this.DataArray.splice( this.DataArray.findIndex(item => item.indexOf(index.to) === 'William'),1); */
const indexx = this.DataArray.indexOf(index, 0);
if (indexx > -1) {
this.DataArray.splice(index, 1);
console.log('This notificatio', this.DataArray);
}
}
async onReceviNotification() {
if(window['WLAuthorizationManager']) {
@@ -185,6 +195,7 @@ export class NotificationsService {
var notificationReceived = (message) => {
//this.jsonstore.createCollection('Notifications',message);
this.DataArray.push(message)
console.log("On ReceiveNotification", message)
this.storageService.store("Notifications",JSON.stringify(this.DataArray))
console.log(message);
@@ -196,7 +207,9 @@ export class NotificationsService {
if(message.actionName){
this.notificatinsRoutes(data);
} else {
this.toastService.notificationMessage(message.alert,this.notificatinsRoutes, data);
/* this.toastService.notificationMessage(message.alert,this.notificatinsRoutes, data); */
//this.notificatinsRoutes(data);
console.log(data)
}
}
@@ -234,12 +247,7 @@ export class NotificationsService {
}
else if (data.Service === "gabinete-digital" && data.Object === "despachos-pr") {
let navigationExtras: NavigationExtras = {
queryParams: {
"serialNumber": data.IdObject,
}
};
this.zone.run(() =>this.router.navigate(['/home/gabinete-digital/despachos-pr/despacho-pr'], navigationExtras));
this.zone.run(() =>this.router.navigate(['/home/gabinete-digital/despachos-pr',data.IdObject,'gabinete-digital']));
}
else if (data.Service === "accoes" && data.Object === "accao") {
this.zone.run(() => this.router.navigate(['/home/publications',data.IdObject]));
@@ -0,0 +1,16 @@
import { TestBed } from '@angular/core/testing';
import { SynchroService } from './synchro.service';
describe('SynchroService', () => {
let service: SynchroService;
beforeEach(() => {
TestBed.configureTestingModule({});
service = TestBed.inject(SynchroService);
});
it('should be created', () => {
expect(service).toBeTruthy();
});
});
@@ -0,0 +1,74 @@
import { Injectable } from '@angular/core';
import { v4 as uuidv4 } from 'uuid'
export interface wss{
url: string,
type: 'reflect' | 'emit'
header: {
id: string
bluePrint: string,
jwt: string
}
}
@Injectable({
providedIn: 'root'
})
export class SynchroService {
[x: string]: any;
private connection!: WebSocket;
private id: string = uuidv4();
public conected = false
private url: string = ''
constructor(){}
setUrl(wss:wss) {
this.url = `${wss.url}${wss.header.id}/${wss.header.jwt}/${wss.header.bluePrint}/${this.id}/`
}
connect() {
this.connection = new WebSocket(this.url);
// bind function
this.connection.onopen = this.onopen;
this.connection.onmessage = this.onmessage;
this.connection.onclose = this.onclose;
this.connection.onerror = this.onerror;
}
private onopen = () =>{
console.log('open ======================= welcome to socket server')
// this.connection.send(JSON.stringify({user:'user1'}));
}
public $send = (object: any) => {
let sendData = JSON.stringify(Object.assign({}, object));
this.connection.send(sendData);
}
private onmessage = async (event: any)=> {
}
private onclose=(event:any)=>{
setTimeout(() => {
if (event.wasClean) {
console.log(`[close] Connection closed cleanly, code=${event.code} reason=${event.reason}`);
} else {
// e.g. server process killed or network down
// event.code is usually 1006 in this case
console.log('[close] Connection died');
console.log('Reconnect')
this.connect()
}
}, 100);
}
private onerror=(event: any)=>{
console.log(`[error] ${event.message}`);
}
}
+6
View File
@@ -18,6 +18,12 @@ const { Storage } = Plugins; */
const ret = await this.storage.get(key).then((val) => { return val; });
return JSON.parse(unescape(atob(ret)));
}
async remove(key: string){
await this.storage.remove(key);
}
/*
// Get the value
async get(storageKey: string) {
@@ -270,6 +270,7 @@ export class OptsExpedientePrPage implements OnInit {
taskAction: taskAction,
task: task,
profile: this.profile,
fulltask: this.fulltask,
},
cssClass: classs,
});
+1
View File
@@ -75,6 +75,7 @@ export class DeplomasService {
}
saveDiplomasAssinadoList() {
setTimeout(()=>{
localstoreService.set(this.keyNameDiplomasAssinado,{
list: this._diplomasAssinadoList,
@@ -0,0 +1,16 @@
import { TestBed } from '@angular/core/testing';
import { TotalDocumentService } from './total-document.service';
describe('TotalDocumentService', () => {
let service: TotalDocumentService;
beforeEach(() => {
TestBed.configureTestingModule({});
service = TestBed.inject(TotalDocumentService);
});
it('should be created', () => {
expect(service).toBeTruthy();
});
});
+43
View File
@@ -0,0 +1,43 @@
import { Injectable } from '@angular/core';
import { localstoreService } from './localstore.service'
import { AES, enc, SHA1 } from 'crypto-js'
@Injectable({
providedIn: 'root'
})
export class TotalDocumentService {
private _count = 0
// local storage keyName
private keyName: string;
constructor() {
this.keyName = (SHA1(this.constructor.name)).toString()
setTimeout(()=> {
let restore = localstoreService.get(this.keyName, {})
this._count = restore.count || 0
}, 10)
}
get count() {
return this._count
}
resetCount(value) {
this._count = value
}
saveCount() {
setTimeout(()=> {
localstoreService.set(this.keyName, {
count: this._count
})
}, 10)
}
}
export let TotalDocumentStore = new TotalDocumentService()