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
@@ -23,10 +23,16 @@
Lidos
</mat-option>
<mat-option value="Não Lidos" >
<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>
@@ -18,10 +18,16 @@
Lidos
</mat-option>
<mat-option value="Não Lidos" >
<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>
@@ -30,6 +30,12 @@
Não lidos
</mat-option>
<mat-option value="OverdueTasks">
Em atraso
</mat-option>
<mat-option value="Todos" >
Todos
</mat-option>
@@ -26,14 +26,20 @@
Lidos
</mat-option>
<mat-option value="Não Lidos" >
<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>
<button class="btn-no-color" (click)="doRefresh($event)">
@@ -24,10 +24,14 @@
Lidos
</mat-option>
<mat-option value="Não Lidos" >
<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>
@@ -24,6 +24,22 @@ import { BtnModalDismissPageModule } from 'src/app/shared/btn-modal-dismiss/btn-
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
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({
imports: [
CommonModule,
@@ -44,7 +60,16 @@ import { AllProcessesPageModule } from 'src/app/shared/gabinete-digital/all-proc
DiplomasAssinarPageModule,
EmptyContainerPageModule,
BtnModalDismissPageModule,
DiplomasGerarPageModule
DiplomasGerarPageModule,
//
MatInputModule,
MatNativeDateModule,
NgxMatDatetimePickerModule,
NgxMatTimepickerModule,
NgxMatNativeDateModule,
NgxMatMomentModule,
MatSelectModule,
MatButtonModule,
],
declarations: [
@@ -17,7 +17,7 @@
<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>
</button>
<div *ngIf="!hideRefreshBtn" class="title-icons">
<div *ngIf="!hideRefreshBtn" class="title-icons d-flex">
<ion-segment [(ngModel)]="segmentVista" (ionChange)="onSegmentVistaChange()">
<ion-segment-button value="listview" class="ion-segment-button-no-border">
<fa-icon icon="align-justify"></fa-icon>
@@ -26,60 +26,99 @@
<fa-icon icon="th-large"></fa-icon>
</ion-segment-button>
</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 [ngSwitch]="segmentVista" class="overflow-y-auto">
<!-- This is the list view -->
<div *ngSwitchCase="'listview'">
<ion-item-sliding *ngIf="loadCount || (getAllProcessCount >= 1 && loadNum >= 1)">
<div class="listview" >
<ion-list *ngIf="AllProcess">
<div
class="item-wrapper box-hover ion-no-padding cursor-pointer"
class=" box-hover ion-no-padding cursor-pointer"
*ngFor = "let task of AllProcess"
(click)="goToProcess(task.SerialNumber || task.serialNumber, task.WorkflowName || task.workflowName || task.workflowDisplayName || task.workflowName, task.activityInstanceName)">
<div class="item width-100">
<div class="item-top-detail">
<div class="item-subject">
<!-- ... {{ task.SerialNumber || task.serialNumber}} {{ task.WorkflowName || task.workflowName }} {{ task.activityInstanceName }} -->
<ion-label>{{ task.Folio || task.Subject || task.workflowInstanceDataFields.Subject}}</ion-label>
<div class="item-wrapper" *ngIf="TaskService.filter(task, filterName)">
<div class="item width-100">
<div class="item-top-detail">
<div class="item-subject">
<!-- ... {{ 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 *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 class="item-middle-detail">
<div class="item-remetente">
<ion-label *ngIf="task.Senders">{{task.Senders }}</ion-label>
<ion-label *ngIf="task.workflowInstanceDataFields">{{ task.workflowInstanceDataFields.Sender }}</ion-label>
</div>
</div>
</div>
<div class="item-middle-detail">
<div class="item-remetente">
<ion-label *ngIf="task.Senders">{{task.Senders }}</ion-label>
<ion-label *ngIf="task.workflowInstanceDataFields">{{ task.workflowInstanceDataFields.Sender }}</ion-label>
<div *ngIf="task.Agenda" class="item-middle-detail">
<div class="item-remetente">
<ion-label>{{task.customDate}}</ion-label>
</div>
</div>
</div>
<div *ngIf="task.Agenda" class="item-middle-detail">
<div class="item-remetente">
<ion-label>{{task.customDate}}</ion-label>
<div *ngIf="task.Agenda" class="item-middle-detail-extra">
<div class="item-middle-detail-extra-text">
<ion-label *ngIf=" task.WorkflowName == 'Agenda Oficial PR' || task.WorkflowName == 'Agenda Pessoal PR'">
<!-- 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 *ngIf="task.Agenda" class="item-middle-detail-extra">
<div class="item-middle-detail-extra-text">
<ion-label *ngIf=" task.WorkflowName == 'Agenda Oficial PR' || task.WorkflowName == 'Agenda Pessoal PR'">
<!-- 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 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 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>
@@ -35,6 +35,8 @@ import { NotificationsService } from 'src/app/services/notifications.service'
import { environment } from 'src/environments/environment';
import { EventsService } from 'src/app/services/events.service';
import { HttpErrorHandle } from 'src/app/services/http-error-handle.service';
import { TaskService } from 'src/app/services/task.service'
@Component({
selector: 'app-gabinete-digital',
templateUrl: './gabinete-digital.page.html',
@@ -115,6 +117,9 @@ export class GabineteDigitalPage implements OnInit {
@ViewChild(PendentesPage) pendentesListPage: PendentesPage;
@ViewChild(EventsToApprovePage) eventsToApprove: EventsToApprovePage;
filterName: 'Para hoje' | 'Novos'| 'Lidos'| 'Não lidos'| 'Todos' = 'Todos'
constructor(
private processesbackend: ProcessesService,
private modalController: ModalController,
@@ -130,7 +135,8 @@ export class GabineteDigitalPage implements OnInit {
public p: PermissionService,
public NotificationsService: NotificationsService,
public eventService: EventsService,
private httpErroHandle: HttpErrorHandle
private httpErroHandle: HttpErrorHandle,
public TaskService: TaskService
) {
// this.workerList = new Worker(new URL('./list.worker.js', import.meta.url));
@@ -502,6 +508,9 @@ export class GabineteDigitalPage implements OnInit {
this.showDiplomasGerar = false
}
functionTimer = null
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)
@@ -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.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
</mat-option>
<mat-option value="Não Lidos" >
<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>
<button class="btn-no-color" (click)="doRefresh($event)">
@@ -23,14 +23,20 @@
Lidos
</mat-option>
<mat-option value="Não Lidos" >
<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>
<button class="btn-no-color" (click)="doRefresh($event)">