This commit is contained in:
tiago.kayaya
2021-06-25 14:28:53 +01:00
parent a4669a9e4f
commit 57d9a7f72f
24 changed files with 85 additions and 475 deletions
+1 -1
View File
@@ -134,7 +134,7 @@
</mfp:windows10>
<mfp:appChecksum>0</mfp:appChecksum>
</mfp:windows>
<mfp:platformVersion>8.0.0.00-20210308-063916</mfp:platformVersion>
<mfp:platformVersion>8.0.0.00-20210214-154410</mfp:platformVersion>
<mfp:clientCustomInit enabled="false" />
<mfp:server runtime="mfp" url="http://gpr-dev-10.gabinetedigital.local:9080" />
<mfp:serverUri url="" />
@@ -5,7 +5,7 @@
<ion-label class="title">{{modalTitle[taskType]}}</ion-label>
</ion-item>
<div class="ion-item-container width-100">
<ion-input placeholder="Assunto" [(ngModel)]="postData.DispatchFolder.Subject"></ion-input>
<ion-input placeholder="Assunto*" [(ngModel)]="postData.DispatchFolder.Subject"></ion-input>
</div>
<div class="container-div width-100">
@@ -29,15 +29,15 @@
</div>
<div class="ion-input-class">
<ion-select class="d-block d-md-none" placeholder="Prazo" [(ngModel)]="postData.Priority" interface="action-sheet" Cancel-text="Cancelar" required>
<ion-select class="d-block d-md-none" placeholder="Prazo*" [(ngModel)]="postData.Priority" interface="action-sheet" Cancel-text="Cancelar" required>
<ion-select-option value="99999861"><b>Normal</b> (4 dias para a execução da tarefa)</ion-select-option>
<ion-select-option value="99999862"><b>Urgente</b> (2 dias para a execução da tarefa)</ion-select-option>
<ion-select-option value="99999863"><b>Muito Urgente</b> (1 dia para a execução da tarefa)</ion-select-option>
<ion-select-option value="99999864"><b>Urgentíssimo</b> (8 horas para a execução da tarefa)</ion-select-option>
</ion-select>
<mat-form-field class="width-100 d-none d-md-block" placeholder="Sample Type" required>
<mat-select matInput [(value)]="postData.Priority" >
<mat-form-field class="width-100 d-none d-md-block" floatLabel="never" required>
<mat-select placeholder="Prazo*" matInput [(value)]="postData.Priority" >
<mat-option value="99999861">
Normal
</mat-option>
@@ -63,8 +63,8 @@
</div>
<div class="ion-input-class">
<mat-form-field appearance="fill" class="width-100">
<mat-select [formControl]="toppings">
<mat-form-field appearance="fill" class="width-100" floatLabel="never">
<mat-select placeholder="Prazo*" [formControl]="toppings">
<mat-option [value]="99999861">Normal</mat-option>
<mat-option [value]="99999862">Urgente</mat-option>
<mat-option [value]="99999863">Muito Urgente</mat-option>
@@ -85,7 +85,7 @@
<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 *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>
@@ -72,7 +72,7 @@
}
.list-people-title{
/* font-size: 13px; */
color: #797979;
color: #a3a3a3;
}
.attach-document{
font-size: 15px;
-2
View File
@@ -7,8 +7,6 @@ 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 { AddParticipantsModalPage } from 'src/app/pages/gabinete-digital/expediente/add-participants-modal/add-participants-modal.page';
import { AddParticipantsCcModalPage } from 'src/app/pages/gabinete-digital/expediente/add-participants-cc-modal/add-participants-cc-modal.page';
import { DiscartExpedientModalPage } from 'src/app/pages/gabinete-digital/discart-expedient-modal/discart-expedient-modal.page';
import { AlertService } from 'src/app/services/alert.service';
import { BadRequestPage } from 'src/app/shared/popover/bad-request/bad-request.page';
+24 -9
View File
@@ -7,8 +7,6 @@ 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 { AddParticipantsModalPage } from 'src/app/pages/gabinete-digital/expediente/add-participants-modal/add-participants-modal.page';
import { AddParticipantsCcModalPage } from 'src/app/pages/gabinete-digital/expediente/add-participants-cc-modal/add-participants-cc-modal.page';
import { DiscartExpedientModalPage } from 'src/app/pages/gabinete-digital/discart-expedient-modal/discart-expedient-modal.page';
import { AlertService } from 'src/app/services/alert.service';
import { BadRequestPage } from 'src/app/shared/popover/bad-request/bad-request.page';
@@ -16,6 +14,7 @@ import { SuccessMessagePage } from 'src/app/shared/popover/success-message/succe
import { ToastService } from 'src/app/services/toast.service';
import { SearchDocument } from 'src/app/models/search-document';
import { SearchPage } from 'src/app/pages/search/search.page';
import { AttendeesPageModal } from 'src/app/pages/events/attendees/attendees.page';
@Component({
selector: 'app-forward',
@@ -158,28 +157,44 @@ export class ForwardPage implements OnInit {
}
async addParticipants() {
console.log('HERE');
this.adding = "intervenient";
if(window.innerWidth <=800) {
this.showAttendees=false;
const modal = await this.modalController.create({
component: AddParticipantsModalPage,
component: AttendeesPageModal,
componentProps: {
eventPersons: this.eventAttendees
adding: this.adding,
taskParticipants: this.taskParticipants,
taskParticipantsCc: this.taskParticipantsCc
},
cssClass: 'book-meeting-modal',
cssClass: 'modal attendee',
backdropDismiss: false
});
await modal.present();
modal.onDidDismiss().then((res) => {
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;
this.showAttendees=true
}
}
async setIntervenient(data) {
this.taskParticipants = data;
}
async setIntervenientCC(data) {
this.taskParticipantsCc = data;
}
validateFormInputs(){
let formLocation = this.postData.Location.trim();
if(!this.postData.Location && formLocation.length <= 0){
@@ -1,17 +0,0 @@
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { AddParticipantsCcModalPage } from './add-participants-cc-modal.page';
const routes: Routes = [
{
path: '',
component: AddParticipantsCcModalPage
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class AddParticipantsCcModalPageRoutingModule {}
@@ -1,20 +0,0 @@
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { IonicModule } from '@ionic/angular';
import { AddParticipantsCcModalPageRoutingModule } from './add-participants-cc-modal-routing.module';
import { AddParticipantsCcModalPage } from './add-participants-cc-modal.page';
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
AddParticipantsCcModalPageRoutingModule
],
declarations: [AddParticipantsCcModalPage]
})
export class AddParticipantsCcModalPageModule {}
@@ -1,35 +0,0 @@
<ion-header class="ion-no-border">
<h4>Com conhecimento</h4>
<ion-searchbar (ionChange)="onChange($event)" placeholder="Pesquisar"></ion-searchbar>
<ion-progress-bar type="indeterminate" *ngIf="showLoader"></ion-progress-bar>
</ion-header>
<ion-content>
<ion-item-group>
<ion-list>
<ion-item-sliding>
<ion-item *ngFor="let attendee of contacts">
<ion-checkbox slot="end" (ionChange)="selectContact(attendee)"></ion-checkbox>
<ion-label>
<h3>{{ attendee.Name }}</h3>
<p>{{ attendee.EmailAddress }}</p>
</ion-label>
</ion-item>
</ion-item-sliding>
</ion-list>
</ion-item-group>
</ion-content>
<ion-footer>
<ion-toolbar>
<ion-item lines="none">
<p>
<ion-button class="button-cancel" shape="round" (click)="cancelTask()">Cancelar</ion-button>
</p>
<p>
<ion-button class="button-save" shape="round" (click)="saveTask()">Gravar</ion-button>
</p>
</ion-item>
</ion-toolbar>
</ion-footer>
@@ -1,29 +0,0 @@
ion-header{
padding: 20px 20px 0px 20px;
}
ion-content{
--padding-top: 20px;
--padding-start: 15px;
--padding-end: 20px;
}
.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;
}
@@ -1,24 +0,0 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { IonicModule } from '@ionic/angular';
import { AddParticipantsCcModalPage } from './add-participants-cc-modal.page';
describe('AddParticipantsCcModalPage', () => {
let component: AddParticipantsCcModalPage;
let fixture: ComponentFixture<AddParticipantsCcModalPage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ AddParticipantsCcModalPage ],
imports: [IonicModule.forRoot()]
}).compileComponents();
fixture = TestBed.createComponent(AddParticipantsCcModalPage);
component = fixture.componentInstance;
fixture.detectChanges();
}));
it('should create', () => {
expect(component).toBeTruthy();
});
});
@@ -1,72 +0,0 @@
import { Component, OnInit } from '@angular/core';
import { ModalController, NavParams } from '@ionic/angular';
import { EventPerson } from 'src/app/models/eventperson.model';
import { ContactsService } from 'src/app/services/contacts.service';
@Component({
selector: 'app-add-participants-cc-modal',
templateUrl: './add-participants-cc-modal.page.html',
styleUrls: ['./add-participants-cc-modal.page.scss'],
})
export class AddParticipantsCcModalPage implements OnInit {
contacts: EventPerson[];
showLoader: boolean = false;
eventPersons: EventPerson[];
participantsAdded: any;
constructor(private modalController: ModalController,
private contactsService: ContactsService,
private navParams: NavParams,
) {
this.participantsAdded = this.navParams.get('eventPersons');
}
ngOnInit() {
this.fetchContacts("");
}
onChange(evt: any) {
this.fetchContacts(evt.detail.value);
}
selectContact(itm: EventPerson){
itm.IsRequired = !itm.IsRequired;
}
async fetchContacts(filter: string) {
this.showLoader = true;
this.contactsService.getContacts(filter).subscribe(result =>
{
if (this.participantsAdded != null)
{
this.participantsAdded.forEach(attendee => {
const index: number = result.findIndex((cont) => {
return cont.EmailAddress == attendee.UserId
});
result.splice(index, 1);
});
}
this.contacts = result;
this.showLoader = false;
}
);
}
cancelTask(){
this.modalController.dismiss(null);
}
saveTask(){
this.modalController.dismiss(this.contacts.filter(function(contact) {
if(contact.IsRequired){
/* console.log(contact); */
}
return contact.IsRequired == true;
}));
}
}
@@ -1,17 +0,0 @@
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { AddParticipantsModalPage } from './add-participants-modal.page';
const routes: Routes = [
{
path: '',
component: AddParticipantsModalPage
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class AddParticipantsModalPageRoutingModule {}
@@ -1,20 +0,0 @@
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { IonicModule } from '@ionic/angular';
import { AddParticipantsModalPageRoutingModule } from './add-participants-modal-routing.module';
import { AddParticipantsModalPage } from './add-participants-modal.page';
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
AddParticipantsModalPageRoutingModule
],
declarations: [AddParticipantsModalPage]
})
export class AddParticipantsModalPageModule {}
@@ -1,36 +0,0 @@
<ion-header class="ion-no-border">
<h4>Adicionar Intervenientes - TK</h4>
<ion-searchbar (ionChange)="onChange($event)" placeholder="Pesquisar"></ion-searchbar>
<ion-progress-bar type="indeterminate" *ngIf="showLoader"></ion-progress-bar>
</ion-header>
<ion-content>
<ion-item-group>
<ion-list>
<ion-item-sliding>
<ion-item *ngFor="let attendee of contacts">
<ion-checkbox slot="end" (ionChange)="selectContact(attendee)"></ion-checkbox>
<!-- <div *ngFor="let part of participantsAdded"> -->
<ion-label>
<h3>{{ attendee.Name }}</h3>
<p>{{ attendee.EmailAddress }}</p>
</ion-label>
<!-- </div> -->
</ion-item>
</ion-item-sliding>
</ion-list>
</ion-item-group>
</ion-content>
<ion-footer>
<ion-toolbar>
<ion-item lines="none">
<p>
<ion-button class="button-cancel" shape="round" (click)="cancelTask()">Cancelar</ion-button>
</p>
<p>
<ion-button class="button-save" shape="round" (click)="saveTask()">Gravar</ion-button>
</p>
</ion-item>
</ion-toolbar>
</ion-footer>
@@ -1,29 +0,0 @@
ion-header{
padding: 20px 20px 0px 20px;
}
ion-content{
--padding-top: 20px;
--padding-start: 15px;
--padding-end: 20px;
}
.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;
}
@@ -1,24 +0,0 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { IonicModule } from '@ionic/angular';
import { AddParticipantsModalPage } from './add-participants-modal.page';
describe('AddParticipantsModalPage', () => {
let component: AddParticipantsModalPage;
let fixture: ComponentFixture<AddParticipantsModalPage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ AddParticipantsModalPage ],
imports: [IonicModule.forRoot()]
}).compileComponents();
fixture = TestBed.createComponent(AddParticipantsModalPage);
component = fixture.componentInstance;
fixture.detectChanges();
}));
it('should create', () => {
expect(component).toBeTruthy();
});
});
@@ -1,69 +0,0 @@
import { Component, OnInit } from '@angular/core';
import { ModalController, NavParams } from '@ionic/angular';
import { EventPerson } from 'src/app/models/eventperson.model';
import { ContactsService } from 'src/app/services/contacts.service';
@Component({
selector: 'app-add-participants-modal',
templateUrl: './add-participants-modal.page.html',
styleUrls: ['./add-participants-modal.page.scss'],
})
export class AddParticipantsModalPage implements OnInit {
contacts: EventPerson[];
showLoader: boolean = false;
eventPersons: EventPerson[];
participantsAdded: any;
constructor(private modalController: ModalController,
private contactsService: ContactsService,
private navParams: NavParams,) { }
ngOnInit() {
this.fetchContacts("");
this.participantsAdded = this.navParams.get('eventPersons');
}
async fetchContacts(filter: string) {
this.showLoader = true;
this.contactsService.getContacts(filter).subscribe(result =>
{
if (this.participantsAdded != null)
{
this.participantsAdded.forEach(attendee => {
const index: number = result.findIndex((cont) => {
return cont.EmailAddress == attendee.UserId
});
result.splice(index, 1);
});
}
this.contacts = result;
this.showLoader = false;
}
);
}
onChange(evt: any) {
this.fetchContacts(evt.detail.value);
}
selectContact(itm: EventPerson){
itm.IsRequired = !itm.IsRequired;
}
cancelTask(){
this.modalController.dismiss(null);
}
saveTask(){
this.modalController.dismiss(this.contacts.filter(function(contact) {
if(contact.IsRequired){
/* console.log(contact); */
}
return contact.IsRequired == true;
}));
}
}
@@ -69,7 +69,7 @@
<div class="ion-input-class">
<ion-datetime
class="d-block d-md-none"
placeholder="Início"
placeholder="Início*"
[(ngModel)]="postData.StartDate"
displayFormat="D MMM YYYY H:mm"
minuteValues="0,15,30,45"
@@ -81,7 +81,7 @@
<mat-form-field class="width-100 date-hour-picker d-none d-md-block">
<input matInput [ngxMatDatetimePicker]="picker1"
placeholder="Choose a date"
placeholder="Choose a date*"
[formControl]="dateControlStart"
[min]="minDate" [max]="maxDate"
[disabled]="disabled"
@@ -108,7 +108,7 @@
<div class="ion-input-class">
<ion-datetime
class="d-block d-md-none"
placeholder="Fim"
placeholder="Fim*"
[(ngModel)]="postData.EndDate"
displayFormat="D MMM YYYY H:mm"
minuteValues="0,15,30,45"
@@ -120,7 +120,7 @@
<mat-form-field class="date-hour-picker">
<input matInput [ngxMatDatetimePicker]="fim"
placeholder="Choose a date"
placeholder="Choose a date*S"
[formControl]="dateControlEnd"
[min]="minDate" [max]="maxDate"
[disabled]="disabled"
@@ -147,7 +147,7 @@
<ion-select
class="d-block d-md-none"
[(ngModel)]="postData.IsRecurring"
placeholder="Selecione repetição"
placeholder="Selecione repetição*"
value="false"
interface="action-sheet"
Cancel-text="Cancelar"
@@ -163,13 +163,13 @@
<mat-form-field
floatLabel="never"
class="width-100 d-none d-md-block"
placeholder="Selecione repetição"
value="false"
interface="action-sheet"
required
>
<mat-select [(value)]="postData.IsRecurring">
<mat-select [(value)]="postData.IsRecurring" placeholder="Selecione repetição*">
<mat-option value="false">
Não se repete
</mat-option>
@@ -192,7 +192,7 @@
<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 *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>
@@ -70,7 +70,7 @@
}
.list-people-title{
/* font-size: 13px; */
color: #797979;
color: #a3a3a3;
}
.attach-document{
font-size: 15px;
@@ -5,7 +5,7 @@
<ion-label class="title">{{modalTitle[taskType]}}</ion-label>
</ion-item>
<div class="ion-item-container width-100">
<ion-input placeholder="Assunto" [(ngModel)]="postData.DispatchFolder.Subject"></ion-input>
<ion-input placeholder="Assunto*" [(ngModel)]="postData.DispatchFolder.Subject"></ion-input>
</div>
<!-- Add scrolls -->
@@ -29,7 +29,7 @@
</div>
<div class="ion-input-class">
<ion-select
placeholder="Prazo"
placeholder="Prazo*"
[(ngModel)]="postData.Priority"
interface="action-sheet"
Cancel-text="Cancelar"
@@ -63,6 +63,7 @@
<ion-item
class="ion-no-border ion-no-padding ion-no-margin d-md-none">
<ion-select
placeholder="Selecione o tipo"
[(ngModel)]="selectedTypes"
(ngModelChange)="onSelectedTypesChanged($event)"
multiple="true" interface="alert" Cancel-text="Cancelar" required>
@@ -71,9 +72,10 @@
</ion-item>
<mat-form-field
floatLabel="never"
appearance="fill"
class="width-100 d-none d-md-block">
<mat-select [formControl]="toppings" multiple>
<mat-select [formControl]="toppings" multiple` placeholder="Selecione o tipo">
<mat-option *ngFor="let type of subjectTypes" [value]="type.Code">{{type.Description}}</mat-option>
</mat-select>
</mat-form-field>
@@ -90,7 +92,7 @@
<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 *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>
@@ -73,7 +73,7 @@
}
.list-people-title{
/* font-size: 13px; */
color: #797979;
color: #a3a3a3;
}
.attach-document{
font-size: 15px;
@@ -128,8 +128,6 @@
}
}
.attach-icon{
width: 37px;
font-size: 35px;
@@ -15,18 +15,11 @@ const routes: Routes = [
{
path: 'expedient-task-modal',
loadChildren: () => import('./expedient-task-modal/expedient-task-modal.module').then( m => m.ExpedientTaskModalPageModule)
},
},
{
path: 'book-meeting-modal',
loadChildren: () => import('./book-meeting-modal/book-meeting-modal.module').then( m => m.BookMeetingModalPageModule)
},
},
{
path: 'add-participants-modal',
loadChildren: () => import('./add-participants-modal/add-participants-modal.module').then( m => m.AddParticipantsModalPageModule)
},
{
path: 'add-participants-cc-modal',
loadChildren: () => import('./add-participants-cc-modal/add-participants-cc-modal.module').then( m => m.AddParticipantsCcModalPageModule)
];
@@ -125,7 +125,7 @@
</div>
</div>
<div *ngIf="!task">
<div class="width-100" *ngIf="!task">
<ion-list>
<ion-list-header>
<ion-label>
@@ -160,10 +160,6 @@
</p>
</ion-label>
</ion-item>
<ion-button color="medium" shape="round" expand="block">
<!-- <ion-icon color="medium" name="attach" slot="start"></ion-icon> -->
<ion-skeleton-text animated style="width: 50%"></ion-skeleton-text>
</ion-button>
</ion-list>
</div>
@@ -86,7 +86,7 @@
<ion-icon src="assets/images/icons-despachos-presidente.svg"></ion-icon>
</div>
<p class="text-center exp-card-title " *ngIf="loggeduser.Profile == 'MDGPR'">Despacho do Presidente da República</p>
<p class="text-center exp-card-title " *ngIf="loggeduser.Profile == 'PR'">Despacho criados por mim</p>
<p class="text-center exp-card-title " *ngIf="loggeduser.Profile == 'PR'">Despachos criados por mim</p>
<p class="text-center exp-card-content">{{ count_de_pr }} <span class="title1">Documentos</span> </p>
</div>