mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-21 05:45:50 +00:00
Merge branch 'developer' of bitbucket.org:equilibriumito/gabinete-digital into developer
This commit is contained in:
@@ -80,7 +80,7 @@ export class HomePage implements OnInit {
|
|||||||
|
|
||||||
mobilefirstConnect() {
|
mobilefirstConnect() {
|
||||||
|
|
||||||
try {
|
//try {
|
||||||
window['WLAuthorizationManager'].obtainAccessToken("").then( (token) => {
|
window['WLAuthorizationManager'].obtainAccessToken("").then( (token) => {
|
||||||
|
|
||||||
console.log('MobileFirst Server connect: Success ' + token);
|
console.log('MobileFirst Server connect: Success ' + token);
|
||||||
@@ -108,7 +108,7 @@ export class HomePage implements OnInit {
|
|||||||
alert("Failed to connect to MobileFirst Server");
|
alert("Failed to connect to MobileFirst Server");
|
||||||
}); */
|
}); */
|
||||||
});
|
});
|
||||||
} catch {}
|
//} catch {}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
<ion-icon src="assets/images/icons-agenda.svg"></ion-icon>
|
<ion-icon src="assets/images/icons-agenda.svg"></ion-icon>
|
||||||
</div>
|
</div>
|
||||||
<p class="text-center exp-card-title ">Eventos para Aprovação</p>
|
<p class="text-center exp-card-title ">Eventos para Aprovação</p>
|
||||||
<p class="text-center exp-card-content">{{count_ev_apr}} <span class="title1">Documentos</span></p>
|
<p class="text-center exp-card-content">{{eventoaprovacaostore.count}} <span class="title1">Documentos</span></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div [class.active]="selectedElement == 'Correspondence'" (click)="openExpedientListPage(); selectedElement='Correspondence'" class="exp-card d-flex flex-column justify-center" *ngIf="loggeduser.Profile == 'MDGPR'">
|
<div [class.active]="selectedElement == 'Correspondence'" (click)="openExpedientListPage(); selectedElement='Correspondence'" class="exp-card d-flex flex-column justify-center" *ngIf="loggeduser.Profile == 'MDGPR'">
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
<ion-icon src="assets/images/icons-correspondencia.svg"></ion-icon>
|
<ion-icon src="assets/images/icons-correspondencia.svg"></ion-icon>
|
||||||
</div>
|
</div>
|
||||||
<p class="text-center exp-card-title ">Correspondencia</p>
|
<p class="text-center exp-card-title ">Correspondencia</p>
|
||||||
<p class="text-center exp-card-content">{{count_exp_dailywork}} <span class="title1">Documentos</span></p>
|
<p class="text-center exp-card-content">{{expedientegbstore.count}} <span class="title1">Documentos</span></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- <div [class.active]="selectedElement == 'Pending'" (click)="openPendentesPage(); selectedElement='Pending'" class="exp-card d-flex flex-column justify-center" > -->
|
<!-- <div [class.active]="selectedElement == 'Pending'" (click)="openPendentesPage(); selectedElement='Pending'" class="exp-card d-flex flex-column justify-center" > -->
|
||||||
@@ -44,7 +44,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<p *ngIf="loggeduser.Profile == 'MDGPR'" class="text-center exp-card-title ">Pendentes</p>
|
<p *ngIf="loggeduser.Profile == 'MDGPR'" class="text-center exp-card-title ">Pendentes</p>
|
||||||
<p *ngIf="loggeduser.Profile == 'PR'" class="text-center exp-card-title ">Meus Pendentes</p>
|
<p *ngIf="loggeduser.Profile == 'PR'" class="text-center exp-card-title ">Meus Pendentes</p>
|
||||||
<p class="text-center exp-card-content"><span class="number">{{count_total_pending}} </span> <span class="title1">Documentos</span></p>
|
<p class="text-center exp-card-content"><span class="number">{{pendentesstore.count}} </span> <span class="title1">Documentos</span></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div [class.active]="selectedElement == 'Dispatches'" class="exp-card d-flex flex-column justify-center" (click)="openDespachosPage(); selectedElement='Dispatches'" *ngIf="loggeduser.Profile == 'MDGPR'">
|
<div [class.active]="selectedElement == 'Dispatches'" class="exp-card d-flex flex-column justify-center" (click)="openDespachosPage(); selectedElement='Dispatches'" *ngIf="loggeduser.Profile == 'MDGPR'">
|
||||||
@@ -52,7 +52,7 @@
|
|||||||
<ion-icon src="assets/images/icons-despachos-presidente.svg"></ion-icon>
|
<ion-icon src="assets/images/icons-despachos-presidente.svg"></ion-icon>
|
||||||
</div>
|
</div>
|
||||||
<p class="text-center exp-card-title ">Despachos</p>
|
<p class="text-center exp-card-title ">Despachos</p>
|
||||||
<p class="text-center exp-card-content">{{count_desp_dailywork}} <span class="title1">Documentos</span> </p>
|
<p class="text-center exp-card-content">{{despachoStore.count}} <span class="title1">Documentos</span> </p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div (click)="openPedidosPage('parecer'); selectedElement='RequestsForOpinion'" [class.active]="selectedElement == 'RequestsForOpinion'" class="exp-card d-flex flex-column justify-center">
|
<div (click)="openPedidosPage('parecer'); selectedElement='RequestsForOpinion'" [class.active]="selectedElement == 'RequestsForOpinion'" class="exp-card d-flex flex-column justify-center">
|
||||||
@@ -61,7 +61,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<p *ngIf="loggeduser.Profile == 'MDGPR'" class="text-center exp-card-title ">Pedidos de Parecer</p>
|
<p *ngIf="loggeduser.Profile == 'MDGPR'" class="text-center exp-card-title ">Pedidos de Parecer</p>
|
||||||
<p *ngIf="loggeduser.Profile == 'PR'" class="text-center exp-card-title ">Pedidos de Parecer solicitados por mim</p>
|
<p *ngIf="loggeduser.Profile == 'PR'" class="text-center exp-card-title ">Pedidos de Parecer solicitados por mim</p>
|
||||||
<p class="text-center exp-card-content">{{count_par_dailywork}} <span class="title1">Documentos</span></p>
|
<p class="text-center exp-card-content">{{pedidosstore.countparecer}} <span class="title1">Documentos</span></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div (click)="openPedidosPage('deferimento'); selectedElement = 'RequestForApproval'" [class.active]="selectedElement == 'RequestForApproval'" class="exp-card d-flex flex-column justify-center">
|
<div (click)="openPedidosPage('deferimento'); selectedElement = 'RequestForApproval'" [class.active]="selectedElement == 'RequestForApproval'" class="exp-card d-flex flex-column justify-center">
|
||||||
@@ -69,7 +69,7 @@
|
|||||||
<ion-icon src="assets/images/icons-expediente-deferimento.svg"></ion-icon>
|
<ion-icon src="assets/images/icons-expediente-deferimento.svg"></ion-icon>
|
||||||
</div>
|
</div>
|
||||||
<p class="text-center exp-card-title ">Pedidos de Deferimento</p>
|
<p class="text-center exp-card-title ">Pedidos de Deferimento</p>
|
||||||
<p class="text-center exp-card-content">{{count_def_dailywork}} <span class="title1">Documentos</span></p>
|
<p class="text-center exp-card-content">{{pedidosstore.countdeferimento}} <span class="title1">Documentos</span></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div *ngIf="loggeduser.Profile == 'PR'" (click)="openExpedientesPrPage(); selectedElement = 'Expediente Presidente'" [class.active]="selectedElement == 'Expediente Presidente'" class="exp-card d-md-flex flex-column justify-center white-background">
|
<div *ngIf="loggeduser.Profile == 'PR'" (click)="openExpedientesPrPage(); selectedElement = 'Expediente Presidente'" [class.active]="selectedElement == 'Expediente Presidente'" class="exp-card d-md-flex flex-column justify-center white-background">
|
||||||
@@ -78,7 +78,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<p class="exp-card-title " *ngIf="loggeduser.Profile == 'MDGPR'">Expediente Presidente</p>
|
<p class="exp-card-title " *ngIf="loggeduser.Profile == 'MDGPR'">Expediente Presidente</p>
|
||||||
<p class="exp-card-title " *ngIf="loggeduser.Profile == 'PR'">Expediente</p>
|
<p class="exp-card-title " *ngIf="loggeduser.Profile == 'PR'">Expediente</p>
|
||||||
<p class="text-center exp-card-content"><span class="number">{{count_exp_pr}} </span> <span class="title1">Documentos</span></p>
|
<p class="text-center exp-card-content"><span class="number">{{expedienteprstore.count}} </span> <span class="title1">Documentos</span></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div *ngIf="loggeduser.Profile == 'PR'" (click)="openDespachosPrPage(); selectedElement='DispatchesPr'" [class.active]="selectedElement == 'DispatchesPr'" class="exp-card d-md-flex flex-column justify-center" >
|
<div *ngIf="loggeduser.Profile == 'PR'" (click)="openDespachosPrPage(); selectedElement='DispatchesPr'" [class.active]="selectedElement == 'DispatchesPr'" class="exp-card d-md-flex flex-column justify-center" >
|
||||||
@@ -87,7 +87,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<p class="text-center exp-card-title " *ngIf="loggeduser.Profile == 'MDGPR'">Despacho do Presidente da República</p>
|
<p class="text-center exp-card-title " *ngIf="loggeduser.Profile == 'MDGPR'">Despacho do Presidente da República</p>
|
||||||
<p class="text-center exp-card-title " *ngIf="loggeduser.Profile == 'PR'">Despachos criados por mim</p>
|
<p class="text-center exp-card-title " *ngIf="loggeduser.Profile == 'PR'">Despachos criados por mim</p>
|
||||||
<p class="text-center exp-card-content">{{ count_de_pr }} <span class="title1">Documentos</span> </p>
|
<p class="text-center exp-card-content">{{ despachoprstore.count }} <span class="title1">Documentos</span> </p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div *ngIf="loggeduser.Profile == 'MDGPR'" (click)="openExpedientesPrPage(); selectedElement='ExpedientesPr'" [class.active]="selectedElement == 'ExpedientesPr'" class="exp-card-long justify-center width-100 white-background">
|
<div *ngIf="loggeduser.Profile == 'MDGPR'" (click)="openExpedientesPrPage(); selectedElement='ExpedientesPr'" [class.active]="selectedElement == 'ExpedientesPr'" class="exp-card-long justify-center width-100 white-background">
|
||||||
@@ -98,7 +98,7 @@
|
|||||||
<div class="exp-card-text">
|
<div class="exp-card-text">
|
||||||
<p class="exp-card-title " *ngIf="loggeduser.Profile == mdgpr">Expediente Presidente</p>
|
<p class="exp-card-title " *ngIf="loggeduser.Profile == mdgpr">Expediente Presidente</p>
|
||||||
<p class="exp-card-title " *ngIf="loggeduser.Profile == pr">Expediente</p>
|
<p class="exp-card-title " *ngIf="loggeduser.Profile == pr">Expediente</p>
|
||||||
<p class="exp-card-content"><span class="number">{{count_exp_pr}} </span> <span class="title1">Documentos</span> </p>
|
<p class="exp-card-content"><span class="number">{{expedientegbstore.count}} </span> <span class="title1">Documentos</span> </p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -110,7 +110,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="exp-card-text">
|
<div class="exp-card-text">
|
||||||
<p class="exp-card-title">Despacho do Presidente da República</p>
|
<p class="exp-card-title">Despacho do Presidente da República</p>
|
||||||
<p class="text-center exp-card-content">{{ count_de_pr }} <span class="title1">Documentos</span> </p>
|
<p class="text-center exp-card-content">{{ despachoprstore.count }} <span class="title1">Documentos</span> </p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -13,6 +13,13 @@ import { User } from 'src/app/models/user.model';
|
|||||||
import { ExpedientsPage } from 'src/app/shared/gabinete-digital/expedients/expedients.page';
|
import { ExpedientsPage } from 'src/app/shared/gabinete-digital/expedients/expedients.page';
|
||||||
import { PendentesPage } from 'src/app/shared/gabinete-digital/pendentes/pendentes.page';
|
import { PendentesPage } from 'src/app/shared/gabinete-digital/pendentes/pendentes.page';
|
||||||
import { EventsToApprovePage } from 'src/app/shared/gabinete-digital/events-to-approve/events-to-approve.page';
|
import { EventsToApprovePage } from 'src/app/shared/gabinete-digital/events-to-approve/events-to-approve.page';
|
||||||
|
import { DespachoStore } from 'src/app/store/despacho-store.service';
|
||||||
|
import { EventoAprovacaoStore } from 'src/app/store/eventoaprovacao-store.service';
|
||||||
|
import { ExpedienteGdStore } from 'src/app/store/expedientegd-store.service';
|
||||||
|
import { PendentesStore } from 'src/app/store/pendestes-store.service';
|
||||||
|
import { PedidosStore } from 'src/app/store/pedidos-store.service';
|
||||||
|
import { ExpedienteprStore } from 'src/app/store/expedientepr-store.service';
|
||||||
|
import { DespachosprStore } from 'src/app/store/despachospr-store.service';
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-gabinete-digital',
|
selector: 'app-gabinete-digital',
|
||||||
templateUrl: './gabinete-digital.page.html',
|
templateUrl: './gabinete-digital.page.html',
|
||||||
@@ -74,6 +81,14 @@ export class GabineteDigitalPage implements OnInit {
|
|||||||
|
|
||||||
hideRefreshBtn = true;
|
hideRefreshBtn = true;
|
||||||
|
|
||||||
|
expedientegbstore = ExpedienteGdStore;
|
||||||
|
pendentesstore = PendentesStore;
|
||||||
|
despachoStore = DespachoStore;
|
||||||
|
eventoaprovacaostore = EventoAprovacaoStore;
|
||||||
|
pedidosstore = PedidosStore;
|
||||||
|
expedienteprstore = ExpedienteprStore;
|
||||||
|
despachoprstore = DespachosprStore;
|
||||||
|
|
||||||
@ViewChild(ExpedientsPage) expedientesPage: ExpedientsPage;
|
@ViewChild(ExpedientsPage) expedientesPage: ExpedientsPage;
|
||||||
@ViewChild(PendentesPage) pendentesListPage: PendentesPage;
|
@ViewChild(PendentesPage) pendentesListPage: PendentesPage;
|
||||||
@ViewChild(EventsToApprovePage) eventsToApprove: EventsToApprovePage;
|
@ViewChild(EventsToApprovePage) eventsToApprove: EventsToApprovePage;
|
||||||
@@ -225,12 +240,15 @@ export class GabineteDigitalPage implements OnInit {
|
|||||||
|
|
||||||
let expedientes = await this.processesbackend.GetTasksList("Expediente", false).toPromise();
|
let expedientes = await this.processesbackend.GetTasksList("Expediente", false).toPromise();
|
||||||
this.count_exp_dailywork = Object.keys(expedientes.filter(data => data.workflowInstanceDataFields.Status == "Active")).length;
|
this.count_exp_dailywork = Object.keys(expedientes.filter(data => data.workflowInstanceDataFields.Status == "Active")).length;
|
||||||
|
this.expedientegbstore.count;
|
||||||
|
|
||||||
let expedientes_pr = await this.processesbackend.GetTasksList("Expediente do Presidente", false).toPromise();
|
let expedientes_pr = await this.processesbackend.GetTasksList("Expediente do Presidente", false).toPromise();
|
||||||
this.count_exp_pr = Object.keys(expedientes_pr.filter(data => data.workflowInstanceDataFields.Status == "Active")).length;
|
this.count_exp_pr = Object.keys(expedientes_pr.filter(data => data.workflowInstanceDataFields.Status == "Active")).length;
|
||||||
|
this.expedientegbstore.count;
|
||||||
|
|
||||||
let despachos = await this.processesbackend.GetTasksList("Despacho", false).toPromise();
|
let despachos = await this.processesbackend.GetTasksList("Despacho", false).toPromise();
|
||||||
this.count_desp_dailywork = Object.keys(despachos.filter(data => data.workflowInstanceDataFields.Status == "Active")).length;
|
this.count_desp_dailywork = Object.keys(despachos.filter(data => data.workflowInstanceDataFields.Status == "Active")).length;
|
||||||
|
this.despachoStore.count
|
||||||
|
|
||||||
let pareceres = await this.processesbackend.GetTasksList("Pedido de Parecer", false).toPromise();
|
let pareceres = await this.processesbackend.GetTasksList("Pedido de Parecer", false).toPromise();
|
||||||
let pareceresPr = await this.processesbackend.GetTasksList("Pedido de Parecer do Presidente", false).toPromise();
|
let pareceresPr = await this.processesbackend.GetTasksList("Pedido de Parecer do Presidente", false).toPromise();
|
||||||
@@ -243,6 +261,7 @@ export class GabineteDigitalPage implements OnInit {
|
|||||||
|
|
||||||
let pendentes =await this.processesbackend.GetPendingTasks(false).toPromise();
|
let pendentes =await this.processesbackend.GetPendingTasks(false).toPromise();
|
||||||
this.count_total_pending = Object.keys(pendentes).length;
|
this.count_total_pending = Object.keys(pendentes).length;
|
||||||
|
this.pendentesstore.count
|
||||||
|
|
||||||
let despachospr = await this.processesbackend.GetTasksList("Despacho do Presidente da República", false).toPromise();
|
let despachospr = await this.processesbackend.GetTasksList("Despacho do Presidente da República", false).toPromise();
|
||||||
let despachosPr;
|
let despachosPr;
|
||||||
@@ -269,6 +288,7 @@ export class GabineteDigitalPage implements OnInit {
|
|||||||
this.processesbackend.GetToApprovedEvents('Agenda','true').subscribe(res=>{
|
this.processesbackend.GetToApprovedEvents('Agenda','true').subscribe(res=>{
|
||||||
this.count_ev_apr = res;
|
this.count_ev_apr = res;
|
||||||
});
|
});
|
||||||
|
this.eventoaprovacaostore.count;
|
||||||
|
|
||||||
this.showLoader = false;
|
this.showLoader = false;
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
<ion-content>
|
<ion-content>
|
||||||
|
|
||||||
<div class="main-content width-100 overflow-y-auto height-100">
|
<div class="main-content width-100 overflow-y-auto height-100">
|
||||||
<ion-refresher name="refresher" slot="fixed" (ionRefresh)="doRefresh($event)">
|
<ion-refresher name="refresher" slot="fixed" (ionRefresh)="segmentChanged($event)">
|
||||||
<ion-refresher-content
|
<ion-refresher-content
|
||||||
pullingIcon="chevron-down-circle-outline"
|
pullingIcon="chevron-down-circle-outline"
|
||||||
pullingText="deslize para actualizar"
|
pullingText="deslize para actualizar"
|
||||||
@@ -115,7 +115,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div [ngSwitch]="segment">
|
||||||
<div *ngSwitchCase="'parecer'" class="d-flex height-100 align-center justify-content-center" >
|
<div *ngSwitchCase="'parecer'" class="d-flex height-100 align-center justify-content-center" >
|
||||||
<div
|
<div
|
||||||
*ngIf="!skeletonLoader && parecerList.length == 0"
|
*ngIf="!skeletonLoader && parecerList.length == 0"
|
||||||
@@ -133,6 +133,7 @@
|
|||||||
<span>Lista vazia</span>
|
<span>Lista vazia</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div *ngIf="skeletonLoader && deferimentoList.length == 0 && skeletonLoader && parecerList.length == 0">
|
<div *ngIf="skeletonLoader && deferimentoList.length == 0 && skeletonLoader && parecerList.length == 0">
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ export class PedidosPage implements OnInit {
|
|||||||
serialNumber:string;
|
serialNumber:string;
|
||||||
skeletonLoader = true
|
skeletonLoader = true
|
||||||
|
|
||||||
@Input() segment:string;
|
segment:string;
|
||||||
@Output() openExpedientDetail:EventEmitter<any> = new EventEmitter<any>();
|
@Output() openExpedientDetail:EventEmitter<any> = new EventEmitter<any>();
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
@@ -71,7 +71,7 @@ export class PedidosPage implements OnInit {
|
|||||||
this.router.navigate(['/home/gabinete-digital']);
|
this.router.navigate(['/home/gabinete-digital']);
|
||||||
}
|
}
|
||||||
|
|
||||||
segmentChanged(ev: any) {
|
/* segmentChanged(ev: any) {
|
||||||
|
|
||||||
let navigationExtras: NavigationExtras;
|
let navigationExtras: NavigationExtras;
|
||||||
|
|
||||||
@@ -84,7 +84,7 @@ export class PedidosPage implements OnInit {
|
|||||||
this.router.navigate(['/home/gabinete-digital/pedidos'], navigationExtras);
|
this.router.navigate(['/home/gabinete-digital/pedidos'], navigationExtras);
|
||||||
|
|
||||||
// this.LoadList();
|
// this.LoadList();
|
||||||
}
|
} */
|
||||||
|
|
||||||
goToPedido(serialNumber:any){
|
goToPedido(serialNumber:any){
|
||||||
this.router.navigate(['/home/gabinete-digital/pedidos',serialNumber,'gabinete-digital']);
|
this.router.navigate(['/home/gabinete-digital/pedidos',serialNumber,'gabinete-digital']);
|
||||||
@@ -179,6 +179,10 @@ export class PedidosPage implements OnInit {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
segmentChanged(ev: any) {
|
||||||
|
this.LoadList();
|
||||||
|
}
|
||||||
|
|
||||||
refreshing() {
|
refreshing() {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
this.LoadList();
|
this.LoadList();
|
||||||
|
|||||||
@@ -92,7 +92,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="item-content flex-grow-1">
|
<div class="item-content flex-grow-1">
|
||||||
<ion-label>
|
<ion-label>
|
||||||
<p class="item-content-date">{{evento.DateBegin}}</p>
|
<p class="item-content-date">{{getDate(evento.DateBegin)}}</p>
|
||||||
<p class="item-content-title">{{evento.Description}}</p>
|
<p class="item-content-title">{{evento.Description}}</p>
|
||||||
</ion-label>
|
</ion-label>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -149,7 +149,7 @@ export class PublicationsPage implements OnInit {
|
|||||||
this.showLoader = false;
|
this.showLoader = false;
|
||||||
|
|
||||||
this.publicationEventFolderStorage.reset(this.publicationsEventFolderList)
|
this.publicationEventFolderStorage.reset(this.publicationsEventFolderList)
|
||||||
this.publicationTravelFolderService.reset(this.publicationsEventFolderList)
|
this.publicationTravelFolderService.reset(this.publicationsTravelFolderList)
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ export class ViewPublicationsPage implements OnInit {
|
|||||||
showLoader = true;
|
showLoader = true;
|
||||||
loading: any;
|
loading: any;
|
||||||
|
|
||||||
publicationList: Publication[];
|
publicationList: Publication[] = new Array();
|
||||||
item: PublicationFolder;
|
item: PublicationFolder;
|
||||||
folderId:string;
|
folderId:string;
|
||||||
error: any;
|
error: any;
|
||||||
@@ -54,8 +54,10 @@ export class ViewPublicationsPage implements OnInit {
|
|||||||
this.folderId = this.folderId['ProcessId']
|
this.folderId = this.folderId['ProcessId']
|
||||||
}
|
}
|
||||||
|
|
||||||
this.getPublications();
|
|
||||||
this.getPublicationDetail();
|
this.getPublicationDetail();
|
||||||
|
setTimeout(() => {
|
||||||
|
this.getPublications();
|
||||||
|
}, 3000);
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnChanges() {
|
ngOnChanges() {
|
||||||
@@ -64,15 +66,14 @@ export class ViewPublicationsPage implements OnInit {
|
|||||||
this.folderId = this.folderId['ProcessId']
|
this.folderId = this.folderId['ProcessId']
|
||||||
}
|
}
|
||||||
|
|
||||||
this.getPublications();
|
|
||||||
this.getPublicationDetail();
|
this.getPublicationDetail();
|
||||||
|
this.getPublications();
|
||||||
}
|
}
|
||||||
|
|
||||||
doRefresh(event) {
|
doRefresh(event) {
|
||||||
this.getPublications();
|
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
this.getPublicationDetail();
|
this.getPublicationDetail();
|
||||||
|
this.getPublications();
|
||||||
event.target.complete();
|
event.target.complete();
|
||||||
}, 3000);
|
}, 3000);
|
||||||
|
|
||||||
@@ -122,8 +123,7 @@ export class ViewPublicationsPage implements OnInit {
|
|||||||
"OriginalFileName": '',
|
"OriginalFileName": '',
|
||||||
"FileExtension": '',
|
"FileExtension": '',
|
||||||
}
|
}
|
||||||
|
this.publicationList.push(item);
|
||||||
// this.publicationList.push(item);
|
|
||||||
data.push(item)
|
data.push(item)
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -26,12 +26,12 @@
|
|||||||
|
|
||||||
<div class="main-container height-100 overflow-y-auto d-flex flex-column ">
|
<div class="main-container height-100 overflow-y-auto d-flex flex-column ">
|
||||||
<ion-progress-bar type="indeterminate" *ngIf="skeletonLoader"></ion-progress-bar>
|
<ion-progress-bar type="indeterminate" *ngIf="skeletonLoader"></ion-progress-bar>
|
||||||
<div *ngIf="despachoList.length >= 1" class=" height-100">
|
<div *ngIf="despachosprstore.list.length >= 1" class=" height-100">
|
||||||
|
|
||||||
<ion-list>
|
<ion-list>
|
||||||
<div
|
<div
|
||||||
class="expediente ion-no-padding ion-no-margin cursor-pointer"
|
class="expediente ion-no-padding ion-no-margin cursor-pointer"
|
||||||
*ngFor = "let task of despachoList; let i = index"
|
*ngFor = "let task of despachosprstore.list; let i = index"
|
||||||
(click)="goToDespacho(task.SerialNumber)"
|
(click)="goToDespacho(task.SerialNumber)"
|
||||||
>
|
>
|
||||||
<!-- [routerLink]="['/home/gabinete-digital/expediente',task.SerialNumber]" -->
|
<!-- [routerLink]="['/home/gabinete-digital/expediente',task.SerialNumber]" -->
|
||||||
@@ -64,13 +64,13 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
*ngIf="!skeletonLoader && despachoList.length == 0"
|
*ngIf="!skeletonLoader && despachosprstore.list.length == 0"
|
||||||
class="empty-list d-flex height-100 align-center justify-content-center"
|
class="empty-list d-flex height-100 align-center justify-content-center"
|
||||||
>
|
>
|
||||||
<span>Lista vazia</span>
|
<span>Lista vazia</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div *ngIf="skeletonLoader && despachoList.length == 0">
|
<div *ngIf="skeletonLoader && despachosprstore.list.length == 0">
|
||||||
|
|
||||||
<ion-list>
|
<ion-list>
|
||||||
<ion-item>
|
<ion-item>
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import { AuthService } from 'src/app/services/auth.service';
|
|||||||
import { DespachoPrPage } from 'src/app/pages/gabinete-digital/despachos-pr/despacho-pr/despacho-pr.page';
|
import { DespachoPrPage } from 'src/app/pages/gabinete-digital/despachos-pr/despacho-pr/despacho-pr.page';
|
||||||
import { User } from 'src/app/models/user.model';
|
import { User } from 'src/app/models/user.model';
|
||||||
import { NavigationEnd, NavigationExtras, NavigationStart, Router } from '@angular/router';
|
import { NavigationEnd, NavigationExtras, NavigationStart, Router } from '@angular/router';
|
||||||
|
import { DespachosprStore } from 'src/app/store/despachospr-store.service';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-despachos-pr',
|
selector: 'app-despachos-pr',
|
||||||
@@ -45,6 +46,7 @@ dicIndex = 0;
|
|||||||
inicial = false
|
inicial = false
|
||||||
|
|
||||||
loggeduser: User;
|
loggeduser: User;
|
||||||
|
despachosprstore = DespachosprStore;
|
||||||
|
|
||||||
constructor (
|
constructor (
|
||||||
private processes:ProcessesService,
|
private processes:ProcessesService,
|
||||||
@@ -148,7 +150,7 @@ constructor (
|
|||||||
});
|
});
|
||||||
|
|
||||||
this.despachoList = this.sortArrayISODate(this.despachoList).reverse()
|
this.despachoList = this.sortArrayISODate(this.despachoList).reverse()
|
||||||
|
this.despachosprstore.reset(this.despachoList);
|
||||||
this.skeletonLoader = false;
|
this.skeletonLoader = false;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,10 +12,10 @@
|
|||||||
|
|
||||||
<div class="width-100 overflow-y-auto height-100" >
|
<div class="width-100 overflow-y-auto height-100" >
|
||||||
<ion-progress-bar type="indeterminate" *ngIf="skeletonLoader"></ion-progress-bar>
|
<ion-progress-bar type="indeterminate" *ngIf="skeletonLoader"></ion-progress-bar>
|
||||||
<ion-list *ngIf="taskslist.length >= 1">
|
<ion-list *ngIf="expedienteprstore.list.length >= 1">
|
||||||
<div
|
<div
|
||||||
class="expediente ion-no-padding ion-no-margin cursor-pointer"
|
class="expediente ion-no-padding ion-no-margin cursor-pointer"
|
||||||
*ngFor = "let task of taskslist"
|
*ngFor = "let task of expedienteprstore.list"
|
||||||
(click)="goToExpediente(task.SerialNumber)"
|
(click)="goToExpediente(task.SerialNumber)"
|
||||||
>
|
>
|
||||||
<div class="item width-100">
|
<div class="item width-100">
|
||||||
@@ -47,13 +47,13 @@
|
|||||||
|
|
||||||
|
|
||||||
<div
|
<div
|
||||||
*ngIf="!skeletonLoader && taskslist.length == 0 && taskslist.length == 0"
|
*ngIf="!skeletonLoader && expedienteprstore.list.length == 0 && expedienteprstore.list.length == 0"
|
||||||
class="empty-list d-flex height-100 align-center justify-content-center"
|
class="empty-list d-flex height-100 align-center justify-content-center"
|
||||||
>
|
>
|
||||||
<span>Lista vazia</span>
|
<span>Lista vazia</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div *ngIf="skeletonLoader && taskslist.length == 0">
|
<div *ngIf="skeletonLoader && expedienteprstore.list.length == 0">
|
||||||
|
|
||||||
<ion-list>
|
<ion-list>
|
||||||
<ion-item>
|
<ion-item>
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import { ExpedienteDetailPage } from 'src/app/pages/gabinete-digital/expediente/
|
|||||||
import { AlertService } from 'src/app/services/alert.service';
|
import { AlertService } from 'src/app/services/alert.service';
|
||||||
import { User } from 'src/app/models/user.model';
|
import { User } from 'src/app/models/user.model';
|
||||||
import { AuthService } from 'src/app/services/auth.service';
|
import { AuthService } from 'src/app/services/auth.service';
|
||||||
|
import { ExpedienteprStore } from 'src/app/store/expedientepr-store.service';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-expedientes-pr',
|
selector: 'app-expedientes-pr',
|
||||||
@@ -23,6 +24,7 @@ export class ExpedientesPrPage implements OnInit {
|
|||||||
taskslist:DailyWorkTask[] = [];
|
taskslist:DailyWorkTask[] = [];
|
||||||
serialNumber:string;
|
serialNumber:string;
|
||||||
skeletonLoader = true;
|
skeletonLoader = true;
|
||||||
|
expedienteprstore = ExpedienteprStore;
|
||||||
|
|
||||||
loggeduser: User;
|
loggeduser: User;
|
||||||
@Output() openExpedientDetail:EventEmitter<any> = new EventEmitter<any>();
|
@Output() openExpedientDetail:EventEmitter<any> = new EventEmitter<any>();
|
||||||
@@ -90,7 +92,7 @@ export class ExpedientesPrPage implements OnInit {
|
|||||||
}
|
}
|
||||||
this.taskslist.push(task);
|
this.taskslist.push(task);
|
||||||
});
|
});
|
||||||
|
this.expedienteprstore.reset(this.taskslist);
|
||||||
this.skeletonLoader = false;
|
this.skeletonLoader = false;
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -118,6 +120,7 @@ export class ExpedientesPrPage implements OnInit {
|
|||||||
}
|
}
|
||||||
this.taskslist.push(task);
|
this.taskslist.push(task);
|
||||||
});
|
});
|
||||||
|
this.expedienteprstore.reset(this.taskslist);
|
||||||
this.skeletonLoader = false;
|
this.skeletonLoader = false;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ export class DespachoStoreService {
|
|||||||
setTimeout(()=>{
|
setTimeout(()=>{
|
||||||
localstoreService.set(this.keyName,{
|
localstoreService.set(this.keyName,{
|
||||||
eventsList,
|
eventsList,
|
||||||
count: this._list
|
count: this._list.length
|
||||||
})
|
})
|
||||||
}, 10)
|
}, 10)
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
import { TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { DespachosprStoreService } from './despachospr-store.service';
|
||||||
|
|
||||||
|
describe('DespachosprStoreService', () => {
|
||||||
|
let service: DespachosprStoreService;
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
TestBed.configureTestingModule({});
|
||||||
|
service = TestBed.inject(DespachosprStoreService);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should be created', () => {
|
||||||
|
expect(service).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
import { Injectable } from '@angular/core';
|
||||||
|
import { localstoreService } from './localstore.service'
|
||||||
|
import { AES, enc, SHA1 } from 'crypto-js'
|
||||||
|
|
||||||
|
@Injectable({
|
||||||
|
providedIn: 'root'
|
||||||
|
})
|
||||||
|
export class DespachosprStoreService {
|
||||||
|
|
||||||
|
// main data
|
||||||
|
private _list: [] = []
|
||||||
|
// local storage keyName
|
||||||
|
private keyName: string;
|
||||||
|
private _count = 0
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
|
||||||
|
this.keyName = (SHA1(this.constructor.name)).toString()
|
||||||
|
|
||||||
|
|
||||||
|
setTimeout(()=>{
|
||||||
|
let restore = localstoreService.get(this.keyName, {})
|
||||||
|
this._list = restore.eventsList || []
|
||||||
|
this._count = restore.count.length || 0
|
||||||
|
}, 10)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
get list() {
|
||||||
|
return this._list || []
|
||||||
|
}
|
||||||
|
|
||||||
|
get count() {
|
||||||
|
return this._count
|
||||||
|
}
|
||||||
|
set count(value) {
|
||||||
|
this._count = value
|
||||||
|
}
|
||||||
|
|
||||||
|
reset(eventsList: any) {
|
||||||
|
this._list = eventsList
|
||||||
|
|
||||||
|
this.count = this._list.length
|
||||||
|
this.save(this._list)
|
||||||
|
}
|
||||||
|
|
||||||
|
private save(eventsList: any) {
|
||||||
|
setTimeout(()=>{
|
||||||
|
localstoreService.set(this.keyName,{
|
||||||
|
eventsList,
|
||||||
|
count: this._list
|
||||||
|
})
|
||||||
|
}, 10)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
export const DespachosprStore = new DespachosprStoreService()
|
||||||
@@ -26,7 +26,7 @@ export class EventoaprovacaoStoreService {
|
|||||||
let restorepr = localstoreService.get(this.keyNamepr, {})
|
let restorepr = localstoreService.get(this.keyNamepr, {})
|
||||||
this._listpr = restorepr.eventsListpr || []
|
this._listpr = restorepr.eventsListpr || []
|
||||||
this._listmd = restoremd.eventsListmd || []
|
this._listmd = restoremd.eventsListmd || []
|
||||||
this._count = restorepr.count + restoremd.count || 0
|
this._count = restorepr.count.length + restoremd.count.length || 0
|
||||||
}, 10)
|
}, 10)
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -48,14 +48,14 @@ export class EventoaprovacaoStoreService {
|
|||||||
resetpr(eventsList: any) {
|
resetpr(eventsList: any) {
|
||||||
this._listpr = eventsList
|
this._listpr = eventsList
|
||||||
|
|
||||||
this.count = this._listpr.length
|
this.count = this._listmd.length + this.listpr.length
|
||||||
this.savepr(this._listpr)
|
this.savepr(this._listpr)
|
||||||
}
|
}
|
||||||
|
|
||||||
resetmd(eventsList: any) {
|
resetmd(eventsList: any) {
|
||||||
this._listmd = eventsList
|
this._listmd = eventsList
|
||||||
|
|
||||||
this.count = this._listmd.length
|
this.count = this._listmd.length + this.listpr.length
|
||||||
this.savemd(this._listmd)
|
this.savemd(this._listmd)
|
||||||
}
|
}
|
||||||
private savemd(eventsListmd: any) {
|
private savemd(eventsListmd: any) {
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ private save(eventsList: any) {
|
|||||||
setTimeout(()=>{
|
setTimeout(()=>{
|
||||||
localstoreService.set(this.keyName,{
|
localstoreService.set(this.keyName,{
|
||||||
eventsList,
|
eventsList,
|
||||||
count: this._list
|
count: this._list.length
|
||||||
})
|
})
|
||||||
}, 10)
|
}, 10)
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
import { TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { ExpedienteprStoreService } from './expedientepr-store.service';
|
||||||
|
|
||||||
|
describe('ExpedienteprStoreService', () => {
|
||||||
|
let service: ExpedienteprStoreService;
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
TestBed.configureTestingModule({});
|
||||||
|
service = TestBed.inject(ExpedienteprStoreService);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should be created', () => {
|
||||||
|
expect(service).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
import { Injectable } from '@angular/core';
|
||||||
|
import { localstoreService } from './localstore.service'
|
||||||
|
import { AES, enc, SHA1 } from 'crypto-js'
|
||||||
|
|
||||||
|
@Injectable({
|
||||||
|
providedIn: 'root'
|
||||||
|
})
|
||||||
|
export class ExpedienteprStoreService {
|
||||||
|
// main data
|
||||||
|
private _list: [] = []
|
||||||
|
// local storage keyName
|
||||||
|
private keyName: string;
|
||||||
|
private _count = 0
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
|
||||||
|
this.keyName = (SHA1(this.constructor.name)).toString()
|
||||||
|
|
||||||
|
|
||||||
|
setTimeout(()=>{
|
||||||
|
let restore = localstoreService.get(this.keyName, {})
|
||||||
|
this._list = restore.eventsList || []
|
||||||
|
this._count = restore.count.length || 0
|
||||||
|
}, 10)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
get list() {
|
||||||
|
return this._list || []
|
||||||
|
}
|
||||||
|
|
||||||
|
get count() {
|
||||||
|
return this._count
|
||||||
|
}
|
||||||
|
set count(value) {
|
||||||
|
this._count = value
|
||||||
|
}
|
||||||
|
|
||||||
|
reset(eventsList: any) {
|
||||||
|
this._list = eventsList
|
||||||
|
|
||||||
|
this.count = this._list.length
|
||||||
|
this.save(this._list)
|
||||||
|
}
|
||||||
|
|
||||||
|
private save(eventsList: any) {
|
||||||
|
setTimeout(()=>{
|
||||||
|
localstoreService.set(this.keyName,{
|
||||||
|
eventsList,
|
||||||
|
count: this._list.length
|
||||||
|
})
|
||||||
|
}, 10)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
export const ExpedienteprStore = new ExpedienteprStoreService()
|
||||||
@@ -12,7 +12,8 @@ export class PedidosStoreService {
|
|||||||
// local storage keyName
|
// local storage keyName
|
||||||
private keyNameparecer: string;
|
private keyNameparecer: string;
|
||||||
private keyNamedeferiemnto: string;
|
private keyNamedeferiemnto: string;
|
||||||
private _count = 0
|
private _countparecer = 0
|
||||||
|
private _countdeferiemnto = 0
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
|
|
||||||
@@ -25,7 +26,8 @@ export class PedidosStoreService {
|
|||||||
let restoredeferimento = localstoreService.get(this.keyNamedeferiemnto, {})
|
let restoredeferimento = localstoreService.get(this.keyNamedeferiemnto, {})
|
||||||
this._listparecer = restoredeferimento.eventsListdeferimento || []
|
this._listparecer = restoredeferimento.eventsListdeferimento || []
|
||||||
this._listdeferimento = restoreparecer.eventsListparecer || []
|
this._listdeferimento = restoreparecer.eventsListparecer || []
|
||||||
this._count = restoredeferimento.count + restoreparecer.count || 0
|
this._countparecer = restoreparecer.count.length || 0
|
||||||
|
this._countdeferiemnto = restoredeferimento.count.length || 0
|
||||||
}, 10)
|
}, 10)
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -37,31 +39,38 @@ export class PedidosStoreService {
|
|||||||
get listdeferimento() {
|
get listdeferimento() {
|
||||||
return this._listdeferimento
|
return this._listdeferimento
|
||||||
}
|
}
|
||||||
get count() {
|
get countparecer() {
|
||||||
return this._count
|
return this._countparecer
|
||||||
}
|
}
|
||||||
set count(value) {
|
set countparecer(value) {
|
||||||
this._count = value
|
this._countparecer = value
|
||||||
|
}
|
||||||
|
|
||||||
|
get countdeferimento() {
|
||||||
|
return this._countdeferiemnto
|
||||||
|
}
|
||||||
|
set countdeferimento(value) {
|
||||||
|
this._countdeferiemnto = value
|
||||||
}
|
}
|
||||||
|
|
||||||
resetparecer(eventsList: any) {
|
resetparecer(eventsList: any) {
|
||||||
this._listparecer = eventsList
|
this._listparecer = eventsList
|
||||||
|
|
||||||
this.count = this._listparecer.length
|
this.countparecer = this._listparecer.length
|
||||||
this.savedeferimento(this._listparecer)
|
this.savedeferimento(this._listparecer)
|
||||||
}
|
}
|
||||||
|
|
||||||
resetdeferimento(eventsList: any) {
|
resetdeferimento(eventsList: any) {
|
||||||
this._listdeferimento = eventsList
|
this._listdeferimento = eventsList
|
||||||
|
|
||||||
this.count = this._listdeferimento.length
|
this.countdeferimento =this._listdeferimento.length
|
||||||
this.saveparecer(this._listdeferimento)
|
this.saveparecer(this._listdeferimento)
|
||||||
}
|
}
|
||||||
private saveparecer(eventsListparecer: any) {
|
private saveparecer(eventsListparecer: any) {
|
||||||
setTimeout(()=>{
|
setTimeout(()=>{
|
||||||
localstoreService.set(this.keyNameparecer,{
|
localstoreService.set(this.keyNameparecer,{
|
||||||
eventsListparecer,
|
eventsListparecer,
|
||||||
count: this._listdeferimento,
|
count: this._listparecer,
|
||||||
})
|
})
|
||||||
}, 10)
|
}, 10)
|
||||||
|
|
||||||
@@ -71,7 +80,7 @@ export class PedidosStoreService {
|
|||||||
setTimeout(()=>{
|
setTimeout(()=>{
|
||||||
localstoreService.set(this.keyNamedeferiemnto,{
|
localstoreService.set(this.keyNamedeferiemnto,{
|
||||||
eventsListdeferimento,
|
eventsListdeferimento,
|
||||||
count: this._listparecer,
|
count: this._listdeferimento,
|
||||||
})
|
})
|
||||||
}, 10)
|
}, 10)
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ constructor() {
|
|||||||
setTimeout(()=>{
|
setTimeout(()=>{
|
||||||
let restore = localstoreService.get(this.keyName, {})
|
let restore = localstoreService.get(this.keyName, {})
|
||||||
this._list = restore.eventsList || []
|
this._list = restore.eventsList || []
|
||||||
this._count = restore.count || 0
|
this._count = restore.count.length || 0
|
||||||
}, 10)
|
}, 10)
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -47,7 +47,7 @@ private save(eventsList: any) {
|
|||||||
setTimeout(()=>{
|
setTimeout(()=>{
|
||||||
localstoreService.set(this.keyName,{
|
localstoreService.set(this.keyName,{
|
||||||
eventsList,
|
eventsList,
|
||||||
count: this._list
|
count: this._list.length
|
||||||
})
|
})
|
||||||
}, 10)
|
}, 10)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user