Merge branch 'developer' into developer_mobilefirst

This commit is contained in:
Eudes Inácio
2021-06-29 11:58:57 +01:00
59 changed files with 664 additions and 1000 deletions
+58 -8
View File
@@ -4624,6 +4624,16 @@
"integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
"dev": true
},
"bindings": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
"integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
"dev": true,
"optional": true,
"requires": {
"file-uri-to-path": "1.0.0"
}
},
"bl": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
@@ -6069,17 +6079,20 @@
}
},
"cordova-android": {
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/cordova-android/-/cordova-android-9.0.0.tgz",
"integrity": "sha512-2ZEgApK4LPMYW0zh/mLAH3CabzCaKE0yxQTzA2wTf0Eo2HHTJnRtDCf9spGf3nPOkubyXS6+pvzz5QzNHpVTqQ==",
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/cordova-android/-/cordova-android-9.1.0.tgz",
"integrity": "sha512-bzOX9E4eQsOSpa06oZZ7XAGq3DwB73juhhj0oPqHH/khWk0mkCD4aiVYMFoc0fmIaSQvzbY1ww7L6UBW5pyGfg==",
"dev": true,
"requires": {
"android-versions": "^1.5.0",
"cordova-common": "^4.0.1",
"execa": "^4.0.2",
"fast-glob": "^3.2.4",
"fs-extra": "^9.0.1",
"is-path-inside": "^3.0.2",
"nopt": "^4.0.3",
"properties-parser": "^0.3.1",
"semver": "^7.3.4",
"which": "^2.0.2"
},
"dependencies": {
@@ -6121,6 +6134,12 @@
"pump": "^3.0.0"
}
},
"is-path-inside": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
"integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
"dev": true
},
"is-stream": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz",
@@ -6146,6 +6165,15 @@
"path-key": "^3.0.0"
}
},
"semver": {
"version": "7.3.5",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
"integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
"dev": true,
"requires": {
"lru-cache": "^6.0.0"
}
},
"universalify": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
@@ -8265,9 +8293,9 @@
}
},
"cordova-plugin-mfp-push": {
"version": "8.0.2020072705",
"resolved": "https://registry.npmjs.org/cordova-plugin-mfp-push/-/cordova-plugin-mfp-push-8.0.2020072705.tgz",
"integrity": "sha512-aA7EAZnFgu8R5U+Vpt5fGbCq1lRYHrt9AXXEJMwc5Vv0sFVUz9iOyzMXHYuSFSqmYgW/XldRXgTxoc8UvXErcQ==",
"version": "8.0.2021062405",
"resolved": "https://registry.npmjs.org/cordova-plugin-mfp-push/-/cordova-plugin-mfp-push-8.0.2021062405.tgz",
"integrity": "sha512-OOSV4TCkZVNfwQzjfbsD0ycNcZyokKdBPJnEK/QrtrGtEA+Ah1R86FphXFNJtCWEQYybCCHvCVXgor4Pgf11xQ==",
"dev": true
},
"cordova-plugin-okhttp": {
@@ -10286,6 +10314,13 @@
}
}
},
"file-uri-to-path": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
"integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
"dev": true,
"optional": true
},
"fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
@@ -13534,6 +13569,13 @@
"resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
"integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA=="
},
"nan": {
"version": "2.14.2",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz",
"integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==",
"dev": true,
"optional": true
},
"nanoid": {
"version": "3.1.23",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz",
@@ -19904,7 +19946,11 @@
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
"integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
"dev": true,
"optional": true
"optional": true,
"requires": {
"bindings": "^1.5.0",
"nan": "^2.12.1"
}
},
"glob-parent": {
"version": "3.1.0",
@@ -20531,7 +20577,11 @@
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
"integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
"dev": true,
"optional": true
"optional": true,
"requires": {
"bindings": "^1.5.0",
"nan": "^2.12.1"
}
},
"glob-parent": {
"version": "3.1.0",
+3 -3
View File
@@ -94,7 +94,7 @@
"@types/jasminewd2": "~2.0.3",
"@types/node": "^12.11.1",
"codelyzer": "^6.0.0",
"cordova-android": "^9.0.0",
"cordova-android": "^9.1.0",
"cordova-browser": "^6.0.0",
"cordova-ios": "^6.2.0",
"cordova-plugin-androidx": "^3.0.0",
@@ -109,7 +109,7 @@
"cordova-plugin-ionic-keyboard": "^2.2.0",
"cordova-plugin-ionic-webview": "^4.2.1",
"cordova-plugin-mfp": "^8.0.2021031007",
"cordova-plugin-mfp-push": "^8.0.2020072705",
"cordova-plugin-mfp-push": "^8.0.2021062405",
"cordova-plugin-splashscreen": "^5.0.2",
"cordova-plugin-statusbar": "^2.4.2",
"cordova-plugin-whitelist": "^1.3.4",
@@ -157,4 +157,4 @@
"url": "git+https://Kayaya@bitbucket.org/equilibriumito/gabinete-digital.git"
},
"license": "ISC"
}
}
@@ -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" [(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 matInput [(ngModel)]="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>
@@ -145,9 +145,7 @@
</ion-item>
</ion-list>
</div>
</div>
</div>
@@ -72,7 +72,7 @@
}
.list-people-title{
/* font-size: 13px; */
color: #797979;
color: #a3a3a3;
}
.attach-document{
font-size: 15px;
@@ -54,7 +54,6 @@ export class CreateProcessPage implements OnInit {
taskDate: Date;
taskDescription: string;
user: string;
loadedAttachments:any;
subjectTypes:any;
selectedTypes: string[]=[];
@@ -91,7 +90,6 @@ export class CreateProcessPage implements OnInit {
private toastService: ToastService,
) {
this.loggeduser = userAuth.ValidatedUser;
this.user = environment.defaultuser +'@'+ environment.domain;
this.task = this.navParams.get('task');
console.log('task', this.task)
@@ -180,6 +178,8 @@ export class CreateProcessPage implements OnInit {
}
let attendees = this.taskParticipants.concat(this.taskParticipantsCc);
console.log(attendees);
attendees = attendees.map(function(val) {
return {
UserEmail: val.EmailAddress,
@@ -187,6 +187,8 @@ export class CreateProcessPage implements OnInit {
};
});
console.log(attendees);
const DocumentToSave = this.documents.map((e) => {
return {
ApplicationId: e.ApplicationType,
@@ -204,7 +206,7 @@ export class CreateProcessPage implements OnInit {
DistributionType: "Paralelo",
CountryCode: 'AO',
Priority: this.postData.Priority,
UserEmail: this.user,
UserEmail: this.loggeduser.Email,
UsersSelected: attendees,
DispatchFolder: this.dispatchFolder,
}
@@ -223,7 +225,7 @@ export class CreateProcessPage implements OnInit {
DistributionType: "Paralelo",
CountryCode: 'AO',
Priority: this.postData.Priority,
UserEmail: this.user,
UserEmail: this.loggeduser.Email,
UsersSelected: attendees,
DispatchFolder: this.dispatchFolder,
}
@@ -243,7 +245,7 @@ export class CreateProcessPage implements OnInit {
DistributionType: "Paralelo",
CountryCode: 'AO',
Priority: this.postData.Priority,
UserEmail: this.user,
UserEmail: this.loggeduser.Email,
UsersSelected: attendees,
DispatchFolder: this.dispatchFolder,
}
@@ -273,7 +275,7 @@ export class CreateProcessPage implements OnInit {
DistributionType: "Paralelo",
CountryCode: 'AO',
Priority: this.postData.Priority,
UserEmail: this.user,
UserEmail: this.loggeduser.Email,
UsersSelected: attendees,
DispatchFolder: this.dispatchFolder,
}
@@ -292,7 +294,7 @@ export class CreateProcessPage implements OnInit {
DistributionType: "Paralelo",
CountryCode: 'AO',
Priority: this.postData.Priority,
UserEmail: this.user,
UserEmail: this.loggeduser.Email,
UsersSelected: attendees,
DispatchFolder: this.dispatchFolder,
}
@@ -313,7 +315,7 @@ export class CreateProcessPage implements OnInit {
DistributionType: "Paralelo",
CountryCode: 'AO',
Priority: this.postData.Priority,
UserEmail: this.user,
UserEmail: this.loggeduser.Email,
UsersSelected: attendees,
DispatchFolder: this.dispatchFolder,
}
-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';
+29 -14
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',
@@ -157,28 +156,44 @@ export class ForwardPage implements OnInit {
}
}
async addParticipants(){
console.log('HERE');
async addParticipants() {
this.adding = "intervenient";
if(window.innerWidth <= 800){
if(window.innerWidth <=800) {
this.showAttendees=false;
const modal = await this.modalController.create({
component: AddParticipantsModalPage,
componentProps: {
eventPersons: this.eventAttendees
component: AttendeesPageModal,
componentProps: {
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();
+86 -51
View File
@@ -303,13 +303,27 @@ export class AgendaPage implements OnInit {
events.forEach(element => {
const startTimeSamp = new Date(element.startTime).toLocaleDateString()
const endTimeSamp = new Date(element.endTime).toLocaleDateString()
const endMinutes = new Date(element.endTime).getMinutes()
const endHours = new Date(element.endTime).getHours()
const endDay: number = new Date(element.endTime).getDate()
const startDay = new Date(element.startTime).getDate()
const profile_ = element.profile == 'md'? 'mdgpr': 'pr';
const eventtype = element.event.CalendarName;
// if (startTimeSamp < endTimeSamp && endDay == 29 && (endMinutes + endHours) == 0) {
// // console.log(id, (endMinutes + endHours))
// classs.push(`calendar-event-border`);
// }
classs.push(`calendar-event-border calendar-${profile_}-event-type-${eventtype}`);
});
return classs.join(' ');
}
@@ -422,6 +436,25 @@ export class AgendaPage implements OnInit {
return ((new Date(this.timelineDate)).getDate()).toString().padStart(2,'0')
}
EventTretment ({startTime, endTime}) {
const startTimeSamp = new Date(startTime).toLocaleDateString()
const endTimeSamp = new Date(endTime).toLocaleDateString()
const endMinutes = new Date(endTime).getMinutes()
const endHours = new Date(endTime).getHours()
if (startTimeSamp < endTimeSamp && (endMinutes + endHours) == 0) {
endTime = new Date(endTime);
endTime.setSeconds(endTime.getSeconds() - 1);
return new Date(endTime)
} else {
return new Date(endTime)
}
}
loadRangeEvents(startTime: Date, endTime: Date){
this.eventSelectedDate = new Date(startTime);
@@ -753,7 +786,10 @@ export class AgendaPage implements OnInit {
index: eventIndex,
title: element.Subject,
startTime: new Date(element.StartDate),
endTime: new Date(element.EndDate),
endTime: this.EventTretment({
startTime: element.StartDate,
endTime: element.EndDate
}),
allDay: false,
event: element,
calendarName: element.CalendarName,
@@ -762,11 +798,11 @@ export class AgendaPage implements OnInit {
});
});
const MDEventList = this.timelineFilter(this.timelineFilterState, this.eventsList, 'mdgpr');
this.TimelineMDList = this.eventListBox(MDEventList, 'md')
const MDEventList = this.timelineFilter(this.timelineFilterState, this.eventsList, 'mdgpr');
this.TimelineMDList = this.eventListBox(MDEventList, 'md')
this.events = MDEventList;
this.TimelineMD = MDEventList;
@@ -776,13 +812,13 @@ export class AgendaPage implements OnInit {
this.showTimelineMD = true;
counter++;
if(counter==2){
if(counter==2) {
this.showLoader = false;
}
});
});
this.eventService.getAllSharedEvents(momentG(new Date(startTime),'yyyy-MM-dd HH:mm:ss'), momentG(new Date(endTime),'yyyy-MM-dd 23:59:59')).then((response:any) => {
this.eventService.getAllSharedEvents(momentG(new Date(startTime),'yyyy-MM-dd HH:mm:ss'), momentG(new Date(endTime),'yyyy-MM-dd 23:59:59')).then((response:any) => {
if(this.segment == 'Oficial') {
this.eventsList = response.filter(data => data.CalendarName == "Oficial");
@@ -827,59 +863,56 @@ export class AgendaPage implements OnInit {
this.showLoader = false;
}
});
});
} else {
}else{
console.log('PR');
this.eventService.getAllPrEvents(momentG(new Date(startTime),'yyyy-MM-dd HH:mm:ss'), momentG(new Date(endTime),'yyyy-MM-dd 23:59:59')).then((response:any) => {
if(this.segment == 'Oficial') {
this.eventsList = response.filter(data => data.CalendarName == "Oficial");
} else if (this.segment == 'Pessoal') {
this.eventsList = response.filter(data => data.CalendarName == "Pessoal");
} else {
this.eventsList = response;
}
this.eventSource = this.eventSource.filter(e => e.profile != 'pr');
if(this.segment == 'Oficial') {
this.eventsList = response.filter(data => data.CalendarName == "Oficial");
} else if (this.segment == 'Pessoal') {
this.eventsList = response.filter(data => data.CalendarName == "Pessoal");
} else {
this.eventsList = response;
}
this.eventSource = this.eventSource.filter(e => e.profile != 'pr');
this.eventsList.forEach((element, eventIndex) => {
// calendar
this.eventSource.push({
index: eventIndex,
title: element.Subject,
startTime: new Date(element.StartDate),
endTime: new Date(element.EndDate),
allDay: false,
event: element,
calendarName: element.CalendarName,
profile:'pr',
id: element.EventId,
});
this.eventsList.forEach((element, eventIndex) => {
// calendar
this.eventSource.push({
index: eventIndex,
title: element.Subject,
startTime: new Date(element.StartDate),
endTime: new Date(element.EndDate),
allDay: false,
event: element,
calendarName: element.CalendarName,
profile:'pr',
id: element.EventId,
});
this.TimelinePR = this.timelineFilter(this.timelineFilterState, this.eventsList, 'pr');
});
this.TimelinePRList = this.eventListBox(this.TimelinePR)
this.TimelinePR = this.timelineFilter(this.timelineFilterState, this.eventsList, 'pr');
this.myCal.update();
this.myCal.loadEvents();
this.TimelinePRList = this.eventListBox(this.TimelinePR)
this.showTimelinePR = true;
counter++;
this.myCal.update();
this.myCal.loadEvents();
if(counter==2 || this.loggeduser.Profile == 'PR') {
this.showLoader = false;
}
this.showTimelinePR = true;
counter++;
if(counter==2 || this.loggeduser.Profile == 'PR') {
this.showLoader = false;
}
});
@@ -894,13 +927,16 @@ export class AgendaPage implements OnInit {
list.forEach( (event:any)=> {
var startDate: any = new Date(event.start);
var endDate: any = new Date(event.end);
var endDate: any = this.EventTretment({
startTime: startDate,
endTime: event.end
})
const day = (((new Date (event.start)).getDate())).toString().padStart(2,'0')
event.manyDays = false
if(!days.hasOwnProperty(day)) {
days[day] = []
}
@@ -952,7 +988,6 @@ export class AgendaPage implements OnInit {
event.start = newDate
if(!days.hasOwnProperty(otherDays)) {
days[otherDays] = []
}
@@ -17,7 +17,7 @@
<div class="px-20">
<div class="ion-item-container width-100">
<ion-input placeholder="Assunto" [(ngModel)]="postEvent.Subject"></ion-input>
<ion-input placeholder="Assunto*" [(ngModel)]="postEvent.Subject"></ion-input>
</div>
<div class="container-div width-100">
<div class="ion-item-class-2">
@@ -25,7 +25,7 @@
<ion-icon slot="start" src="assets/images/icons-location.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-input placeholder="Localização" [(ngModel)]="postEvent.Location"></ion-input>
<ion-input placeholder="Localização*" [(ngModel)]="postEvent.Location"></ion-input>
</div>
</div>
</div>
@@ -36,7 +36,7 @@
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-select disabled placeholder="Selecione agenda"
<ion-select placeholder="Selecione agenda*"
selectedText="{{postEvent.CalendarName}}"
[(ngModel)]="postEvent.CalendarName"
interface="action-sheet" Cancel-text="Cancelar"
@@ -54,7 +54,7 @@
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-select placeholder="Selecione tipo"
<ion-select placeholder="Selecione tipo de evento*"
[(ngModel)]="postEvent.Categories[0]"
selectedText="{{postEvent.Categories[0]}}"
interface="action-sheet"
@@ -116,7 +116,7 @@
<ion-icon slot="start" src="assets/images/icons-refresh.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-select placeholder="Selecione repetição"
<ion-select placeholder="Selecione repetição*"
[(ngModel)]="postEvent.IsRecurring"
selectedText="{{isRecurring}}"
interface="action-sheet"
@@ -87,7 +87,7 @@
}
.list-people-title{
/* font-size: 13px; */
color: #797979;
color: #a3a3a3;
}
.attach-document{
font-size: 15px;
@@ -1,4 +1,5 @@
import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { AlertController, AnimationController, ModalController, NavParams } from '@ionic/angular';
import { Attachment } from 'src/app/models/attachment.model';
import { EventBody } from 'src/app/models/eventbody.model';
@@ -28,6 +29,8 @@ export class EditEventPage implements OnInit {
selectedSegment: string;
selectedDate: Date;
minDate: string;
initCalendarName: string;
caller:string;
loadedEventAttachments: Attachment[];
@@ -46,9 +49,12 @@ export class EditEventPage implements OnInit {
private attachmentsService: AttachmentsService,
private animationController: AnimationController,
private toastService: ToastService,
private router: Router,
) {
this.isEventEdited = false;
this.postEvent = this.navParams.get('event');
this.caller = this.navParams.get('caller');
this.initCalendarName = this.postEvent.CalendarName;
if(this.postEvent){
if( this.postEvent.Body){
@@ -78,13 +84,13 @@ export class EditEventPage implements OnInit {
else {
this.isRecurring = "Repete";
}
this.profile = this.navParams.get('profile');
this.getAttachments(this.postEvent.EventId);
}
ngOnInit() {
console.log(this.caller);
window.onresize = (event) => {
// if not mobile remove all component
@@ -102,25 +108,31 @@ export class EditEventPage implements OnInit {
this.modalController.dismiss();
}
goBack() {
console.log(this.caller);
this.router.navigate(['/home',this.caller]);
}
save() {
this.postEvent.Attendees = this.taskParticipants.concat(this.taskParticipantsCc)
try{
this.eventsService.editEvent(this.postEvent, 2, 3).subscribe(async () => {
/* const alert = await this.alertController.create({
cssClass: 'my-custom-class',
header: 'Evento actualizado',
buttons: ['OK']
});
await alert.present(); */
if(this.initCalendarName != this.postEvent.CalendarName){
let body = {
"EventId": this.postEvent.EventId,
"CalendarDestinationName": this.postEvent.CalendarName,
}
console.log(body);
await this.eventsService.changeAgenda(body).toPromise();
}
this.toastService.successMessage();
this.toastService.successMessage()
}, error => {
this.toastService.badRequest()
});
this.isEventEdited = true;
this.goBack();
this.modalController.dismiss(this.isEventEdited);
} catch (error) {
@@ -179,7 +191,7 @@ export class EditEventPage implements OnInit {
}
addParticipantsCC(){
this.adding = 'CC'
this.adding = 'CC';
this.openAttendees();
}
@@ -15,7 +15,7 @@
<!-- <input type="text" ngbDatepicker #d="ngbDatepicker"/> -->
<div class="ion-item-container">
<ion-input placeholder="Assunto" [(ngModel)]="postEvent.Subject"></ion-input>
<ion-input placeholder="Assunto*" [(ngModel)]="postEvent.Subject"></ion-input>
</div>
<div class="container-div">
<div class="ion-item-class-2">
@@ -23,7 +23,7 @@
<ion-icon slot="start" src="assets/images/icons-location.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-input placeholder="Localização" [(ngModel)]="postEvent.Location"></ion-input>
<ion-input placeholder="Localização*" [(ngModel)]="postEvent.Location"></ion-input>
</div>
</div>
<!-- Error messages -->
@@ -39,7 +39,7 @@
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-select placeholder="Selecione agenda"
<ion-select placeholder="Selecione agenda*"
selectedText="{{postEvent.CalendarName}}"
[(ngModel)]="postEvent.CalendarName"
interface="action-sheet" Cancel-text="Cancelar"
@@ -57,7 +57,7 @@
<ion-icon slot="start" src="assets/images/icons-description.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-select placeholder="Selecione tipo"
<ion-select placeholder="Selecione tipo de evento*"
[(ngModel)]="postEvent.Categories[0]"
interface="action-sheet"
Cancel-text="Cancelar" required>
@@ -77,7 +77,7 @@
</div>
<div class="ion-input-class">
<ion-datetime
placeholder="Início"
placeholder="Início*"
[(ngModel)]="postEvent.StartDate"
displayFormat="D MMM YYYY H:mm"
minuteValues="0,15,30,45"
@@ -98,7 +98,7 @@
</div>
<div class="ion-input-class">
<ion-datetime
placeholder="Fim"
placeholder="Fim*"
[(ngModel)]="postEvent.EndDate"
displayFormat="D MMM YYYY H:mm"
minuteValues="0,15,30,45"
@@ -118,7 +118,7 @@
<ion-icon slot="start" src="assets/images/icons-refresh.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-select placeholder="Selecione repetição" value="false" interface="action-sheet" Cancel-text="Cancelar" required>
<ion-select 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>
@@ -135,7 +135,7 @@
<div class="list-people">
<ion-item lines="none">
<ion-list>
<ion-label *ngIf="taskParticipants?.length < 1" class="list-people-title">Adicionar interveniente</ion-label>
<ion-label *ngIf="taskParticipants?.length < 1" class="list-people-title">Adicionar intervenientes*</ion-label>
<div class="list-people">
<ion-item lines="none">
<ion-list>
@@ -153,9 +153,7 @@
</div>
</div>
<!-- HIDDEN -->
<div hidden class="container-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>
@@ -104,7 +104,7 @@ ion-content{
}
.list-people-title{
/* font-size: 13px; */
color: #797979;
color: #a3a3a3;
}
.attach-document{
font-size: 15px;
@@ -13,6 +13,7 @@ import { ExpedientTaskModalPage } from '../../gabinete-digital/expediente/expedi
import { BookMeetingModalPage } from '../../gabinete-digital/expediente/book-meeting-modal/book-meeting-modal.page';
import { OptsExpedientePage } from 'src/app/shared/popover/opts-expediente/opts-expediente.page';
import { ActivatedRoute, NavigationExtras, Router } from '@angular/router';
import { ToastService } from 'src/app/services/toast.service';
@Component({
selector: 'app-view-event',
@@ -34,6 +35,7 @@ export class ViewEventPage implements OnInit {
profile:string;
eventId:string;
caller:string;
customDate:any;
today:any;
@@ -53,6 +55,7 @@ export class ViewEventPage implements OnInit {
public popoverController: PopoverController,
private activatedRoute: ActivatedRoute,
private router: Router,
private toastService: ToastService,
)
{
this.isEventEdited = false;
@@ -60,8 +63,12 @@ export class ViewEventPage implements OnInit {
this.eventBody = { BodyType : "1", Text : ""};
this.loadedEvent.Body = this.eventBody;
this.activatedRoute.paramMap.subscribe(paramMap =>{
this.eventId = paramMap['params'].eventId;
this.activatedRoute.paramMap.subscribe(params =>{
this.eventId = params['params'].eventId;
if(params["params"].caller){
this.caller = (params["params"].caller);
}
});
/* this.activatedRoute.queryParams.subscribe(params => {
@@ -74,7 +81,6 @@ export class ViewEventPage implements OnInit {
}
ngOnInit() {
console.log('Notifi teste '+this.eventId);
this.loadEvent();
this.getAttachments();
@@ -134,8 +140,8 @@ export class ViewEventPage implements OnInit {
setTimeout(()=>{
alert.dismiss();
}, 1500);
this.close();
this.goBack();
this.toastService.successMessage('Evento apagado');
});
}
@@ -152,11 +158,14 @@ export class ViewEventPage implements OnInit {
async editEventDetail() {
console.log(this.caller);
const modal = await this.modalController.create({
component: EditEventPage,
componentProps: {
eventId: this.loadedEvent.EventId,
profile: this.profile,
caller: this.caller,
},
cssClass: 'modal modal-desktop',
@@ -190,7 +199,7 @@ export class ViewEventPage implements OnInit {
component: EditEventPage,
componentProps:{
event: this.loadedEvent,
profile: this.profile,
caller: this.caller,
},
cssClass: classs,
});
+1 -1
View File
@@ -141,7 +141,7 @@ export class EventsPage implements OnInit {
this.showLoader = false;
}
else{
else if (this.loggeduser.Profile == 'PR'){
let prOficialEvents= await this.eventService.getAllPrOficialEvents(start, end).toPromise();
let prPessoalEvents= await this.eventService.getAllPrPessoalEvents(start, end).toPromise();
@@ -57,7 +57,7 @@ export class DiplomaPage implements OnInit {
}
goBack() {
if (window.innerWidth <= 800) {
if (window.innerWidth < 801) {
this.router.navigate(['/home/gabinete-digital/diplomas']);
} else {
let navigationExtras: NavigationExtras = {
@@ -30,6 +30,7 @@ constructor(
private activatedRoute: ActivatedRoute,
) {
this.activatedRoute.queryParams.subscribe(params => {
console.log('Cria');
if(params['segment'] == 'validar') {
this.segment = 'validar';
@@ -42,12 +43,15 @@ constructor(
}
ngOnInit() {
this.LoadList();
this.router.events.forEach((event) => {
if(event instanceof NavigationEnd && event.url == this.router.url) {
console.log('Atualiza');
this.LoadList();
}
});
console.log('Init');
this.LoadList();
}
segmentChanged(ev: any) {
@@ -79,8 +83,6 @@ constructor(
}
async LoadList(){
let diplomas = await this.processes.GetTasksList("Despacho do Presidente da República", false).toPromise();
console.log('diplomas', diplomas);
@@ -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;
}));
}
}
@@ -10,7 +10,7 @@
<div class="overflow-y-auto content-default-padding">
<div class="ion-item-container width-100">
<ion-input placeholder="Assunto" [(ngModel)]="postData.Subject"></ion-input>
<ion-input placeholder="Assunto*" [(ngModel)]="postData.Subject"></ion-input>
</div>
<div class="container-div width-100">
@@ -19,7 +19,7 @@
<ion-icon slot="start" src="assets/images/icons-location.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-input placeholder="Localização" [(ngModel)]="postData.Location"></ion-input>
<ion-input placeholder="Localização*" [(ngModel)]="postData.Location"></ion-input>
</div>
</div>
<!-- Error messages -->
@@ -46,8 +46,8 @@
</ion-select>
<mat-form-field class="d-none d-md-block width-100" placeholder="Selecione agenda">
<mat-select [(value)]="postData.CalendarName" >
<mat-form-field class="d-none d-md-block width-100">
<mat-select placeholder="Selecione agenda" [(ngModel)]="postData.CalendarName" >
<mat-option value="Oficial">
Oficial
</mat-option>
@@ -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"
@@ -162,14 +162,14 @@
</ion-select>
<mat-form-field
class="width-100 d-none d-md-block"
placeholder="Selecione repetição"
<mat-form-field
floatLabel="never"
class="width-100 d-none d-md-block"
value="false"
interface="action-sheet"
required
>
<mat-select [(value)]="postData.IsRecurring">
<mat-select placeholder="Selecione repetição*" [(ngModel)]="postData.IsRecurring" >
<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>
@@ -288,7 +288,7 @@
</ion-content>
<ion-footer>
<div class="buttons">
<button class="btn-cancel" shape="round" (click)="cancelTask()">Cancelar</button>
<button class="btn-cancel" shape="round" (click)="close()">Cancelar</button>
<button class="btn-ok" shape="round" (click)="saveTask()">Gravar</button>
</div>
</ion-footer>
@@ -70,7 +70,7 @@
}
.list-people-title{
/* font-size: 13px; */
color: #797979;
color: #a3a3a3;
}
.attach-document{
font-size: 15px;
@@ -66,11 +66,21 @@ export class BookMeetingModalPage implements OnInit {
showLoader = false
get dateStart () {
return this.dateControlStart.value
if( window.innerWidth < 801) {
return this.postData.StartDate;
}
else{
return this.dateControlStart.value;
}
}
get dateEnd () {
return this.dateControlEnd.value
if( window.innerWidth < 801) {
return this.postData.EndDate;
}
else{
return this.dateControlEnd.value;
}
}
@ViewChild('picker') picker: any;
@@ -129,8 +139,6 @@ export class BookMeetingModalPage implements OnInit {
ngOnInit() {
this.adding = "intervenient";
console.log(this.task);
this.getAttachments();
}
@@ -141,12 +149,9 @@ export class BookMeetingModalPage implements OnInit {
}
close(){
this.router.navigate(['/home/gabinete-digital/expediente']);
this.modalController.dismiss(null);
}
cancelTask(){
this.modalController.dismiss(null);
}
goBack() {
this.modalController.dismiss(null);
let navigationExtras: NavigationExtras = {
@@ -161,7 +166,6 @@ export class BookMeetingModalPage implements OnInit {
}
}
async saveTask(){
// issue12323423
let Attendees = this.taskParticipants.concat(this.taskParticipantsCc);
@@ -188,9 +192,8 @@ export class BookMeetingModalPage implements OnInit {
Categories: null,
HasAttachments: true,
}
console.log(this.postData);
console.log(this.task);
if(this.task.FsId == '8') {
@@ -226,25 +229,20 @@ export class BookMeetingModalPage implements OnInit {
await this.calendarService.createTaskEvent(this.task.FolderId, this.postData, "pr",this.task.SerialNumber, this.task.FsId).toPromise();
break;
}
this.toastService.successMessage('Reunião criada', ()=>{
this.close();
})
this.close();
this.toastService.successMessage('Reunião criada');
} catch (error) {
this.toastService.badRequest()
}
}
}
async addParticipants(){
this.adding = "intervenient";
if(window.innerWidth <= 800){
if(window.innerWidth <= 801){
const modal = await this.modalController.create({
component: AttendeesPageModal,
componentProps: {
@@ -322,7 +320,6 @@ export class BookMeetingModalPage implements OnInit {
});
await modal.present();
modal.onDidDismiss();
}
@@ -347,11 +344,8 @@ export class BookMeetingModalPage implements OnInit {
}
removeAttachment(index: number){
this.documents = this.documents.filter( (e, i) => index != i);
}
validateFormInputs(){
let formLocation = this.postData.Location.trim();
@@ -365,12 +359,10 @@ export class BookMeetingModalPage implements OnInit {
this.taskParticipantsCc = taskParticipantsCc;
}
goToGabinete() {
this.router.navigate(['/home/gabinete-digital']);
}
setIntervenient(data){
this.taskParticipants = data;
}
@@ -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"
@@ -43,7 +43,7 @@
</ion-select>
<mat-form-field appearance="fill" class="width-100 d-none d-md-block">
<mat-select [(value)]="postData.Priority">
<mat-select placeholder="Prazo*" [(ngModel)]="postData.Priority">
<mat-option [value]="99999861"><b>Normal</b> (4 dias para a execução da tarefa)</mat-option>
<mat-option [value]="99999862"><b>Urgente</b> (2 dias para a execução da tarefa)</mat-option>
<mat-option [value]="99999863"><b>Muito Urgente</b> (1 dia para a execução da tarefa)</mat-option>
@@ -70,10 +70,11 @@
</ion-select>
</ion-item>
<mat-form-field
<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 de evento*">
<mat-option *ngFor="let type of subjectTypes" [value]="type.Code">{{type.Description}}</mat-option>
</mat-select>
</mat-form-field>
@@ -90,7 +91,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;
@@ -60,7 +60,6 @@ export class ExpedientTaskModalPage implements OnInit {
taskDate: Date;
taskDescription: string;
user: string;
loadedAttachments:any;
documents:SearchDocument[] = [];
@@ -105,7 +104,6 @@ export class ExpedientTaskModalPage implements OnInit {
) {
this.loggeduser = userAuth.ValidatedUser;
this.user = environment.defaultuser +'@'+ environment.domain;
this.task = this.navParams.get('task');
console.log('task', this.task)
@@ -230,7 +228,7 @@ export class ExpedientTaskModalPage implements OnInit {
DistributionType: "Paralelo",
CountryCode: 'AO',
Priority: this.postData.Priority,
UserEmail: this.user,
UserEmail: this.loggeduser.Email,
UsersSelected: attendees,
DispatchFolder: this.dispatchFolder,
AttachmentList: docs,
@@ -261,7 +259,7 @@ export class ExpedientTaskModalPage implements OnInit {
DistributionType: "Paralelo",
CountryCode: 'AO',
Priority: this.postData.Priority,
UserEmail: this.user,
UserEmail: this.loggeduser.Email,
UsersSelected: attendees,
DispatchFolder: this.dispatchFolder,
AttachmentList: docs
@@ -289,7 +287,7 @@ export class ExpedientTaskModalPage implements OnInit {
DistributionType: "Paralelo",
CountryCode: 'AO',
Priority: this.postData.Priority,
UserEmail: this.user,
UserEmail: this.loggeduser.Email,
UsersSelected: attendees,
DispatchFolder: this.dispatchFolder,
AttachmentList: docs
@@ -325,7 +323,7 @@ export class ExpedientTaskModalPage implements OnInit {
DistributionType: "Paralelo",
CountryCode: 'AO',
Priority: this.postData.Priority,
UserEmail: this.user,
UserEmail: this.loggeduser.Email,
UsersSelected: attendees,
DispatchFolder: this.dispatchFolder,
AttachmentList: docs,
@@ -356,7 +354,7 @@ export class ExpedientTaskModalPage implements OnInit {
DistributionType: "Paralelo",
CountryCode: 'AO',
Priority: this.postData.Priority,
UserEmail: this.user,
UserEmail: this.loggeduser.Email,
UsersSelected: attendees,
DispatchFolder: this.dispatchFolder,
AttachmentList: docs
@@ -1,38 +1,31 @@
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { ExpedientePage } from './expediente.page';
const routes: Routes = [
{
path: '',
component: ExpedientePage
},
{
path: 'expediente-detail',
loadChildren: () => import('./expediente-detail/expediente-detail.module').then( m => m.ExpedienteDetailPageModule)
},
{
path: 'expedient-task-modal',
loadChildren: () => import('./expedient-task-modal/expedient-task-modal.module').then( m => m.ExpedientTaskModalPageModule)
}, {
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { ExpedientePage } from './expediente.page';
const routes: Routes = [
{
path: '',
component: ExpedientePage
},
{
path: 'expediente-detail',
loadChildren: () => import('./expediente-detail/expediente-detail.module').then( m => m.ExpedienteDetailPageModule)
},
{
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)
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class ExpedientePageRoutingModule {}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class ExpedientePageRoutingModule {}
@@ -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>
@@ -115,7 +115,7 @@
</div>
</div>
<div *ngIf="loggeduser.Profile == 'MDGPR'" (click)="openDiplomasPage('validar'); selectedElement='DiplomasPorAssinar'" [class.active]="selectedElement == 'DiplomasPorAssinar'" class="exp-card d-flex flex-column justify-center">
<div *ngIf="loggeduser.Profile == 'MDGPR'" (click)="openDiplomasPage('validar'); selectedElement='DiplomasPorValidar'" [class.active]="selectedElement == 'DiplomasPorValidar'" class="exp-card d-flex flex-column justify-center">
<div class="d-flex justify-center">
<ion-icon src="assets/images/icons-expediente-diploma.svg"></ion-icon>
</div>
@@ -150,15 +150,14 @@
<app-empty-container [texto]="emptyTextDescription" *ngIf="showEmptyContainer" class="d-flex height-100 flex-column"></app-empty-container>
<app-events-to-approve [profile]="'MDGPR'" *ngIf="showEventsToApprove" class="d-flex height-100 flex-column"></app-events-to-approve>
<app-expedients (openExpedientDetail)="openExpedientPage($event)" [profile]="profile" class="d-flex height-100 flex-column" *ngIf="showExpedients"></app-expedients>
<app-expediente (openExpedientList)="openExpedientListPage()" [profile]="profile" [serialNumber]="serialNumber" class="d-flex height-100 flex-column" *ngIf="showExpedientDetail"></app-expediente>
<app-pedidos (openPedido)="openExpedientPage($event)" [profile]="profile" [segment]="segment" [serialNumber]="serialNumber" class="d-flex height-100 flex-column" *ngIf="showPedidos"></app-pedidos>
<app-despachos (openExpedientDetail)="openExpedientPage($event)" [profile]="profile" class="d-flex height-100 flex-column" *ngIf="showDespachos"></app-despachos>
<app-despachos-pr (openExpedientDetail)="openExpedientPage($event)" [profile]="profile" class="d-flex height-100 flex-column" *ngIf="showDespachosPr"></app-despachos-pr>
<app-pendentes (openExpedientDetail)="openExpedientPage($event)" [profile]="profile" class="d-flex height-100 flex-column" *ngIf="showPendentes"></app-pendentes>
<app-expedients [profile]="profile" class="d-flex height-100 flex-column" *ngIf="showExpedients"></app-expedients>
<app-pedidos [profile]="profile" [segment]="segment" [serialNumber]="serialNumber" class="d-flex height-100 flex-column" *ngIf="showPedidos"></app-pedidos>
<app-despachos [profile]="profile" class="d-flex height-100 flex-column" *ngIf="showDespachos"></app-despachos>
<app-despachos-pr [profile]="profile" class="d-flex height-100 flex-column" *ngIf="showDespachosPr"></app-despachos-pr>
<app-pendentes [profile]="profile" class="d-flex height-100 flex-column" *ngIf="showPendentes"></app-pendentes>
<app-diplomas (openExpedientDetail)="openExpedientesPrPage($event)" [profile]="profile" [segment]="segment" class="d-flex height-100 flex-column" *ngIf="showDiplomas"></app-diplomas>
<app-diplomas-assinar class="d-flex height-100 flex-column" *ngIf="showDiplomasAssinar"></app-diplomas-assinar>
<app-expedientes-pr (openExpedientDetail)="openExpedientPage($event)" [profile]="profile" class="d-flex height-100 flex-column" *ngIf="showExpedientesPr"></app-expedientes-pr>
<app-expedientes-pr [profile]="profile" class="d-flex height-100 flex-column" *ngIf="showExpedientesPr"></app-expedientes-pr>
<app-signed-diploma [profile]="profile" class="d-flex height-100 flex-column" *ngIf="showSignedDiploma"></app-signed-diploma>
</div>
</div>
@@ -93,11 +93,12 @@ export class GabineteDigitalPage implements OnInit {
window.onresize = (event) => {
// if not mobile remove all component
if( window.innerWidth <= 800){
if( window.innerWidth <= 801){
this.modalController.dismiss();
}
};
this.checkRoutes();
this.checkUser();
}
@@ -111,14 +112,6 @@ export class GabineteDigitalPage implements OnInit {
ngOnInit() {
switch(this.loggeduser.Profile){
case 'MDGPR':
this.showExpedients = true;
break;
case 'PR':
this.showExpedientesPr = true;
break;
}
this.router.events.forEach((event) => {
if(event instanceof NavigationEnd && event.url == this.router.url) {
this.checkRoutes();
@@ -129,6 +122,17 @@ export class GabineteDigitalPage implements OnInit {
this.hideRefreshButton();
}
checkUser(){
switch(this.loggeduser.Profile){
case 'MDGPR':
this.showExpedients = true;
break;
case 'PR':
this.showExpedientesPr = true;
break;
}
}
hideRefreshButton(){
window.onresize = (event) => {
if( window.innerWidth < 801) {
@@ -139,13 +143,54 @@ export class GabineteDigitalPage implements OnInit {
}
}
if(window.innerWidth < 801){
console.log('YASS');
this.hideRefreshBtn = false;
}
}
checkRoutes(){
this.activatedRoute.queryParams.subscribe(params => {
if(this.router.url == '/home/gabinete-digital?eventos=true'){
this.openEventsToApprovePage("MDGPR");
this.selectedElement='approval';
}
else if(this.router.url == '/home/gabinete-digital?expedientes=true'){
this.openExpedientListPage();
if(this.loggeduser.Profile == 'MDGPR'){
this.selectedElement='Correspondence';
}
else{
this.selectedElement='Expediente Presidente'
}
}
else if(this.router.url == '/home/gabinete-digital?pendentes=true'){
this.openPendentesPage('');
this.selectedElement='Pending';
}
else if(this.router.url == '/home/gabinete-digital?despachos=true'){
this.openDespachosPage('');
this.selectedElement='Dispatches';
}
else if(this.router.url == '/home/gabinete-digital?pedidos=true'){
this.openPedidosPage('parecer');
this.selectedElement='RequestsForOpinion';
}
else if(this.router.url == '/home/gabinete-digital?expedientespr=true'){
this.openExpedientesPrPage();
this.selectedElement='Expediente Presidente'
}
else if(this.router.url == '/home/gabinete-digital?despachospr=true'){
this.openDespachosPrPage('');
this.selectedElement='DispatchesPr'
}
else if(this.router.url == '/home/gabinete-digital?diplomas=true'){
this.openDiplomasPage('validar');
this.selectedElement='DiplomasPorValidar';
}
else if(this.router.url == '/home/gabinete-digital?diplomasassinar=true'){
this.openDiplomasPage('');
this.selectedElement='DiplomasAssinar';
}
/* this.activatedRoute.queryParams.subscribe(params => {
switch (params)
{
case params["eventos"]:
@@ -185,8 +230,8 @@ export class GabineteDigitalPage implements OnInit {
break;
case params["diplomas"]:
this.openDiplomasPage('');
this.selectedElement='DiplomasPorAssinar';
this.openDiplomasPage('validar');
this.selectedElement='DiplomasPorValidar';
break;
case params["diplomasassinar"]:
@@ -194,7 +239,7 @@ export class GabineteDigitalPage implements OnInit {
this.selectedElement='DiplomasAssinar';
break;
}
});
}); */
}
refreshExpedientes(){
@@ -312,7 +357,7 @@ export class GabineteDigitalPage implements OnInit {
}
selectedElementF(element:string) {
if (window.innerWidth >= 800) {
if (window.innerWidth >= 801) {
return element == this.selectedElement
}
return false;
@@ -323,7 +368,7 @@ export class GabineteDigitalPage implements OnInit {
this.closeAllDesktopComponents();
let navigationExtras: NavigationExtras = { queryParams: {"eventos": true,}};
if( window.innerWidth <= 800) {
if( window.innerWidth <= 801) {
//this.openEventsToApproveList(profile);
this.router.navigate(['/home/gabinete-digital/event-list']);
}
@@ -333,32 +378,12 @@ export class GabineteDigitalPage implements OnInit {
//this.eventsToApprove.doRefresh();
}
}
async openEventsToApproveList(profile:any) {
this.closeAllDesktopComponent();
//if( window.innerWidth <= 1024){
const modal = await this.modalController.create({
component: EventListPage,
componentProps:{
profile: profile,
},
cssClass: 'modal modal-desktop',
backdropDismiss: false
});
await modal.present();
modal.onDidDismiss();
//} else {
//this.desktopComponent.showEventList = true;
//}
}
openExpedientListPage() {
this.closeAllDesktopComponents();
switch(this.loggeduser.Profile){
case 'MDGPR':
if( window.innerWidth <= 800) {
if( window.innerWidth <= 801) {
//this.openExpedientList();
this.router.navigate(['/home/gabinete-digital/expediente']);
}
@@ -370,8 +395,7 @@ export class GabineteDigitalPage implements OnInit {
}
break;
case 'PR':
if( window.innerWidth <= 800) {
//this.openExpedientList();
if( window.innerWidth <= 801) {
this.router.navigate(['/home/gabinete-digital/expedientes-pr']);
}
else {
@@ -385,23 +409,9 @@ export class GabineteDigitalPage implements OnInit {
}
openExpedientPage(data){
console.log(data);
this.closeAllDesktopComponents();
if( window.innerWidth <= 800){
//this.openExpedientList();
}
else{
this.serialNumber = data;
this.showExpedientDetail = true;
}
}
openPedidosPage(segment:string) {
this.closeAllDesktopComponents();
if( window.innerWidth <= 800) {
//this.openPedidoList();
if( window.innerWidth <= 801) {
let navigationExtras: NavigationExtras;
@@ -423,8 +433,7 @@ export class GabineteDigitalPage implements OnInit {
openDespachosPage(segment?:string) {
this.closeAllDesktopComponents();
if( window.innerWidth <= 800){
//this.openDespachoList();
if( window.innerWidth <= 801){
this.router.navigate(['/home/gabinete-digital/despachos']);
}
else{
@@ -436,8 +445,7 @@ export class GabineteDigitalPage implements OnInit {
openDespachosPrPage(segment?:string) {
this.closeAllDesktopComponents();
if( window.innerWidth <= 800){
//this.openDespachoListPr();
if( window.innerWidth <= 801){
this.router.navigate(['/home/gabinete-digital/despachos-pr']);
}
else{
@@ -449,8 +457,7 @@ export class GabineteDigitalPage implements OnInit {
openPendentesPage(segment?:string){
this.closeAllDesktopComponents();
if( window.innerWidth <= 800){
//this.openPendenteList();
if( window.innerWidth <= 801){
this.router.navigate(['/home/gabinete-digital/pendentes']);
}
else{
@@ -462,28 +469,24 @@ export class GabineteDigitalPage implements OnInit {
openExpedientesPrPage(segment?:string){
this.closeAllDesktopComponents();
if( window.innerWidth <= 800) {
//this.openExpedientList();
if( window.innerWidth <= 801) {
this.router.navigate(['/home/gabinete-digital/expedientes-pr']);
}
else {
this.selectedElement='ExpedientesPr'
let navigationExtras: NavigationExtras = { queryParams: {"expedientes": true,}};
let navigationExtras: NavigationExtras = { queryParams: {"expedientespr": true,}};
this.router.navigate(['/home/gabinete-digital'], navigationExtras);
this.showExpedientesPr = true;
}
}
openDiplomasPage(segment:string) {
this.closeAllDesktopComponents();
if( window.innerWidth <= 800){
//this.openDeploma();
if( window.innerWidth <= 801){
let navigationExtras: NavigationExtras = { queryParams: {"segment": segment}};
this.router.navigate(['/home/gabinete-digital/diplomas'], navigationExtras);
}
else{
this.closeAllDesktopComponents();
this.segment = segment;
let navigationExtras: NavigationExtras = { queryParams: {"diplomas": true,}};
this.router.navigate(['/home/gabinete-digital'], navigationExtras);
@@ -495,8 +498,7 @@ export class GabineteDigitalPage implements OnInit {
this.closeAllDesktopComponents();
if (this.loggeduser.Profile == 'MDGPR') {
if( window.innerWidth <= 800){
//this.openDeploma();
if( window.innerWidth <= 801){
let navigationExtras: NavigationExtras = { queryParams: {"segment": 'assinados',}};
this.router.navigate(['/home/gabinete-digital/diplomas'], navigationExtras);
}
@@ -506,8 +508,7 @@ export class GabineteDigitalPage implements OnInit {
this.showDiplomasAssinar = true;
}
} else {
if( window.innerWidth <= 800){
//this.openDeploma();
if( window.innerWidth <= 801){
let navigationExtras: NavigationExtras = { queryParams: {"segment": 'assinados',}};
this.router.navigate(['/home/gabinete-digital/diplomas-assinar'], navigationExtras);
}
@@ -517,109 +518,6 @@ export class GabineteDigitalPage implements OnInit {
this.showDiplomasAssinar = true;
}
}
}
openSignedDiploma(segment:string) {
this.closeAllDesktopComponents();
if( window.innerWidth <= 800){
this.openDeploma();
}
else{
this.segment = segment;
this.showSignedDiploma = true;
}
}
async openDeploma() {
const modal = await this.modalController.create({
component: DiplomasPage,
componentProps:{
profile: this.profile,
},
cssClass: 'modal modal-desktop',
//backdropDismiss: false
});
await modal.present();
modal.onDidDismiss();
}
async openExpedientList(){
this.closeAllDesktopComponent();
//if( window.innerWidth <= 1024){
const modal = await this.modalController.create({
component: ExpedientePage,
componentProps: {
profile: this.profile,
},
cssClass: 'modal modal-desktop',
backdropDismiss: false
});
await modal.present();
modal.onDidDismiss();
//} else {
console.log('show desktop modal')
//this.desktopComponent.showExpediente = true;
//}
}
/* async openPendenteList(){
this.closeAllDesktopComponent();
const modal = await this.modalController.create({
component: PendentesPage,
componentProps:{
profile: this.profile,
},
cssClass: 'modal modal-desktop',
});
await modal.present();
modal.onDidDismiss();
console.log('show desktop modal')
} */
async openDespachoList(){
this.closeAllDesktopComponent();
const modal = await this.modalController.create({
component: DespachosPage,
componentProps:{
profile: this.profile,
serialNumber: this.serialNumber
},
cssClass: 'modal modal-desktop',
});
await modal.present();
modal.onDidDismiss();
console.log('show desktop modal')
}
async openDespachoListPr(){
this.closeAllDesktopComponent();
const modal = await this.modalController.create({
component: DespachosPrPage,
componentProps:{
profile: this.profile,
},
cssClass: 'modal modal-desktop',
});
await modal.present();
modal.onDidDismiss();
console.log('show desktop modal')
}
async openPedidoList(){
this.closeAllDesktopComponent();
const modal = await this.modalController.create({
component: PedidosPage,
componentProps:{
profile: this.profile,
},
cssClass: 'modal modal-desktop',
});
await modal.present();
modal.onDidDismiss();
console.log('show desktop modal')
}
}
@@ -51,16 +51,7 @@ export class PendentesPage implements OnInit {
}
goBack() {
let navigationExtras: NavigationExtras = {
queryParams: {
"pedidos": true,
}
}
this.router.navigate(['/home/gabinete-digital'], navigationExtras);
// window.history.back();
this.router.navigate(['/home/gabinete-digital']);
}
notImplemented(){
+64 -65
View File
@@ -1,86 +1,85 @@
<ion-content class="text-white">
<div class="main-wrapper">
<div class="wrapper" *ngIf="userLoginPreference != 'pin' && userLoginPreference != 'fingerprint' && !setPint ">
<div class="wrapper" *ngIf="userLoginPreference != 'pin' && userLoginPreference != 'fingerprint' && !setPint ">
<div class="bg-1 d-flex justify-center align-center">
<div class="bg-2 d-flex justify-center align-center">
<div class="bg-3 d-flex justify-center align-center">
<div class="bg-4 d-flex justify-center align-center">
<div class="div-logo">
<img src='assets/images/fullLogo.png' alt='logo'>
<div class="bg-1 d-flex justify-center align-center">
<div class="bg-2 d-flex justify-center align-center">
<div class="bg-3 d-flex justify-center align-center">
<div class="bg-4 d-flex justify-center align-center">
<div class="div-logo">
<img src='assets/images/fullLogo.png' alt='logo'>
</div>
</div>
</div>
</div>
</div>
</div>
<h3 class="center text-white">Inicie a sessão</h3>
<form class="form">
<p class="form-label text-white">Nome de utilizador</p>
<ion-item class="form-input">
<ion-input type="text" [(ngModel)]="username" name="input-username"></ion-input>
</ion-item>
<p class="form-label text-white">Palavra-passe</p>
<ion-item class="form-input">
<ion-input (keyup.enter)="Login()" type="password" [(ngModel)]="password" name="input-password" ></ion-input>
</ion-item>
<div class="d-flex pt-25">
<button class="btn-ok btn-login" fill="clear" expand="block" shape="round" (click)="Login()">Iniciar</button>
</div>
</form>
<div class="msg-bottom d-flex">
<p class="msg-bottom-p">Uma iniciativa do Gabinete do Presidente da República</p>
<h3 class="center text-white">Inicie a sessão</h3>
<form class="form">
<p class="form-label text-white">Nome de utilizador</p>
<ion-item class="form-input">
<ion-input type="text" [(ngModel)]="username" name="input-username"></ion-input>
</ion-item>
<p class="form-label text-white">Palavra-passe</p>
<ion-item class="form-input">
<ion-input (keyup.enter)="Login()" type="password" [(ngModel)]="password" name="input-password" ></ion-input>
</ion-item>
<div class="d-flex pt-25">
<button class="btn-ok btn-login" fill="clear" expand="block" shape="round" (click)="Login()">Iniciar</button>
</div>
</form>
<div class="msg-bottom d-flex">
<p class="msg-bottom-p">Uma iniciativa do Gabinete do Presidente da República</p>
</div>
</div>
</div>
<div class="main-content height-100" *ngIf="userLoginPreference == 'pin' || setPint">
<div class=" align-center justify-center">
<div class="div-top-header">
<div class="main-content height-100" *ngIf="userLoginPreference == 'pin' || setPint">
<div class=" align-center justify-center">
<div class="div-top-header">
<div class="div-logo">
<img src='assets/images/logo-bg.png' alt='logo'>
<div class="div-logo">
<img src='assets/images/logo-bg.png' alt='logo'>
</div>
</div>
</div>
<ion-title *ngIf="!setPint" class="title">Digite o PIN</ion-title>
<ion-title *ngIf="setPint" class="title">Digite o novo PIN</ion-title>
<ion-title *ngIf="!setPint" class="title">Digite o PIN</ion-title>
<ion-title *ngIf="setPint" class="title">Digite o novo PIN</ion-title>
<div class="d-flex pt-25 align-center justify-center">
<div class="dot" [class.dot-active]="code.length >= 1"></div>
<div class="dot" [class.dot-active]="code.length >= 2"></div>
<div class="dot" [class.dot-active]="code.length >= 3"></div>
<div class="dot"[class.dot-active]="code.length >= 4"></div>
</div>
<div class="terminal">
<div class="d-flex">
<div class="circle" (click)="setCode('1')">1</div> <div class="circle" (click)="setCode('2')">2</div> <div class="circle" (click)="setCode('3')">3</div>
<div class="d-flex pt-25 align-center justify-center">
<div class="dot" [class.dot-active]="code.length >= 1"></div>
<div class="dot" [class.dot-active]="code.length >= 2"></div>
<div class="dot" [class.dot-active]="code.length >= 3"></div>
<div class="dot"[class.dot-active]="code.length >= 4"></div>
</div>
<div class="d-flex">
<div class="circle" (click)="setCode('4')">4</div> <div class="circle" (click)="setCode('5')">5</div> <div class="circle" (click)="setCode('6')">6</div>
<div class="terminal">
<div class="d-flex">
<div class="circle" (click)="setCode('1')">1</div> <div class="circle" (click)="setCode('2')">2</div> <div class="circle" (click)="setCode('3')">3</div>
</div>
<div class="d-flex">
<div class="circle" (click)="setCode('4')">4</div> <div class="circle" (click)="setCode('5')">5</div> <div class="circle" (click)="setCode('6')">6</div>
</div>
<div class="d-flex">
<div class="circle" (click)="setCode('7')">7</div> <div class="circle" (click)="setCode('8')">8</div> <div class="circle" (click)="setCode('9')">9</div>
</div>
<div class="d-flex align-center justify-center">
<div class="circle" (click)="setCode('0')">0</div>
</div>
</div>
<div class="d-flex">
<div class="circle" (click)="setCode('7')">7</div> <div class="circle" (click)="setCode('8')">8</div> <div class="circle" (click)="setCode('9')">9</div>
<div *ngIf="!setPint" class="voltar d-flex align-center justify-center pt-25 clear" (click)="setPint=false; userLoginPreference='none'">
Entrar com senha
</div>
<div class="d-flex align-center justify-center">
<div class="circle" (click)="setCode('0')">0</div>
</div>
</div>
<div *ngIf="!setPint" class="voltar d-flex align-center justify-center pt-25 clear" (click)="setPint=false; userLoginPreference='none'">
Entrar com senha
</div>
<div *ngIf="setPint" class="voltar d-flex align-center justify-center pt-25 clear" (click)="pin=!pin;">
Limpar
</div>
<div *ngIf="setPint" class="voltar d-flex align-center justify-center pt-25 clear" (click)="clearCode()">
Limpar
</div>
</div>
</div>
</div>
</div>
+4 -3
View File
@@ -211,8 +211,9 @@ ion-item{
}
}
@media only screen and (min-width: 1024px){
.form{
width: 400px;
@media only screen and (max-height: 746px){
.msg-bottom-p {
padding-top: 20px;
position: unset !important;
}
}
+5 -5
View File
@@ -41,7 +41,8 @@ export class AuthService {
async login(user: UserForm): Promise<boolean> {
user.BasicAuthKey = 'Basic ' + btoa(user.username + '@' + user.domainName + ':' + user.password); //conversão em base64 das credenciais inseridas
//user.BasicAuthKey = 'Basic ' + btoa(user.username + '@' + user.domainName + ':' + user.password);
user.BasicAuthKey = 'Basic ' + btoa(user.username + ':' + user.password); //conversão em base64 das credenciais inseridas
const options = { headers: {'Authorization': user.BasicAuthKey }};
@@ -55,12 +56,11 @@ export class AuthService {
let response: any;
try {
result = await this.http.get<boolean>(service, options).toPromise();
response = await this.http.post<User>(environment.apiURL + "UserAuthentication/Login", '', this.opts).toPromise();
console.log(response);
if (result) {
if (response) {
if( response.RoleID == 100000014) {
response.Profile = 'PR'
} else if(response.RoleID == 100000011) {
@@ -73,11 +73,11 @@ export class AuthService {
this.storageService.store(AuthConnstants.USER, response);
return result;
return true;
}
} catch (error) {
return result;
return false;
}
}
+8 -14
View File
@@ -90,11 +90,6 @@ export class EventsService {
this.headers = new HttpHeaders();
this.headers = this.headers.set('Authorization', this.loggeduser.BasicAuthKey);
}
/* getAllEvents(startdate:string, enddate:string): Observable<Event[]>{
@@ -118,15 +113,6 @@ export class EventsService {
params = params.set("Start", startdate);
params = params.set("End", enddate);
/* switch (this.loggeduser.Profile == 'MDGPR') {
case value:
break;
default:
break;
} */
let options = {
headers: this.headersPrOficial,
@@ -306,6 +292,14 @@ export class EventsService {
return this.http.put<Event>(`${puturl}`, event, options)
}
changeAgenda(body:any){
const puturl = environment.apiURL + 'Calendar/MoveEvent';
let options = {
headers: this.headers,
};
return this.http.post<any>(`${puturl}`, body, options);
}
/* postEvent(event:Event, calendarName:string, sharedagenda:string)
{
const puturl = environment.apiURL + 'calendar/' + ((sharedagenda != '') ? sharedagenda : 'PostEvent');
@@ -14,7 +14,7 @@
<ion-content>
<div class="main-content">
<div class="ion-item-container">
<ion-input placeholder="Assunto" [(ngModel)]="postEvent.Subject"></ion-input>
<ion-input placeholder="Assunto*" [(ngModel)]="postEvent.Subject"></ion-input>
</div>
<div class="container-div">
<div class="ion-item-class-2 width-100 d-flex">
@@ -22,7 +22,7 @@
<ion-icon slot="start" src="assets/images/icons-location.svg"></ion-icon>
</div>
<div class="ion-input-class flex-grow-1">
<ion-input placeholder="Localização" [(ngModel)]="postEvent.Location"></ion-input>
<ion-input placeholder="Localização*" [(ngModel)]="postEvent.Location"></ion-input>
</div>
</div>
<!-- Error messages -->
@@ -40,8 +40,8 @@
</div>
<div class="ion-input-class flex-grow-1">
<mat-form-field class="width-100" placeholder="Selecione agenda">
<mat-select [(value)]="postEvent.CalendarName" >
<mat-form-field floatLabel="never" class="width-100" >
<mat-select placeholder="Selecione agenda*" [(ngModel)]="postEvent.CalendarName" >
<mat-option value="Oficial">
Oficial
</mat-option>
@@ -62,9 +62,9 @@
</div>
<div class="ion-input-class flex-grow-1">
<mat-form-field class="width-100" placeholder="Sample Type" required>
<mat-form-field floatLabel="never" class="width-100" required>
<!-- <input matInput type="text" > -->
<mat-select matInput [(value)]="postEvent.Categories[0]" >
<mat-select placeholder="Selecione o tipo de evento*" matInput [(ngModel)]="postEvent.Categories[0]" >
<mat-option value="Reunião">
Reunião
</mat-option>
@@ -91,7 +91,7 @@
</div>
<div class="ion-input-class flex-grow-1">
<mat-form-field class="date-hour-picker">
<mat-form-field floatLabel="never" class="date-hour-picker">
<input matInput [ngxMatDatetimePicker]="picker1"
placeholder="Choose a date"
[formControl]="dateControlStart"
@@ -119,7 +119,7 @@
</div>
<div class="ion-input-class flex-grow-1">
<mat-form-field class="date-hour-picker">
<mat-form-field floatLabel="never" class="date-hour-picker">
<input matInput [ngxMatDatetimePicker]="fim"
placeholder="Choose a date"
[formControl]="dateControlEnd"
@@ -147,8 +147,8 @@
</div>
<div class="ion-input-class flex-grow-1">
<mat-form-field class="width-100" placeholder="Selecione repetição" value="false" interface="action-sheet" required>
<mat-select [(ngModel)]="postEvent.IsRecurring">
<mat-form-field floatLabel="never" class="width-100" value="false" interface="action-sheet" required>
<mat-select placeholder="Selecione repetição*" [(ngModel)]="postEvent.IsRecurring">
<mat-option value="false">
Não se repete
</mat-option>
@@ -194,7 +194,7 @@
<div class="list-people">
<ion-item lines="none">
<ion-list>
<ion-label *ngIf="taskParticipantsCc?.length < 1" class="list-people-title">Como conhecido</ion-label>
<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>
@@ -255,15 +255,15 @@
<ion-footer class="ion-no-border">
<ion-toolbar class="width-100 d-flex justify-space-between px-20">
<ion-buttons slot="start">
<ion-button class="btn-cancel" fill="clear" color="#061b52" (click)="close()">
<button class="btn-cancel" fill="clear" color="#061b52" (click)="close()">
<ion-label>Cancelar</ion-label>
</ion-button>
</button>
</ion-buttons>
<ion-title></ion-title>
<ion-buttons slot="end">
<ion-button class="btn-ok" fill="clear" color="#fff" (click)="save()">
<button class="btn-ok" fill="clear" color="#fff" (click)="save()">
<ion-label>Gravar</ion-label>
</ion-button>
</button>
</ion-buttons>
</ion-toolbar>
</ion-footer>
@@ -99,7 +99,7 @@ ion-content{
}
.list-people-title{
/* font-size: 13px; */
color: #797979;
color: #a3a3a3;
}
.attach-document{
font-size: 15px;
@@ -25,6 +25,7 @@ export class EditEventPage implements OnInit {
isRecurring:string;
isEventEdited: boolean;
loadedEvent: Event;
initCalendarName: string;
eventBody: EventBody;
segment:string = "true";
eventAttendees: EventPerson[];
@@ -95,6 +96,7 @@ export class EditEventPage implements OnInit {
}
ngOnInit() {
if(!this.restoreTemporaryData()){
// clear
@@ -156,19 +158,16 @@ export class EditEventPage implements OnInit {
this.showLoader = true
await this.eventsService.editEvent(this.postEvent, 2, 3).subscribe(async () => {
this.showLoader = false
const alert = await this.alertController.create({
cssClass: 'my-custom-class',
header: 'Evento actualizado',
buttons: ['OK']
});
if(this.initCalendarName != this.postEvent.CalendarName){
let body = {
"EventId": this.postEvent.EventId,
"CalendarDestinationName": this.postEvent.CalendarName,
}
console.log(body);
await this.eventsService.changeAgenda(body).toPromise();
}
this.showLoader = false;
this.toastService.successMessage()
setTimeout(()=>{
alert.dismiss();
}, 1500);
},
error => {
this.showLoader = false
@@ -14,20 +14,44 @@
<ion-content>
<div class="main-content">
<div class="ion-item-container">
<ion-input type="text" placeholder="Assunto" [(ngModel)]="postEvent.Subject"></ion-input>
<div class="ion-item-container" [className]="Form?.get('Subject')?.invalid && validateFrom ? 'input-error ion-item-container' : 'ion-item-container' ">
<ion-input type="text" placeholder="Assunto*" [(ngModel)]="postEvent.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">
<div class="ion-item-class-2 d-flex">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-location.svg"></ion-icon>
</div>
<div class="ion-input-class flex-grow-1">
<ion-input type="text" placeholder="Localização" [(ngModel)]="postEvent.Location"></ion-input>
<div class="ion-input-class flex-grow-1 width-100" [className]="Form?.get('Subject')?.invalid && validateFrom ? 'input-error ion-input-class flex-grow-1 width-100' : 'ion-input-class flex-grow-1 width-100' " >
<ion-input type="text" placeholder="Localização*" [(ngModel)]="postEvent.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 d-flex">
@@ -36,7 +60,7 @@
</div>
<div class="ion-input-class flex-grow-1 d-flex justify-center align-center material-inputs materia-top ">
<mat-form-field class="width-100" color="ion-color-secondary" placeholder="Selecione agenda">
<mat-form-field appearance="none" class="width-100" color="ion-color-secondary" placeholder="Selecione agenda">
<mat-select [(value)]="postEvent.CalendarName" >
<mat-option value="Oficial">
Oficial
@@ -58,9 +82,9 @@
</div>
<div class="ion-input-class flex-grow-1 d-flex justify-center align-center material-inputs materia-top">
<mat-form-field class="width-100" placeholder="Sample Type" required>
<mat-form-field appearance="none" class="width-100" placeholder="Sample Type" required>
<!-- <input matInput type="text" > -->
<mat-select matInput [(value)]="postEvent.Categories[0]" >
<mat-select [(value)]="postEvent.Categories[0]" >
<mat-option value="Reunião">
Reunião
</mat-option>
@@ -84,7 +108,11 @@
<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">
<!--
[className]="Form?.get('Subject')?.invalid ? 'input-error ion-input-class flex-grow-1' : 'ion-input-class ion-input-class flex-grow-1' "
-->
<div class="ion-input-class flex-grow-1" >
<mat-form-field class="date-hour-picker">
<input matInput [ngxMatDatetimePicker]="picker1"
@@ -113,7 +141,10 @@
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div>
<div (click)="openFim()" class="ion-input-class flex-grow-1">
<!--
[className]="Form?.get('Subject')?.invalid ? 'input-error ion-input-class flex-grow-1' : 'ion-input-class ion-input-class flex-grow-1' "
-->
<div (click)="openFim()" class="ion-input-class flex-grow-1" >
<mat-form-field class="date-hour-picker">
<input matInput [ngxMatDatetimePicker]="fim"
@@ -144,8 +175,8 @@
</div>
<div class="ion-input-class flex-grow-1 d-flex justify-center align-center material-inputs materia-top">
<mat-form-field class="width-100" placeholder="Selecione repetição" value="false" interface="action-sheet" required>
<mat-select [(value)]="postEvent.IsRecurring">
<mat-form-field appearance="none" floatLabel="never" class="width-100" value="false" interface="action-sheet" required>
<mat-select placeholder="Selecione repetição*" [(ngModel)]="postEvent.IsRecurring">
<mat-option value="false">
Não se repete
</mat-option>
@@ -169,7 +200,7 @@
<div class="list-people">
<ion-item lines="none">
<ion-list>
<ion-label *ngIf="taskParticipants.length ==0" class="list-people-title">Adicionar intervenientes</ion-label>
<ion-label *ngIf="taskParticipants.length ==0" class="list-people-title">Adicionar intervenientes*</ion-label>
<ion-label *ngFor="let participant of taskParticipants">{{participant.Name}}</ion-label>
</ion-list>
</ion-item>
@@ -102,7 +102,7 @@
}
.list-people-title{
/* font-size: 13px; */
color: #797979;
color: #a3a3a3;
}
.attach-document{
font-size: 15px;
@@ -61,8 +61,8 @@ export class NewEventPage implements OnInit {
public showSeconds = false;
public touchUi = false;
public enableMeridian = false;
public minDate: any;
public maxDate: any;
public minDate = new Date();
public maxDate = '';
public stepHour = 1;
public stepMinute = 5;
public stepSecond = 5;
@@ -71,7 +71,7 @@ export class NewEventPage implements OnInit {
@Input() profile:string;
@Input() selectedSegment: string;
@Input() selectedDate: Date;
@Input() taskParticipants: EventPerson[];
@Input() taskParticipants: EventPerson[] = [];
@Input() taskParticipantsCc: any = [];
@Output() setIntervenient = new EventEmitter<any>();
@@ -94,6 +94,9 @@ export class NewEventPage implements OnInit {
@ViewChild('inicio') inicio: any;
@ViewChild('picker1') picker1: any;
Form: any = {}
validateFrom = false
public options = [
{ value: true, label: 'True' },
@@ -118,7 +121,6 @@ export class NewEventPage implements OnInit {
return this.dateControlEnd.value
}
constructor(
private modalController: ModalController,
private eventService: EventsService,
@@ -154,7 +156,7 @@ export class NewEventPage implements OnInit {
let selectedEndDate = new Date(this.selectedDate);
/* Set + 30minutes to seleted datetime */
selectedEndDate.setMinutes(this.selectedDate.getMinutes() + 30) ;
this.minDate = this.selectedDate.toString();
if(this.selectedSegment != "Combinada"){
this.postEvent ={
@@ -222,6 +224,46 @@ export class NewEventPage implements OnInit {
this.date = new Date(2021,9,4,5,6,7);
this.getDatepickerData()
this.injectValidation()
}
runValidation() {
this.validateFrom = true
}
injectValidation() {
this.Form = new FormGroup({
Subject: new FormControl(this.postEvent.Subject, [
Validators.required,
Validators.minLength(4)
]),
Location: new FormControl(this.postEvent.Location, [
Validators.required,
]),
CalendarName: new FormControl(this.postEvent.CalendarName),
Categories: new FormControl(this.postEvent.Categories[0], [
Validators.required
]),
dateStart: new FormControl(this.dateStart, [
Validators.required
]),
dateEnd: new FormControl(this.dateEnd, [
Validators.required
]),
IsRecurring: new FormControl(this.postEvent.IsRecurring, [
Validators.required
]),
participantes: new FormControl(this.participantes, [
Validators.required
]),
})
}
get participantes() {
return this.taskParticipantsCc.concat(this.taskParticipants)
}
openInicio() {
@@ -283,7 +325,12 @@ export class NewEventPage implements OnInit {
}
async save(){
async save() {
this.runValidation()
// dont runt this function
// if (!this.Form.valid) return false
this.getDatepickerData()
@@ -297,7 +344,10 @@ export class NewEventPage implements OnInit {
// console.log('MD - Aqui');
// console.log(this.postEvent);
this.showLoader = true
this.showLoader = true;
console.log(this.postEvent);
this.eventService.postEventMd(this.postEvent, this.postEvent.CalendarName).subscribe(
async (id) => {
@@ -12,6 +12,7 @@ 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 { OptsExpedientePage } from '../../popover/opts-expediente/opts-expediente.page';
import { ToastService } from 'src/app/services/toast.service';
@Component({
selector: 'app-view-event',
@@ -51,7 +52,8 @@ export class ViewEventPage implements OnInit {
private iab: InAppBrowser,
private processes: ProcessesService,
private modalController: ModalController,
public popoverController: PopoverController
public popoverController: PopoverController,
private toastService: ToastService,
)
{
this.isEventEdited = false;
@@ -102,15 +104,7 @@ export class ViewEventPage implements OnInit {
deleteEvent(){
this.eventsService.deleteEvent(this.loadedEvent.EventId, 0).subscribe(async () =>
{
const alert = await this.alertController.create({
cssClass: 'my-custom-class',
header: 'Evento removido',
buttons: ['OK']
});
setTimeout(()=>{
alert.dismiss();
}, 1500);
this.toastService.successMessage('Evento apagado');
this.close();
});
}
@@ -19,15 +19,6 @@
</ion-toolbar>
</ion-header>
<ion-content>
<ion-refresher name="refresher" slot="fixed" (ionRefresh)="doRefresh()">
<ion-refresher-content
pullingIcon="chevron-down-circle-outline"
pullingText="deslize para actualizar"
refreshingSpinner="circles"
refreshingText="A actualizar...">
</ion-refresher-content>
</ion-refresher>
<div class="width-100 overflow-y-auto height-100" [ngSwitch]="segment">
<div *ngIf="diplomasList">
<ion-list *ngSwitchCase="'validar'">
@@ -31,10 +31,9 @@ constructor(
}
ngOnInit() {
this.LoadList();
this.router.events.forEach((event) => {
if(event instanceof NavigationEnd && event.url == this.router.url) {
this.doRefresh();
this.LoadList();
}
});
}
@@ -57,9 +56,12 @@ constructor(
}
async LoadList(){
this.diplomasList = new Array();
console.log('OOOKAY');
let diplomas = await this.processes.GetTasksList("Despacho do Presidente da República", false).toPromise();
this.diplomasList = new Array();
console.log(diplomas);
switch (this.segment) {
@@ -168,16 +170,12 @@ constructor(
});
});
this.showLoader = false;
break;
}
}
doRefresh() {
this.LoadList();
setTimeout(() => {
//event.target.complete();
}, 2000);
}
}
@@ -16,7 +16,7 @@
<ion-item-sliding class="overflow-y-auto">
<div class="px-20">
<div class="ion-item-container width-100">
<ion-input placeholder="Assunto" [(ngModel)]="eventProcess.workflowInstanceDataFields.Subject"></ion-input>
<ion-input placeholder="Assunto*" [(ngModel)]="eventProcess.workflowInstanceDataFields.Subject"></ion-input>
</div>
<div class="container-div width-100">
<div class="ion-item-class-2">
@@ -24,7 +24,7 @@
<ion-icon slot="start" src="assets/images/icons-location.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-input placeholder="Localização" [(ngModel)]="eventProcess.workflowInstanceDataFields.Location"></ion-input>
<ion-input placeholder="Localização*" [(ngModel)]="eventProcess.workflowInstanceDataFields.Location"></ion-input>
</div>
</div>
<!-- Error messages -->
@@ -41,7 +41,7 @@
</div>
<div class="ion-input-class">
<ion-select disabled placeholder="Selecione agenda"
<ion-select disabled placeholder="Selecione agenda*"
class="d-block d-md-none"
selectedText="{{eventProcess.workflowInstanceDataFields.Agenda}}"
[(ngModel)]="eventProcess.workflowInstanceDataFields.Agenda"
@@ -53,8 +53,8 @@
</ion-select>
<mat-form-field class="d-none d-md-block width-100" placeholder="Selecione agenda">
<mat-select [(value)]="eventProcess.workflowInstanceDataFields.Agenda" >
<mat-form-field class="d-none d-md-block width-100" >
<mat-select placeholder="Selecione agenda" [(ngModel)]="eventProcess.workflowInstanceDataFields.Agenda" >
<mat-option value="Oficial">
Oficial
</mat-option>
@@ -194,7 +194,7 @@
<div class="list-people flex-grow-1">
<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>
@@ -18,7 +18,7 @@
</ion-refresher-content>
</ion-refresher>
<div class="width-100 overflow-y-auto height-100" *ngIf="taskslist.length >= 1">
<div class="width-100 overflow-y-auto height-100" *ngIf="taskslist">
<ion-list>
<ion-item
class="expediente ion-no-padding cursor-pointer"
@@ -29,7 +29,7 @@
</ion-refresher>
<div class="width-100" [ngSwitch]="segment">
<div *ngIf="parecerList.length >= 1" class="overflow-y-auto height-100">
<div *ngIf="parecerList" class="overflow-y-auto height-100">
<ion-list *ngSwitchCase="'parecer'">
<!-- *ngFor = "let task of parecerList; let i = index"
(click)="viewExpedientDetail(task.SerialNumber)" -->
@@ -64,7 +64,7 @@
</ion-list>
</div>
<div *ngIf="deferimentoList.length >= 1" class="overflow-y-auto height-100">
<div *ngIf="deferimentoList" class="overflow-y-auto height-100">
<ion-list *ngSwitchCase="'deferimento'">
<ion-item
class="expediente ion-no-padding cursor-pointer"
@@ -1,5 +1,5 @@
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { ActivatedRoute, Router } from '@angular/router';
import { AnimationController, ModalController, PopoverController } from '@ionic/angular';
import { AddNotePage } from 'src/app/modals/add-note/add-note.page';
import { BookMeetingModalPage } from 'src/app/pages/gabinete-digital/expediente/book-meeting-modal/book-meeting-modal.page';
@@ -27,7 +27,8 @@ export class DeplomaOptionsPage implements OnInit {
private activatedRoute: ActivatedRoute,
private processes: ProcessesService,
private animationController: AnimationController,
private toastService: ToastService) {
private toastService: ToastService,
private router: Router,) {
this.activatedRoute.queryParams.subscribe(params => {
if(params["serialNumber"]) {
this.serialnumber = params["serialNumber"];
@@ -150,7 +151,8 @@ export class DeplomaOptionsPage implements OnInit {
goBack() {
this.close()
this.close();
this.router.navigate(['/home/gabinete-digital/diplomas']);
}
+3 -3
View File
@@ -8,9 +8,9 @@ export const environment = {
/* apiURL: 'http://gpr-dev-01.gabinetedigital.local/GabineteDigital.Services/V4/api/', */
apiChatUrl: 'https://www.tabularium.pt/api/v1/',
/* apiChatUrl: 'http://chat.gabinetedigital.local:3000/api/v1/', */
domain: 'gabinetedigital.local',
defaultuser: 'paulo.pinto',
defaultuserpwd: 'tabteste@006'
domain: 'gabinetedigital.local', //gabinetedigital.local
defaultuser: 'paulo.pinto@gabinetedigital.local',//paulo.pinto paulo.pinto@gabinetedigital.local
defaultuserpwd: 'tabteste@006' //tabteste@006
};
/*
+15 -3
View File
@@ -950,14 +950,14 @@ background: rgb(92, 92, 92);
}
.mat-form-field-underline.ng-tns-c193-6.ng-star-inserted, .mat-form-field-underline {
display: none;
// display: none;
}
.date-hour-picker {
margin-top: -6px;
label#mat-form-field-label-7 {
// display: none;
display: none;
}
.span.ng-tns-c193-4, .ng-star-inserted {
@@ -983,4 +983,16 @@ background: rgb(92, 92, 92);
// .ng-star-inserted {
// opacity: 0;
// }
// }
.input-error{
border: 1px solid #fba0a0 !important;
}
.input-errror-message{
margin-top: -16px;
margin-bottom: 10px;
font-size: 11pt;
}