mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-20 13:26:08 +00:00
Merge branch 'developer' of https://bitbucket.org/equilibriumito/gabinete-digital into developer
This commit is contained in:
@@ -0,0 +1,16 @@
|
|||||||
|
import { TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { DocumentService } from './document.service';
|
||||||
|
|
||||||
|
describe('DocumentService', () => {
|
||||||
|
let service: DocumentService;
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
TestBed.configureTestingModule({});
|
||||||
|
service = TestBed.inject(DocumentService);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should be created', () => {
|
||||||
|
expect(service).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
import { Injectable } from '@angular/core';
|
||||||
|
import { DocumentSetUpMeeting } from '../models/CallMeeting';
|
||||||
|
import { ProcessesService } from '../services/processes.service';
|
||||||
|
|
||||||
|
@Injectable({
|
||||||
|
providedIn: 'root'
|
||||||
|
})
|
||||||
|
export class DocumentService {
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
private processes: ProcessesService
|
||||||
|
) { }
|
||||||
|
|
||||||
|
setUpMeeting(data: DocumentSetUpMeeting) {
|
||||||
|
|
||||||
|
this.processes.documentSetUpMeeting(data)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -151,9 +151,13 @@ const routes = [
|
|||||||
{
|
{
|
||||||
path: 'eliminate-event',
|
path: 'eliminate-event',
|
||||||
loadChildren: () => import('./modals/eliminate-event/eliminate-event.module').then( m => m.EliminateEventPageModule)
|
loadChildren: () => import('./modals/eliminate-event/eliminate-event.module').then( m => m.EliminateEventPageModule)
|
||||||
},
|
},
|
||||||
|
{
|
||||||
path: 'inactivity',
|
path: 'inactivity',
|
||||||
loadChildren: () => import('./pages/inactivity/inactivity.module').then( m => m.InactivityPageModule)
|
loadChildren: () => import('./pages/inactivity/inactivity.module').then( m => m.InactivityPageModule)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'document-set-up-meeting',
|
||||||
loadChildren: () => import('./modals/document-set-up-meeting/document-set-up-meeting.module').then( m => m.DocumentSetUpMeetingPageModule)
|
loadChildren: () => import('./modals/document-set-up-meeting/document-set-up-meeting.module').then( m => m.DocumentSetUpMeetingPageModule)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -162,6 +166,7 @@ const routes = [
|
|||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
path: 'chat',
|
path: 'chat',
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import { ProcessesService } from 'src/app/services/processes.service';
|
|||||||
import { InAppBrowser } from '@ionic-native/in-app-browser/ngx';
|
import { InAppBrowser } from '@ionic-native/in-app-browser/ngx';
|
||||||
import { ExpedientTaskModalPage } from 'src/app/pages/gabinete-digital/expediente/expedient-task-modal/expedient-task-modal.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 { BookMeetingModalPage } from 'src/app/pages/gabinete-digital/expediente/book-meeting-modal/book-meeting-modal.page';
|
||||||
|
import { DocumentSetUpMeetingPage } from '../document-set-up-meeting/document-set-up-meeting.page';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-document-detail',
|
selector: 'app-document-detail',
|
||||||
@@ -163,7 +164,7 @@ export class DocumentDetailPage implements OnInit {
|
|||||||
classs = 'modal modal-desktop showAsideOptions'
|
classs = 'modal modal-desktop showAsideOptions'
|
||||||
}
|
}
|
||||||
const modal = await this.modalController.create({
|
const modal = await this.modalController.create({
|
||||||
component: BookMeetingModalPage,
|
component: DocumentSetUpMeetingPage,
|
||||||
componentProps: {
|
componentProps: {
|
||||||
task: task,
|
task: task,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { Routes, RouterModule } from '@angular/router';
|
||||||
|
|
||||||
|
import { DocumentSetUpMeetingPage } from './document-set-up-meeting.page';
|
||||||
|
|
||||||
|
const routes: Routes = [
|
||||||
|
{
|
||||||
|
path: '',
|
||||||
|
component: DocumentSetUpMeetingPage
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [RouterModule.forChild(routes)],
|
||||||
|
exports: [RouterModule],
|
||||||
|
})
|
||||||
|
export class DocumentSetUpMeetingPageRoutingModule {}
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { CommonModule } from '@angular/common';
|
||||||
|
import { FormsModule } from '@angular/forms';
|
||||||
|
import { IonicModule } from '@ionic/angular';
|
||||||
|
|
||||||
|
import { DocumentSetUpMeetingPageRoutingModule } from './document-set-up-meeting-routing.module';
|
||||||
|
import { DocumentSetUpMeetingPage } from './document-set-up-meeting.page';
|
||||||
|
import { EmptyContainerPageModule } from 'src/app/shared/empty-container/empty-container.module';
|
||||||
|
import { BtnModalDismissPageModule } from 'src/app/shared/btn-modal-dismiss/btn-modal-dismiss.module';
|
||||||
|
import { AttendeeModalPageModule } from 'src/app/shared/event/attendee-modal/attendee-modal.module';
|
||||||
|
|
||||||
|
|
||||||
|
import { MatNativeDateModule } from '@angular/material/core';
|
||||||
|
import {
|
||||||
|
NgxMatDateFormats,
|
||||||
|
NgxMatDatetimePickerModule,
|
||||||
|
NgxMatNativeDateModule,
|
||||||
|
NgxMatTimepickerModule,
|
||||||
|
NGX_MAT_DATE_FORMATS
|
||||||
|
} from '@angular-material-components/datetime-picker';
|
||||||
|
import { ReactiveFormsModule } from '@angular/forms';
|
||||||
|
import { MatButtonModule } from '@angular/material/button';
|
||||||
|
import { MatSelectModule } from '@angular/material/select';
|
||||||
|
import { NgxMatMomentModule } from '@angular-material-components/moment-adapter';
|
||||||
|
import { MAT_DATE_LOCALE } from '@angular/material/core';
|
||||||
|
import { MatDatepickerModule } from '@angular/material/datepicker';
|
||||||
|
import { MatInputModule } from '@angular/material/input';
|
||||||
|
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
CommonModule,
|
||||||
|
FormsModule,
|
||||||
|
IonicModule,
|
||||||
|
DocumentSetUpMeetingPageRoutingModule,
|
||||||
|
//
|
||||||
|
|
||||||
|
EmptyContainerPageModule,
|
||||||
|
|
||||||
|
AttendeeModalPageModule,
|
||||||
|
EmptyContainerPageModule,
|
||||||
|
BtnModalDismissPageModule,
|
||||||
|
// Angular material
|
||||||
|
MatDatepickerModule,
|
||||||
|
MatInputModule,
|
||||||
|
MatNativeDateModule,
|
||||||
|
NgxMatDatetimePickerModule,
|
||||||
|
NgxMatTimepickerModule,
|
||||||
|
NgxMatNativeDateModule,
|
||||||
|
NgxMatMomentModule,
|
||||||
|
MatSelectModule,
|
||||||
|
MatButtonModule,
|
||||||
|
ReactiveFormsModule
|
||||||
|
],
|
||||||
|
declarations: [DocumentSetUpMeetingPage]
|
||||||
|
})
|
||||||
|
export class DocumentSetUpMeetingPageModule {}
|
||||||
@@ -0,0 +1,355 @@
|
|||||||
|
<ion-content>
|
||||||
|
<div class="main-content d-flex height-100">
|
||||||
|
|
||||||
|
<div class="content d-flex flex-column width-100 height-100 ">
|
||||||
|
<div class="header-content header-default-padding">
|
||||||
|
<div class="header-title" >
|
||||||
|
|
||||||
|
<!-- *ngIf="p.userRole('PR')" -->
|
||||||
|
<!-- *ngIf="p.role(['PR','MD']).permissionAnyOf(['view','edit'])" -->
|
||||||
|
|
||||||
|
<label >Convocar Reunião</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="overflow-y-auto content-default-padding">
|
||||||
|
|
||||||
|
<div class="ion-item-container width-100" [class.input-error]="Form?.get('Subject')?.invalid && validateFrom ">
|
||||||
|
<ion-input placeholder="Assunto*" [(ngModel)]="postData.Subject"></ion-input>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div *ngIf="Form && validateFrom" >
|
||||||
|
<div *ngIf="Form.get('Subject').invalid " class="input-errror-message">
|
||||||
|
<div *ngIf="Form.get('Subject').errors?.required">
|
||||||
|
Campo obrigatório.
|
||||||
|
</div>
|
||||||
|
<div *ngIf="Form.get('Subject').errors?.minlength">
|
||||||
|
O campo deve ter pelo menos 4 caracteres.
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container-div width-100">
|
||||||
|
<div class="ion-item-class-2 width-100">
|
||||||
|
<div class="ion-icon-class">
|
||||||
|
<ion-icon slot="start" src="assets/images/icons-location.svg"></ion-icon>
|
||||||
|
</div>
|
||||||
|
<div class="ion-input-class" [class.input-error]="Form?.get('Location')?.invalid && validateFrom ">
|
||||||
|
<ion-input placeholder="Localização*" [(ngModel)]="postData.Location"></ion-input>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- <div *ngIf="Form && validateFrom" >
|
||||||
|
<div *ngIf="Form.get('Location').invalid " class="input-errror-message">
|
||||||
|
<div *ngIf="Form.get('Location').errors?.required">
|
||||||
|
Campo obrigatório.
|
||||||
|
</div>
|
||||||
|
<div *ngIf="Form.get('Location').errors?.minlength">
|
||||||
|
O campo deve ter pelo menos 4 caracteres.
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div> -->
|
||||||
|
|
||||||
|
<div class="container-div">
|
||||||
|
<div class="ion-item-class-2">
|
||||||
|
<div class="ion-icon-class">
|
||||||
|
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
|
||||||
|
</div>
|
||||||
|
<div class="ion-input-class" >
|
||||||
|
<ion-select
|
||||||
|
class="d-block d-md-none"
|
||||||
|
[(ngModel)]="postData.CalendarName"
|
||||||
|
placeholder="Selecione repetição"
|
||||||
|
interface="action-sheet"
|
||||||
|
Cancel-text="Cancelar" required>
|
||||||
|
<ion-select-option value="Oficial">Oficial</ion-select-option>
|
||||||
|
<ion-select-option value="Pessoal">Pessoal</ion-select-option>
|
||||||
|
</ion-select>
|
||||||
|
|
||||||
|
|
||||||
|
<mat-form-field floatLabel="never" appearance="none" class="d-none d-md-block width-100">
|
||||||
|
<mat-select placeholder="Selecione agenda" [(ngModel)]="postData.CalendarName" >
|
||||||
|
<mat-option value="Oficial">
|
||||||
|
Oficial
|
||||||
|
</mat-option>
|
||||||
|
<mat-option value="Pessoal">
|
||||||
|
Pessoal
|
||||||
|
</mat-option>
|
||||||
|
</mat-select>
|
||||||
|
</mat-form-field>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="container-div">
|
||||||
|
<div class="ion-item-class-2">
|
||||||
|
<div class="ion-icon-class">
|
||||||
|
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
|
||||||
|
</div>
|
||||||
|
<div class="ion-input-class" [class.input-error]="Form?.get('Categories')?.invalid && validateFrom ">
|
||||||
|
|
||||||
|
<ion-select placeholder="Selecione tipo de evento*"
|
||||||
|
class="d-block d-md-none"
|
||||||
|
[(ngModel)]="postData.Category"
|
||||||
|
interface="action-sheet"
|
||||||
|
Cancel-text="Cancelar" required>
|
||||||
|
<ion-select-option value="Reunião">Reunião</ion-select-option>
|
||||||
|
<ion-select-option value="Viagem">Viagem</ion-select-option>
|
||||||
|
<ion-select-option value="Conferência">Conferência</ion-select-option>
|
||||||
|
<ion-select-option value="Encontro">Encontro</ion-select-option>
|
||||||
|
</ion-select>
|
||||||
|
|
||||||
|
|
||||||
|
<mat-form-field class="d-none d-md-block" appearance="none" class="width-100" placeholder="Sample Type" required>
|
||||||
|
<!-- <input matInput type="text" > -->
|
||||||
|
<mat-select [(ngModel)]="postData.Category" >
|
||||||
|
<mat-option value="Reunião">
|
||||||
|
Reunião
|
||||||
|
</mat-option>
|
||||||
|
<mat-option value="Viagem">
|
||||||
|
Viagem
|
||||||
|
</mat-option>
|
||||||
|
<mat-option value="Conferência">
|
||||||
|
Conferência
|
||||||
|
</mat-option>
|
||||||
|
<mat-option value="Encontro">
|
||||||
|
Encontro
|
||||||
|
</mat-option>
|
||||||
|
</mat-select>
|
||||||
|
</mat-form-field>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container-div">
|
||||||
|
<div class="ion-item-class-2">
|
||||||
|
<div class="ion-icon-class">
|
||||||
|
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
|
||||||
|
</div>
|
||||||
|
<div class="ion-input-class" [class.input-error]="Form?.get('Date')?.invalid && validateFrom ">
|
||||||
|
<ion-datetime
|
||||||
|
class="d-block d-md-none"
|
||||||
|
placeholder="Início*"
|
||||||
|
[(ngModel)]="postData.StartDate"
|
||||||
|
displayFormat="D MMM YYYY H:mm"
|
||||||
|
minuteValues="0,15,30,45"
|
||||||
|
monthShortNames="Jan, Fev, Mar, Abr, Mai, Jun, Jul, Aug, Sep, Out, Nov, Dez"
|
||||||
|
value="2020-11-19T11:06Z">
|
||||||
|
</ion-datetime>
|
||||||
|
|
||||||
|
<mat-form-field appearance="none" class="width-100 date-hour-picker d-md-block">
|
||||||
|
<input matInput [ngxMatDatetimePicker]="picker1"
|
||||||
|
placeholder="Choose a date*"
|
||||||
|
[formControl]="dateControlStart"
|
||||||
|
[disabled]="disabled"
|
||||||
|
>
|
||||||
|
<mat-datepicker-toggle id="new-inicio" matSuffix [for]="picker1"></mat-datepicker-toggle>
|
||||||
|
<ngx-mat-datetime-picker #picker1
|
||||||
|
[showSpinners]="showSpinners"
|
||||||
|
[showSeconds]="showSeconds"
|
||||||
|
[stepHour]="stepHour" [stepMinute]="stepMinute"
|
||||||
|
[stepSecond]="stepSecond"
|
||||||
|
[touchUi]="touchUi">
|
||||||
|
</ngx-mat-datetime-picker>
|
||||||
|
</mat-form-field>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container-div">
|
||||||
|
<div class="ion-item-class-2">
|
||||||
|
<div class="ion-icon-class">
|
||||||
|
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
|
||||||
|
</div>
|
||||||
|
<div class="ion-input-class flex-grow-1" [class.input-error]="Form?.get('Date')?.invalid && validateFrom ">
|
||||||
|
<ion-datetime
|
||||||
|
class="d-block d-md-none"
|
||||||
|
placeholder="Fim*"
|
||||||
|
[(ngModel)]="postData.EndDate"
|
||||||
|
displayFormat="D MMM YYYY H:mm"
|
||||||
|
minuteValues="0,15,30,45"
|
||||||
|
monthShortNames="Jan, Fev, Mar, Abr, Mai, Jun, Jul, Aug, Sep, Out, Nov, Dez"
|
||||||
|
value="2020-11-19T11:06Z">
|
||||||
|
</ion-datetime>
|
||||||
|
|
||||||
|
<mat-form-field appearance="none" class="date-hour-picker width-100 d-none d-md-block">
|
||||||
|
<input matInput [ngxMatDatetimePicker]="fim"
|
||||||
|
placeholder="Choose a date*S"
|
||||||
|
[formControl]="dateControlEnd"
|
||||||
|
[disabled]="disabled"
|
||||||
|
>
|
||||||
|
<mat-datepicker-toggle id="new-fim" matSuffix [for]="fim"></mat-datepicker-toggle>
|
||||||
|
<ngx-mat-datetime-picker #fim
|
||||||
|
[showSpinners]="showSpinners"
|
||||||
|
[showSeconds]="showSeconds"
|
||||||
|
[stepHour]="stepHour" [stepMinute]="stepMinute"
|
||||||
|
[stepSecond]="stepSecond"
|
||||||
|
[touchUi]="touchUi">
|
||||||
|
</ngx-mat-datetime-picker>
|
||||||
|
</mat-form-field>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container-div">
|
||||||
|
<div class="ion-item-class-2">
|
||||||
|
<div class="ion-icon-class">
|
||||||
|
<ion-icon slot="start" src="assets/images/icons-refresh.svg"></ion-icon>
|
||||||
|
</div>
|
||||||
|
<div class="ion-input-class">
|
||||||
|
<ion-select
|
||||||
|
class="d-block d-md-none"
|
||||||
|
[(ngModel)]="postData.IsRecurring"
|
||||||
|
placeholder="Selecione repetição*"
|
||||||
|
value="false"
|
||||||
|
interface="action-sheet"
|
||||||
|
Cancel-text="Cancelar"
|
||||||
|
required
|
||||||
|
|
||||||
|
>
|
||||||
|
<ion-select-option value="false">Não se repete</ion-select-option>
|
||||||
|
<ion-select-option value="true">Repete</ion-select-option>
|
||||||
|
<!-- <ion-select-option value="true">Semanal</ion-select-option>
|
||||||
|
<ion-select-option value="true">Diário</ion-select-option>
|
||||||
|
<ion-select-option value="true">Anual</ion-select-option> -->
|
||||||
|
</ion-select>
|
||||||
|
|
||||||
|
|
||||||
|
<mat-form-field
|
||||||
|
floatLabel="never"
|
||||||
|
class="width-100 d-none d-md-block"
|
||||||
|
value="false"
|
||||||
|
interface="action-sheet"
|
||||||
|
required
|
||||||
|
appearance="none"
|
||||||
|
>
|
||||||
|
<mat-select placeholder="Selecione repetição*" [(ngModel)]="postData.IsRecurring" >
|
||||||
|
<mat-option value="false">
|
||||||
|
Não se repete
|
||||||
|
</mat-option>
|
||||||
|
<mat-option value="true">
|
||||||
|
Repete
|
||||||
|
</mat-option>
|
||||||
|
</mat-select>
|
||||||
|
</mat-form-field>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="container-div">
|
||||||
|
<div class="ion-item-class-2">
|
||||||
|
<div class="ion-icon-class">
|
||||||
|
<ion-icon slot="start" src="assets/images/icons-person.svg"></ion-icon>
|
||||||
|
</div>
|
||||||
|
<div class="ion-input-class-no-height" [class.input-error]="Form?.get('participantes')?.invalid && validateFrom ">
|
||||||
|
<div class="list-people">
|
||||||
|
<ion-item lines="none">
|
||||||
|
<ion-list>
|
||||||
|
<ion-label *ngIf="taskParticipants?.length < 1" class="list-people-title">Adicionar intervenientes*</ion-label>
|
||||||
|
<ion-label *ngFor="let participant of taskParticipants">{{participant.Name}}</ion-label>
|
||||||
|
</ion-list>
|
||||||
|
</ion-item>
|
||||||
|
</div>
|
||||||
|
<div class="add-people" (click)="addParticipants()">
|
||||||
|
<ion-icon slot="start" src="assets/images/icons-arrow-forward.svg"></ion-icon>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container-div">
|
||||||
|
<div class="ion-item-class-2">
|
||||||
|
<div class="ion-icon-class">
|
||||||
|
<ion-icon slot="start" src="assets/images/icons-people-cc.svg"></ion-icon>
|
||||||
|
</div>
|
||||||
|
<div class="ion-input-class-no-height">
|
||||||
|
<div class="list-people">
|
||||||
|
<ion-item lines="none">
|
||||||
|
<ion-list>
|
||||||
|
<ion-label *ngIf="taskParticipantsCc?.length < 1" class="list-people-title">Com conhecimento</ion-label>
|
||||||
|
<ion-label *ngFor="let participant of taskParticipantsCc">{{participant.Name}}</ion-label>
|
||||||
|
</ion-list>
|
||||||
|
</ion-item>
|
||||||
|
</div>
|
||||||
|
<div class="add-people" (click)="addParticipantsCc()">
|
||||||
|
<ion-icon slot="start" src="assets/images/icons-arrow-forward.svg"></ion-icon>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container-div">
|
||||||
|
<div class="ion-item-class-2 d-flex">
|
||||||
|
<div class="ion-icon-class">
|
||||||
|
<ion-icon slot="start" src="assets/images/icons-description.svg"></ion-icon>
|
||||||
|
</div>
|
||||||
|
<div class="ion-input-class-no-height width-100">
|
||||||
|
<ion-textarea [(ngModel)]="postData.Body.Text" placeholder="Detalhes" rows="6" cols="20"></ion-textarea>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="ion-item-container-no-border cursor-pointer" (click)="getDoc()">
|
||||||
|
<ion-label>
|
||||||
|
<div class="attach-icon">
|
||||||
|
<ion-icon src="assets/images/icons-attach-doc.svg"></ion-icon>
|
||||||
|
</div>
|
||||||
|
<div class="attach-document">
|
||||||
|
<ion-label>Anexar Documentos</ion-label>
|
||||||
|
</div>
|
||||||
|
</ion-label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="list " *ngFor="let document of documents; let i = index" >
|
||||||
|
<ion-list>
|
||||||
|
<ion-item>
|
||||||
|
<ion-label>
|
||||||
|
<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>
|
||||||
|
|
||||||
|
<div class="aside-righ flex-grow-1">
|
||||||
|
<app-empty-container
|
||||||
|
[texto]="emptyTextDescription"
|
||||||
|
*ngIf="!showAttendees"
|
||||||
|
class="d-flex height-100 flex-column">
|
||||||
|
</app-empty-container>
|
||||||
|
<app-attendee-modal class=" d-flex flex-column height-100"
|
||||||
|
*ngIf="showAttendees"
|
||||||
|
[footer]="false"
|
||||||
|
[taskParticipants]="taskParticipants"
|
||||||
|
[taskParticipantsCc]="taskParticipantsCc"
|
||||||
|
[adding]="adding"
|
||||||
|
(dynamicSetIntervenient)="dynamicSetIntervenient($event)"
|
||||||
|
>
|
||||||
|
</app-attendee-modal>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</ion-content>
|
||||||
|
<ion-footer>
|
||||||
|
<div class="buttons">
|
||||||
|
<button class="btn-cancel" shape="round" (click)="close()">Cancelar</button>
|
||||||
|
<button class="btn-ok" shape="round" (click)="saveTask()">Gravar</button>
|
||||||
|
</div>
|
||||||
|
</ion-footer>
|
||||||
|
|
||||||
@@ -0,0 +1,209 @@
|
|||||||
|
.content{
|
||||||
|
margin: 0;
|
||||||
|
float: left;
|
||||||
|
|
||||||
|
.header-content{
|
||||||
|
}
|
||||||
|
.header-title{
|
||||||
|
font-family: Roboto;
|
||||||
|
font-size: 25px;
|
||||||
|
padding: 0;
|
||||||
|
color:#000;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ion-item-container{
|
||||||
|
margin: 15px auto;
|
||||||
|
border: 1px solid #ebebeb;
|
||||||
|
border-radius: 5px;
|
||||||
|
padding-left: 10px;
|
||||||
|
|
||||||
|
}
|
||||||
|
.ion-item-container-no-border{
|
||||||
|
margin: 0px auto;
|
||||||
|
padding: 0 !important;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
.container-div{
|
||||||
|
margin-bottom: 15px;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
.ion-item-class-2{
|
||||||
|
margin: 0px auto;
|
||||||
|
}
|
||||||
|
.ion-icon-class{
|
||||||
|
width: 45px;
|
||||||
|
height: 45px;
|
||||||
|
float: left;
|
||||||
|
padding: 10px;
|
||||||
|
font-size: 25px;
|
||||||
|
}
|
||||||
|
ion-select{
|
||||||
|
padding-left: 5px;
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
.ion-input-class{
|
||||||
|
width: calc(100% - 45px);
|
||||||
|
height: 45px;
|
||||||
|
border: 1px solid #ebebeb;
|
||||||
|
border-radius: 5px;
|
||||||
|
padding-left: 5px;
|
||||||
|
padding-right: 10px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
.ion-input-class-no-height{
|
||||||
|
border: 1px solid #ebebeb;
|
||||||
|
border-radius: 5px;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
.list-people{
|
||||||
|
width: 256px;
|
||||||
|
float: left;
|
||||||
|
|
||||||
|
}
|
||||||
|
.add-people{
|
||||||
|
width: 45px;
|
||||||
|
float: right;
|
||||||
|
overflow: auto;
|
||||||
|
font-size: 25px;
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
.list-people-title{
|
||||||
|
/* font-size: 13px; */
|
||||||
|
color: #a3a3a3;
|
||||||
|
}
|
||||||
|
.attach-document{
|
||||||
|
font-size: 15px;
|
||||||
|
color: #0d89d1;
|
||||||
|
margin: 5px 5px 5px 10px;
|
||||||
|
padding: 5px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.container-footer{
|
||||||
|
margin:0 auto;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
.button-cancel {
|
||||||
|
width: 170px;
|
||||||
|
height: 44px;
|
||||||
|
border-radius: 22.5px;
|
||||||
|
--background: #e0e9ee;
|
||||||
|
--color: #061b52;
|
||||||
|
margin:10px;
|
||||||
|
}
|
||||||
|
.button-save {
|
||||||
|
width: 170px;
|
||||||
|
height: 44px;
|
||||||
|
border-radius: 22.5px;
|
||||||
|
--background: #42b9fe;
|
||||||
|
--color:#ffffff;
|
||||||
|
margin:10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-input{
|
||||||
|
width: 100%;
|
||||||
|
border: 1px solid #ebebeb;
|
||||||
|
margin: 0px 15px 15px 0px;
|
||||||
|
padding: 0 !important;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Error Messages */
|
||||||
|
.error{
|
||||||
|
color:red;
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: bold;
|
||||||
|
padding-bottom: 20px;
|
||||||
|
}
|
||||||
|
.span-color{
|
||||||
|
color:red;
|
||||||
|
}
|
||||||
|
.buttons{
|
||||||
|
display: flex;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
|
||||||
|
import { IonicModule } from '@ionic/angular';
|
||||||
|
|
||||||
|
import { DocumentSetUpMeetingPage } from './document-set-up-meeting.page';
|
||||||
|
|
||||||
|
describe('DocumentSetUpMeetingPage', () => {
|
||||||
|
let component: DocumentSetUpMeetingPage;
|
||||||
|
let fixture: ComponentFixture<DocumentSetUpMeetingPage>;
|
||||||
|
|
||||||
|
beforeEach(waitForAsync(() => {
|
||||||
|
TestBed.configureTestingModule({
|
||||||
|
declarations: [ DocumentSetUpMeetingPage ],
|
||||||
|
imports: [IonicModule.forRoot()]
|
||||||
|
}).compileComponents();
|
||||||
|
|
||||||
|
fixture = TestBed.createComponent(DocumentSetUpMeetingPage);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -0,0 +1,357 @@
|
|||||||
|
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||||
|
import { ActivatedRoute, Router } from '@angular/router';
|
||||||
|
import { AnimationController, ModalController, NavParams } from '@ionic/angular';
|
||||||
|
import { Event } from 'src/app/models/event.model'
|
||||||
|
import { EventBody } from 'src/app/models/eventbody.model';
|
||||||
|
import { ProcessesService } from 'src/app/services/processes.service';
|
||||||
|
import { EventPerson } from 'src/app/models/eventperson.model';
|
||||||
|
import { EventsService } from 'src/app/services/events.service';
|
||||||
|
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';
|
||||||
|
import { User } from 'src/app/models/user.model';
|
||||||
|
import { AuthService } from 'src/app/services/auth.service';
|
||||||
|
import { AttendeesPageModal } from 'src/app/pages/events/attendees/attendees.page';
|
||||||
|
import { ToastService } from 'src/app/services/toast.service';
|
||||||
|
import { FormControl, FormGroup, Validators } from '@angular/forms';
|
||||||
|
import * as _moment from 'moment';
|
||||||
|
import * as _rollupMoment from 'moment';
|
||||||
|
import { NgxMatDateFormats } from '@angular-material-components/datetime-picker';
|
||||||
|
import { NGX_MAT_DATE_FORMATS } from '@angular-material-components/datetime-picker';
|
||||||
|
import { MAT_DATE_LOCALE } from '@angular/material/core';
|
||||||
|
import { DiscartExpedientModalPage } from 'src/app/pages/gabinete-digital/discart-expedient-modal/discart-expedient-modal.page';
|
||||||
|
import { DocumentService } from 'src/app/Rules/document.service';
|
||||||
|
|
||||||
|
const moment = _rollupMoment || _moment;
|
||||||
|
|
||||||
|
const CUSTOM_DATE_FORMATS: NgxMatDateFormats = {
|
||||||
|
parse: {
|
||||||
|
dateInput: "YYYY-MMMM-DD HH:mm"
|
||||||
|
},
|
||||||
|
display: {
|
||||||
|
dateInput: "DD MMM YYYY H:mm",
|
||||||
|
monthYearLabel: "MMM YYYY",
|
||||||
|
dateA11yLabel: "LL",
|
||||||
|
monthYearA11yLabel: "MMMM YYYY"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-document-set-up-meeting',
|
||||||
|
templateUrl: './document-set-up-meeting.page.html',
|
||||||
|
styleUrls: ['./document-set-up-meeting.page.scss'],
|
||||||
|
})
|
||||||
|
export class DocumentSetUpMeetingPage implements OnInit {
|
||||||
|
|
||||||
|
public date: any;
|
||||||
|
public disabled = false;
|
||||||
|
public showSpinners = true;
|
||||||
|
public showSeconds = false;
|
||||||
|
public touchUi = false;
|
||||||
|
public enableMeridian = false;
|
||||||
|
public minDate = new Date();
|
||||||
|
|
||||||
|
public stepHour = 1;
|
||||||
|
public stepMinute = 5;
|
||||||
|
public stepSecond = 5;
|
||||||
|
|
||||||
|
public dateControlStart = new FormControl(moment("DD MM YYYY hh"));
|
||||||
|
public dateControlEnd = new FormControl(moment("DD MM YYYY hh"));
|
||||||
|
|
||||||
|
p: any = {}
|
||||||
|
|
||||||
|
Form: FormGroup;
|
||||||
|
validateFrom = false
|
||||||
|
|
||||||
|
showLoader = false
|
||||||
|
|
||||||
|
get dateStart () {
|
||||||
|
if( window.innerWidth < 801) {
|
||||||
|
return this.postData.StartDate;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
return this.dateControlStart.value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
get dateEnd () {
|
||||||
|
if( window.innerWidth < 801) {
|
||||||
|
return this.postData.EndDate;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
return this.dateControlEnd.value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@ViewChild('picker') picker: any;
|
||||||
|
@ViewChild('fim') fim: any;
|
||||||
|
@ViewChild('inicio') inicio: any;
|
||||||
|
@ViewChild('picker1') picker1: any;
|
||||||
|
|
||||||
|
task: any;
|
||||||
|
|
||||||
|
taskParticipants: EventPerson[] = [];
|
||||||
|
taskParticipantsCc: EventPerson[] = [];
|
||||||
|
|
||||||
|
taskDocId:string;
|
||||||
|
loadedAttachments:any;
|
||||||
|
documents:SearchDocument[] = [];
|
||||||
|
|
||||||
|
adding: "intervenient" | "CC" = "intervenient";
|
||||||
|
|
||||||
|
postData: Event;
|
||||||
|
eventBody: EventBody;
|
||||||
|
|
||||||
|
formLocationSatus: boolean = false;
|
||||||
|
showAttendees= false;
|
||||||
|
loggeduser: User;
|
||||||
|
emptyTextDescription = "Sem intervenientes selecionados";
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
private modalController: ModalController,
|
||||||
|
private router:Router,
|
||||||
|
private navParams: NavParams,
|
||||||
|
private processes:ProcessesService,
|
||||||
|
private attachmentsService: AttachmentsService,
|
||||||
|
private calendarService: EventsService,
|
||||||
|
authService: AuthService,
|
||||||
|
private animationController: AnimationController,
|
||||||
|
private toastService: ToastService,
|
||||||
|
private activatedRoute: ActivatedRoute,
|
||||||
|
private documentService: DocumentService
|
||||||
|
) {
|
||||||
|
|
||||||
|
this.loggeduser = authService.ValidatedUser;
|
||||||
|
this.task = this.navParams.get('task');
|
||||||
|
this.postData = new Event();
|
||||||
|
this.eventBody = { BodyType : "1", Text : ""};
|
||||||
|
this.postData.Body = this.eventBody;
|
||||||
|
|
||||||
|
/* Initialize 'Subject' with the title of the expedient */
|
||||||
|
this.postData.Subject = this.task.Folio;
|
||||||
|
this.postData.CalendarName = "Oficial";
|
||||||
|
|
||||||
|
this.postData.Category = 'Reunião'
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnInit() {
|
||||||
|
this.adding = "intervenient";
|
||||||
|
console.log(this.task);
|
||||||
|
this.getAttachments();
|
||||||
|
this.setDefaultTime()
|
||||||
|
}
|
||||||
|
|
||||||
|
setDefaultTime() {
|
||||||
|
this.postData.StartDate = new Date()
|
||||||
|
this.postData.EndDate = (new Date(new Date().getTime() + 15 * 60000))
|
||||||
|
}
|
||||||
|
|
||||||
|
getAttachments() {
|
||||||
|
this.attachmentsService.getAttachmentsBySerial(this.task.SerialNumber).subscribe(res=>{
|
||||||
|
this.loadedAttachments = res;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
close() {
|
||||||
|
this.modalController.dismiss(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
goBack() {
|
||||||
|
this.modalController.dismiss(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
runValidation() {
|
||||||
|
this.validateFrom = true
|
||||||
|
}
|
||||||
|
|
||||||
|
get dateValid() {
|
||||||
|
if (window.innerWidth <= 800) {
|
||||||
|
return this.postData.StartDate < this.postData.EndDate? ['ok']: []
|
||||||
|
} else {
|
||||||
|
return ['ok']
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
injectValidation() {
|
||||||
|
|
||||||
|
this.Form = new FormGroup({
|
||||||
|
Subject: new FormControl(this.postData.Subject, [
|
||||||
|
// Validators.required,
|
||||||
|
// Validators.minLength(4)
|
||||||
|
]),
|
||||||
|
Location: new FormControl(this.postData.Location, [
|
||||||
|
// Validators.required,
|
||||||
|
]),
|
||||||
|
CalendarName: new FormControl(this.postData.CalendarName, [
|
||||||
|
// Validators.required
|
||||||
|
]),
|
||||||
|
Date: new FormControl(this.dateValid, [
|
||||||
|
Validators.required
|
||||||
|
]),
|
||||||
|
participantes: new FormControl(this.taskParticipants, [
|
||||||
|
// Validators.required
|
||||||
|
]),
|
||||||
|
Categories: new FormControl(this.postData.Category, [
|
||||||
|
// Validators.required
|
||||||
|
]),
|
||||||
|
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
async saveTask(){
|
||||||
|
|
||||||
|
if(this.loggeduser.Profile == 'MDGPR') {
|
||||||
|
this.injectValidation()
|
||||||
|
this.runValidation()
|
||||||
|
}
|
||||||
|
|
||||||
|
let Attendees = this.taskParticipants.concat(this.taskParticipantsCc);
|
||||||
|
|
||||||
|
this.eventBody={
|
||||||
|
BodyType: '1',
|
||||||
|
Text: this.postData.Body.Text,
|
||||||
|
}
|
||||||
|
|
||||||
|
this.postData = {
|
||||||
|
EventId: '',
|
||||||
|
Subject: this.postData.Subject,
|
||||||
|
Body: this.eventBody,
|
||||||
|
Location: this.postData.Location,
|
||||||
|
CalendarId: '',
|
||||||
|
CalendarName: this.postData.CalendarName,
|
||||||
|
StartDate: this.dateStart,
|
||||||
|
EndDate: this.dateEnd,
|
||||||
|
EventType: 'Reunião',
|
||||||
|
Attendees: Attendees,
|
||||||
|
IsMeeting: false,
|
||||||
|
IsRecurring: false,
|
||||||
|
AppointmentState: 0,
|
||||||
|
TimeZone: 'UTC',
|
||||||
|
Organizer: null,
|
||||||
|
Category: 'Reunião',
|
||||||
|
HasAttachments: true,
|
||||||
|
EventRecurrence: null,
|
||||||
|
}
|
||||||
|
|
||||||
|
// this.documentService.setUpMeeting()
|
||||||
|
}
|
||||||
|
|
||||||
|
async addParticipants() {
|
||||||
|
|
||||||
|
this.adding = "intervenient";
|
||||||
|
|
||||||
|
if(window.innerWidth <= 801){
|
||||||
|
const modal = await this.modalController.create({
|
||||||
|
component: AttendeesPageModal,
|
||||||
|
componentProps: {
|
||||||
|
adding: this.adding,
|
||||||
|
taskParticipants: this.taskParticipants,
|
||||||
|
taskParticipantsCc: this.taskParticipantsCc
|
||||||
|
},
|
||||||
|
cssClass: 'modal modal-desktop',
|
||||||
|
backdropDismiss: false
|
||||||
|
});
|
||||||
|
|
||||||
|
await modal.present();
|
||||||
|
|
||||||
|
modal.onDidDismiss().then((data) => {
|
||||||
|
|
||||||
|
if(data) {
|
||||||
|
data = data['data'];
|
||||||
|
|
||||||
|
const newAttendees: EventPerson[] = data['taskParticipants'];
|
||||||
|
const newAttendeesCC: EventPerson[] = data['taskParticipantsCc'];
|
||||||
|
|
||||||
|
this.setIntervenient(newAttendees);
|
||||||
|
this.setIntervenientCC(newAttendeesCC);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
} else {
|
||||||
|
this.showAttendees = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async addParticipantsCc() {
|
||||||
|
|
||||||
|
this.adding = "CC";
|
||||||
|
|
||||||
|
if(window.innerWidth <= 800) {
|
||||||
|
const modal = await this.modalController.create({
|
||||||
|
component: AttendeesPageModal,
|
||||||
|
componentProps: {
|
||||||
|
adding: this.adding,
|
||||||
|
taskParticipants: this.taskParticipants,
|
||||||
|
taskParticipantsCc: this.taskParticipantsCc
|
||||||
|
},
|
||||||
|
cssClass: 'modal modal-desktop',
|
||||||
|
backdropDismiss: false
|
||||||
|
});
|
||||||
|
|
||||||
|
await modal.present();
|
||||||
|
|
||||||
|
modal.onDidDismiss().then((data) => {
|
||||||
|
|
||||||
|
if(data){
|
||||||
|
data = data['data'];
|
||||||
|
|
||||||
|
const newAttendees: EventPerson[] = data['taskParticipants'];
|
||||||
|
const newAttendeesCC: EventPerson[] = data['taskParticipantsCc'];
|
||||||
|
|
||||||
|
this.setIntervenient(newAttendees);
|
||||||
|
this.setIntervenientCC(newAttendeesCC);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.showAttendees = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async getDoc() {
|
||||||
|
const modal = await this.modalController.create({
|
||||||
|
component: SearchPage,
|
||||||
|
cssClass: 'modal-width-100-width-background modal',
|
||||||
|
componentProps: {
|
||||||
|
type: 'AccoesPresidenciais & ArquivoDespachoElect',
|
||||||
|
showSearchInput: true,
|
||||||
|
select: 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();
|
||||||
|
if(!this.postData.Location && formLocation.length <= 0){
|
||||||
|
this.formLocationSatus = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dynamicSetIntervenient({taskParticipants, taskParticipantsCc}) {
|
||||||
|
this.taskParticipants = taskParticipants;
|
||||||
|
this.taskParticipantsCc = taskParticipantsCc;
|
||||||
|
}
|
||||||
|
|
||||||
|
goToGabinete() {
|
||||||
|
this.router.navigate(['/home/gabinete-digital']);
|
||||||
|
}
|
||||||
|
|
||||||
|
setIntervenient(data) {
|
||||||
|
this.taskParticipants = data;
|
||||||
|
}
|
||||||
|
|
||||||
|
setIntervenientCC(data) {
|
||||||
|
this.taskParticipantsCc = data;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
export class CallMeeting {
|
export class DocumentSetUpMeeting {
|
||||||
"EventProcess": {
|
"EventProcess": {
|
||||||
"SerialNumber": "sample string 1",
|
"SerialNumber": "sample string 1",
|
||||||
"Body": "sample string 2",
|
"Body": "sample string 2",
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { AuthService } from '../services/auth.service';
|
|||||||
import { User } from '../models/user.model';
|
import { User } from '../models/user.model';
|
||||||
import { environment } from 'src/environments/environment';
|
import { environment } from 'src/environments/environment';
|
||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
import { CallMeeting } from '../models/CallMeeting';
|
import { DocumentSetUpMeeting } from '../models/CallMeeting';
|
||||||
import { Excludetask } from '../models/Excludetask';
|
import { Excludetask } from '../models/Excludetask';
|
||||||
|
|
||||||
@Injectable({
|
@Injectable({
|
||||||
@@ -275,14 +275,15 @@ export class ProcessesService {
|
|||||||
return this.http.get<any>(`${geturl}`, options);
|
return this.http.get<any>(`${geturl}`, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
CallMeeting(body: CallMeeting) {
|
documentSetUpMeeting(body: DocumentSetUpMeeting) {
|
||||||
const geturl = environment.apiURL + 'Processes/CallMeeting';
|
|
||||||
|
let url = environment.apiURL + 'Processes/CallMeeting';
|
||||||
|
url = url.replace('/V4/','/V5/')
|
||||||
|
|
||||||
let options: any = {
|
let options: any = {
|
||||||
headers: this.headers,
|
headers: this.headers,
|
||||||
}
|
}
|
||||||
|
return this.http.post<any>(`${url}`,body, options);
|
||||||
return this.http.post<any>(`${geturl}`,body, options);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user