mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-19 21:06:06 +00:00
Fixe merge
This commit is contained in:
@@ -29,7 +29,7 @@ import { adapterFactory } from 'angular-calendar/date-adapters/date-fns';
|
||||
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
||||
import { MessagesPage } from './pages/chat/messages/messages.page';
|
||||
|
||||
import { FCM } from 'cordova-plugin-fcm-with-dependecy-updated/ionic/ngx';
|
||||
// import { FCM } from 'cordova-plugin-fcm-with-dependecy-updated/ionic/ngx';
|
||||
|
||||
|
||||
@NgModule({
|
||||
@@ -57,7 +57,7 @@ import { FCM } from 'cordova-plugin-fcm-with-dependecy-updated/ionic/ngx';
|
||||
//File,
|
||||
WebView,
|
||||
FilePath,
|
||||
FCM
|
||||
//FCM
|
||||
],
|
||||
bootstrap: [AppComponent],
|
||||
schemas: [CUSTOM_ELEMENTS_SCHEMA]
|
||||
|
||||
+40
-40
@@ -9,7 +9,7 @@ import { ModalController, AlertController, AnimationController, Platform } from
|
||||
/* import { Plugins, PushNotification, PushNotificationToken, PushNotificationActionPerformed, Modals } from '@capacitor/core'; */
|
||||
import { Router } from '@angular/router';
|
||||
|
||||
import { FCM } from 'cordova-plugin-fcm-with-dependecy-updated/ionic/ngx';
|
||||
// import { FCM } from 'cordova-plugin-fcm-with-dependecy-updated/ionic/ngx';
|
||||
import { ViewEventPage } from '../pages/agenda/view-event/view-event.page';
|
||||
import { ExpedienteDetailPage } from '../pages/gabinete-digital/expediente/expediente-detail/expediente-detail.page';
|
||||
import { ViewPublicationsPage } from '../pages/publications/view-publications/view-publications.page';
|
||||
@@ -59,7 +59,7 @@ export class HomePage implements OnInit {
|
||||
private router: Router,
|
||||
private modalController: ModalController,
|
||||
public modalCtrl: AlertController,
|
||||
private fcm: FCM,
|
||||
// private fcm: FCM,
|
||||
private animationController: AnimationController,
|
||||
private notificatinsservice: NotificationsService,
|
||||
private platform: Platform) {
|
||||
@@ -103,51 +103,51 @@ export class HomePage implements OnInit {
|
||||
}
|
||||
|
||||
|
||||
pushCordova() {
|
||||
// pushCordova() {
|
||||
|
||||
if(this.platform.is('desktop')) {
|
||||
console.log('Notifications not supported')
|
||||
} else {
|
||||
// if(this.platform.is('desktop')) {
|
||||
// console.log('Notifications not supported')
|
||||
// } else {
|
||||
|
||||
this.fcm.onNotification().subscribe(data => {
|
||||
this.viewEventDetail(data.IdObject)
|
||||
if (data.wasTapped === true) {
|
||||
console.log("Received in background: ", data);
|
||||
// this.fcm.onNotification().subscribe(data => {
|
||||
// this.viewEventDetail(data.IdObject)
|
||||
// if (data.wasTapped === true) {
|
||||
// console.log("Received in background: ", data);
|
||||
|
||||
if (data.Service === "agenda") {
|
||||
//this.router.navigate(['/home/', service, IdObject, 'home']);
|
||||
this.viewEventDetail(data.IdObject)
|
||||
}
|
||||
else if (data.Service === "gabinete-digital" && data.Object === "expediente") {
|
||||
console.log('expediante 1')
|
||||
this.viewExpedientDetail(data.IdObject)
|
||||
}
|
||||
else if (data.Service === "gabinete-digital" && data.Object === "event-list") {
|
||||
// this.ngZone.run(() => {this.router.navigate(['/home/gabinete-digital/event-list', IdObject])})
|
||||
this.openApproveModal(data.IdObject);
|
||||
}
|
||||
else if (data.Service === "accoes" && data.Object === "accao") {
|
||||
this.viewPublications(data.IdObject)
|
||||
alert(data.IdObject)
|
||||
}
|
||||
else if (data.Service === "accoes" && data.Object === "publicacao") {
|
||||
this.viewPublicationDetail(data.IdObject)
|
||||
}
|
||||
// if (data.Service === "agenda") {
|
||||
// //this.router.navigate(['/home/', service, IdObject, 'home']);
|
||||
// this.viewEventDetail(data.IdObject)
|
||||
// }
|
||||
// else if (data.Service === "gabinete-digital" && data.Object === "expediente") {
|
||||
// console.log('expediante 1')
|
||||
// this.viewExpedientDetail(data.IdObject)
|
||||
// }
|
||||
// else if (data.Service === "gabinete-digital" && data.Object === "event-list") {
|
||||
// // this.ngZone.run(() => {this.router.navigate(['/home/gabinete-digital/event-list', IdObject])})
|
||||
// this.openApproveModal(data.IdObject);
|
||||
// }
|
||||
// else if (data.Service === "accoes" && data.Object === "accao") {
|
||||
// this.viewPublications(data.IdObject)
|
||||
// alert(data.IdObject)
|
||||
// }
|
||||
// else if (data.Service === "accoes" && data.Object === "publicacao") {
|
||||
// this.viewPublicationDetail(data.IdObject)
|
||||
// }
|
||||
|
||||
} else {
|
||||
console.log("Received in foreground: ", data);
|
||||
// } else {
|
||||
// console.log("Received in foreground: ", data);
|
||||
|
||||
console.log(data.Service)
|
||||
console.log(data.Object)
|
||||
console.log(data.IdObject)
|
||||
// console.log(data.Service)
|
||||
// console.log(data.Object)
|
||||
// console.log(data.IdObject)
|
||||
|
||||
};
|
||||
});
|
||||
}
|
||||
// };
|
||||
// });
|
||||
// }
|
||||
|
||||
|
||||
|
||||
}
|
||||
// }
|
||||
|
||||
async viewEventDetail(eventId: any) {
|
||||
console.log(this.profile);
|
||||
@@ -224,8 +224,8 @@ export class HomePage implements OnInit {
|
||||
publicationId: publicationId,
|
||||
folderId: this.folderId,
|
||||
},
|
||||
cssClass: 'publication-detail',
|
||||
backdropDismiss: false
|
||||
cssClass: 'publication-detail modal modal-desktop',
|
||||
//backdropDismiss: false
|
||||
});
|
||||
await modal.present();
|
||||
modal.onDidDismiss().then(() => {
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
</ion-list>
|
||||
</ion-content>
|
||||
</ion-menu>
|
||||
<div class="ion-page" id="main-content">
|
||||
<div class="ion-page " id="main-content">
|
||||
<ion-menu-button></ion-menu-button>
|
||||
</div>
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
<ion-label class="title">{{LoadedDocument.Subject}}</ion-label>
|
||||
</div>
|
||||
<div class="div-icon">
|
||||
<ion-menu-button autoHide="false">
|
||||
<ion-menu-button >
|
||||
<ion-icon name="ellipsis-vertical-outline"></ion-icon>
|
||||
</ion-menu-button>
|
||||
</div>
|
||||
|
||||
@@ -33,22 +33,23 @@ export class DocumentDetailPage implements OnInit {
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
console.log(this.docId);
|
||||
console.log(this.applicationId);
|
||||
|
||||
this.LoadDocumentDetails();
|
||||
|
||||
}
|
||||
|
||||
async LoadDocumentDetails(){
|
||||
this.processes.GetDocumentDetails(this.docId, '').subscribe(res=>{
|
||||
console.log(res);
|
||||
this.LoadedDocument = res[0];
|
||||
async LoadDocumentDetails() {
|
||||
this.processes.GetDocumentDetails(this.docId, this.applicationId).subscribe(res=>{
|
||||
this.LoadedDocument = res;
|
||||
|
||||
let thedate = new Date(this.LoadedDocument.DateDocument);
|
||||
this.LoadedDocument.Subject = this.LoadedDocument.Assunto
|
||||
|
||||
let thedate = new Date(this.LoadedDocument.DateDispatch);
|
||||
this.customDate = this.days[thedate.getDay()]+ ", " + thedate.getDate() +" de " + ( this.months[thedate.getMonth()]);
|
||||
});
|
||||
}
|
||||
|
||||
viewDocument(){
|
||||
viewDocument() {
|
||||
this.processes.GetDocumentUrl(this.docId, '8').subscribe(res=>{
|
||||
console.log(res);
|
||||
const url: string = res.replace("webTRIX.Viewer","webTRIX.Viewer.Branch1");
|
||||
|
||||
@@ -7,4 +7,50 @@ export class DailyWorkTask{
|
||||
Remetente:string;
|
||||
DocumentsQty:any;
|
||||
WorkflowName:string;
|
||||
}
|
||||
|
||||
export class tasksList{
|
||||
actions: null;
|
||||
formURL: string;
|
||||
originator: {
|
||||
displayName: string,
|
||||
email: string,
|
||||
fqn: string,
|
||||
manager: string,
|
||||
username: string,
|
||||
};
|
||||
serialNumber: string;
|
||||
taskStartDate: string;
|
||||
workflowDisplayName: string;
|
||||
workflowID: number
|
||||
workflowInstanceDataFields: {
|
||||
AttachmentsProcessLastInstanceId: number,
|
||||
DispatchDocId: number,
|
||||
DispatchImageId: number,
|
||||
DistributionTypeName: string,
|
||||
DocID: number,
|
||||
DocIDTmp: string,
|
||||
FolderID: number,
|
||||
ImageID: string,
|
||||
ImageIDTmp: string,
|
||||
ImageXMLTmp: string,
|
||||
InstanceDistributionId: number,
|
||||
InstanceID: string,
|
||||
InstanceIDNew: string,
|
||||
NewSerialNumber: string,
|
||||
ReviewUserComent: string,
|
||||
ReviewUserEmail: string,
|
||||
ReviewUserName: string,
|
||||
SourceID: number,
|
||||
SourceSecFsID: number,
|
||||
SourceType: string,
|
||||
Subject: string,
|
||||
TaskMessage: string,
|
||||
UserName: string,
|
||||
WorkflowID: string,
|
||||
wxUserID: number,
|
||||
}
|
||||
workflowInstanceFolio: string
|
||||
workflowInstanceID: number
|
||||
workflowName: string
|
||||
}
|
||||
@@ -9,4 +9,10 @@ export class Despacho{
|
||||
UserEmail: string;
|
||||
UsersSelected: Participant[];
|
||||
DispatchFolder: Folder;
|
||||
AttachmentList?: {
|
||||
ProcessInstanceID: string,
|
||||
"Source": string,
|
||||
"UserId": string,
|
||||
"Attachment": string
|
||||
}[]
|
||||
}
|
||||
@@ -323,7 +323,7 @@
|
||||
<ion-row class="filter ion-align-items-center">
|
||||
<div class="filter-name">{{timelineFilterState}}</div>
|
||||
<!-- Icon -->
|
||||
<button (click)="showTimelineFilterState=true" class="arrow-down btn-no-color">
|
||||
<button (click)="showTimelineFilterState=!showTimelineFilterState" class="arrow-down btn-no-color">
|
||||
<ion-icon src="assets/images/icons-arrow-arrow-down.svg"></ion-icon>
|
||||
</button>
|
||||
|
||||
|
||||
@@ -190,7 +190,8 @@ export class EditEventPage implements OnInit {
|
||||
component: SearchPage,
|
||||
cssClass: 'modal-width-100-width-background modal',
|
||||
componentProps: {
|
||||
type: 'AccoesPresidenciais & ArquivoDespachoElect'
|
||||
type: 'AccoesPresidenciais & ArquivoDespachoElect',
|
||||
select: true
|
||||
}
|
||||
});
|
||||
await modal.present();
|
||||
|
||||
@@ -111,10 +111,10 @@ export class NewEventPage implements OnInit {
|
||||
close(){
|
||||
this.modalController.dismiss();
|
||||
}
|
||||
async save(){
|
||||
/* console.log(this.postEvent);
|
||||
async save() {
|
||||
/* console.log(this.postEvent);
|
||||
console.log(this.profile); */
|
||||
|
||||
|
||||
if(this.documents.length >= 0) {
|
||||
this.postEvent.HasAttachments = true;
|
||||
}
|
||||
@@ -206,7 +206,9 @@ export class NewEventPage implements OnInit {
|
||||
component: SearchPage,
|
||||
cssClass: 'modal-width-100-width-background modal',
|
||||
componentProps: {
|
||||
type: 'AccoesPresidenciais & ArquivoDespachoElect'
|
||||
type: 'AccoesPresidenciais & ArquivoDespachoElect',
|
||||
showSearchInput: true,
|
||||
select: true
|
||||
}
|
||||
});
|
||||
await modal.present();
|
||||
|
||||
@@ -1,36 +1,52 @@
|
||||
<!-- <ion-header class="ion-no-border">
|
||||
<ion-toolbar class="header-toolbar">
|
||||
<div class="main-header">
|
||||
<div class="title-content">
|
||||
<div class="left">
|
||||
<ion-icon (click)="close()" slot="end" src='assets/images/icons-arrow-arrow-left.svg'></ion-icon>
|
||||
</div>
|
||||
<div class="middle">
|
||||
<ion-label class="title">{{loadedEvent.Subject}}</ion-label>
|
||||
</div>
|
||||
<div class="div-icon">
|
||||
<ion-icon class="edit" (click)="editEvent()" slot="end" src="assets/images/icons-edit.svg" ></ion-icon>
|
||||
<ion-icon class="delete" (click)="deleteEvent()" name="trash-sharp"></ion-icon>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ion-toolbar>
|
||||
</ion-header> -->
|
||||
<ion-menu autoHide="false" side="end" content-id="main-content" >
|
||||
<ion-header>
|
||||
<ion-toolbar translucent>
|
||||
<ion-title>Menu</ion-title>
|
||||
</ion-toolbar>
|
||||
</ion-header>
|
||||
<ion-content>
|
||||
<ion-list>
|
||||
<ion-item (click)="openExpedientActionsModal('0')">
|
||||
<ion-icon name="documents" slot="start"></ion-icon>
|
||||
<ion-label>Efectuar Despacho</ion-label>
|
||||
</ion-item>
|
||||
<ion-item (click)="openExpedientActionsModal('1')">
|
||||
<ion-icon name="arrow-undo" slot="start"></ion-icon>
|
||||
<ion-label>Pedido de Parecer</ion-label>
|
||||
</ion-item>
|
||||
<ion-item (click)="openExpedientActionsModal('2')">
|
||||
<ion-icon name="arrow-redo" slot="start"></ion-icon>
|
||||
<ion-label>Pedido de Deferimento</ion-label>
|
||||
</ion-item>
|
||||
<ion-item (click)="openBookMeetingModal()">
|
||||
<ion-icon name="calendar" slot="start"></ion-icon>
|
||||
<ion-label>Marcar reunião</ion-label>
|
||||
</ion-item>
|
||||
<!-- <ion-item (click)="deleteEvent()">
|
||||
<ion-icon name="trash" slot="start"></ion-icon>
|
||||
<ion-label>Descartar</ion-label>
|
||||
</ion-item> -->
|
||||
</ion-list>
|
||||
</ion-content>
|
||||
</ion-menu>
|
||||
<div class="ion-page d-none" id="main-content">
|
||||
<ion-menu-button></ion-menu-button>
|
||||
</div>
|
||||
|
||||
<ion-content class="height-100">
|
||||
<div class="main-content d-flex height-100">
|
||||
<div class="content d-flex flex-column width-100">
|
||||
<div class="main-header">
|
||||
<div class="title-content">
|
||||
<div class="title-content d-flex justify-between">
|
||||
<div class="left">
|
||||
<button class="btn-no-color" (click)="close()">
|
||||
<button class="btn-no-color d-flex align-center" (click)="close()">
|
||||
<ion-icon slot="end" src='assets/images/icons-arrow-arrow-left.svg'></ion-icon>
|
||||
</button>
|
||||
</div>
|
||||
<div class="middle">
|
||||
<div class="middle d-flex align-center flex-grow-1">
|
||||
<ion-label class="title">{{loadedEvent.Subject}}</ion-label>
|
||||
</div>
|
||||
<div class="div-icon">
|
||||
<div class="div-icon d-flex">
|
||||
<button class="btn-no-color" (click)="editEvent()">
|
||||
<ion-icon class="edit" slot="end" src="assets/images/icons-edit.svg" ></ion-icon>
|
||||
</button>
|
||||
|
||||
@@ -43,9 +43,7 @@ ion-menu{
|
||||
overflow: auto;
|
||||
}
|
||||
.div-icon{
|
||||
width: 92px;
|
||||
float: right;
|
||||
overflow: auto;
|
||||
padding: 1px;
|
||||
}
|
||||
.div-icon .edit{
|
||||
|
||||
@@ -10,6 +10,7 @@ import { EditEventPage } from '../edit-event/edit-event.page';
|
||||
import { InAppBrowser } from '@ionic-native/in-app-browser/ngx';
|
||||
import { ProcessesService } from 'src/app/services/processes.service';
|
||||
import { ExpedientTaskModalPage } from '../../gabinete-digital/expediente/expedient-task-modal/expedient-task-modal.page';
|
||||
import { BookMeetingModalPage } from '../../gabinete-digital/expediente/book-meeting-modal/book-meeting-modal.page';
|
||||
|
||||
@Component({
|
||||
selector: 'app-view-event',
|
||||
@@ -37,6 +38,8 @@ export class ViewEventPage implements OnInit {
|
||||
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"];
|
||||
|
||||
dicIndex = 0;
|
||||
|
||||
constructor(
|
||||
private modalController: ModalController,
|
||||
private navParams: NavParams,
|
||||
@@ -53,6 +56,7 @@ export class ViewEventPage implements OnInit {
|
||||
this.eventBody = { BodyType : "1", Text : ""};
|
||||
this.loadedEvent.Body = this.eventBody;
|
||||
this.eventId = this.navParams.get('eventId');
|
||||
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
@@ -181,7 +185,43 @@ export class ViewEventPage implements OnInit {
|
||||
}
|
||||
|
||||
|
||||
async openExpedientActionsModal(taskAction: any, task: any) {
|
||||
|
||||
|
||||
async openBookMeetingModal() {
|
||||
|
||||
const doc = this.loadedAttachments[ this.dicIndex];
|
||||
|
||||
let task = {
|
||||
serialNumber: doc.SourceId,
|
||||
taskStartDate: doc.CreateDate,
|
||||
isEvent: true,
|
||||
workflowInstanceDataFields: {
|
||||
FsId: doc.ApplicationId,
|
||||
FolderID: null,
|
||||
DocId: doc.SourceId,
|
||||
Subject: doc.SourceName
|
||||
},
|
||||
}
|
||||
|
||||
let classs;
|
||||
if( window.innerWidth <= 800){
|
||||
classs = 'book-meeting-modal modal modal-desktop'
|
||||
} else {
|
||||
classs = 'modal modal-desktop showAsideOptions'
|
||||
}
|
||||
const modal = await this.modalController.create({
|
||||
component: BookMeetingModalPage,
|
||||
componentProps: {
|
||||
task: task,
|
||||
},
|
||||
cssClass: classs,
|
||||
backdropDismiss: false
|
||||
});
|
||||
await modal.present();
|
||||
modal.onDidDismiss();
|
||||
}
|
||||
|
||||
async openExpedientActionsModal(taskAction: any) {
|
||||
//this.modalController.dismiss();
|
||||
let classs;
|
||||
if( window.innerWidth <= 800){
|
||||
@@ -189,6 +229,21 @@ export class ViewEventPage implements OnInit {
|
||||
} else {
|
||||
classs = 'modal modal-desktop showAsideOptions'
|
||||
}
|
||||
|
||||
const doc = this.loadedAttachments[ this.dicIndex];
|
||||
|
||||
let task = {
|
||||
serialNumber: doc.SourceId,
|
||||
taskStartDate: doc.CreateDate,
|
||||
isEvent: true,
|
||||
workflowInstanceDataFields: {
|
||||
FsId: doc.ApplicationId,
|
||||
FolderID: null,
|
||||
DocId: doc.SourceId,
|
||||
Subject: doc.SourceName
|
||||
},
|
||||
}
|
||||
|
||||
const modal = await this.modalController.create({
|
||||
component: ExpedientTaskModalPage,
|
||||
componentProps: {
|
||||
|
||||
@@ -264,7 +264,7 @@ export class EventsPage implements OnInit {
|
||||
async viewEventDetail(eventId:any) {
|
||||
let classs;
|
||||
if( window.innerWidth <= 800){
|
||||
classs = 'modal'
|
||||
classs = 'modal modal-desktop'
|
||||
} else {
|
||||
classs = 'modal modal-desktop showAsideOptions'
|
||||
}
|
||||
|
||||
+15
-14
@@ -1,11 +1,11 @@
|
||||
<ion-header class="ion-no-border">
|
||||
<div class="header-content mx-20 d-flex justify-start">
|
||||
<div class="header-content mx-20 d-flex justify-between">
|
||||
<div class="header-icon-left">
|
||||
<button class="btn-no-color" (click)="close()">
|
||||
<ion-icon src="assets/images/icons-arrow-arrow-left.svg"></ion-icon>
|
||||
</button>
|
||||
</div>
|
||||
<div class="header-title flex-md-grow-1">
|
||||
<div class="header-title flex-grow-1">
|
||||
<label>{{loadedEvent.workflowInstanceDataFields.Subject}}</label>
|
||||
</div>
|
||||
<div class="header-icon-right">
|
||||
@@ -38,23 +38,24 @@
|
||||
</ion-menu>
|
||||
|
||||
<ion-content id="main-content">
|
||||
<div class="upper-content">
|
||||
<div class="content-location">
|
||||
<div class="location-detail">
|
||||
<div class="upper-content d-flex width-100">
|
||||
<div class="content-location d-flex justify-between width-100">
|
||||
<div class="location-detail flex-grow-1">
|
||||
<ion-label >{{loadedEvent.workflowInstanceDataFields.Location}}</ion-label>
|
||||
<div class="content-details">
|
||||
<ion-label>
|
||||
<p>1 {{customDate}}</p>
|
||||
<p>2 das {{loadedEvent.workflowInstanceDataFields.StartDate | date: 'hh:mm'}} às {{loadedEvent.workflowInstanceDataFields.EndDate | date: 'hh:mm'}}</p>
|
||||
<p *ngIf="!loadedEvent.workflowInstanceDataFields.IsRecurring">3 (Não se repete)</p>
|
||||
<p *ngIf="loadedEvent.workflowInstanceDataFields.IsRecurring">4 Repete</p>
|
||||
</ion-label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="button-calendar-type">
|
||||
<div class="button-calendar-type d-flex flex-grow-1 justify-end">
|
||||
<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">
|
||||
<div *ngIf="loadedEvent.workflowInstanceDataFields.Participants">
|
||||
|
||||
+1
-5
@@ -18,7 +18,6 @@ ion-menu{
|
||||
float: left;
|
||||
}
|
||||
.header-title{
|
||||
width: 264px;
|
||||
font-family: Roboto;
|
||||
font-size: 25px;
|
||||
margin: 0 5px 0 5px;
|
||||
@@ -33,19 +32,17 @@ ion-menu{
|
||||
overflow: auto;
|
||||
}
|
||||
.upper-content{
|
||||
margin-left: 50px;
|
||||
padding-left: 50px;
|
||||
overflow: auto;
|
||||
font-size: 18px;
|
||||
|
||||
.content-location{
|
||||
width: 360px;
|
||||
margin: 0 auto;
|
||||
padding: 0;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.location-detail{
|
||||
width: 210px;
|
||||
font-weight: 700;
|
||||
font-size: 18px;
|
||||
float: left;
|
||||
@@ -79,7 +76,6 @@ ion-menu{
|
||||
}
|
||||
|
||||
.bottom-content{
|
||||
width: 360px;
|
||||
margin: 0 auto;
|
||||
|
||||
.bottom-content h3{
|
||||
|
||||
+8
-8
@@ -38,14 +38,14 @@ export class ApproveEventModalPage implements OnInit {
|
||||
private activatedRoute: ActivatedRoute,
|
||||
) {
|
||||
this.activatedRoute.paramMap.subscribe(paramMap =>
|
||||
{
|
||||
if (!paramMap.has("serialNumber")){
|
||||
return;
|
||||
}
|
||||
else{
|
||||
this.serialNumber = paramMap.get('serialNumber');
|
||||
}
|
||||
});
|
||||
{
|
||||
if (!paramMap.has("serialNumber")){
|
||||
return;
|
||||
}
|
||||
else{
|
||||
this.serialNumber = paramMap.get('serialNumber');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<ion-header class="ion-no-border">
|
||||
<div *ngIf="loadedEvent" class="header-content">
|
||||
<div *ngIf="loadedEvent" class="header-content d-flex justify-between">
|
||||
<div class="header-icon-left">
|
||||
<ion-icon (click)="close()" src="assets/images/icons-arrow-arrow-left.svg"></ion-icon>
|
||||
</div>
|
||||
<div class="header-title">
|
||||
<div class="header-title flex-grow-1">
|
||||
<label>{{loadedEvent.workflowInstanceDataFields.Subject}}</label>
|
||||
</div>
|
||||
<div class="header-icon-right">
|
||||
@@ -55,7 +55,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="line"></div>
|
||||
<div class="middle-content" *ngIf="loadedEvent">
|
||||
<div class="middle-content overflow-y-auto" *ngIf="loadedEvent">
|
||||
<h5>Intervenientes</h5>
|
||||
<ion-item>
|
||||
<ion-label>
|
||||
|
||||
+12
-8
@@ -155,7 +155,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div hidden class="ion-item-container-no-border">
|
||||
<div class="ion-item-container-no-border">
|
||||
<ion-label>
|
||||
<div class="attach-icon">
|
||||
<ion-icon src="assets/images/icons-attach-doc.svg"></ion-icon>
|
||||
@@ -166,19 +166,23 @@
|
||||
</ion-label>
|
||||
</div>
|
||||
|
||||
<div *ngIf="loadedAttachments">
|
||||
<ion-item>
|
||||
<ion-label>Documentos Anexados</ion-label>
|
||||
</ion-item>
|
||||
<div class="list " *ngFor="let document of documents; let i = index" >
|
||||
<ion-list>
|
||||
<ion-item *ngFor="let attachment of loadedAttachments">
|
||||
<ion-item>
|
||||
<ion-label>
|
||||
<h4 class="attach-title-item">{{attachment.Description}}</h4>
|
||||
<p><span class="span-left">{{attachment.Stakeholders}}</span><span class="span-right"> {{ attachment.CreateDate | date: 'dd/MM/yyyy' }}</span></p>
|
||||
<p class="d-flex ion-justify-content-between">
|
||||
<span class="attach-title-item">{{document.Assunto}}</span>
|
||||
<span class="app-name">{{document.appName}}</span>
|
||||
<span class="close-button text-black" (click)="removeAttachment(i)" >
|
||||
<ion-icon class="font-20" src="assets/images/icons-delete-25.svg"></ion-icon>
|
||||
</span>
|
||||
</p>
|
||||
<p><span class="span-left">{{document.EntidadeOrganicaNome}}</span><span class="span-right"> {{document.Data | date: 'dd-MM-yy'}} </span></p>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
</ion-list>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
+61
@@ -145,4 +145,65 @@
|
||||
justify-content: space-between;
|
||||
padding: 20px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
|
||||
.attach-icon{
|
||||
width: 37px;
|
||||
font-size: 35px;
|
||||
float: left;
|
||||
}
|
||||
.attach-title-item{
|
||||
width: 100%;
|
||||
font-size: 15px;
|
||||
color:#0d89d1;
|
||||
}
|
||||
/* SPAN */
|
||||
.span-left{
|
||||
float: left;
|
||||
font-size: 15x;
|
||||
}
|
||||
.span-right{
|
||||
text-align: right;
|
||||
float: right;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.app-name{
|
||||
background: #42b9f2;
|
||||
border-radius: 18px;
|
||||
text-align: center;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0px 5px;
|
||||
color: white;
|
||||
font-size: 9pt;
|
||||
font-weight: 500;
|
||||
height: 19px;
|
||||
-webkit-border-radius: 18px;
|
||||
-moz-border-radius: 18px;
|
||||
-ms-border-radius: 18px;
|
||||
-o-border-radius: 18px;
|
||||
}
|
||||
|
||||
|
||||
.close-button {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
.list:hover {
|
||||
|
||||
.app-name {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.close-button {
|
||||
display: block !important;
|
||||
}
|
||||
}
|
||||
+29
@@ -10,6 +10,8 @@ import { EventPerson } from 'src/app/models/eventperson.model';
|
||||
import { EventsService } from 'src/app/services/events.service';
|
||||
import { DiscartExpedientModalPage } from '../../discart-expedient-modal/discart-expedient-modal.page';
|
||||
import { AttachmentsService } from 'src/app/services/attachments.service';
|
||||
import { SearchPage } from 'src/app/pages/search/search.page';
|
||||
import { SearchDocument } from 'src/app/models/search-document';
|
||||
|
||||
@Component({
|
||||
selector: 'app-book-meeting-modal',
|
||||
@@ -26,6 +28,7 @@ export class BookMeetingModalPage implements OnInit {
|
||||
|
||||
taskDocId:string;
|
||||
loadedAttachments:any;
|
||||
documents:SearchDocument[] = [];
|
||||
|
||||
adding: "intervenient" | "CC" = "intervenient";
|
||||
|
||||
@@ -220,6 +223,32 @@ export class BookMeetingModalPage implements OnInit {
|
||||
|
||||
modal.onDidDismiss();
|
||||
}
|
||||
|
||||
|
||||
async getDoc(){
|
||||
const modal = await this.modalController.create({
|
||||
component: SearchPage,
|
||||
cssClass: 'modal-width-100-width-background modal',
|
||||
componentProps: {
|
||||
type: 'AccoesPresidenciais & ArquivoDespachoElect',
|
||||
showSearchInput: true
|
||||
}
|
||||
});
|
||||
await modal.present();
|
||||
modal.onDidDismiss().then((res)=> {
|
||||
if(res){
|
||||
const data = res.data;
|
||||
this.documents.push(data.selected);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
removeAttachment(index: number){
|
||||
|
||||
this.documents = this.documents.filter( (e, i) => index != i);
|
||||
|
||||
}
|
||||
|
||||
|
||||
validateFormInputs(){
|
||||
let formLocation = this.postData.Location.trim();
|
||||
|
||||
+13
-9
@@ -89,8 +89,8 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div hidden class="ion-item-container-no-border">
|
||||
<ion-label>
|
||||
<div class="ion-item-container-no-border" (click)="getDoc()">
|
||||
<ion-label class="d-flex ">
|
||||
<div class="attach-icon">
|
||||
<ion-icon src="assets/images/icons-attach-doc.svg"></ion-icon>
|
||||
</div>
|
||||
@@ -100,19 +100,23 @@
|
||||
</ion-label>
|
||||
</div>
|
||||
|
||||
<div *ngIf="loadedAttachments">
|
||||
<ion-item>
|
||||
<ion-label>Documentos Anexados</ion-label>
|
||||
</ion-item>
|
||||
<div class="list " *ngFor="let document of documents; let i = index" >
|
||||
<ion-list>
|
||||
<ion-item *ngFor="let attachment of loadedAttachments">
|
||||
<ion-item>
|
||||
<ion-label>
|
||||
<h4 class="attach-title-item">{{attachment.Description}}</h4>
|
||||
<p><span class="span-left">{{attachment.Stakeholders}}</span><span class="span-right"> {{ attachment.CreateDate | date: 'dd/MM/yyyy' }}</span></p>
|
||||
<p class="d-flex ion-justify-content-between">
|
||||
<span class="attach-title-item">{{document.Assunto}}</span>
|
||||
<span class="app-name">{{document.appName}}</span>
|
||||
<span class="close-button text-black" (click)="removeAttachment(i)" >
|
||||
<ion-icon class="font-20" src="assets/images/icons-delete-25.svg"></ion-icon>
|
||||
</span>
|
||||
</p>
|
||||
<p><span class="span-left">{{document.EntidadeOrganicaNome}}</span><span class="span-right"> {{document.Data | date: 'dd-MM-yy'}} </span></p>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
</ion-list>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
+97
@@ -125,4 +125,101 @@
|
||||
.aside-content{
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
.attach-icon{
|
||||
width: 37px;
|
||||
font-size: 35px;
|
||||
float: left;
|
||||
}
|
||||
.attach-title-item{
|
||||
width: 100%;
|
||||
font-size: 15px;
|
||||
color:#0d89d1;
|
||||
}
|
||||
/* SPAN */
|
||||
.span-left{
|
||||
float: left;
|
||||
font-size: 15x;
|
||||
}
|
||||
.span-right{
|
||||
text-align: right;
|
||||
float: right;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
.app-name{
|
||||
background: #42b9f2;
|
||||
border-radius: 18px;
|
||||
text-align: center;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0px 5px;
|
||||
color: white;
|
||||
font-size: 9pt;
|
||||
font-weight: 500;
|
||||
height: 19px;
|
||||
-webkit-border-radius: 18px;
|
||||
-moz-border-radius: 18px;
|
||||
-ms-border-radius: 18px;
|
||||
-o-border-radius: 18px;
|
||||
}
|
||||
|
||||
|
||||
.close-button {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
.list:hover {
|
||||
|
||||
.app-name {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.close-button {
|
||||
display: block !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
.app-name{
|
||||
background: #42b9f2;
|
||||
border-radius: 18px;
|
||||
text-align: center;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0px 5px;
|
||||
color: white;
|
||||
font-size: 9pt;
|
||||
font-weight: 500;
|
||||
height: 19px;
|
||||
-webkit-border-radius: 18px;
|
||||
-moz-border-radius: 18px;
|
||||
-ms-border-radius: 18px;
|
||||
-o-border-radius: 18px;
|
||||
}
|
||||
|
||||
|
||||
.close-button {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
.list:hover {
|
||||
|
||||
.app-name {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.close-button {
|
||||
display: block !important;
|
||||
}
|
||||
}
|
||||
+58
-5
@@ -14,6 +14,10 @@ import { DiscartExpedientModalPage } from '../../discart-expedient-modal/discart
|
||||
import { AttachmentsService } from 'src/app/services/attachments.service';
|
||||
import { ExpedienteDetailPage } from '../expediente-detail/expediente-detail.page';
|
||||
import { AlertService } from 'src/app/services/alert.service';
|
||||
import { SearchPage } from 'src/app/pages/search/search.page';
|
||||
import { SearchDocument } from 'src/app/models/search-document';
|
||||
import { EventAttachment } from 'src/app/models/attachment.model';
|
||||
import { User } from 'src/app/models/user.model';
|
||||
|
||||
@Component({
|
||||
selector: 'app-expedient-task-modal',
|
||||
@@ -36,7 +40,10 @@ export class ExpedientTaskModalPage implements OnInit {
|
||||
taskDate: Date;
|
||||
taskDescription: string;
|
||||
user: string;
|
||||
|
||||
loadedAttachments:any;
|
||||
documents:SearchDocument[] = [];
|
||||
|
||||
subjectTypes:any;
|
||||
|
||||
postData: Despacho;
|
||||
@@ -53,6 +60,10 @@ export class ExpedientTaskModalPage implements OnInit {
|
||||
emptyTextDescription = "Sem intervenientes selecionados";
|
||||
showEmptyContainer = true;
|
||||
|
||||
taskResult: any = {}
|
||||
|
||||
loggeduser: User;
|
||||
|
||||
constructor(
|
||||
private modalController: ModalController,
|
||||
private router:Router,
|
||||
@@ -60,7 +71,12 @@ export class ExpedientTaskModalPage implements OnInit {
|
||||
private attachmentsService: AttachmentsService,
|
||||
private navParams: NavParams,
|
||||
private alertController: AlertService,
|
||||
private authService: AuthService) {
|
||||
private authService: AuthService,
|
||||
private userAuth: AuthService) {
|
||||
|
||||
|
||||
this.loggeduser = userAuth.ValidatedUser;
|
||||
|
||||
this.user = environment.defaultuser +'@'+ environment.domain;
|
||||
this.task = this.navParams.get('task');
|
||||
|
||||
@@ -124,7 +140,8 @@ export class ExpedientTaskModalPage implements OnInit {
|
||||
this.modalController.dismiss(null);
|
||||
|
||||
}
|
||||
saveTask(){
|
||||
|
||||
async saveTask(){
|
||||
|
||||
if(this.postData.Priority=='99999861'){
|
||||
this.dispatchFolder.DeadlineType = 'Normal';
|
||||
@@ -140,6 +157,7 @@ export class ExpedientTaskModalPage implements OnInit {
|
||||
}
|
||||
|
||||
let attendees = this.taskParticipants.concat(this.taskParticipantsCc);
|
||||
|
||||
attendees = attendees.map(function(val) {
|
||||
return {
|
||||
UserEmail: val.EmailAddress,
|
||||
@@ -147,6 +165,16 @@ export class ExpedientTaskModalPage implements OnInit {
|
||||
};
|
||||
})
|
||||
|
||||
|
||||
const DocumentToSave = this.documents.map((e) => {
|
||||
return {
|
||||
ProcessInstanceID: '',
|
||||
"Source": "webTRIX",
|
||||
"UserId": this.loggeduser.UserId.toString(),
|
||||
"Attachment": `${e.ApplicationType}@DOC@${e.Id}`
|
||||
};
|
||||
});
|
||||
|
||||
if(this.taskParticipants.length > 0) {
|
||||
switch (this.taskType) {
|
||||
case '0':
|
||||
@@ -158,9 +186,10 @@ export class ExpedientTaskModalPage implements OnInit {
|
||||
SubjectTypeId: this.postData.SubjectTypeId,
|
||||
UsersSelected: attendees,
|
||||
DispatchFolder: this.dispatchFolder,
|
||||
AttachmentList: DocumentToSave
|
||||
}
|
||||
console.log('this.postData', this.postData, this.taskType);
|
||||
this.processes.postDespatcho(this.postData);
|
||||
this.taskResult = await this.processes.postDespatcho(this.postData);
|
||||
break;
|
||||
case '1':
|
||||
this.postData = {
|
||||
@@ -171,9 +200,10 @@ export class ExpedientTaskModalPage implements OnInit {
|
||||
SubjectTypeId: this.postData.SubjectTypeId,
|
||||
UsersSelected: attendees,
|
||||
DispatchFolder: this.dispatchFolder,
|
||||
AttachmentList: DocumentToSave
|
||||
}
|
||||
console.log(this.postData);
|
||||
this.processes.postParecer(this.postData);
|
||||
this.taskResult = await this.processes.postParecer(this.postData);
|
||||
break;
|
||||
case '2':
|
||||
this.postData = {
|
||||
@@ -184,9 +214,10 @@ export class ExpedientTaskModalPage implements OnInit {
|
||||
SubjectTypeId: this.postData.SubjectTypeId,
|
||||
UsersSelected: attendees,
|
||||
DispatchFolder: this.dispatchFolder,
|
||||
AttachmentList: DocumentToSave
|
||||
}
|
||||
console.log(this.postData);
|
||||
this.processes.postDeferimento(this.postData);
|
||||
this.taskResult = await this.processes.postDeferimento(this.postData);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -363,6 +394,28 @@ export class ExpedientTaskModalPage implements OnInit {
|
||||
}
|
||||
|
||||
|
||||
async getDoc(){
|
||||
const modal = await this.modalController.create({
|
||||
component: SearchPage,
|
||||
cssClass: 'modal-width-100-width-background modal',
|
||||
componentProps: {
|
||||
type: 'AccoesPresidenciais & ArquivoDespachoElect',
|
||||
showSearchInput: true
|
||||
}
|
||||
});
|
||||
await modal.present();
|
||||
modal.onDidDismiss().then((res)=>{
|
||||
if(res){
|
||||
const data = res.data;
|
||||
this.documents.push(data.selected);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
removeAttachment(index: number){
|
||||
|
||||
this.documents = this.documents.filter( (e, i) => index != i);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
+69
-65
@@ -24,15 +24,15 @@
|
||||
</ion-header>
|
||||
<ion-content>
|
||||
<ion-list>
|
||||
<ion-item (click)="openExpedientActionsModal('0',fulltask)">
|
||||
<ion-item (click)="openExpedientActionsModal('0', fulltask)">
|
||||
<ion-icon name="documents" slot="start"></ion-icon>
|
||||
<ion-label>Efectuar Despacho</ion-label>
|
||||
</ion-item>
|
||||
<ion-item (click)="openExpedientActionsModal('1',fulltask)">
|
||||
<ion-item (click)="openExpedientActionsModal('1', fulltask)">
|
||||
<ion-icon name="arrow-undo" slot="start"></ion-icon>
|
||||
<ion-label>Pedido de Parecer</ion-label>
|
||||
</ion-item>
|
||||
<ion-item (click)="openExpedientActionsModal('2',fulltask)">
|
||||
<ion-item (click)="openExpedientActionsModal('2', fulltask)">
|
||||
<ion-icon name="arrow-redo" slot="start"></ion-icon>
|
||||
<ion-label>Pedido de Deferimento</ion-label>
|
||||
</ion-item>
|
||||
@@ -58,10 +58,10 @@
|
||||
<ion-content>
|
||||
<div class="main-content d-flex height-100">
|
||||
<div class="content d-flex flex-column" *ngIf="task">
|
||||
<div class="main-header">
|
||||
<div class="title-content">
|
||||
<div class="main-header" style="overflow: unset !important;">
|
||||
<div class="title-content d-flex justify-between">
|
||||
<app-btn-modal-dismiss></app-btn-modal-dismiss>
|
||||
<div class="middle">
|
||||
<div class="middle flex-grow-1">
|
||||
<ion-label class="title">{{ task.Folio}}</ion-label>
|
||||
</div>
|
||||
<div class="div-icon">
|
||||
@@ -71,7 +71,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="upper-content">
|
||||
<div class="upper-content" style="overflow: unset !important;">
|
||||
<div class="content-details">
|
||||
<ion-label>
|
||||
<p><span class="date">{{customDate}}</span><span class="label">Expediente</span></p>
|
||||
@@ -80,72 +80,75 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="line"></div>
|
||||
<div class="middle-content">
|
||||
<h5 *ngIf="intervenientes">Intervenientes</h5>
|
||||
<ion-item class="ion-no-margin ion-no-padding">
|
||||
<ion-label>
|
||||
<div *ngFor="let interveniente of intervenientes">
|
||||
<p>{{interveniente.Name}}</p>
|
||||
</div>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
<div *ngIf="cc.length > 0">
|
||||
<h5>Com conhecimento</h5>
|
||||
|
||||
<div class="overflow-y-auto">
|
||||
<div class="middle-content">
|
||||
<h5 *ngIf="intervenientes">Intervenientes</h5>
|
||||
<ion-item class="ion-no-margin ion-no-padding">
|
||||
<ion-label>
|
||||
<div *ngFor="let c of cc">
|
||||
<p>{{c.Name}}</p>
|
||||
<div *ngFor="let interveniente of intervenientes">
|
||||
<p>{{interveniente.Name}}</p>
|
||||
</div>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
</div>
|
||||
<h5>Detalhes</h5>
|
||||
<ion-item class="ion-no-margin ion-no-padding">
|
||||
<p [innerHTML]="task.Note"></p>
|
||||
</ion-item>
|
||||
</div>
|
||||
<div class="bottom-content width-100">
|
||||
<ion-list>
|
||||
<h5>Documentos Anexados</h5>
|
||||
<ion-item class="ion-no-margin ion-no-padding">
|
||||
<ion-label
|
||||
(click)="viewDocument()">
|
||||
<p class="attach-title-item">{{ task.Folio }}<span class="span-right color-red btn-size"><ion-icon hidden name="close"></ion-icon></span></p>
|
||||
<p><span class="span-left">{{task.Remetente}}</span><span class="span-right">{{ task.CreateDate | date: 'dd/MM/yy' }}</span></p>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
</ion-list>
|
||||
</div>
|
||||
|
||||
<div *ngIf="eventsList">
|
||||
<h3 class="h3-event-title">Eventos Associados</h3>
|
||||
<ion-list>
|
||||
<div *ngIf="eventsList">
|
||||
<ion-item-sliding>
|
||||
<ion-item
|
||||
class="Rectangle" lines="none"
|
||||
*ngFor="let event of eventsList"
|
||||
(click)="viewEventDetail(event.EventId)"
|
||||
>
|
||||
<!-- [routerLink]="['/home/events', event.EventId, 'events']" -->
|
||||
<div class="content-{{profile}}-{{event.CalendarName}}">
|
||||
<div class="approve-event-time">
|
||||
<p>{{event.StartDate | date: 'hh:mm'}}</p>
|
||||
<p>{{event.EndDate | date: 'hh:mm'}}</p>
|
||||
</div>
|
||||
<div class="approve-event-detail">
|
||||
<p *ngIf="event.StartDate != event.EndDate">{{event.StartDate | date: 'd/M/yy' }} - {{ event.EndDate | date: 'dd/mm/yy'}} | {{event.Location}}</p>
|
||||
<p *ngIf="event.StartDate == event.EndDate">{{event.StartDate | date: 'd/M/yy' }} | {{event.Location}}</p>
|
||||
<h3>{{event.Subject}}</h3>
|
||||
</div>
|
||||
</div>
|
||||
</ion-item>
|
||||
</ion-item-sliding>
|
||||
<div *ngIf="cc.length > 0">
|
||||
<h5>Com conhecimento</h5>
|
||||
<ion-item class="ion-no-margin ion-no-padding">
|
||||
<ion-label>
|
||||
<div *ngFor="let c of cc">
|
||||
<p>{{c.Name}}</p>
|
||||
</div>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
</div>
|
||||
</ion-list>
|
||||
<h5>Detalhes</h5>
|
||||
<ion-item class="ion-no-margin ion-no-padding">
|
||||
<p [innerHTML]="task.Note"></p>
|
||||
</ion-item>
|
||||
</div>
|
||||
<div class="bottom-content width-100">
|
||||
<ion-list>
|
||||
<h5>Documentos Anexados</h5>
|
||||
<ion-item class="ion-no-margin ion-no-padding">
|
||||
<ion-label
|
||||
(click)="viewDocument()">
|
||||
<p class="attach-title-item">{{ task.Folio }}<span class="span-right color-red btn-size"><ion-icon hidden name="close"></ion-icon></span></p>
|
||||
<p><span class="span-left">{{task.Remetente}}</span><span class="span-right">{{ task.CreateDate | date: 'dd/MM/yy' }}</span></p>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
</ion-list>
|
||||
</div>
|
||||
|
||||
<div *ngIf="eventsList">
|
||||
<h3 class="h3-event-title">Eventos Associados</h3>
|
||||
<ion-list>
|
||||
<div *ngIf="eventsList">
|
||||
<ion-item-sliding>
|
||||
<ion-item
|
||||
class="Rectangle" lines="none"
|
||||
*ngFor="let event of eventsList"
|
||||
(click)="viewEventDetail(event.EventId)"
|
||||
>
|
||||
<!-- [routerLink]="['/home/events', event.EventId, 'events']" -->
|
||||
<div class="content-{{profile}}-{{event.CalendarName}} width-100 ">
|
||||
<div class="approve-event-time">
|
||||
<p>{{event.StartDate | date: 'hh:mm'}}</p>
|
||||
<p>{{event.EndDate | date: 'hh:mm'}}</p>
|
||||
</div>
|
||||
<div class="approve-event-detail">
|
||||
<p *ngIf="event.StartDate != event.EndDate">{{event.StartDate | date: 'd/M/yy' }} - {{ event.EndDate | date: 'dd/mm/yy'}} | {{event.Location}}</p>
|
||||
<p *ngIf="event.StartDate == event.EndDate">{{event.StartDate | date: 'd/M/yy' }} | {{event.Location}}</p>
|
||||
<h3>{{event.Subject}}</h3>
|
||||
</div>
|
||||
</div>
|
||||
</ion-item>
|
||||
</ion-item-sliding>
|
||||
</div>
|
||||
</ion-list>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="aside-right flex-column height-100">
|
||||
<div class="buttons">
|
||||
<button (click)="openExpedientActionsModal('0',fulltask)" class="btn-ok" shape="round" >Efectuar Despacho</button>
|
||||
@@ -201,6 +204,7 @@
|
||||
</ion-button>
|
||||
</ion-list>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</ion-content>
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
</div>
|
||||
|
||||
<div class="aside overflow-y-auto d-flex flex-wrap width-100">
|
||||
<div [class.active]="selectedElement == 'approval'" (click)="openEventsToApprovePage('MDGPR');selectedElement='approval'" class="exp-card d-flex flex-column" >
|
||||
<div [class.active]="selectedElementF('approval')" (click)="openEventsToApprovePage('MDGPR');selectedElement='approval'" class="exp-card d-flex flex-column" >
|
||||
<div class="d-flex justify-center">
|
||||
<ion-icon src="assets/images/icons-agenda.svg"></ion-icon>
|
||||
</div>
|
||||
@@ -28,7 +28,7 @@
|
||||
<p class="text-center exp-card-content">{{count_ev_md+count_ev_pr}} <span class="title1">Documentos</span></p>
|
||||
</div>
|
||||
|
||||
<div [class.active]="selectedElement == 'Correspondence'" (click)="openExpedientListPage(); selectedElement='Correspondence'" class="exp-card d-flex flex-column justify-center" >
|
||||
<div [class.active]="selectedElementF('Correspondence')" (click)="openExpedientListPage(); selectedElement='Correspondence'" class="exp-card d-flex flex-column justify-center" >
|
||||
<div class="d-flex justify-center">
|
||||
<ion-icon src="assets/images/icons-correspondencia.svg"></ion-icon>
|
||||
</div>
|
||||
@@ -36,7 +36,8 @@
|
||||
<p class="text-center exp-card-content">{{count_exp_dailywork}} <span class="title1">Documentos</span></p>
|
||||
</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" > -->
|
||||
<div [class.active]="selectedElementF('Pending')" (click)="notImplemented()" class="exp-card d-flex flex-column justify-center" >
|
||||
<div class="d-flex justify-center">
|
||||
<ion-icon src="assets/images/icons-expediente-pendente.svg"></ion-icon>
|
||||
</div>
|
||||
@@ -45,7 +46,7 @@
|
||||
<p class="text-center exp-card-content"><span class="number">{{this.count_desp_pending + count_def_pending + count_par_pending}}</span> <span class="title1">Documentos</span></p>
|
||||
</div>
|
||||
|
||||
<div [class.active]="selectedElement == 'Dispatches'" class="exp-card d-flex flex-column justify-center" (click)="openDespachosPage(); selectedElement='Dispatches'">
|
||||
<div [class.active]="selectedElementF('Dispatches') " class="exp-card d-flex flex-column justify-center" (click)="openDespachosPage(); selectedElement='Dispatches'">
|
||||
<div class="d-flex justify-center">
|
||||
<ion-icon src="assets/images/icons-despachos-presidente.svg"></ion-icon>
|
||||
</div>
|
||||
@@ -53,7 +54,7 @@
|
||||
<p class="text-center exp-card-content">{{count_desp_dailywork}}<span class="title1">Documentos</span> </p>
|
||||
</div>
|
||||
|
||||
<div [class.active]="selectedElement == 'RequestsForOpinion'" class="exp-card d-flex flex-column justify-center" (click)="openPedidosPage('parecer'); selectedElement='RequestsForOpinion'">
|
||||
<div [class.active]="selectedElementF('RequestsForOpinion')" class="exp-card d-flex flex-column justify-center" (click)="openPedidosPage('parecer'); selectedElement='RequestsForOpinion'">
|
||||
<div class="d-flex justify-center">
|
||||
<ion-icon src="assets/images/icons-expediente-parecer.svg"></ion-icon>
|
||||
</div>
|
||||
@@ -61,14 +62,16 @@
|
||||
<p class="text-center exp-card-content">{{count_par_dailywork}} <span class="title1">Documentos</span></p>
|
||||
</div>
|
||||
|
||||
<div [class.active]="selectedElement == 'RequestForApproval'" class="exp-card d-flex flex-column justify-center" (click)="openPedidosPage('deferimento'); selectedElement = 'RequestForApproval'">
|
||||
<div [class.active]="selectedElementF('RequestForApproval')" class="exp-card d-flex flex-column justify-center" (click)="openPedidosPage('deferimento'); selectedElement = 'RequestForApproval'">
|
||||
<div class="d-flex justify-center">
|
||||
<ion-icon src="assets/images/icons-expediente-deferimento.svg"></ion-icon>
|
||||
</div>
|
||||
<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>
|
||||
</div>
|
||||
<div [class.active]="selectedElement == '£££££££'" class="exp-card d-flex d-none flex-column justify-center" (click)="notImplemented()">
|
||||
|
||||
<!-- Desktop -->
|
||||
<div [class.active]="selectedElementF('£££££££')" class="exp-card d-md-flex d-none flex-column justify-center" (click)="notImplemented()">
|
||||
<div class="d-flex justify-center">
|
||||
<ion-icon src="assets/images/icons-expediente-presidente.svg"></ion-icon>
|
||||
</div>
|
||||
@@ -76,7 +79,8 @@
|
||||
<p class="text-center exp-card-content"><span class="number">-</span> <span class="title1">Documentos</span></p>
|
||||
</div>
|
||||
|
||||
<div [class.active]="selectedElement == '£££££££'" class="exp-card d-flex d-none flex-column justify-center" (click)="notImplemented()">
|
||||
<!-- Desktop -->
|
||||
<div [class.active]="selectedElementF('£££££££')" class="exp-card d-md-flex d-none flex-column justify-center" (click)="notImplemented()">
|
||||
<div class="d-flex justify-center">
|
||||
<ion-icon src="assets/images/icons-despachos-presidente.svg"></ion-icon>
|
||||
</div>
|
||||
@@ -84,7 +88,8 @@
|
||||
<p class="text-center exp-card-content"><span class="number">-</span> <span class="title1">Documentos</span> </p>
|
||||
</div>
|
||||
|
||||
<div [class.active]="selectedElement == '£££££££'" class="exp-card-long justify-center width-100" (click)="notImplemented()">
|
||||
<div [class.active]="selectedElementF('£££££££')" class="exp-card-long justify-center width-90 ma-0 my-5 background-white" (click)="notImplemented()"
|
||||
style=" box-shadow: 0 0 10px 0 rgb(0 0 0 / 7%);">
|
||||
<div class="center-div">
|
||||
<div class="exp-card-icon">
|
||||
<ion-icon src="assets/images/icons-expediente-presidente.svg"></ion-icon>
|
||||
@@ -96,7 +101,8 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div [class.active]="selectedElement == '£££££££'" class="exp-card-long width-100" (click)="notImplemented()">
|
||||
<div [class.active]="selectedElementF('£££££££')" class="exp-card-long width-90 ma-0 my-5 background-white" (click)="notImplemented()"
|
||||
style="box-shadow: 0 0 10px 0 rgb(0 0 0 / 7%);">
|
||||
<div class="center-div">
|
||||
<div class="exp-card-icon">
|
||||
<ion-icon src="assets/images/icons-despachos-presidente.svg"></ion-icon>
|
||||
@@ -108,7 +114,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div [class.active]="selectedElement == '£££££££'" class="exp-card d-flex flex-column justify-center" (click)="notImplemented()">
|
||||
<div [class.active]="selectedElementF('£££££££')" class="exp-card d-flex flex-column justify-center" (click)="notImplemented()">
|
||||
<div class="d-flex justify-center">
|
||||
<ion-icon src="assets/images/icons-expediente-diploma.svg"></ion-icon>
|
||||
</div>
|
||||
@@ -116,7 +122,7 @@
|
||||
<p class="text-center exp-card-content"><span class="number">-</span> <span class="title1">Documentos</span> </p>
|
||||
</div>
|
||||
|
||||
<div [class.active]="selectedElement == '£££££££'" class="exp-card d-flex flex-column justify-center" (click)="notImplemented()">
|
||||
<div [class.active]="selectedElementF('£££££££')" class="exp-card d-flex flex-column justify-center" (click)="notImplemented()">
|
||||
<div class="d-flex justify-center">
|
||||
<ion-icon src="assets/images/icons-diplomas-assinados-presidente.svg"></ion-icon>
|
||||
</div>
|
||||
|
||||
@@ -289,4 +289,11 @@ export class GabineteDigitalPage implements OnInit {
|
||||
|
||||
}
|
||||
|
||||
selectedElementF(element:string) {
|
||||
if (window.innerWidth >= 800) {
|
||||
return element == this.selectedElement
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -82,7 +82,7 @@ export class LoginPage implements OnInit {
|
||||
}
|
||||
|
||||
getToken() {
|
||||
this.notificatinsservice.getAndpostToken(this.username);
|
||||
// this.notificatinsservice.getAndpostToken(this.username);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -163,8 +163,8 @@ export class PublicationsPage implements OnInit {
|
||||
/* let item = this.publicationFolderList; */
|
||||
const modal = await this.modalController.create({
|
||||
component: ViewPublicationsPage,
|
||||
enterAnimation,
|
||||
leaveAnimation,
|
||||
//enterAnimation,
|
||||
//leaveAnimation,
|
||||
componentProps:{
|
||||
folderId:folderId,
|
||||
},
|
||||
|
||||
@@ -14,14 +14,12 @@
|
||||
--padding-start: 0px !important;
|
||||
--padding-right: 0px !important;
|
||||
--padding-end: 0px !important;
|
||||
|
||||
}
|
||||
|
||||
.div-top-header{
|
||||
width: 400px;
|
||||
margin: 0 auto;
|
||||
background-color: #0782c9;
|
||||
overflow: auto;
|
||||
padding-top: 15px;
|
||||
border: 0!important;
|
||||
}
|
||||
@@ -62,7 +60,7 @@
|
||||
font-family: Roboto;
|
||||
margin: 0 auto;
|
||||
background-color: #fff;
|
||||
overflow:auto;
|
||||
|
||||
padding: 15px 20px 0 20px;
|
||||
}
|
||||
.content-top{
|
||||
@@ -91,10 +89,10 @@
|
||||
}
|
||||
|
||||
.back-icon{
|
||||
width: 37px;
|
||||
|
||||
float: left;
|
||||
font-size: 35px;
|
||||
overflow: auto;
|
||||
|
||||
|
||||
}
|
||||
.div-title{
|
||||
@@ -107,10 +105,7 @@
|
||||
}
|
||||
|
||||
.actions-icon{
|
||||
width: 92px;
|
||||
float: right;
|
||||
overflow: auto;
|
||||
border: 1px solid red;
|
||||
}
|
||||
.actions-icon ion-icon{
|
||||
margin-left: 10px;
|
||||
|
||||
@@ -110,7 +110,7 @@ export class ViewPublicationsPage implements OnInit {
|
||||
folderId: this.folderId,
|
||||
},
|
||||
cssClass: 'publication-detail modal modal-desktop',
|
||||
backdropDismiss: false
|
||||
// backdropDismiss: false
|
||||
});
|
||||
await modal.present();
|
||||
modal.onDidDismiss().then(()=>{
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<ion-progress-bar type="indeterminate" class="loader" *ngIf="showLoader"></ion-progress-bar>
|
||||
<div class="d-flex ion-justify-content-between">
|
||||
|
||||
<ion-form [class.d-md-none]="!select">
|
||||
<ion-form [class.d-none]="!showSearchInput">
|
||||
<div class="d-flex search-input-container ion-justify-content-between" >
|
||||
<div class="icon">
|
||||
<button class="btn-no-color" (click)="basicSearch()">
|
||||
@@ -26,7 +26,7 @@
|
||||
<div *ngIf="!showAdvanceSearch" class="icon-z icon-most-searched-word-open" (click)="showHideAdvanceSearch(true)">
|
||||
<ion-icon src="assets/images/icons-most-searched-words-open.svg" class="icon" slot="end"></ion-icon>
|
||||
</div>
|
||||
<div *ngIf="showAdvanceSearch" class="icon-z icon-most-searched-word-open align-md-baseline" (click)="showHideAdvanceSearch(false)" >
|
||||
<div *ngIf="showAdvanceSearch" class="icon-z icon-most-searched-word-open align-md-baseline pl-10" (click)="showHideAdvanceSearch(false)" >
|
||||
<ion-icon src="assets/images/advance-search-show-modal.svg" class="icon" slot="end"></ion-icon>
|
||||
</div>
|
||||
|
||||
@@ -141,7 +141,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<ul>
|
||||
<li *ngFor="let searchDocument of showSearchDocuments" (click)="viewDetail(searchDocument.Id); selectItem(searchDocument)" class="d-flex">
|
||||
<li *ngFor="let searchDocument of showSearchDocuments" (click)="viewDetail( searchDocument); selectItem(searchDocument)" class="d-flex">
|
||||
<div class="icon">
|
||||
<ion-icon *ngIf="itemIcons() == 'AccoesPresidenciais & ArquivoDespachoElect' "
|
||||
src="assets/images/icons-search-document.svg"></ion-icon>
|
||||
|
||||
@@ -55,6 +55,8 @@ export class SearchPage implements OnInit {
|
||||
type : "Agenda" | "Correspondencia" | "AccoesPresidenciais" | "ArquivoDespachoElect" | "AccoesPresidenciais & ArquivoDespachoElect" = "Agenda";
|
||||
select: boolean = false;
|
||||
|
||||
showSearchInput = false
|
||||
|
||||
constructor(private modalController: ModalController,
|
||||
private search: SearchService,
|
||||
private modalCtrl: ModalController,
|
||||
@@ -63,12 +65,15 @@ export class SearchPage implements OnInit {
|
||||
this.currentPath= window.location.pathname;
|
||||
|
||||
this.type = this.navParams.get('type');
|
||||
|
||||
|
||||
this.type = this.navParams.get('type');
|
||||
this.select = this.navParams.get('select');
|
||||
|
||||
this.showSearchInput = this.navParams.get('showSearchInput');
|
||||
|
||||
|
||||
if(this.type == null || this.type == undefined) {
|
||||
|
||||
this.select = false;
|
||||
|
||||
if(this.currentPath == '/home/agenda') {
|
||||
this.type = "Agenda"
|
||||
} else if (this.currentPath =='/home/gabinete-digital') {
|
||||
@@ -77,21 +82,21 @@ export class SearchPage implements OnInit {
|
||||
} else if (this.currentPath == '/home/publications') {
|
||||
this.type = "AccoesPresidenciais"
|
||||
} else {
|
||||
this.select = false
|
||||
console.log('search bug!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!')
|
||||
}
|
||||
} else {
|
||||
this.select = true;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
selectItem(item: SearchDocument) {
|
||||
if(this.select){
|
||||
this.modalController.dismiss({
|
||||
selected: item
|
||||
});
|
||||
}
|
||||
|
||||
return this.select;
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
@@ -469,31 +474,36 @@ export class SearchPage implements OnInit {
|
||||
}
|
||||
|
||||
|
||||
async viewDetail(id:any) {
|
||||
console.log(id);
|
||||
async viewDetail(searchDocument: SearchDocument) {
|
||||
|
||||
const ApplicationType = searchDocument.ApplicationType.toString()
|
||||
const Id = searchDocument.Id
|
||||
|
||||
if(!this.selectItem){
|
||||
if(window.location.pathname == '/home/agenda'){
|
||||
if(this.select == false){
|
||||
if(this.type == "Agenda") {
|
||||
|
||||
const modal = await this.modalCtrl.create({
|
||||
component: ViewEventPage,
|
||||
componentProps:{
|
||||
eventId: id
|
||||
eventId: Id
|
||||
},
|
||||
cssClass: 'modal modal-desktop',
|
||||
});
|
||||
await modal.present();
|
||||
modal.onDidDismiss().then((res)=>{});
|
||||
|
||||
} else if(window.location.pathname == '/home/publications'){
|
||||
} else if(this.type == "AccoesPresidenciais"){
|
||||
|
||||
this.viewPublicationDetail(id);
|
||||
this.viewPublicationDetail(Id);
|
||||
}
|
||||
else if(window.location.pathname == '/home/gabinete-digital'){
|
||||
else if(this.type == "AccoesPresidenciais & ArquivoDespachoElect"){
|
||||
console.log('OPEN DOC');
|
||||
this.viewDocumentDetail(id,'');
|
||||
this.viewDocumentDetail(Id, ApplicationType);
|
||||
|
||||
}
|
||||
|
||||
} else {
|
||||
console.log('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!', this.select)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -505,7 +515,7 @@ export class SearchPage implements OnInit {
|
||||
publicationId: publicationId,
|
||||
},
|
||||
cssClass: 'publication-detail modal modal-desktop ',
|
||||
backdropDismiss: false
|
||||
//backdropDismiss: false
|
||||
});
|
||||
|
||||
await modal.present();
|
||||
|
||||
@@ -4,7 +4,7 @@ import { environment } from 'src/environments/environment';
|
||||
import { StorageService } from 'src/app/services/storage.service';
|
||||
import { AuthConnstants } from 'src/app/config/auth-constants';
|
||||
import { Token } from '../models/token.model';
|
||||
import { FCM } from 'cordova-plugin-fcm-with-dependecy-updated/ionic/ngx';
|
||||
// import { FCM } from 'cordova-plugin-fcm-with-dependecy-updated/ionic/ngx';
|
||||
/* import { AgendaPage } from '../pages/agenda/agenda.page'
|
||||
import { ExpedientePage } from '../pages/gabinete-digital/expediente/expediente.page'
|
||||
import { EventListPage } from '../pages/gabinete-digital/event-list/event-list.page';
|
||||
@@ -27,7 +27,7 @@ export class NotificationsService {
|
||||
|
||||
constructor(
|
||||
private http: HttpClient,
|
||||
private fcm: FCM,
|
||||
// private fcm: FCM,
|
||||
private storageService: StorageService,
|
||||
private modalController: ModalController,
|
||||
public modalCtrl: AlertController,
|
||||
@@ -45,71 +45,71 @@ export class NotificationsService {
|
||||
return this.http.get<Token[]>(`${geturl}`);
|
||||
}
|
||||
|
||||
getAndpostToken(username) {
|
||||
if(this.platform.is('desktop')) {
|
||||
console.log('Notifications not supported')
|
||||
} else {
|
||||
// getAndpostToken(username) {
|
||||
// if(this.platform.is('desktop')) {
|
||||
// console.log('Notifications not supported')
|
||||
// } else {
|
||||
|
||||
const geturl = environment.apiURL + 'notifications/token';
|
||||
// const geturl = environment.apiURL + 'notifications/token';
|
||||
|
||||
return this.fcm.getToken().then(token => {
|
||||
console.log('token: ', token)
|
||||
this.storageService.store(username, token);
|
||||
this.storageService.get(username).then(value => {
|
||||
console.log('STORAGE TOKEN', value)
|
||||
this.storageService.get(AuthConnstants.USER).then(res => {
|
||||
console.log('USERID', res);
|
||||
const headers = { 'Authorization': 'Basic cGF1bG8ucGludG9AZ2FiaW5ldGVkaWdpdGFsLmxvY2FsOnRhYnRlc3RlQDAwNg==' };
|
||||
const body = {
|
||||
UserId: res.UserId,
|
||||
TokenId: token,
|
||||
Status: 1,
|
||||
Service: 1
|
||||
};
|
||||
// return this.fcm.getToken().then(token => {
|
||||
// console.log('token: ', token)
|
||||
// this.storageService.store(username, token);
|
||||
// this.storageService.get(username).then(value => {
|
||||
// console.log('STORAGE TOKEN', value)
|
||||
// this.storageService.get(AuthConnstants.USER).then(res => {
|
||||
// console.log('USERID', res);
|
||||
// const headers = { 'Authorization': 'Basic cGF1bG8ucGludG9AZ2FiaW5ldGVkaWdpdGFsLmxvY2FsOnRhYnRlc3RlQDAwNg==' };
|
||||
// const body = {
|
||||
// UserId: res.UserId,
|
||||
// TokenId: token,
|
||||
// Status: 1,
|
||||
// Service: 1
|
||||
// };
|
||||
|
||||
this.http.post<Token>(`${geturl}`, body, { headers }).subscribe(data => {
|
||||
console.log('TOKEN USER MIDLE', data);
|
||||
})
|
||||
});
|
||||
// this.http.post<Token>(`${geturl}`, body, { headers }).subscribe(data => {
|
||||
// console.log('TOKEN USER MIDLE', data);
|
||||
// })
|
||||
// });
|
||||
|
||||
});
|
||||
});
|
||||
}
|
||||
// });
|
||||
// });
|
||||
// }
|
||||
|
||||
}
|
||||
// }
|
||||
|
||||
async onReceviNotification(viewEventDetail, viewExpedientDetail, openApproveModal, viewPublications, viewPublicationDetail) {
|
||||
this.fcm.onNotification().subscribe(data => {
|
||||
if (data.click_action) {
|
||||
console.log("Received in background: ", data);
|
||||
// this.fcm.onNotification().subscribe(data => {
|
||||
// if (data.click_action) {
|
||||
// console.log("Received in background: ", data);
|
||||
|
||||
if (data.Service === "agenda") {
|
||||
viewEventDetail(data.IdObject)
|
||||
}
|
||||
else if (data.Service === "gabinete-digital" && data.Object === "expediente") {
|
||||
console.log('expediante 1')
|
||||
viewExpedientDetail(data.IdObject)
|
||||
}
|
||||
else if (data.Service === "gabinete-digital" && data.Object === "event-list") {
|
||||
openApproveModal(data.IdObject);
|
||||
}
|
||||
else if (data.Service === "accoes" && data.Object === "accao") {
|
||||
viewPublications(data.IdObject)
|
||||
}
|
||||
else if (data.Service === "accoes" && data.Object === "publicacao") {
|
||||
viewPublicationDetail(data.IdObject)
|
||||
}
|
||||
// if (data.Service === "agenda") {
|
||||
// viewEventDetail(data.IdObject)
|
||||
// }
|
||||
// else if (data.Service === "gabinete-digital" && data.Object === "expediente") {
|
||||
// console.log('expediante 1')
|
||||
// viewExpedientDetail(data.IdObject)
|
||||
// }
|
||||
// else if (data.Service === "gabinete-digital" && data.Object === "event-list") {
|
||||
// openApproveModal(data.IdObject);
|
||||
// }
|
||||
// else if (data.Service === "accoes" && data.Object === "accao") {
|
||||
// viewPublications(data.IdObject)
|
||||
// }
|
||||
// else if (data.Service === "accoes" && data.Object === "publicacao") {
|
||||
// viewPublicationDetail(data.IdObject)
|
||||
// }
|
||||
|
||||
} /* else {
|
||||
console.log("Received in foreground: ", data);
|
||||
// } /* else {
|
||||
// console.log("Received in foreground: ", data);
|
||||
|
||||
console.log(data.Service)
|
||||
console.log(data.Object)
|
||||
console.log(data.IdObject)
|
||||
this.openApproveModal(data.IdObject);
|
||||
// console.log(data.Service)
|
||||
// console.log(data.Object)
|
||||
// console.log(data.IdObject)
|
||||
// this.openApproveModal(data.IdObject);
|
||||
|
||||
}; */
|
||||
});
|
||||
// }; */
|
||||
// });
|
||||
}
|
||||
|
||||
platformVerify() {
|
||||
|
||||
@@ -160,7 +160,7 @@ export class ProcessesService {
|
||||
return this.http.get<any>(`${geturl}`, options);
|
||||
}
|
||||
|
||||
postDespatcho(body:any){
|
||||
postDespatcho(body:any) {
|
||||
const geturl = environment.apiURL + 'Processes/CreateDispatch';
|
||||
let options = {
|
||||
headers: this.headers,
|
||||
|
||||
@@ -66,6 +66,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="line"></div>
|
||||
|
||||
<div class="middle-content">
|
||||
<div *ngIf="loadedEvent.workflowInstanceDataFields.ParticipantsList">
|
||||
<h5>Intervenientes</h5>
|
||||
@@ -95,6 +96,11 @@
|
||||
</ion-list>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="overflow-y-auto">
|
||||
|
||||
</div>
|
||||
|
||||
<div *ngIf="showAside" class="aside-right flex-column height-100">
|
||||
<div class="aside-buttons">
|
||||
<button hidden full class="btn-ok" shape="round" >Editar evento</button>
|
||||
@@ -104,8 +110,10 @@
|
||||
<button (click)="rejectTask(loadedEvent.serialNumber)" full class="btn-delete" shape="round" >Rejeitar</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</ion-content>
|
||||
|
||||
<ion-footer class="display-none-{{showAside}}">
|
||||
<div class="buttons">
|
||||
<button class="btn-cancel" shape="round" (click)="emendTask(loadedEvent.serialNumber)">Adicionar Nota</button>
|
||||
|
||||
@@ -207,7 +207,9 @@ export class EditEventComponent implements OnInit {
|
||||
component: SearchPage,
|
||||
cssClass: 'modal-width-100-width-background modal',
|
||||
componentProps: {
|
||||
type: 'AccoesPresidenciais & ArquivoDespachoElect'
|
||||
type: 'AccoesPresidenciais & ArquivoDespachoElect',
|
||||
showSearchInput: true,
|
||||
select: true,
|
||||
}
|
||||
});
|
||||
await modal.present();
|
||||
|
||||
@@ -210,6 +210,7 @@
|
||||
</ion-item>
|
||||
</ion-list>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</ion-content>
|
||||
<ion-footer class="ion-no-border px-20">
|
||||
|
||||
@@ -132,7 +132,9 @@ export class NewEventPage implements OnInit {
|
||||
component: SearchPage,
|
||||
cssClass: 'modal-width-100-width-background modal',
|
||||
componentProps: {
|
||||
type: 'AccoesPresidenciais & ArquivoDespachoElect'
|
||||
type: 'AccoesPresidenciais & ArquivoDespachoElect',
|
||||
showSearchInput: true,
|
||||
select: true
|
||||
}
|
||||
});
|
||||
await modal.present();
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
<ion-content class="container">
|
||||
<div class="arrow-right">
|
||||
<button class="btn-no-color">
|
||||
<ion-icon slot="end" class="arrow-right-icon" src='assets/images/icons-arrow-arrow-right.svg'></ion-icon>
|
||||
</button>
|
||||
</div>
|
||||
<div class="buttons">
|
||||
<button class="btn-cancel" shape="round" >Efectuar Despacho</button>
|
||||
<button class="btn-ok" shape="round" >Pedido de Parecer</button>
|
||||
<div class="solid"></div>
|
||||
<button full class="btn-cancel mobile-only" shape="round" >Pedido de Deferimento</button>
|
||||
<button class="btn-delete" shape="round">Marcar reunião</button>
|
||||
</div>
|
||||
</ion-content>
|
||||
@@ -0,0 +1,54 @@
|
||||
.container{
|
||||
--padding-top:20px !important;
|
||||
--padding-bottom:20px !important;
|
||||
--padding-start:20px !important;
|
||||
--padding-end:20px !important;
|
||||
}
|
||||
.arrow-right{
|
||||
display: none;
|
||||
margin-bottom: 20px;
|
||||
.arrow-right-icon{
|
||||
width: 37px;
|
||||
float: right;
|
||||
font-size: 35px;
|
||||
overflow: hidden;
|
||||
}
|
||||
}
|
||||
.buttons{
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-around;
|
||||
}
|
||||
.solid {
|
||||
display: none;
|
||||
width: 90%;
|
||||
border-top: 1px solid #bbb;
|
||||
margin: 0 auto !important;
|
||||
}
|
||||
@media only screen and (min-width: 1024px) {
|
||||
.arrow-right{
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
.btn-cancel{
|
||||
//display: none;
|
||||
width: 100% !important;
|
||||
margin-bottom: 10px !important;
|
||||
}
|
||||
.btn-ok{
|
||||
width: 100% !important;
|
||||
margin-bottom: 10px !important;
|
||||
}
|
||||
.btn-delete{
|
||||
width: 100% !important;
|
||||
margin-bottom: 10px !important;
|
||||
margin-top: 10px !important;
|
||||
}
|
||||
.solid{
|
||||
display: block;
|
||||
}
|
||||
.mobile-only{
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
|
||||
import { IonicModule } from '@ionic/angular';
|
||||
|
||||
import { OptionsComponent } from './options.component';
|
||||
|
||||
describe('OptionsComponent', () => {
|
||||
let component: OptionsComponent;
|
||||
let fixture: ComponentFixture<OptionsComponent>;
|
||||
|
||||
beforeEach(waitForAsync(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ OptionsComponent ],
|
||||
imports: [IonicModule.forRoot()]
|
||||
}).compileComponents();
|
||||
|
||||
fixture = TestBed.createComponent(OptionsComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
}));
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,14 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
|
||||
@Component({
|
||||
selector: 'app-options',
|
||||
templateUrl: './options.component.html',
|
||||
styleUrls: ['./options.component.scss'],
|
||||
})
|
||||
export class OptionsComponent implements OnInit {
|
||||
|
||||
constructor() { }
|
||||
|
||||
ngOnInit() {}
|
||||
|
||||
}
|
||||
@@ -8,6 +8,7 @@ import { ViewEventPageRoutingModule } from './view-event-routing.module';
|
||||
|
||||
import { ViewEventPage } from './view-event.page';
|
||||
import { SharedModule } from 'src/app/shared/shared.module';
|
||||
import { ChatPopoverPage } from '../../popover/chat-popover/chat-popover.page';
|
||||
|
||||
@NgModule({
|
||||
imports: [
|
||||
@@ -17,6 +18,9 @@ import { SharedModule } from 'src/app/shared/shared.module';
|
||||
SharedModule,
|
||||
ViewEventPageRoutingModule
|
||||
],
|
||||
declarations: [ViewEventPage]
|
||||
declarations: [
|
||||
ViewEventPage,
|
||||
ChatPopoverPage
|
||||
]
|
||||
})
|
||||
export class ViewEventPageModule {}
|
||||
|
||||
@@ -35,18 +35,18 @@
|
||||
|
||||
<ion-header class="ion-no-border">
|
||||
<ion-toolbar class="header-toolbar">
|
||||
<div class="main-header px-20">
|
||||
<div class="main-header px-20" style="overflow: unset !important;">
|
||||
<div class="title-content d-flex" >
|
||||
<div class="left">
|
||||
<button class="btn-no-color" (click)="close()">
|
||||
<ion-icon slot="end" src='assets/images/icons-arrow-arrow-left.svg'></ion-icon>
|
||||
</button>
|
||||
</div>
|
||||
<div class="middle flex-grow-1">
|
||||
<div class="middle flex-grow-1" (click)="openOptions()">
|
||||
<ion-label class="title">{{loadedEvent.Subject}}</ion-label>
|
||||
</div>
|
||||
|
||||
<div class="div-icon">
|
||||
<div class="div-icon d-flex">
|
||||
<button class="btn-no-color" (click)="editEvent()">
|
||||
<ion-icon class="edit" slot="end" src="assets/images/icons-edit.svg" ></ion-icon>
|
||||
</button>
|
||||
@@ -102,10 +102,10 @@
|
||||
<ion-list class="width-100">
|
||||
<ion-item *ngFor="let attach of loadedAttachments; let i = index" class="width-100" lines="none" class="ion-no-margin ion-no-padding">
|
||||
<ion-label class="width-100 d-flex " >
|
||||
<div class="flex-grow-1" (click)="viewDocument(attach.SourceId)">
|
||||
<p class="attach-title-item">{{attach.SourceName}}</p>
|
||||
<p class="flex-grow-1" (click)="viewDocument(attach.SourceId)">
|
||||
<span class="attach-title-item">{{attach.SourceName}}</span>
|
||||
<span class="span-left">{{attach.Stakeholders}}</span>
|
||||
</div>
|
||||
</p>
|
||||
|
||||
<div class="d-flex align-end">
|
||||
<span class="span-right">{{ attach.CreateDate | date: 'dd-MM-yy' }}</span>
|
||||
@@ -120,5 +120,7 @@
|
||||
</ion-list>
|
||||
</div>
|
||||
<!-- <div class="line"></div> -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</ion-content>
|
||||
@@ -19,7 +19,6 @@ ion-menu{
|
||||
border-top-left-radius: 25px;
|
||||
border-top-right-radius: 25px;
|
||||
background-color: #fff;
|
||||
overflow:hidden;
|
||||
padding: 30px 0px 0px 0px;
|
||||
color:#000;
|
||||
transform: translate3d(0, 1px, 0);
|
||||
@@ -36,7 +35,6 @@ ion-menu{
|
||||
overflow: hidden;
|
||||
}
|
||||
.middle{
|
||||
width: 230px;
|
||||
padding: 0!important;
|
||||
float: left;
|
||||
margin: 2.5px 0 0 0;
|
||||
@@ -45,12 +43,10 @@ ion-menu{
|
||||
width: 45px;
|
||||
font-size: 45px;
|
||||
float: right;
|
||||
overflow: auto;
|
||||
|
||||
}
|
||||
.div-icon{
|
||||
width: 92px;
|
||||
float: right;
|
||||
overflow: auto;
|
||||
padding: 1px;
|
||||
}
|
||||
.div-icon .edit{
|
||||
@@ -87,7 +83,7 @@ ion-menu{
|
||||
width: 100%;
|
||||
margin: 0 auto;
|
||||
padding: 0;
|
||||
overflow: auto;
|
||||
|
||||
|
||||
.date{
|
||||
float: left;
|
||||
@@ -168,4 +164,14 @@ ion-menu{
|
||||
font-size: 13px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.chat-popover .popover-content {
|
||||
width: 100% !important;
|
||||
left: 0 !important;
|
||||
bottom: 0 !important;
|
||||
right: 0 !important;
|
||||
top: calc(100% - 160px) !important;
|
||||
max-height: 160px;
|
||||
min-height: 160px;
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';
|
||||
import { AlertController, ModalController, NavParams } from '@ionic/angular';
|
||||
import { AlertController, ModalController, NavParams, PopoverController } from '@ionic/angular';
|
||||
import { Attachment } from 'src/app/models/attachment.model';
|
||||
import { EventBody } from 'src/app/models/eventbody.model';
|
||||
import { AttachmentsService } from 'src/app/services/attachments.service';
|
||||
@@ -10,6 +10,8 @@ import { ProcessesService } from 'src/app/services/processes.service';
|
||||
import { ExpedientTaskModalPage } from 'src/app/pages/gabinete-digital/expediente/expedient-task-modal/expedient-task-modal.page';
|
||||
import { momentG } from 'src/plugin/momentG';
|
||||
import { BookMeetingModalPage } from 'src/app/pages/gabinete-digital/expediente/book-meeting-modal/book-meeting-modal.page';
|
||||
import { ChatPopoverPage } from '../../popover/chat-popover/chat-popover.page';
|
||||
import { OptionsComponent } from './options/options.component';
|
||||
|
||||
@Component({
|
||||
selector: 'app-view-event',
|
||||
@@ -49,6 +51,7 @@ export class ViewEventPage implements OnInit {
|
||||
private iab: InAppBrowser,
|
||||
private processes: ProcessesService,
|
||||
private modalController: ModalController,
|
||||
public popoverController: PopoverController
|
||||
)
|
||||
{
|
||||
this.isEventEdited = false;
|
||||
@@ -178,6 +181,27 @@ export class ViewEventPage implements OnInit {
|
||||
});
|
||||
}
|
||||
|
||||
async openOptions(ev: any) {
|
||||
const popover = await this.popoverController.create({
|
||||
component: OptionsComponent,
|
||||
cssClass: 'chat-popover modal-desktop',
|
||||
event: ev,
|
||||
componentProps: {
|
||||
// room: this.room,
|
||||
},
|
||||
translucent: true
|
||||
});
|
||||
await popover.present();
|
||||
popover.onDidDismiss().then(res=>{
|
||||
console.log(res);
|
||||
if(res.data){
|
||||
// this.getRoomInfo();
|
||||
//this.modalController.dismiss();
|
||||
};
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
async openBookMeetingModal(task: any) {
|
||||
|
||||
const doc = this.loadedAttachments[ this.dicIndex];
|
||||
|
||||
@@ -1,3 +1,38 @@
|
||||
<ion-menu autoHide="false" side="end" content-id="main-content" >
|
||||
<ion-header>
|
||||
<ion-toolbar translucent>
|
||||
<ion-title>Menu</ion-title>
|
||||
</ion-toolbar>
|
||||
</ion-header>
|
||||
<ion-content>
|
||||
<ion-list>
|
||||
<ion-item (click)="openExpedientActionsModal('0',fulltask)">
|
||||
<ion-icon name="documents" slot="start"></ion-icon>
|
||||
<ion-label>Efectuar Despacho</ion-label>
|
||||
</ion-item>
|
||||
<ion-item (click)="openExpedientActionsModal('1',fulltask)">
|
||||
<ion-icon name="arrow-undo" slot="start"></ion-icon>
|
||||
<ion-label>Pedido de Parecer</ion-label>
|
||||
</ion-item>
|
||||
<!-- <ion-item (click)="openExpedientActionsModal('2',fulltask)">
|
||||
<ion-icon name="arrow-redo" slot="start"></ion-icon>
|
||||
<ion-label>Pedido de Deferimento</ion-label>
|
||||
</ion-item> -->
|
||||
<!-- <ion-item (click)="openBookMeetingModal(task)">
|
||||
<ion-icon name="calendar" slot="start"></ion-icon>
|
||||
<ion-label>Marcar reunião</ion-label>
|
||||
</ion-item> -->
|
||||
<ion-item (click)="distartExpedientModal()">
|
||||
<ion-icon name="trash" slot="start"></ion-icon>
|
||||
<ion-label>Descartar</ion-label>
|
||||
</ion-item>
|
||||
</ion-list>
|
||||
</ion-content>
|
||||
</ion-menu>
|
||||
<div class="ion-page d-none" id="main-content">
|
||||
<ion-menu-button></ion-menu-button>
|
||||
</div>
|
||||
|
||||
<ion-header class="ion-no-border">
|
||||
<div class="title">
|
||||
<div class="thetitle"><ion-label >Despachos</ion-label></div>
|
||||
@@ -23,21 +58,25 @@
|
||||
<ion-list>
|
||||
<ion-item
|
||||
class="expediente ion-no-padding"
|
||||
*ngFor = "let task of despachoList"
|
||||
*ngFor = "let task of despachoList; let i = index"
|
||||
(click)="viewExpedientDetail(task.SerialNumber)"
|
||||
>
|
||||
<!-- [routerLink]="['/home/gabinete-digital/expediente',task.SerialNumber]" -->
|
||||
<div class="item width-100">
|
||||
<div class="exp-top-detail">
|
||||
<div class="exp-top-detail ">
|
||||
<div class="exp-date">
|
||||
<ion-label>{{ task.CreateDate | date: 'dd-MM-yy' }}</ion-label>
|
||||
</div>
|
||||
<div class="exp-remetente">
|
||||
<ion-label>{{task.Senders}}</ion-label>
|
||||
</div>
|
||||
<div class="exp-icon">
|
||||
<div class="exp-icon d-flex align-center">
|
||||
<ion-icon src="assets/images/icons-expediente-attachment.svg"></ion-icon>
|
||||
<label>{{task.DocumentsQty}}</label>
|
||||
|
||||
<!-- <ion-menu-button (click)="docIndex(i)" style="width: 35px; height: 41px;" autoHide="false">
|
||||
<ion-icon src="assets/images/icons-expediente-attachment.svg"></ion-icon>
|
||||
</ion-menu-button> -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="exp-bottom-detail">
|
||||
|
||||
@@ -1,16 +1,19 @@
|
||||
import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';
|
||||
import { Router } from '@angular/router';
|
||||
import { CalendarComponent } from 'ionic2-calendar';
|
||||
|
||||
import { DailyWorkTask } from '../../../models/dailyworktask.model';
|
||||
import { DailyWorkTask, tasksList } from '../../../models/dailyworktask.model';
|
||||
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 { ModalController } 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 { DespachoPage } from 'src/app/pages/gabinete-digital/despachos/despacho/despacho.page';
|
||||
|
||||
import { ExpedientTaskModalPage } from 'src/app/pages/gabinete-digital/expediente/expedient-task-modal/expedient-task-modal.page';
|
||||
import { BookMeetingModalPage } from 'src/app/pages/gabinete-digital/expediente/book-meeting-modal/book-meeting-modal.page';
|
||||
import { DiscartExpedientModalPage } from 'src/app/pages/gabinete-digital/discart-expedient-modal/discart-expedient-modal.page';
|
||||
|
||||
import { AuthService } from 'src/app/services/auth.service';
|
||||
import { DespachoPage } from 'src/app/pages/gabinete-digital/despachos/despacho/despacho.page';
|
||||
|
||||
@Component({
|
||||
selector: 'app-despachos',
|
||||
@@ -25,6 +28,9 @@ export class DespachosPage implements OnInit {
|
||||
taskslist:DailyWorkTask[];
|
||||
despachoList:DailyWorkTask[];
|
||||
deferimentoList:DailyWorkTask[];
|
||||
|
||||
taskList:tasksList[] = [];
|
||||
|
||||
taskType: string;
|
||||
serialNumber:string;
|
||||
totalDocs:any;
|
||||
@@ -33,7 +39,10 @@ export class DespachosPage implements OnInit {
|
||||
segment:string;
|
||||
@Output() openExpedientDetail:EventEmitter<any> = new EventEmitter<any>();
|
||||
|
||||
constructor(
|
||||
loadedAttachments:any;
|
||||
dicIndex = 0;
|
||||
|
||||
constructor (
|
||||
private processes:ProcessesService,
|
||||
private modalController: ModalController,
|
||||
private alertService: AlertService,
|
||||
@@ -150,5 +159,119 @@ export class DespachosPage implements OnInit {
|
||||
});
|
||||
}
|
||||
|
||||
// old
|
||||
async openExpedientActionsModal(taskAction: any, task: any) {
|
||||
//this.modalController.dismiss();
|
||||
let classs;
|
||||
if( window.innerWidth <= 800){
|
||||
classs = 'modal modal-desktop'
|
||||
} else {
|
||||
classs = 'modal modal-desktop showAsideOptions'
|
||||
}
|
||||
|
||||
const doc = this.loadedAttachments[ this.dicIndex];
|
||||
|
||||
task = {
|
||||
serialNumber: doc.SourceId,
|
||||
taskStartDate: doc.CreateDate,
|
||||
isEvent: true,
|
||||
workflowInstanceDataFields: {
|
||||
FsId: doc.ApplicationId,
|
||||
FolderID: null,
|
||||
DocId: doc.SourceId,
|
||||
Subject: doc.SourceName
|
||||
},
|
||||
}
|
||||
|
||||
const modal = await this.modalController.create({
|
||||
component: ExpedientTaskModalPage,
|
||||
componentProps: {
|
||||
taskAction: taskAction,
|
||||
task: task,
|
||||
profile: this.profile,
|
||||
},
|
||||
cssClass: classs,
|
||||
});
|
||||
await modal.present();
|
||||
modal.onDidDismiss().then(res=>{
|
||||
console.log(res['data']);
|
||||
if(res['data']=='openDiscart'){
|
||||
console.log('open discart');
|
||||
|
||||
// this.distartExpedientModal();
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
async openBookMeetingModal(task: any) {
|
||||
|
||||
const doc = this.loadedAttachments[ this.dicIndex];
|
||||
|
||||
task = {
|
||||
serialNumber: doc.SourceId,
|
||||
taskStartDate: doc.CreateDate,
|
||||
isEvent: true,
|
||||
workflowInstanceDataFields: {
|
||||
FsId: doc.ApplicationId,
|
||||
FolderID: null,
|
||||
DocId: doc.SourceId,
|
||||
Subject: doc.SourceName
|
||||
},
|
||||
}
|
||||
|
||||
let classs;
|
||||
if( window.innerWidth <= 800){
|
||||
classs = 'book-meeting-modal modal modal-desktop'
|
||||
} else {
|
||||
classs = 'modal modal-desktop showAsideOptions'
|
||||
}
|
||||
const modal = await this.modalController.create({
|
||||
component: BookMeetingModalPage,
|
||||
componentProps: {
|
||||
task: task,
|
||||
},
|
||||
cssClass: classs,
|
||||
backdropDismiss: false
|
||||
});
|
||||
await modal.present();
|
||||
modal.onDidDismiss();
|
||||
}
|
||||
|
||||
|
||||
async distartExpedientModal() {
|
||||
|
||||
const doc = this.taskList[ this.dicIndex];
|
||||
|
||||
console.log(doc, this.dicIndex, this.taskList)
|
||||
|
||||
const modal = await this.modalController.create({
|
||||
component: DiscartExpedientModalPage,
|
||||
componentProps: {
|
||||
serialNumber: doc.serialNumber,
|
||||
folderId: doc.workflowInstanceDataFields.FolderID,
|
||||
action: 'complete',
|
||||
},
|
||||
cssClass: 'discart-expedient-modal',
|
||||
backdropDismiss: false
|
||||
});
|
||||
|
||||
await modal.present();
|
||||
modal.onDidDismiss().then(res=>{
|
||||
if(res['data']=='close'){
|
||||
// this.close();
|
||||
/* console.log('2Expedient Discard closed2');
|
||||
this.close();
|
||||
this.openMenu(); */
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
docIndex(index: number) {
|
||||
this.dicIndex = index;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
|
||||
|
||||
<ion-header class="ion-no-border">
|
||||
<ion-toolbar class="header-toolbar">
|
||||
<div class="main-header">
|
||||
@@ -7,9 +9,9 @@
|
||||
<ion-label class="title">Detalhes do Expediente</ion-label>
|
||||
</div>
|
||||
<div class="div-icon">
|
||||
<ion-menu-button autoHide="false">
|
||||
<ion-icon name="ellipsis-vertical-outline"></ion-icon>
|
||||
</ion-menu-button>
|
||||
<ion-menu-button autoHide="false">
|
||||
<ion-icon name="ellipsis-vertical-outline"></ion-icon>
|
||||
</ion-menu-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -29,45 +31,6 @@
|
||||
</ion-toolbar>
|
||||
</ion-header> -->
|
||||
|
||||
<ion-menu autoHide="false" side="end" content-id="main-content">
|
||||
<ion-header>
|
||||
<ion-toolbar translucent>
|
||||
<ion-title>Menu</ion-title>
|
||||
</ion-toolbar>
|
||||
</ion-header>
|
||||
<ion-content>
|
||||
<ion-list>
|
||||
<ion-item (click)="openExpedientActionsModal('0',fulltask)">
|
||||
<ion-icon name="documents" slot="start"></ion-icon>
|
||||
<ion-label>Efectuar Despacho</ion-label>
|
||||
</ion-item>
|
||||
<ion-item (click)="openExpedientActionsModal('1',fulltask)">
|
||||
<ion-icon name="arrow-undo" slot="start"></ion-icon>
|
||||
<ion-label>Pedido de Parecer</ion-label>
|
||||
</ion-item>
|
||||
<ion-item (click)="openExpedientActionsModal('2',fulltask)">
|
||||
<ion-icon name="arrow-redo" slot="start"></ion-icon>
|
||||
<ion-label>Pedido de Deferimento</ion-label>
|
||||
</ion-item>
|
||||
<ion-item (click)="openBookMeetingModal(task)">
|
||||
<ion-icon name="calendar" slot="start"></ion-icon>
|
||||
<ion-label>Marcar reunião</ion-label>
|
||||
</ion-item>
|
||||
<ion-item (click)="discartExpedient()">
|
||||
<ion-icon name="trash" slot="start"></ion-icon>
|
||||
<ion-label>Descartar</ion-label>
|
||||
</ion-item>
|
||||
<ion-item disabled>
|
||||
<ion-icon name="paper-plane" slot="start"></ion-icon>
|
||||
<ion-label>Enviar para pendentes</ion-label>
|
||||
</ion-item>
|
||||
</ion-list>
|
||||
</ion-content>
|
||||
</ion-menu>
|
||||
<div class="ion-page" id="main-content">
|
||||
<ion-menu-button></ion-menu-button>
|
||||
</div>
|
||||
|
||||
<ion-content padding>
|
||||
<div *ngIf="task">
|
||||
<h3 class="h3-event-title">Detalhes do Expediente</h3>
|
||||
|
||||
@@ -1,3 +1,38 @@
|
||||
<ion-menu autoHide="false" side="end" content-id="main-content" >
|
||||
<ion-header>
|
||||
<ion-toolbar translucent>
|
||||
<ion-title>Menu PEDIDO</ion-title>
|
||||
</ion-toolbar>
|
||||
</ion-header>
|
||||
<ion-content>
|
||||
<ion-list>
|
||||
<ion-item (click)="openExpedientActionsModal('0',fulltask)">
|
||||
<ion-icon name="documents" slot="start"></ion-icon>
|
||||
<ion-label>Efectuar Despacho</ion-label>
|
||||
</ion-item>
|
||||
<ion-item (click)="openExpedientActionsModal('1',fulltask)">
|
||||
<ion-icon name="arrow-undo" slot="start"></ion-icon>
|
||||
<ion-label>Pedido de Parecer</ion-label>
|
||||
</ion-item>
|
||||
<!-- <ion-item (click)="openExpedientActionsModal('2',fulltask)">
|
||||
<ion-icon name="arrow-redo" slot="start"></ion-icon>
|
||||
<ion-label>Pedido de Deferimento</ion-label>
|
||||
</ion-item> -->
|
||||
<!-- <ion-item (click)="openBookMeetingModal(task)">
|
||||
<ion-icon name="calendar" slot="start"></ion-icon>
|
||||
<ion-label>Marcar reunião</ion-label>
|
||||
</ion-item> -->
|
||||
<ion-item (click)="distartExpedientModal()">
|
||||
<ion-icon name="trash" slot="start"></ion-icon>
|
||||
<ion-label>Descartar</ion-label>
|
||||
</ion-item>
|
||||
</ion-list>
|
||||
</ion-content>
|
||||
</ion-menu>
|
||||
<div class="ion-page d-none" id="main-content">
|
||||
<ion-menu-button></ion-menu-button>
|
||||
</div>
|
||||
|
||||
<ion-header class="ion-no-border">
|
||||
<div class="title">
|
||||
<div class="thetitle"><ion-label >Pedidos</ion-label></div>
|
||||
@@ -31,10 +66,13 @@
|
||||
<div class="width-100" [ngSwitch]="segment">
|
||||
<div *ngIf="parecerList">
|
||||
<ion-list *ngSwitchCase="'parecer'">
|
||||
<!-- *ngFor = "let task of parecerList; let i = index"
|
||||
(click)="viewExpedientDetail(task.SerialNumber)" -->
|
||||
<ion-item
|
||||
class="expediente ion-no-padding"
|
||||
*ngFor = "let task of parecerList"
|
||||
(click)="viewPedidoDetail(task.SerialNumber)"
|
||||
|
||||
>
|
||||
<!-- (click)="viewExpedientDetail(task.SerialNumber)" -->
|
||||
<!-- [routerLink]="['/home/gabinete-digital/expediente',task.SerialNumber]" -->
|
||||
@@ -47,8 +85,9 @@
|
||||
<ion-label>{{task.Remetente}}</ion-label>
|
||||
</div>
|
||||
<div class="exp-icon">
|
||||
<ion-icon src="assets/images/icons-expediente-attachment.svg"></ion-icon>
|
||||
<label></label>
|
||||
<!-- <ion-menu-button (click)="docIndex(i)" style="width: 35px; height: 41px;" autoHide="false">
|
||||
<ion-icon src="assets/images/icons-expediente-attachment.svg"></ion-icon>
|
||||
</ion-menu-button> -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="exp-bottom-detail">
|
||||
@@ -77,8 +116,9 @@
|
||||
<ion-label>{{task.Remetente}}</ion-label>
|
||||
</div>
|
||||
<div class="exp-icon">
|
||||
<ion-icon src="assets/images/icons-expediente-attachment.svg"></ion-icon>
|
||||
<label></label>
|
||||
<ion-menu-button (click)="docIndex(i)" style="width: 35px; height: 41px;" autoHide="false">
|
||||
<ion-icon src="assets/images/icons-expediente-attachment.svg"></ion-icon>
|
||||
</ion-menu-button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="exp-bottom-detail">
|
||||
|
||||
@@ -2,7 +2,7 @@ import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angu
|
||||
import { Router } from '@angular/router';
|
||||
import { CalendarComponent } from 'ionic2-calendar';
|
||||
|
||||
import { DailyWorkTask } from '../../../models/dailyworktask.model';
|
||||
import { DailyWorkTask, tasksList } from '../../../models/dailyworktask.model';
|
||||
import { ProcessesService } from 'src/app/services/processes.service';
|
||||
import { formatDate } from '@angular/common';
|
||||
import { LoadingService } from 'src/app/services/loading.service';
|
||||
@@ -10,6 +10,9 @@ 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 { PedidoPage } from 'src/app/pages/gabinete-digital/pedidos/pedido/pedido.page';
|
||||
import { BookMeetingModalPage } from 'src/app/pages/gabinete-digital/expediente/book-meeting-modal/book-meeting-modal.page';
|
||||
import { ExpedientTaskModalPage } from 'src/app/pages/gabinete-digital/expediente/expedient-task-modal/expedient-task-modal.page';
|
||||
import { DiscartExpedientModalPage } from 'src/app/pages/gabinete-digital/discart-expedient-modal/discart-expedient-modal.page';
|
||||
|
||||
@Component({
|
||||
selector: 'app-pedidos',
|
||||
@@ -24,6 +27,10 @@ export class PedidosPage implements OnInit {
|
||||
|
||||
taskslist:DailyWorkTask[];
|
||||
parecerList:DailyWorkTask[];
|
||||
|
||||
parecerListResult:tasksList[] = [];
|
||||
deferimentoListResult:tasksList[] = [];
|
||||
|
||||
deferimentoList:DailyWorkTask[];
|
||||
taskType: string;
|
||||
serialNumber:string;
|
||||
@@ -32,6 +39,9 @@ export class PedidosPage implements OnInit {
|
||||
@Input() segment:string;
|
||||
@Output() openExpedientDetail:EventEmitter<any> = new EventEmitter<any>();
|
||||
|
||||
loadedAttachments:any;
|
||||
dicIndex = 0;
|
||||
|
||||
constructor(
|
||||
private processes:ProcessesService,
|
||||
private modalController: ModalController,
|
||||
@@ -62,7 +72,9 @@ export class PedidosPage implements OnInit {
|
||||
this.taskType = "Pedido de Parecer";
|
||||
this.processes.GetTasksList("Pedido de Parecer", false).subscribe(result => {
|
||||
console.log(result);
|
||||
|
||||
|
||||
this.parecerListResult =result;
|
||||
|
||||
this.parecerList = new Array();
|
||||
let res = result.reverse();
|
||||
res.forEach(element => {
|
||||
@@ -87,6 +99,8 @@ export class PedidosPage implements OnInit {
|
||||
this.taskType = "Pedido de Deferimento";
|
||||
this.processes.GetTasksList("Pedido de Deferimento", false).subscribe(result => {
|
||||
console.log(result);
|
||||
|
||||
this.deferimentoListResult =result;
|
||||
|
||||
this.deferimentoList = new Array();
|
||||
let res = result.reverse();
|
||||
@@ -144,5 +158,141 @@ export class PedidosPage implements OnInit {
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
async openExpedientActionsModal(taskAction: any, task: any) {
|
||||
//this.modalController.dismiss();
|
||||
let classs;
|
||||
if( window.innerWidth <= 800){
|
||||
classs = 'modal modal-desktop'
|
||||
} else {
|
||||
classs = 'modal modal-desktop showAsideOptions'
|
||||
}
|
||||
|
||||
let doc: tasksList;
|
||||
|
||||
if (this.segment == 'parecer') {
|
||||
doc = this.parecerListResult[ this.dicIndex];
|
||||
} else if (this.segment == 'deferimento') {
|
||||
doc = this.deferimentoListResult[ this.dicIndex];
|
||||
}
|
||||
|
||||
task = {
|
||||
serialNumber: doc.serialNumber,
|
||||
taskStartDate: doc.taskStartDate,
|
||||
isEvent: true,
|
||||
workflowInstanceDataFields: {
|
||||
FsId: doc.workflowInstanceDataFields.SourceSecFsID,
|
||||
FolderID: null,
|
||||
DocId: doc.workflowInstanceDataFields.SourceID,
|
||||
Subject: doc.workflowInstanceFolio
|
||||
},
|
||||
}
|
||||
|
||||
const modal = await this.modalController.create({
|
||||
component: ExpedientTaskModalPage,
|
||||
componentProps: {
|
||||
taskAction: taskAction,
|
||||
task: task,
|
||||
profile: this.profile,
|
||||
},
|
||||
cssClass: classs,
|
||||
});
|
||||
await modal.present();
|
||||
modal.onDidDismiss().then(res=>{
|
||||
console.log(res['data']);
|
||||
if(res['data']=='openDiscart'){
|
||||
console.log('open discart');
|
||||
|
||||
// this.distartExpedientModal();
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
async openBookMeetingModal(task: any) {
|
||||
|
||||
|
||||
let doc: tasksList;
|
||||
|
||||
if (this.segment == 'parecer') {
|
||||
doc = this.parecerListResult[ this.dicIndex];
|
||||
} else if (this.segment == 'deferimento') {
|
||||
doc = this.deferimentoListResult[ this.dicIndex];
|
||||
}
|
||||
|
||||
task = {
|
||||
serialNumber: doc.serialNumber,
|
||||
taskStartDate: doc.taskStartDate,
|
||||
isEvent: true,
|
||||
workflowInstanceDataFields: {
|
||||
FsId: doc.workflowInstanceDataFields.SourceSecFsID,
|
||||
FolderID: null,
|
||||
DocId: doc.workflowInstanceDataFields.SourceID,
|
||||
Subject: doc.workflowInstanceFolio
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
let classs;
|
||||
if( window.innerWidth <= 800) {
|
||||
classs = 'book-meeting-modal modal modal-desktop'
|
||||
} else {
|
||||
classs = 'modal modal-desktop showAsideOptions'
|
||||
}
|
||||
|
||||
const modal = await this.modalController.create({
|
||||
component: BookMeetingModalPage,
|
||||
componentProps: {
|
||||
task: task,
|
||||
},
|
||||
cssClass: classs,
|
||||
backdropDismiss: false
|
||||
});
|
||||
|
||||
await modal.present();
|
||||
modal.onDidDismiss();
|
||||
|
||||
}
|
||||
|
||||
async distartExpedientModal(){
|
||||
|
||||
let doc: tasksList;
|
||||
|
||||
if (this.segment == 'parecer') {
|
||||
doc = this.parecerListResult[ this.dicIndex];
|
||||
} else if (this.segment == 'deferimento') {
|
||||
doc = this.deferimentoListResult[ this.dicIndex];
|
||||
}
|
||||
|
||||
|
||||
const modal = await this.modalController.create({
|
||||
component: DiscartExpedientModalPage,
|
||||
componentProps: {
|
||||
serialNumber: doc.serialNumber,
|
||||
folderId: doc.workflowInstanceDataFields.FolderID,
|
||||
action: 'complete',
|
||||
},
|
||||
cssClass: 'discart-expedient-modal',
|
||||
backdropDismiss: false
|
||||
});
|
||||
|
||||
await modal.present();
|
||||
modal.onDidDismiss().then(res=>{
|
||||
if(res['data']=='close'){
|
||||
//this.close();
|
||||
/* console.log('2Expedient Discard closed2');
|
||||
this.close();
|
||||
this.openMenu(); */
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
docIndex(index: number) {
|
||||
this.dicIndex = index;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -41,17 +41,33 @@ export class HeaderPage implements OnInit {
|
||||
|
||||
async openSearch() {
|
||||
|
||||
let classs;
|
||||
let classs, showSearchInput, type;
|
||||
if(window.innerWidth < 1366) {
|
||||
classs = 'modal modal-width-100 modal-padding-top'
|
||||
showSearchInput = true
|
||||
} else {
|
||||
classs = 'modal modal-width-100 modal-padding-top modal-desktop-shadow modal-desktop-remove-background'
|
||||
showSearchInput = false
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(window.location.pathname == '/home/agenda') {
|
||||
type = "Agenda"
|
||||
} else if (window.location.pathname =='/home/gabinete-digital') {
|
||||
type = "AccoesPresidenciais & ArquivoDespachoElect"
|
||||
|
||||
} else if (window.location.pathname == '/home/publications') {
|
||||
type = "AccoesPresidenciais"
|
||||
}
|
||||
|
||||
const modal = await this.modalController.create({
|
||||
component: SearchPage,
|
||||
cssClass: classs,
|
||||
componentProps: {
|
||||
type: 'AccoesPresidenciais & ArquivoDespachoElect',
|
||||
showSearchInput: showSearchInput,
|
||||
select: false
|
||||
}
|
||||
});
|
||||
return await modal.present();
|
||||
|
||||
@@ -45,7 +45,8 @@ export class ChatOptionsPopoverPage implements OnInit {
|
||||
component: SearchPage,
|
||||
cssClass: 'group-messages modal-desktop search-modal search-modal-to-desktop',
|
||||
componentProps: {
|
||||
type: 'AccoesPresidenciais & ArquivoDespachoElect'
|
||||
type: 'AccoesPresidenciais & ArquivoDespachoElect',
|
||||
select: true
|
||||
}
|
||||
});
|
||||
await modal.present();
|
||||
|
||||
@@ -91,10 +91,8 @@
|
||||
}
|
||||
|
||||
.back-icon{
|
||||
width: 37px;
|
||||
float: left;
|
||||
font-size: 35px;
|
||||
overflow: auto;
|
||||
|
||||
}
|
||||
.div-title{
|
||||
|
||||
@@ -145,8 +145,8 @@ export class ViewPublicationsPage implements OnInit {
|
||||
componentProps:{
|
||||
publicationId: publicationId,
|
||||
},
|
||||
cssClass: 'publication-detail',
|
||||
backdropDismiss: false
|
||||
cssClass: 'publication-detail modal modal-desktop',
|
||||
//backdropDismiss: false
|
||||
});
|
||||
await modal.present();
|
||||
modal.onDidDismiss().then(()=>{
|
||||
|
||||
Reference in New Issue
Block a user