Improve local storage and fix expediente task strature

This commit is contained in:
Peter Maquiran
2021-08-26 13:48:29 +01:00
parent f8991b785b
commit f4de729e2f
41 changed files with 373 additions and 507 deletions
@@ -1,10 +1,11 @@
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
import { customTask, DailyWorkTask, fullTask } from '../../../models/dailyworktask.model';
import { Component, EventEmitter, OnInit, Output } from '@angular/core';
import { customTask } from '../../../models/dailyworktask.model';
import { ProcessesService } from 'src/app/services/processes.service';
import { NavigationStart, Router } from '@angular/router';
import { DespachoStore } from 'src/app/store/despacho-store.service';
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'
@Component({
selector: 'app-despachos',
templateUrl: './despachos.page.html',
@@ -15,13 +16,14 @@ export class DespachosPage implements OnInit {
segment:string;
@Output() openExpedientDetail:EventEmitter<any> = new EventEmitter<any>();
skeletonLoader = true
despachoStore = DespachoStore;
customTaskPipe = new CustomTaskPipe()
constructor (
private processes:ProcessesService,
private router: Router,
private notificationsService: NotificationsService,
private despachoRule: DespachoService
) {}
ngOnInit() {
@@ -45,32 +47,16 @@ export class DespachosPage implements OnInit {
async LoadList() {
this.skeletonLoader = true
let result: fullTask[] = await this.processes.GetTasksList("Despacho", false).toPromise();
result = result.filter(data => data.workflowInstanceDataFields.Status == "Active")
let despachoList = new Array();
result.forEach((element, index) => {
let task = this.customTaskPipe.transform(element);
despachoList.push(task);
});
despachoList = this.sortArrayISODate(despachoList).reverse();
this.despachoStore.reset(despachoList);
this.skeletonLoader = false
await this.despachoRule.getList({updateStore: true})
}
sortArrayISODate(myArray: any) {
return myArray.sort(function(a, b) {
return (a.CreateDate < b.CreateDate) ? -1 : ((a.CreateDate > b.CreateDate) ? 1 : 0);
});
get skeletonLoader(): boolean {
return this.despachoRule.LoaderService.loading
}
doRefresh() {
setTimeout(() => {
this.LoadList();
@@ -13,10 +13,10 @@
<div class="width-100 overflow-y-auto height-100" >
<ion-progress-bar type="indeterminate" *ngIf="skeletonLoader"></ion-progress-bar>
<ion-list *ngIf="expedienteprstore.list.length >= 1">
<ion-list *ngIf="expedienteGdStore.list.length >= 1">
<div
class="expediente ion-no-padding ion-no-margin cursor-pointer"
*ngFor = "let task of expedienteprstore.list"
*ngFor = "let task of expedienteGdStore.list"
(click)="goToExpediente(task.SerialNumber)"
>
<div class="item width-100">
@@ -48,13 +48,13 @@
<div
*ngIf="!skeletonLoader && expedienteprstore.list.length == 0 && expedienteprstore.list.length == 0"
*ngIf="!skeletonLoader && expedienteGdStore.list.length == 0 && expedienteGdStore.list.length == 0"
class="empty-list d-flex height-100 align-center justify-content-center"
>
<span>Lista vazia</span>
</div>
<div *ngIf="skeletonLoader && expedienteprstore.list.length == 0">
<div *ngIf="skeletonLoader && expedienteGdStore.list.length == 0">
<ion-list>
<ion-item>
@@ -6,8 +6,9 @@ import { ModalController } from '@ionic/angular';
import { AlertService } from 'src/app/services/alert.service';
import { User } from 'src/app/models/user.model';
import { AuthService } from 'src/app/services/auth.service';
import { ExpedienteprStore } from 'src/app/store/expedientepr-store.service';
import { CustomTaskPipe } from 'src/app/pipes/custom-task.pipe';
import { ExpedienteGdStore } from 'src/app/store/expedientegd-store.service';
import { ExpedienteTaskPipe } from 'src/app/pipes/expediente-task.pipe';
@Component({
selector: 'app-expedientes-pr',
@@ -16,11 +17,12 @@ import { CustomTaskPipe } from 'src/app/pipes/custom-task.pipe';
})
export class ExpedientesPrPage implements OnInit {
taskslist:DailyWorkTask[] = [];
taskslist = [];
serialNumber:string;
skeletonLoader = true;
expedienteprstore = ExpedienteprStore;
expedienteGdStore = ExpedienteGdStore;
customTaskPipe = new CustomTaskPipe()
expedienteTaskPipe = new ExpedienteTaskPipe()
loggeduser: User;
@Output() openExpedientDetail:EventEmitter<any> = new EventEmitter<any>();
@@ -62,15 +64,15 @@ export class ExpedientesPrPage implements OnInit {
LoadList() {
this.skeletonLoader = true;
this.processes.GetTasksList("Expediente", false).subscribe(result => {
this.processes.GetTaskListExpediente(false).subscribe(result => {
this.taskslist = [];
let res = result.reverse().filter(data => data.workflowInstanceDataFields.Status == "Active");
res.forEach(element => {
let task: customTask = this.customTaskPipe.transform(element);
let task = this.expedienteTaskPipe.transform(element);
this.taskslist.push(task);
});
this.expedienteprstore.reset(this.taskslist);
this.expedienteGdStore.reset(this.taskslist);
this.skeletonLoader = false;
});
@@ -30,7 +30,7 @@
<div class="item width-100">
<div class="exp-top-detail">
<div class="subject">
<ion-label>{{ task.Folio }}</ion-label>
<ion-label>{{ task.Subject }}</ion-label>
</div>
<div class="exp-icon">
<ion-icon src="assets/images/icons-expediente-attachment.svg"></ion-icon>
@@ -1,15 +1,9 @@
import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';
import { ActivatedRoute, NavigationEnd, NavigationExtras, NavigationStart, Router } from '@angular/router';
import { CalendarComponent } from 'ionic2-calendar';
import { DailyWorkTask } from '../../../models/dailyworktask.model';
import { Component, Input, OnInit } from '@angular/core';
import { NavigationStart, Router } from '@angular/router';
import { ProcessesService } from 'src/app/services/processes.service';
import { formatDate } from '@angular/common';
import { LoadingService } from 'src/app/services/loading.service';
import { ModalController, NavParams } from '@ionic/angular';
import { ExpedienteDetailPage } from 'src/app/pages/gabinete-digital/expediente/expediente-detail/expediente-detail.page';
import { AlertService } from 'src/app/services/alert.service';
import { ExpedienteGdStore } from 'src/app/store/expedientegd-store.service';
import { ExpedienteTaskPipe } from 'src/app/pipes/expediente-task.pipe';
@Component({
selector: 'app-expedients',
@@ -18,23 +12,20 @@ import { ExpedienteGdStore } from 'src/app/store/expedientegd-store.service';
})
export class ExpedientsPage implements OnInit {
segment:string;
//profile:string;
@ViewChild(CalendarComponent) myCal: CalendarComponent;
taskslist:DailyWorkTask[] = [];
taskslist = [];
serialNumber:string;
@Input() profile:string;
skeletonLoader = true
expedientegbstore = ExpedienteGdStore
expedienteTaskPipe = new ExpedienteTaskPipe()
constructor(
private processes:ProcessesService,
private modalController: ModalController,
private alertService: AlertService,
private router: Router,
private activatedRoute: ActivatedRoute,
) {
this.profile = 'mdgpr';
@@ -58,11 +49,11 @@ export class ExpedientsPage implements OnInit {
}
segmentChanged(){
segmentChanged() {
this.LoadList();
}
notImplemented(){
notImplemented() {
this.alertService.presentAlert('Funcionalidade em desenvolvimento');
}
@@ -70,31 +61,17 @@ export class ExpedientsPage implements OnInit {
this.skeletonLoader = true
this.processes.GetTasksList("Expediente", false).subscribe(result => {
this.processes.GetTaskListExpediente(false).subscribe(result => {
this.taskslist = [];
this.skeletonLoader = false
let res = result.reverse().filter(data => data.workflowInstanceDataFields.Status == "Active");
res.forEach(element => {
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: DailyWorkTask = {
"SerialNumber": element.serialNumber,
"Folio": element.workflowInstanceDataFields.Subject,
"Senders": element.workflowInstanceDataFields.Sender,
"CreateDate": taskDate,
"DocumentURL": element.workflowInstanceDataFields.ViewerRequest,
"Remetente": element.workflowInstanceDataFields.Remetente,
"DocumentsQty": element.totalDocuments,
"WorkflowName": element.workflowDisplayName,
"activityInstanceName": element.activityInstanceName,
"Status": element.workflowInstanceDataFields.Status,
}
let task = this.expedienteTaskPipe.transform(element)
this.taskslist.push(task);
});
console.log("Buffer store", this.taskslist)
this.expedientegbstore.reset(this.taskslist);
});
}
@@ -20,7 +20,6 @@ export class PedidosPage implements OnInit {
@ViewChild(CalendarComponent) myCal: CalendarComponent;
taskslist:DailyWorkTask[] = [];
parecerList:any[] = [];
fulltask:any;
@@ -100,7 +99,6 @@ export class PedidosPage implements OnInit {
this.taskType = "Pedido de Deferimento";
this.processes.GetTasksList("Pedido de Deferimento", false).subscribe(result => {
this.taskslist = result.filter(data => data.workflowInstanceDataFields.Status == "Active")
this.skeletonLoader = false
this.deferimentoList = new Array();