This commit is contained in:
tiago.kayaya
2021-06-03 14:21:11 +01:00
11 changed files with 178 additions and 461 deletions
+14 -2
View File
@@ -119,11 +119,23 @@ const routes: Routes = [
{ {
path: 'fingerprint', path: 'fingerprint',
loadChildren: () => import('./shared/fingerprint/fingerprint.module').then( m => m.FingerprintPageModule) loadChildren: () => import('./shared/fingerprint/fingerprint.module').then( m => m.FingerprintPageModule)
}, },
{
path: 'new-event', path: 'new-event',
loadChildren: () => import('./shared/agenda/new-event/new-event.module').then( m => m.NewEventPageModule) loadChildren: () => import('./shared/agenda/new-event/new-event.module').then( m => m.NewEventPageModule)
}, },
}, {
path: 'edit-event',
loadChildren: () => import('./shared/agenda/edit-event/edit-event.module').then( m => m.EditEventPageModule)
},
{
path: 'event-list',
loadChildren: () => import('./shared/agenda/event-list/event-list.module').then( m => m.EventListPageModule)
},
{
path: 'approve-event',
loadChildren: () => import('./shared/agenda/approve-event/approve-event.module').then( m => m.ApproveEventPageModule)
},
/* { /* {
path: 'chat', path: 'chat',
+15 -2
View File
@@ -6,7 +6,10 @@ import { EmptyChatPage } from '../shared/chat/empty-chat/empty-chat.page';
import { BtnCriarPage } from '../shared/buttons/btn-criar/btn-criar.page'; import { BtnCriarPage } from '../shared/buttons/btn-criar/btn-criar.page';
import { BtnAdicionarPage } from '../shared/buttons/btn-adicionar/btn-adicionar.page'; import { BtnAdicionarPage } from '../shared/buttons/btn-adicionar/btn-adicionar.page';
import { NewEventPage } from '../shared/agenda/new-event/new-event.page'; import { NewEventPage } from '../shared/agenda/new-event/new-event.page';
import { EditEventPage } from '../shared/agenda/edit-event/edit-event.page';
import { ViewEventPage } from '../shared/agenda/view-event/view-event.page'; import { ViewEventPage } from '../shared/agenda/view-event/view-event.page';
import { EventListPage } from '../shared/agenda/event-list/event-list.page';
import { ApproveEventPage } from '../shared/agenda/approve-event/approve-event.page';
import { AttendeesPage } from '../shared/event/attendees/attendees.page'; import { AttendeesPage } from '../shared/event/attendees/attendees.page';
@NgModule({ @NgModule({
@@ -17,11 +20,16 @@ import { AttendeesPage } from '../shared/event/attendees/attendees.page';
BtnCriarPage, BtnCriarPage,
BtnAdicionarPage, BtnAdicionarPage,
NewEventPage, //NewEventPage,
//EditEventPage,
//ViewEventPage, //ViewEventPage,
//ApproveEventPage,
AttendeesPage,
//AttendeeModalPage, //AttendeeModalPage,
//EventListPage,
//EmptyContainerPage,
//EventsToApprovePage, //EventsToApprovePage,
], ],
@@ -31,11 +39,16 @@ import { AttendeesPage } from '../shared/event/attendees/attendees.page';
BtnCriarPage, BtnCriarPage,
BtnAdicionarPage, BtnAdicionarPage,
NewEventPage, //NewEventPage,
//EditEventPage,
// ViewEventPage, // ViewEventPage,
//EventListPage,
//ApproveEventPage,
AttendeesPage, AttendeesPage,
//AttendeeModalPage, //AttendeeModalPage,
//EventsToApprovePage, //EventsToApprovePage,
//EmptyContainerPage,
], ],
imports: [ imports: [
CommonModule, CommonModule,
+7 -1
View File
@@ -14,7 +14,9 @@ import { registerLocaleData } from '@angular/common';
import localeDe from '@angular/common/locales/pt'; import localeDe from '@angular/common/locales/pt';
import { SharedModule } from 'src/app/shared/shared.module'; import { SharedModule } from 'src/app/shared/shared.module';
import { NewEventPage } from "src/app/shared/agenda/new-event/new-event.page" import { NewEventPage } from "src/app/shared/agenda/new-event/new-event.page"
import { EditEventPage } from 'src/app/shared/agenda/edit-event/edit-event.page';
import { ViewEventPage } from 'src/app/shared/agenda/view-event/view-event.page'; import { ViewEventPage } from 'src/app/shared/agenda/view-event/view-event.page';
import { EventListPage } from "src/app/shared/agenda/event-list/event-list.page";
import { AttendeesPage } from 'src/app/shared/event/attendees/attendees.page'; import { AttendeesPage } from 'src/app/shared/event/attendees/attendees.page';
import { AttendeeModalPage } from 'src/app/shared/event/attendee-modal/attendee-modal.page'; import { AttendeeModalPage } from 'src/app/shared/event/attendee-modal/attendee-modal.page';
@@ -31,6 +33,8 @@ import { AttendeeModalPageModule } from 'src/app/shared/event/attendee-modal/att
import { EventsToApprovePageModule } from 'src/app/shared/gabinete-digital/events-to-approve/events-to-approve.module'; import { EventsToApprovePageModule } from 'src/app/shared/gabinete-digital/events-to-approve/events-to-approve.module';
import { HeaderPageModule } from 'src/app/shared/header/header.module'; import { HeaderPageModule } from 'src/app/shared/header/header.module';
import { ViewEventPageModule } from 'src/app/shared/agenda/view-event/view-event.module'; import { ViewEventPageModule } from 'src/app/shared/agenda/view-event/view-event.module';
import { ApproveEventPageModule } from 'src/app/shared/agenda/approve-event/approve-event.module';
import { NewEventPageModule } from 'src/app/shared/agenda/new-event/new-event.module';
@NgModule({ @NgModule({
imports: [ imports: [
@@ -52,7 +56,9 @@ import { ViewEventPageModule } from 'src/app/shared/agenda/view-event/view-event
ViewEventPageModule, ViewEventPageModule,
AttendeesPageModule, AttendeesPageModule,
AttendeeModalPageModule, AttendeeModalPageModule,
EventsToApprovePageModule EventsToApprovePageModule,
ApproveEventPageModule,
NewEventPageModule,
], ],
declarations: [ declarations: [
AgendaPage AgendaPage
@@ -1,105 +0,0 @@
<ion-header class="ion-no-border">
<div class="header-content">
<div class="header-icon-left">
<ion-icon (click)="close()" src="assets/images/icons-arrow-arrow-left.svg"></ion-icon>
</div>
<div class="header-title">
<label>""{{loadedEvent.workflowInstanceDataFields.Subject}}</label>
</div>
<div class="header-icon-right">
<ion-icon (click)="notImplemented()" src="assets/images/icons-edit.svg"></ion-icon>
</div>
</div>
</ion-header>
<ion-menu autoHide="false" side="end" content-id="main-content">
<ion-header>
<ion-toolbar translucent>
<ion-title>Acções</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<ion-list>
<ion-item (click)="approveTask(loadedEvent.serialNumber)">
<ion-icon name="checkmark-sharp"></ion-icon>
<ion-label>Aprovar</ion-label>
</ion-item>
<ion-item (click)="emendTask(loadedEvent.serialNumber)">
<ion-icon name="create-outline"></ion-icon>
<ion-label>Adicionar Nota</ion-label>
</ion-item>
<ion-item (click)="rejectTask(loadedEvent.serialNumber)">
<ion-icon name="close-sharp"></ion-icon>
<ion-label>Rejeitar</ion-label>
</ion-item>
</ion-list>
</ion-content>
</ion-menu>
<ion-content id="main-content">
<div class="upper-content">
<div class="content-location">
<div class="location-detail">
<ion-label >11{{loadedEvent.workflowInstanceDataFields.Location}}</ion-label>
</div>
<div class="button-calendar-type">
<ion-button class="button-calendar-type" slot="end">{{loadedEvent.workflowInstanceDataFields.Agenda}}</ion-button>
</div>
</div>
<div class="content-details">
<ion-label>
<p>{{customDate}}</p>
<p>das {{loadedEvent.workflowInstanceDataFields.StartDate | date: 'hh:mm'}} às {{loadedEvent.workflowInstanceDataFields.EndDate | date: 'hh:mm'}}</p>
<p *ngIf="!loadedEvent.workflowInstanceDataFields.IsRecurring">(Não se repete)</p>
<p *ngIf="loadedEvent.workflowInstanceDataFields.IsRecurring">Repete</p>
</ion-label>
</div>
</div>
<div class="middle-content">
<h5>Intervenientes</h5>
<ion-item>
<ion-label>
<p>{{loadedEvent.workflowInstanceDataFields.Participants}}</p>
</ion-label>
</ion-item>
<h5>Detalhes</h5>
<ion-item>
<p>{{loadedEvent.workflowInstanceDataFields.Body}}</p>
</ion-item>
</div>
<div *ngIf="loadedAttachments" class="bottom-content">
<ion-list>
<h5>Documentos Anexados</h5>
<ion-item>
<ion-label>
<p class="attach-title-item">Receita por Natureza</p>
<p><span class="span-left">{{loadedAttachments.Remetente}}</span><span class="span-right">{{loadedAttachments.CreateDate}}<!-- {{ task.CreateDate | date: 'dd-MM-yy' }} --></span></p>
</ion-label>
</ion-item>
</ion-list>
</div>
</ion-content>
<ion-footer>
<ion-toolbar>
<div class="buttons">
<ion-item lines="none">
<p>
<ion-button class="button-edit-event" shape="round" (click)="emendTask(loadedEvent.serialNumber)">Emendar</ion-button>
</p>
<p>
<ion-menu-button autoHide="false">
<ion-icon (click)="openMenu()" name="ellipsis-vertical-outline"></ion-icon>
</ion-menu-button>
</p>
<p>
<ion-button class="button-approve" shape="round" (click)="approveTask(loadedEvent.serialNumber)">Aprovar</ion-button>
</p>
</ion-item>
<ion-item hidden>
<p>
<ion-button class="button-reject" shape="round" (click)="rejectTask(loadedEvent.serialNumber)">Rejeitar</ion-button>
</p>
</ion-item>
</div>
</ion-toolbar>
</ion-footer>
@@ -1,210 +0,0 @@
import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { MenuController, ModalController, NavParams, PopoverController } from '@ionic/angular';
import { Event } from 'src/app/models/event.model';
import { AlertService } from 'src/app/services/alert.service';
import { AttachmentsService } from 'src/app/services/attachments.service';
import { ProcessesService } from 'src/app/services/processes.service';
import { BadRequestComponent } from 'src/app/shared/popover/bad-request/bad-request.component';
import { SuccessMessageComponent } from 'src/app/shared/popover/success-message/success-message.component';
import { EmendMessageModalPage } from '../emend-message-modal/emend-message-modal.page';
import { EventActionsPopoverPage } from '../event-actions-popover/event-actions-popover.page';
@Component({
selector: 'app-approve-event-modal',
templateUrl: './approve-event-modal.page.html',
/* styleUrls: ['./approve-event-modal.page.scss'], */
})
export class ApproveEventModalPage implements OnInit {
event: Event;
loadedEvent:any;
loadedAttachments:any;
serialNumber:string;
customDate:any;
today:any;
months = ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"];
days = ["Domingo", "Segunda-feira", "Terça-feira", "Quarta-feira", "Quinta-feira", "Sexta-feira", "Sábado"];
constructor(
private router:Router,
private modalController: ModalController,
private navParams: NavParams,
private processes:ProcessesService,
private attachmentsService: AttachmentsService,
private popoverController: PopoverController,
private menu: MenuController,
private alertService: AlertService,
) {
this.serialNumber = this.navParams.get('serialNumber');
}
ngOnInit() {
this.getTask();
this.getAttachments();
window.onresize = (event) => {
// if not mobile remove all component
if( window.innerWidth >= 800){
this.modalController.dismiss(null);
}
};
}
notImplemented(){
this.alertService.presentAlert('Funcionalidade em desenvolvimento');
}
close(){
/* this.router.navigate(['/home/gabinete-digital/event-list']); */
this.modalController.dismiss(null);
}
getTask(){
this.processes.GetTask(this.serialNumber).subscribe(res => {
console.log(res);
this.loadedEvent = res;
this.today = new Date(res.workflowInstanceDataFields.StartDate);
console.log(new Date(this.today));
this.customDate = this.days[this.today.getDay()]+ ", " + this.today.getDate() +" de " + ( this.months[this.today.getMonth()]);
})
}
async approveTask(serialNumber:string){
let body = {
"serialNumber": serialNumber,
"action": "Aprovar"
}
try {
await this.processes.PostTaskAction(body).toPromise()
this.router.navigate(['/home/gabinete-digital/event-list']);
this.modalController.dismiss(null);
this.successMessage()
} catch (error) {
this.badRequest()
}
}
async emendTask(serialNumber:string){
try {
await this.openEmendMessageModal(serialNumber);
this.modalController.dismiss(null);
this.menu.close();
} catch (error) {
}
}
async rejectTask(serialNumber:string){
let body = { "serialNumber": serialNumber, "action": "Rejeitar" }
try {
await this.processes.PostTaskAction(body).toPromise()
this.router.navigate(['/home/gabinete-digital/event-list']);
this.modalController.dismiss(null);
this.successMessage()
} catch (error) {
this.badRequest()
}
}
getAttachments(){
this.attachmentsService.getAttachmentsBySerial(this.serialNumber).subscribe(res=>{
this.loadedAttachments = res;
console.log(res);
});
}
async openOptions(ev:any) {
const popover = await this.popoverController.create({
component: EventActionsPopoverPage,
cssClass: 'event-actions-popover',
event: ev,
translucent: true
});
return await popover.present();
}
openMenu() {
this.menu.open();
}
async openEmendMessageModal(serialNumber:string) {
const modal = await this.modalController.create({
component: EmendMessageModalPage,
componentProps:{
},
cssClass: 'emend-message-modal',
backdropDismiss: false
});
await modal.present();
modal.onDidDismiss().then(res => {
if(res.data !== '') {
let body = { "serialNumber": serialNumber,
"action": "Emendar",
"dataFields": {
"ReviewerUseComment": res.data,
}
}
try {
this.processes.PostTaskAction(body).toPromise()
this.router.navigate(['/home/gabinete-digital/event-list']);
this.successMessage()
} catch (error) {
this.badRequest()
}
}
else{
//this.alertService.presentAlert('Operação cancelada!');
}
});
}
async successMessage(message?: string) {
const modal = await this.modalController.create({
component: SuccessMessageComponent,
componentProps: {
message: message || 'Processo efetuado' ,
},
cssClass: 'modal modal-desktop'
});
modal.present()
setTimeout(()=>{
modal.dismiss()
},3000)
}
async badRequest(message?: string) {
const modal = await this.modalController.create({
component: BadRequestComponent,
componentProps: {
message: message || 'Processo não efetuado' ,
},
cssClass: 'modal modal-desktop'
});
modal.present()
setTimeout(()=>{
modal.dismiss()
},3000)
}
}
@@ -125,8 +125,6 @@
</div> </div>
</div> </div>
@@ -9,6 +9,7 @@ import { GabineteDigitalPageRoutingModule } from './gabinete-digital-routing.mod
import { GabineteDigitalPage } from './gabinete-digital.page'; import { GabineteDigitalPage } from './gabinete-digital.page';
import { SharedModule } from 'src/app/shared/shared.module'; import { SharedModule } from 'src/app/shared/shared.module';
import { EventListPage } from 'src/app/shared/agenda/event-list/event-list.page';
import { EmptyContainerPage } from 'src/app/shared/empty-container/empty-container.page'; import { EmptyContainerPage } from 'src/app/shared/empty-container/empty-container.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 { ExpedientsPage } from 'src/app/shared/gabinete-digital/expedients/expedients.page'; import { ExpedientsPage } from 'src/app/shared/gabinete-digital/expedients/expedients.page';
@@ -15,6 +15,7 @@ import { EventListPage } from './event-list.page';
IonicModule, IonicModule,
EventListPageRoutingModule EventListPageRoutingModule
], ],
declarations: [EventListPage] declarations: [EventListPage],
exports: [EventListPage]
}) })
export class EventListPageModule {} export class EventListPageModule {}
@@ -15,6 +15,7 @@ import { NewEventPage } from './new-event.page';
IonicModule, IonicModule,
NewEventPageRoutingModule NewEventPageRoutingModule
], ],
declarations: [NewEventPage] declarations: [NewEventPage],
exports: [NewEventPage]
}) })
export class NewEventPageModule {} export class NewEventPageModule {}
@@ -5,7 +5,7 @@ import { Event } from 'src/app/models/event.model';
import { ProcessesService } from 'src/app/services/processes.service'; import { ProcessesService } from 'src/app/services/processes.service';
import { ModalController, NavParams } from '@ionic/angular'; import { ModalController, NavParams } from '@ionic/angular';
import { NavigationEnd, NavigationExtras, Router } from '@angular/router'; import { NavigationEnd, NavigationExtras, Router } from '@angular/router';
import { ApproveEventComponent } from '../../agenda/approve-event/approve-event.component'; import { ApproveEventPage } from '../../agenda/approve-event/approve-event.page';
@Component({ @Component({
selector: 'app-events-to-approve', selector: 'app-events-to-approve',
@@ -104,7 +104,7 @@ export class EventsToApprovePage implements OnInit {
} }
const modal = await this.modalController.create({ const modal = await this.modalController.create({
component: ApproveEventComponent, component: ApproveEventPage,
componentProps:{ componentProps:{
serialNumber: eventToAprove.serialNumber, serialNumber: eventToAprove.serialNumber,
InstanceId: InstanceId , InstanceId: InstanceId ,
+1 -1
View File
@@ -542,7 +542,7 @@ td.monthview-secondary-with-event, td.monthview-secondary-with-event[_ngcontent-
} }
.timeline-box{ .timeline-box{
// left: -13%; left: -13%;
position: relative; position: relative;
width: 113%; width: 113%;
} }