merge and add new features

This commit is contained in:
Peter Maquiran
2023-04-17 14:11:30 +01:00
28 changed files with 330 additions and 77 deletions
+4 -4
View File
@@ -31,25 +31,25 @@
<div class="event-box"> <div class="event-box">
<!-- <p>correspondencia com prazo para hoje</p> --> <!-- <p>correspondencia com prazo para hoje</p> -->
<p>Tarefas que terminam hoje</p> <p>Tarefas que terminam hoje</p>
<span>0</span> <span>{{ TaskService.deadline }}</span>
</div> </div>
<div class="event-box"> <div class="event-box">
<!-- <p>correspondencia em atraso</p> --> <!-- <p>correspondencia em atraso</p> -->
<p>Tarefas em atraso</p> <p>Tarefas em atraso</p>
<span>0</span> <span>{{ TaskService.overdueTasks }}</span>
</div> </div>
<div class="event-box"> <div class="event-box">
<!-- <p>Novas correspondencia</p> --> <!-- <p>Novas correspondencia</p> -->
<p>Novas tarefas</p> <p>Novas tarefas</p>
<span>0</span> <span>{{ TaskService.new }}</span>
</div> </div>
<div class="event-box"> <div class="event-box">
<!-- <p>correspondencia não lidas</p> --> <!-- <p>correspondencia não lidas</p> -->
<p>Tarefas não lidas</p> <p>Tarefas não lidas</p>
<span>0</span> <span>{{ TaskService.unread }}</span>
</div> </div>
</div> </div>
</div> </div>
+4
View File
@@ -17,6 +17,7 @@ import { PermissionService } from 'src/app/services/permission.service';
import { ViewEventPage } from 'src/app/modals/view-event/view-event.page'; import { ViewEventPage } from 'src/app/modals/view-event/view-event.page';
import { ChangeProfileService } from 'src/app/services/change-profile.service'; import { ChangeProfileService } from 'src/app/services/change-profile.service';
import { SessionStore } from 'src/app/store/session.service'; import { SessionStore } from 'src/app/store/session.service';
import { TaskService } from 'src/app/services/task.service'
@Component({ @Component({
selector: 'app-events', selector: 'app-events',
templateUrl: './events.page.html', templateUrl: './events.page.html',
@@ -79,7 +80,10 @@ export class EventsPage implements OnInit {
private storage: Storage, private storage: Storage,
public p: PermissionService, public p: PermissionService,
private changeProfileService: ChangeProfileService, private changeProfileService: ChangeProfileService,
public TaskService: TaskService
) { ) {
this.TaskService.updateCount()
window['zipPhoneCallback'] = function (zipphone) { window['zipPhoneCallback'] = function (zipphone) {
@@ -23,10 +23,16 @@
Lidos Lidos
</mat-option> </mat-option>
<mat-option value="Não Lidos" > <mat-option value="Não lidos" >
Não lidos Não lidos
</mat-option> </mat-option>
<mat-option value="OverdueTasks">
Em atraso
</mat-option>
<mat-option value="Todos" > <mat-option value="Todos" >
Todos Todos
</mat-option> </mat-option>
@@ -18,10 +18,16 @@
Lidos Lidos
</mat-option> </mat-option>
<mat-option value="Não Lidos" > <mat-option value="Não lidos" >
Não lidos Não lidos
</mat-option> </mat-option>
<mat-option value="OverdueTasks">
Em atraso
</mat-option>
<mat-option value="Todos" > <mat-option value="Todos" >
Todos Todos
</mat-option> </mat-option>
@@ -30,6 +30,12 @@
Não lidos Não lidos
</mat-option> </mat-option>
<mat-option value="OverdueTasks">
Em atraso
</mat-option>
<mat-option value="Todos" > <mat-option value="Todos" >
Todos Todos
</mat-option> </mat-option>
@@ -26,14 +26,20 @@
Lidos Lidos
</mat-option> </mat-option>
<mat-option value="Não Lidos" > <mat-option value="Não lidos" >
Não lidos Não lidos
</mat-option> </mat-option>
<mat-option value="OverdueTasks">
Em atraso
</mat-option>
<mat-option value="Todos" > <mat-option value="Todos" >
Todos Todos
</mat-option> </mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
<button class="btn-no-color" (click)="doRefresh($event)"> <button class="btn-no-color" (click)="doRefresh($event)">
@@ -24,10 +24,14 @@
Lidos Lidos
</mat-option> </mat-option>
<mat-option value="Não Lidos" > <mat-option value="Não lidos" >
Não lidos Não lidos
</mat-option> </mat-option>
<mat-option value="OverdueTasks">
Em atraso
</mat-option>
<mat-option value="Todos" > <mat-option value="Todos" >
Todos Todos
</mat-option> </mat-option>
@@ -24,6 +24,22 @@ import { BtnModalDismissPageModule } from 'src/app/shared/btn-modal-dismiss/btn-
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome'; import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
import { AllProcessesPageModule } from 'src/app/shared/gabinete-digital/all-processes/all-processes.module'; import { AllProcessesPageModule } from 'src/app/shared/gabinete-digital/all-processes/all-processes.module';
//
import { MatInputModule } from '@angular/material/input';
import { MatNativeDateModule } from '@angular/material/core';
import {
NgxMatDatetimePickerModule,
NgxMatNativeDateModule,
NgxMatTimepickerModule
} from '@angular-material-components/datetime-picker';
import { ReactiveFormsModule } from '@angular/forms';
import { MatButtonModule } from '@angular/material/button';
import { MatSelectModule } from '@angular/material/select';
import { NgxMatMomentModule } from '@angular-material-components/moment-adapter';
@NgModule({ @NgModule({
imports: [ imports: [
CommonModule, CommonModule,
@@ -44,7 +60,16 @@ import { AllProcessesPageModule } from 'src/app/shared/gabinete-digital/all-proc
DiplomasAssinarPageModule, DiplomasAssinarPageModule,
EmptyContainerPageModule, EmptyContainerPageModule,
BtnModalDismissPageModule, BtnModalDismissPageModule,
DiplomasGerarPageModule DiplomasGerarPageModule,
//
MatInputModule,
MatNativeDateModule,
NgxMatDatetimePickerModule,
NgxMatTimepickerModule,
NgxMatNativeDateModule,
NgxMatMomentModule,
MatSelectModule,
MatButtonModule,
], ],
declarations: [ declarations: [
@@ -17,7 +17,7 @@
<button title="Atualizar" *ngIf="hideRefreshBtn && loadCount" class="btn-no-color btn-refresh" (click)="doRefresh($event)"> <button title="Atualizar" *ngIf="hideRefreshBtn && loadCount" class="btn-no-color btn-refresh" (click)="doRefresh($event)">
<ion-icon class="title-icon font-awesome" name="reload-circle"></ion-icon> <ion-icon class="title-icon font-awesome" name="reload-circle"></ion-icon>
</button> </button>
<div *ngIf="!hideRefreshBtn" class="title-icons"> <div *ngIf="!hideRefreshBtn" class="title-icons d-flex">
<ion-segment [(ngModel)]="segmentVista" (ionChange)="onSegmentVistaChange()"> <ion-segment [(ngModel)]="segmentVista" (ionChange)="onSegmentVistaChange()">
<ion-segment-button value="listview" class="ion-segment-button-no-border"> <ion-segment-button value="listview" class="ion-segment-button-no-border">
<fa-icon icon="align-justify"></fa-icon> <fa-icon icon="align-justify"></fa-icon>
@@ -26,60 +26,99 @@
<fa-icon icon="th-large"></fa-icon> <fa-icon icon="th-large"></fa-icon>
</ion-segment-button> </ion-segment-button>
</ion-segment> </ion-segment>
<div>
<mat-form-field class="task-filter-input" appearance="none" color="ion-color-secondary" placeholder="Selecione agenda">
<mat-select [(value)]="filterName">
<mat-option value="Para hoje" >
Para hoje
</mat-option>
<mat-option value="Novos" >
Novos
</mat-option>
<mat-option value="Lidos" >
Lidos
</mat-option>
<mat-option value="Não lidos" >
Não lidos
</mat-option>
<mat-option value="OverdueTasks">
Em atraso
</mat-option>
<mat-option value="Todos" >
Todos
</mat-option>
</mat-select>
</mat-form-field>
</div>
</div> </div>
</div> </div>
<div [ngSwitch]="segmentVista" class="overflow-y-auto"> <div [ngSwitch]="segmentVista" class="overflow-y-auto">
<!-- This is the list view --> <!-- This is the list view -->
<div *ngSwitchCase="'listview'"> <div *ngSwitchCase="'listview'">
<ion-item-sliding *ngIf="loadCount || (getAllProcessCount >= 1 && loadNum >= 1)"> <ion-item-sliding *ngIf="loadCount || (getAllProcessCount >= 1 && loadNum >= 1)">
<div class="listview" > <div class="listview" >
<ion-list *ngIf="AllProcess"> <ion-list *ngIf="AllProcess">
<div <div
class="item-wrapper box-hover ion-no-padding cursor-pointer" class=" box-hover ion-no-padding cursor-pointer"
*ngFor = "let task of AllProcess" *ngFor = "let task of AllProcess"
(click)="goToProcess(task.SerialNumber || task.serialNumber, task.WorkflowName || task.workflowName || task.workflowDisplayName || task.workflowName, task.activityInstanceName)"> (click)="goToProcess(task.SerialNumber || task.serialNumber, task.WorkflowName || task.workflowName || task.workflowDisplayName || task.workflowName, task.activityInstanceName)">
<div class="item width-100"> <div class="item-wrapper" *ngIf="TaskService.filter(task, filterName)">
<div class="item-top-detail"> <div class="item width-100">
<div class="item-subject"> <div class="item-top-detail">
<!-- ... {{ task.SerialNumber || task.serialNumber}} {{ task.WorkflowName || task.workflowName }} {{ task.activityInstanceName }} --> <div class="item-subject">
<ion-label>{{ task.Folio || task.Subject || task.workflowInstanceDataFields.Subject}}</ion-label> <!-- ... {{ task.SerialNumber || task.serialNumber}} {{ task.WorkflowName || task.workflowName }} {{ task.activityInstanceName }} -->
<ion-label [class.gb-seen]="TaskService.seen(task)">{{ task.Folio || task.Subject || task.workflowInstanceDataFields.Subject}}</ion-label>
<span class="dead-line ml-10" *ngIf="TaskService.deadlineIsToday(task.Deadline || task.deadline)">Para hoje</span>
<span class="new-task ml-10" *ngIf="TaskService.lessThen24Hours(task.TaskStartDate || task.taskStartDate)">Nova</span>
</div>
<div *ngIf="task.DocumentsQty != 0" class="item-icon">
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " src="assets/images/icons-expediente-attachment.svg"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " src="assets/images/theme/gov/icons-expediente-attachment.svg"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'doneIt' " src="assets/images/theme/{{ThemeService.currentTheme}}/icons-expediente-attachment.svg"></ion-icon>
<label>{{task.DocumentsQty || task.totalDocuments}}</label>
</div>
</div> </div>
<div *ngIf="task.DocumentsQty != 0" class="item-icon"> <div class="item-middle-detail">
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " src="assets/images/icons-expediente-attachment.svg"></ion-icon> <div class="item-remetente">
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " src="assets/images/theme/gov/icons-expediente-attachment.svg"></ion-icon> <ion-label *ngIf="task.Senders">{{task.Senders }}</ion-label>
<ion-icon *ngIf="ThemeService.currentTheme == 'doneIt' " src="assets/images/theme/{{ThemeService.currentTheme}}/icons-expediente-attachment.svg"></ion-icon> <ion-label *ngIf="task.workflowInstanceDataFields">{{ task.workflowInstanceDataFields.Sender }}</ion-label>
<label>{{task.DocumentsQty || task.totalDocuments}}</label> </div>
</div> </div>
</div> <div *ngIf="task.Agenda" class="item-middle-detail">
<div class="item-middle-detail"> <div class="item-remetente">
<div class="item-remetente"> <ion-label>{{task.customDate}}</ion-label>
<ion-label *ngIf="task.Senders">{{task.Senders }}</ion-label> </div>
<ion-label *ngIf="task.workflowInstanceDataFields">{{ task.workflowInstanceDataFields.Sender }}</ion-label>
</div> </div>
</div> <div *ngIf="task.Agenda" class="item-middle-detail-extra">
<div *ngIf="task.Agenda" class="item-middle-detail"> <div class="item-middle-detail-extra-text">
<div class="item-remetente"> <ion-label *ngIf=" task.WorkflowName == 'Agenda Oficial PR' || task.WorkflowName == 'Agenda Pessoal PR'">
<ion-label>{{task.customDate}}</ion-label> <!-- Agenda {{task.Agenda || task.workflowInstanceDataFields.Agenda}} do Presidente da República -->
Agenda {{task.Agenda || task.workflowInstanceDataFields.Agenda}} do Titular
</ion-label>
<ion-label *ngIf=" task.WorkflowName == 'Agenda Oficial MDGPR' || task.WorkflowName == 'Agenda Pessoal MDGPR'">
A sua agenda {{task.Agenda || task.workflowInstanceDataFields.Agenda}}
</ion-label>
</div>
</div> </div>
</div> <div class="item-bottom-detail d-flex align-items-center">
<div *ngIf="task.Agenda" class="item-middle-detail-extra"> <div class="item-workflow">
<div class="item-middle-detail-extra-text"> <span class="label">{{task.activityInstanceName}}</span>
<ion-label *ngIf=" task.WorkflowName == 'Agenda Oficial PR' || task.WorkflowName == 'Agenda Pessoal PR'"> </div>
<!-- Agenda {{task.Agenda || task.workflowInstanceDataFields.Agenda}} do Presidente da República --> <div class="item-date">
Agenda {{task.Agenda || task.workflowInstanceDataFields.Agenda}} do Titular <ion-label>{{ task.CreateDate || task.taskStartDate || task.TaskStartDate | date: 'dd-MM-yyyy HH:mm' }}</ion-label>
</ion-label> </div>
<ion-label *ngIf=" task.WorkflowName == 'Agenda Oficial MDGPR' || task.WorkflowName == 'Agenda Pessoal MDGPR'">
A sua agenda {{task.Agenda || task.workflowInstanceDataFields.Agenda}}
</ion-label>
</div>
</div>
<div class="item-bottom-detail d-flex align-items-center">
<div class="item-workflow">
<span class="label">{{task.activityInstanceName}}</span>
</div>
<div class="item-date">
<ion-label>{{ task.CreateDate || task.taskStartDate || task.TaskStartDate | date: 'dd-MM-yyyy HH:mm' }}</ion-label>
</div> </div>
</div> </div>
</div> </div>
@@ -35,6 +35,8 @@ import { NotificationsService } from 'src/app/services/notifications.service'
import { environment } from 'src/environments/environment'; import { environment } from 'src/environments/environment';
import { EventsService } from 'src/app/services/events.service'; import { EventsService } from 'src/app/services/events.service';
import { HttpErrorHandle } from 'src/app/services/http-error-handle.service'; import { HttpErrorHandle } from 'src/app/services/http-error-handle.service';
import { TaskService } from 'src/app/services/task.service'
@Component({ @Component({
selector: 'app-gabinete-digital', selector: 'app-gabinete-digital',
templateUrl: './gabinete-digital.page.html', templateUrl: './gabinete-digital.page.html',
@@ -115,6 +117,9 @@ export class GabineteDigitalPage implements OnInit {
@ViewChild(PendentesPage) pendentesListPage: PendentesPage; @ViewChild(PendentesPage) pendentesListPage: PendentesPage;
@ViewChild(EventsToApprovePage) eventsToApprove: EventsToApprovePage; @ViewChild(EventsToApprovePage) eventsToApprove: EventsToApprovePage;
filterName: 'Para hoje' | 'Novos'| 'Lidos'| 'Não lidos'| 'Todos' = 'Todos'
constructor( constructor(
private processesbackend: ProcessesService, private processesbackend: ProcessesService,
private modalController: ModalController, private modalController: ModalController,
@@ -130,7 +135,8 @@ export class GabineteDigitalPage implements OnInit {
public p: PermissionService, public p: PermissionService,
public NotificationsService: NotificationsService, public NotificationsService: NotificationsService,
public eventService: EventsService, public eventService: EventsService,
private httpErroHandle: HttpErrorHandle private httpErroHandle: HttpErrorHandle,
public TaskService: TaskService
) { ) {
// this.workerList = new Worker(new URL('./list.worker.js', import.meta.url)); // this.workerList = new Worker(new URL('./list.worker.js', import.meta.url));
@@ -502,6 +508,9 @@ export class GabineteDigitalPage implements OnInit {
this.showDiplomasGerar = false this.showDiplomasGerar = false
} }
functionTimer = null
updateAllProcess = () => { updateAllProcess = () => {
this.AllProcess = this.sortArrayISODate(this.despachoprstore.list.concat(this.deplomasStore.diplomasAssinadoList as any).concat(this.deplomasStore.diplomasParaAssinarList as any).concat(this.deplomasStore.DiplomaGerarList as any) this.AllProcess = this.sortArrayISODate(this.despachoprstore.list.concat(this.deplomasStore.diplomasAssinadoList as any).concat(this.deplomasStore.diplomasParaAssinarList as any).concat(this.deplomasStore.DiplomaGerarList as any)
@@ -520,9 +529,19 @@ export class GabineteDigitalPage implements OnInit {
// .concat(this.despachoprstore.list).concat(this.eventoaprovacaostore.listmd).concat(this.eventoaprovacaostore.listpr).concat(this.despachoStore.list) // .concat(this.despachoprstore.list).concat(this.eventoaprovacaostore.listmd).concat(this.eventoaprovacaostore.listpr).concat(this.despachoStore.list)
// .concat(this.deplomasStore.diplomasParaAssinarList).concat(this.deplomasStore.diplomasAssinadoList).concat(this.deplomasStore.DiplomaGerarList) // .concat(this.deplomasStore.diplomasParaAssinarList).concat(this.deplomasStore.diplomasAssinadoList).concat(this.deplomasStore.DiplomaGerarList)
// } // }
if(window['all-process']) {
window['all-process']()
} clearTimeout(this.functionTimer);
this.functionTimer = setTimeout(() => {
if(window['all-process']) {
window['all-process']()
} else {
this.TaskService.updateCount()
}
}, 1000); // time is in milliseconds
} }
@@ -22,14 +22,20 @@
Lidos Lidos
</mat-option> </mat-option>
<mat-option value="Não Lidos" > <mat-option value="Não lidos" >
Não lidos Não lidos
</mat-option> </mat-option>
<mat-option value="OverdueTasks">
Em atraso
</mat-option>
<mat-option value="Todos" > <mat-option value="Todos" >
Todos Todos
</mat-option> </mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
<button class="btn-no-color" (click)="doRefresh($event)"> <button class="btn-no-color" (click)="doRefresh($event)">
@@ -23,14 +23,20 @@
Lidos Lidos
</mat-option> </mat-option>
<mat-option value="Não Lidos" > <mat-option value="Não lidos" >
Não lidos Não lidos
</mat-option> </mat-option>
<mat-option value="OverdueTasks">
Em atraso
</mat-option>
<mat-option value="Todos" > <mat-option value="Todos" >
Todos Todos
</mat-option> </mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
<button class="btn-no-color" (click)="doRefresh($event)"> <button class="btn-no-color" (click)="doRefresh($event)">
+58 -3
View File
@@ -1,12 +1,38 @@
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { momentG } from 'src/plugin/momentG'; import { momentG } from 'src/plugin/momentG';
import { ExpedienteGdStore } from 'src/app/store/expedientegd-store.service';
import { DeplomasStore } from 'src/app/store/deplomas.service';
import { PendentesStore } from 'src/app/store/pendestes-store.service';
import { DespachoStore } from 'src/app/store/despacho-store.service';
import { TotalDocumentStore } from 'src/app/store/total-document.service';
import { DespachosprStore } from 'src/app/store/despachospr-store.service';
import { EventoAprovacaoStore } from 'src/app/store/eventoaprovacao-store.service';
import { PedidosStore } from 'src/app/store/pedidos-store.service';
@Injectable({ @Injectable({
providedIn: 'root' providedIn: 'root'
}) })
export class TaskService { export class TaskService {
read = 0
unread = 0
deadline = 0
new = 0
overdueTasks = 0
expedientegbstore = ExpedienteGdStore;
pendentesstore = PendentesStore;
despachoStore = DespachoStore;
eventoaprovacaostore = EventoAprovacaoStore;
pedidosstore = PedidosStore;
despachoprstore = DespachosprStore;
totalDocumentStore = TotalDocumentStore
deplomasStore = DeplomasStore
AllProcess = []
constructor() { } constructor() { }
deadlineIsToday(isoDateString:string) { deadlineIsToday(isoDateString:string) {
@@ -17,10 +43,13 @@ export class TaskService {
return momentG(new Date(), 'dd MMMM yyyy') == momentG(new Date(isoDateString), 'dd MMMM yyyy') return momentG(new Date(), 'dd MMMM yyyy') == momentG(new Date(isoDateString), 'dd MMMM yyyy')
} }
overdueTask(isoDateString:string) {
return (new Date()).getTime() < (new Date(isoDateString)).getTime()
}
lessThen24Hours(isoDateString:string) { lessThen24Hours(isoDateString:string) {
if(!isoDateString) { if(!isoDateString) {
console.log('no created date')
return true return true
} }
@@ -33,7 +62,6 @@ export class TaskService {
} }
filter(item, attribute) { filter(item, attribute) {
if(attribute == 'Para hoje') { if(attribute == 'Para hoje') {
return this.deadlineIsToday(item.TaskStartDate || item.taskStartDate) return this.deadlineIsToday(item.TaskStartDate || item.taskStartDate)
} else if (attribute == 'Novos') { } else if (attribute == 'Novos') {
@@ -41,7 +69,9 @@ export class TaskService {
} else if (attribute == 'Lidos') { } else if (attribute == 'Lidos') {
return item.TaskStatus == 'Open' || item.taskStatus == 'Open' return item.TaskStatus == 'Open' || item.taskStatus == 'Open'
} else if (attribute == 'Não lidos') { } else if (attribute == 'Não lidos') {
return item.TaskStatus != 'Open' && item.taskStatus != 'Open' return !(item.TaskStatus == 'Open' || item.taskStatus == 'Open')
} else if (attribute == 'OverdueTasks') {
return this.overdueTask(item.Deadline || item.deadline)
} }
return true return true
} }
@@ -50,4 +80,29 @@ export class TaskService {
seen(item) { seen(item) {
return item.TaskStatus == 'Open' || item.taskStatus == 'Open' return item.TaskStatus == 'Open' || item.taskStatus == 'Open'
} }
updateAllProcess = () => {
this.AllProcess = this.sortArrayISODate(this.despachoprstore.list.concat(this.deplomasStore.diplomasAssinadoList as any).concat(this.deplomasStore.diplomasParaAssinarList as any).concat(this.deplomasStore.DiplomaGerarList as any)
.concat(this.eventoaprovacaostore.contactList as any).concat(this.expedientegbstore.list as any).concat(this.despachoStore.list as any).concat(this.pedidosstore.listparecer as any).concat(this.pedidosstore.listdeferimento as any)
.concat(this.pendentesstore.list as any)).reverse()
}
sortArrayISODate(myArray: any): any[] {
// return myArray.sort(function (a, b) {
// return (a.CreateDate || a.taskStartDate < b.CreateDate || b.taskStartDate) ? -1 : ((a.CreateDate || a.taskStartDate > b.CreateDate || b.taskStartDate) ? 1 : 0);
// });
return myArray.sort((a,b) => Date.parse(b.CreateDate || b.taskStartDate || b.TaskStartDate) - Date.parse(a.CreateDate || a.taskStartDate || a.TaskStartDate))
}
updateCount() {
this.updateAllProcess()
this.read = this.AllProcess.filter((item) => this.filter(item,'Lidos')).length
this.unread = this.AllProcess.filter((item) => this.filter(item,'Não lidos')).length
this.deadline = this.AllProcess.filter((task) => this.deadlineIsToday(task.Deadline || task.deadline)).length
this.new = this.AllProcess.filter((task) => this.lessThen24Hours(task.TaskStartDate || task.taskStartDate)).length
this.overdueTasks = this.AllProcess.filter((task) => this.overdueTask(task.Deadline || task.deadline)).length
}
} }
@@ -20,10 +20,14 @@
Lidos Lidos
</mat-option> </mat-option>
<mat-option value="Não Lidos" > <mat-option value="Não lidos" >
Não lidos Não lidos
</mat-option> </mat-option>
<mat-option value="OverdueTasks">
Em atraso
</mat-option>
<mat-option value="Todos" > <mat-option value="Todos" >
Todos Todos
</mat-option> </mat-option>
@@ -83,11 +83,20 @@ export class AllProcessesPage implements OnInit {
}, 1000); }, 1000);
} }
functionTimer = null
updateAllProcess = () => { updateAllProcess = () => {
this.AllProcess = this.sortArrayISODate(this.despachoprstore.list.concat(this.deplomasStore.diplomasAssinadoList as any).concat(this.deplomasStore.diplomasParaAssinarList as any).concat(this.deplomasStore.DiplomaGerarList as any) this.AllProcess = this.sortArrayISODate(this.despachoprstore.list.concat(this.deplomasStore.diplomasAssinadoList as any).concat(this.deplomasStore.diplomasParaAssinarList as any).concat(this.deplomasStore.DiplomaGerarList as any)
.concat(this.eventoaprovacaostore.contactList as any).concat(this.expedientegbstore.list as any).concat(this.despachoStore.list as any).concat(this.pedidosstore.listparecer as any).concat(this.pedidosstore.listdeferimento as any) .concat(this.eventoaprovacaostore.contactList as any).concat(this.expedientegbstore.list as any).concat(this.despachoStore.list as any).concat(this.pedidosstore.listparecer as any).concat(this.pedidosstore.listdeferimento as any)
.concat(this.pendentesstore.list as any)).reverse() .concat(this.pendentesstore.list as any)).reverse()
clearTimeout(this.functionTimer);
this.functionTimer = setTimeout(() => {
this.TaskService.updateCount()
}, 1000); // time is in milliseconds
} }
get getAllProcessCount() { get getAllProcessCount() {
@@ -20,13 +20,17 @@
Lidos Lidos
</mat-option> </mat-option>
<mat-option value="Não Lidos" > <mat-option value="Não lidos" >
Não lidos Não lidos
</mat-option> </mat-option>
<mat-option value="Todos" > <mat-option value="Todos" >
Todos Todos
</mat-option> </mat-option>
<mat-option value="OverdueTasks">
Em atraso
</mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
@@ -21,14 +21,20 @@
Lidos Lidos
</mat-option> </mat-option>
<mat-option value="Não Lidos" > <mat-option value="Não lidos" >
Não lidos Não lidos
</mat-option> </mat-option>
<mat-option value="OverdueTasks">
Em atraso
</mat-option>
<mat-option value="Todos" > <mat-option value="Todos" >
Todos Todos
</mat-option> </mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
</div> </div>
@@ -18,7 +18,7 @@
Lidos Lidos
</mat-option> </mat-option>
<mat-option value="Não Lidos" > <mat-option value="Não lidos" >
Não lidos Não lidos
</mat-option> </mat-option>
@@ -26,6 +26,10 @@
Todos Todos
</mat-option> </mat-option>
<mat-option value="OverdueTasks">
Em atraso
</mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
<!-- <button title="Atualizar" class="btn-no-color" (click)="doRefresh($event)"> <!-- <button title="Atualizar" class="btn-no-color" (click)="doRefresh($event)">
@@ -63,6 +67,7 @@
<div class="item width-100 expediente" *ngIf="TaskService.filter(task, filterName)"> <div class="item width-100 expediente" *ngIf="TaskService.filter(task, filterName)">
<div class="exp-top-detail"> <div class="exp-top-detail">
<div class="subject"> <div class="subject">
{{ task.taskStatus || task.TaskStatus }}
<ion-label [class.gb-seen]="TaskService.seen(task)">{{ task.Folio || task.workflowInstanceDataFields.Subject }}</ion-label> <ion-label [class.gb-seen]="TaskService.seen(task)">{{ task.Folio || task.workflowInstanceDataFields.Subject }}</ion-label>
</div> </div>
<div class="exp-icon"> <div class="exp-icon">
@@ -18,10 +18,16 @@
Lidos Lidos
</mat-option> </mat-option>
<mat-option value="Não Lidos" > <mat-option value="Não lidos" >
Não lidos Não lidos
</mat-option> </mat-option>
<mat-option value="OverdueTasks">
Em atraso
</mat-option>
<mat-option value="Todos" > <mat-option value="Todos" >
Todos Todos
</mat-option> </mat-option>
@@ -18,14 +18,21 @@
Lidos Lidos
</mat-option> </mat-option>
<mat-option value="Não Lidos" > <mat-option value="Não lidos" >
Não lidos Não lidos
</mat-option> </mat-option>
<mat-option value="OverdueTasks">
Em atraso
</mat-option>
<mat-option value="Todos" > <mat-option value="Todos" >
Todos Todos
</mat-option> </mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
<!-- <button title="Atualizar" class="btn-no-color" (click)="doRefresh($event)"> <!-- <button title="Atualizar" class="btn-no-color" (click)="doRefresh($event)">
@@ -58,6 +65,7 @@
<div class="item width-100 expediente" *ngIf="TaskService.filter(task, filterName)"> <div class="item width-100 expediente" *ngIf="TaskService.filter(task, filterName)">
<div class="exp-top-detail"> <div class="exp-top-detail">
<div class="subject"> <div class="subject">
{{ task.taskStatus || task.TaskStatus }}
<ion-label [class.gb-seen]="TaskService.seen(task)">{{ task.Folio }}</ion-label> <ion-label [class.gb-seen]="TaskService.seen(task)">{{ task.Folio }}</ion-label>
</div> </div>
<div class="exp-icon"> <div class="exp-icon">
@@ -95,7 +103,8 @@
<div class="item width-100 expediente" *ngIf="TaskService.filter(task, filterName)"> <div class="item width-100 expediente" *ngIf="TaskService.filter(task, filterName)">
<div class="exp-top-detail"> <div class="exp-top-detail">
<div class="subject"> <div class="subject">
<ion-label>{{ task.Folio }}</ion-label> {{ task.taskStatus || task.TaskStatus }}
<ion-label [class.gb-seen]="TaskService.seen(task)">{{ task.Folio }}</ion-label>
</div> </div>
<div class="exp-icon"> <div class="exp-icon">
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " src="assets/images/icons-expediente-attachment.svg"></ion-icon> <ion-icon *ngIf="ThemeService.currentTheme == 'default' " src="assets/images/icons-expediente-attachment.svg"></ion-icon>
@@ -114,6 +114,7 @@ export class DiplomasPage implements OnInit {
"Status": element.workflowInstanceDataFields.Status, "Status": element.workflowInstanceDataFields.Status,
"Deadline": element.deadline, "Deadline": element.deadline,
"TaskStartDate": element.taskStartDate, "TaskStartDate": element.taskStartDate,
"TaskStatus": element.taskStatus
} }
} }
@@ -19,10 +19,15 @@
Lidos Lidos
</mat-option> </mat-option>
<mat-option value="Não Lidos" > <mat-option value="Não lidos" >
Não lidos Não lidos
</mat-option> </mat-option>
<mat-option value="OverdueTasks">
Em atraso
</mat-option>
<mat-option value="Todos" > <mat-option value="Todos" >
Todos Todos
</mat-option> </mat-option>
@@ -18,10 +18,16 @@
Lidos Lidos
</mat-option> </mat-option>
<mat-option value="Não Lidos" > <mat-option value="Não lidos" >
Não lidos Não lidos
</mat-option> </mat-option>
<mat-option value="OverdueTasks">
Em atraso
</mat-option>
<mat-option value="Todos" > <mat-option value="Todos" >
Todos Todos
</mat-option> </mat-option>
@@ -18,14 +18,20 @@
Lidos Lidos
</mat-option> </mat-option>
<mat-option value="Não Lidos" > <mat-option value="Não lidos" >
Não lidos Não lidos
</mat-option> </mat-option>
<mat-option value="OverdueTasks">
Em atraso
</mat-option>
<mat-option value="Todos" > <mat-option value="Todos" >
Todos Todos
</mat-option> </mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
<!-- <button title="Atualizar" class="btn-no-color" (click)="doRefresh($event)"> <!-- <button title="Atualizar" class="btn-no-color" (click)="doRefresh($event)">
@@ -18,10 +18,15 @@
Lidos Lidos
</mat-option> </mat-option>
<mat-option value="Não Lidos" > <mat-option value="Não lidos" >
Não lidos Não lidos
</mat-option> </mat-option>
<mat-option value="OverdueTasks">
Em atraso
</mat-option>
<mat-option value="Todos" > <mat-option value="Todos" >
Todos Todos
</mat-option> </mat-option>
@@ -18,10 +18,15 @@
Lidos Lidos
</mat-option> </mat-option>
<mat-option value="Não Lidos" > <mat-option value="Não lidos" >
Não lidos Não lidos
</mat-option> </mat-option>
<mat-option value="OverdueTasks">
Em atraso
</mat-option>
<mat-option value="Todos" > <mat-option value="Todos" >
Todos Todos
</mat-option> </mat-option>
+2 -2
View File
@@ -2,7 +2,7 @@ import { versionData } from '../../../version/git-version'
import { Environment } from './../../app/models/envarioment' import { Environment } from './../../app/models/envarioment'
export const DevProd: Environment = { export const DevProd: Environment = {
id:'1', id:'3',
apiURL: 'https://gdapi-dev.dyndns.info/GabineteDigital.Services/V5/api/', apiURL: 'https://gdapi-dev.dyndns.info/GabineteDigital.Services/V5/api/',
apiChatUrl: 'https://CHAT.DONEIT.CO.AO/api/v1/', apiChatUrl: 'https://CHAT.DONEIT.CO.AO/api/v1/',
apiWsChatUrl: 'wss://CHAT.DONEIT.CO.AO/websocket', apiWsChatUrl: 'wss://CHAT.DONEIT.CO.AO/websocket',
@@ -25,7 +25,7 @@ export const DevProd: Environment = {
}; };
export const DevDev: Environment = { export const DevDev: Environment = {
id:'1', id:'3',
apiURL: 'https://gdapi-dev.dyndns.info/GabineteDigital.Services/V5/api/', apiURL: 'https://gdapi-dev.dyndns.info/GabineteDigital.Services/V5/api/',
apiChatUrl: 'https://CHAT.DONEIT.CO.AO/api/v1/', apiChatUrl: 'https://CHAT.DONEIT.CO.AO/api/v1/',
apiWsChatUrl: 'wss://CHAT.DONEIT.CO.AO/websocket', apiWsChatUrl: 'wss://CHAT.DONEIT.CO.AO/websocket',
+6 -6
View File
@@ -1,12 +1,12 @@
export let versionData = { export let versionData = {
"shortSHA": "578b9a125", "shortSHA": "2c18fb4a2",
"SHA": "578b9a12520ef698f839e1b8b717dabc51fbb719", "SHA": "2c18fb4a20230776ad020d4d4bc4565bbc991fb8",
"branch": "feature/gabineteLabels", "branch": "feature/gabineteLabels",
"lastCommitAuthor": "'Peter Maquiran'", "lastCommitAuthor": "'Peter Maquiran'",
"lastCommitTime": "'Mon Apr 17 11:42:46 2023 +0100'", "lastCommitTime": "'Mon Apr 17 11:50:41 2023 +0100'",
"lastCommitMessage": "add environment", "lastCommitMessage": "change home layout",
"lastCommitNumber": "4905", "lastCommitNumber": "4906",
"change": "", "change": "",
"changeStatus": "On branch feature/gabineteLabels\nChanges to be committed:\n (use \"git restore --staged <file>...\" to unstage)\n\tmodified: src/app/pages/events/events.page.html\n\tmodified: src/app/pages/events/events.page.scss\n\tmodified: src/app/services/auth.service.ts\n\tmodified: src/app/services/task-deadline.service.ts\n\tmodified: src/environments/environment.ts", "changeStatus": "On branch feature/gabineteLabels\nAll conflicts fixed but you are still merging.\n (use \"git commit\" to conclude merge)\n\nChanges to be committed:\n\tmodified: src/app/pages/events/events.page.html\n\tmodified: src/app/pages/events/events.page.ts\n\tmodified: src/app/pages/gabinete-digital/diplomas-assinar/diplomas-assinar.page.html\n\tmodified: src/app/pages/gabinete-digital/diplomas/diplomas.page.html\n\tmodified: src/app/pages/gabinete-digital/event-list/event-list.page.html\n\tmodified: src/app/pages/gabinete-digital/expediente/expediente.page.html\n\tmodified: src/app/pages/gabinete-digital/expedientes-pr/expedientes-pr.page.html\n\tmodified: src/app/pages/gabinete-digital/gabinete-digital.module.ts\n\tmodified: src/app/pages/gabinete-digital/gabinete-digital.page.html\n\tmodified: src/app/pages/gabinete-digital/gabinete-digital.page.ts\n\tmodified: src/app/pages/gabinete-digital/pedidos/pedidos.page.html\n\tmodified: src/app/pages/gabinete-digital/pendentes/pendentes.page.html\n\tmodified: src/app/services/task.service.ts\n\tmodified: src/app/shared/gabinete-digital/all-processes/all-processes.page.html\n\tmodified: src/app/shared/gabinete-digital/all-processes/all-processes.page.ts\n\tmodified: src/app/shared/gabinete-digital/despachos-pr/despachos-pr.page.html\n\tmodified: src/app/shared/gabinete-digital/despachos/despachos.page.html\n\tmodified: src/app/shared/gabinete-digital/diplomas-assinar/diplomas-assinar.page.html\n\tmodified: src/app/shared/gabinete-digital/diplomas-gerar/diplomas-gerar.page.html\n\tmodified: src/app/shared/gabinete-digital/diplomas/diplomas.page.html\n\tmodified: src/app/shared/gabinete-digital/diplomas/diplomas.page.ts\n\tmodified: src/app/shared/gabinete-digital/events-to-approve/events-to-approve.page.html\n\tmodified: src/app/shared/gabinete-digital/expedientes-pr/expedientes-pr.page.html\n\tmodified: src/app/shared/gabinete-digital/expedients/expedients.page.html\n\tmodified: src/app/shared/gabinete-digital/pedidos/pedidos.page.html\n\tmodified: src/app/shared/gabinete-digital/pendentes/pendentes.page.html\n\tmodified: src/environments/suport/dev.ts\n\tmodified: version/git-version.ts",
"changeAuthor": "peter.maquiran" "changeAuthor": "peter.maquiran"
} }