mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-19 21:06:06 +00:00
Improve Agenda
This commit is contained in:
@@ -16,7 +16,8 @@
|
||||
|
||||
<div class="main-content">
|
||||
<!-- Toolbar -->
|
||||
<ion-progress-bar class="calendar-progress-bar" type="indeterminate" *ngIf="showLoader"></ion-progress-bar>
|
||||
<ion-progress-bar type="indeterminate" *ngIf="showLoader"></ion-progress-bar>
|
||||
|
||||
<div>
|
||||
<!-- Calendar is here -->
|
||||
<div class="calendar-segment-{{profile}}">
|
||||
|
||||
@@ -25,6 +25,7 @@ import { AuthService } from 'src/app/services/auth.service';
|
||||
import { User } from 'src/app/models/user.model';
|
||||
import { DateAdapter } from '@angular/material/core';
|
||||
import { ToastService } from 'src/app/services/toast.service';
|
||||
import { eventSource } from 'src/app/models/agenda/eventSource';
|
||||
|
||||
@Component({
|
||||
selector: 'app-agenda',
|
||||
@@ -77,7 +78,8 @@ export class AgendaPage implements OnInit {
|
||||
showTimeline=true;
|
||||
|
||||
/* List of events of our calendar */
|
||||
eventSource = [];
|
||||
eventSource : eventSource[] = []
|
||||
|
||||
/* The title of the calendar */
|
||||
viewTitle: string;
|
||||
|
||||
@@ -110,10 +112,6 @@ export class AgendaPage implements OnInit {
|
||||
|
||||
profile:'mdgpr' | 'pr';
|
||||
|
||||
eventsList: Event[];
|
||||
eventsListPessoal: Event[];
|
||||
eventsListOficial: Event[];
|
||||
|
||||
// this will make toggle add event and.
|
||||
showEventEditOrOpen: "edit" | "add" | "" | "eventoToApprove" = ""
|
||||
prEventList: Event[];
|
||||
@@ -358,39 +356,6 @@ export class AgendaPage implements OnInit {
|
||||
return momentG(date, formate , wgs)
|
||||
}
|
||||
|
||||
// for timeline
|
||||
timeLineTemplate(startTime: string, eventlocation: string, eventDiscription: any, calendarName: string, subject: string, startTimeWisthS: string, endTime: string, eventIndex: number, profile: string): string{
|
||||
|
||||
const startHours = parseInt(startTimeWisthS.split(':')[0]);
|
||||
const startMinutos = parseInt(startTimeWisthS.split(':')[1]);
|
||||
|
||||
const endHours = parseInt(endTime.split(':')[0]);
|
||||
const endMinutos = parseInt(endTime.split(':')[1]);
|
||||
|
||||
let top = '0';
|
||||
|
||||
// console.log('startMinutos', startMinutos);
|
||||
|
||||
if(startHours < endHours){
|
||||
if (startMinutos != 0 ){
|
||||
top = `${ Math.abs((startMinutos)) }`
|
||||
}
|
||||
}
|
||||
|
||||
const profile_ = profile == 'md'? 'mdgpr': 'pr';
|
||||
|
||||
return `
|
||||
<div class="overflow-hidden timeline-box timeline-box-event-${eventIndex} timeline-${profile_}-box-${calendarName} calendar-top${top}">
|
||||
<div>
|
||||
<span class="timeline-start-time">${startHours.toString().padStart(2, '0')}:${startMinutos.toString().padStart(2, '0')}</span><span class="timeline-location">${eventlocation}</span>
|
||||
</div>
|
||||
<div class="timeline-event-discription">
|
||||
${subject}
|
||||
</div>
|
||||
</div>
|
||||
`
|
||||
}
|
||||
|
||||
|
||||
// for timeline
|
||||
timelineFilter(calendarName, eventsList, profile){
|
||||
@@ -408,12 +373,7 @@ export class AgendaPage implements OnInit {
|
||||
const startHours = new Date(element.StartDate).getHours().toLocaleString();
|
||||
const EndHours = new Date(element.EndDate).getHours().toLocaleString();
|
||||
|
||||
const startHoursOtherFormate = new Date(element.StartDate).getHours().toLocaleString()+':'+new Date(element.StartDate).getMinutes().toLocaleString();
|
||||
const EndHoursOtherFormate = formatDate(new Date(element.EndDate), 'HH:mm', 'pt');
|
||||
|
||||
|
||||
events.push({
|
||||
title: this.timeLineTemplate(startHours, element.Location, element.Body, element.CalendarName, element.Subject,startHoursOtherFormate,EndHoursOtherFormate, eventIndex, profile),
|
||||
start: setHours(setMinutes(new Date(element.StartDate), 0), parseInt(startHours)),
|
||||
end: setHours(setMinutes(new Date(element.EndDate), 0), parseInt(EndHours)),
|
||||
color: {
|
||||
@@ -456,7 +416,6 @@ export class AgendaPage implements OnInit {
|
||||
if (startTimeSamp < endTimeSamp && (endMinutes + endHours) == 0) {
|
||||
endTime = new Date(endTime);
|
||||
endTime.setSeconds(endTime.getSeconds() - 1);
|
||||
console.log('new date ======================================================')
|
||||
return new Date(endTime)
|
||||
} else {
|
||||
return new Date(endTime)
|
||||
@@ -464,8 +423,12 @@ export class AgendaPage implements OnInit {
|
||||
|
||||
}
|
||||
|
||||
get LL () {
|
||||
return this.eventSource.length
|
||||
}
|
||||
|
||||
loadRangeEvents(startTime: Date, endTime: Date) {
|
||||
|
||||
|
||||
this.eventSelectedDate = new Date(startTime);
|
||||
|
||||
this.showLoader = true;
|
||||
@@ -489,16 +452,16 @@ export class AgendaPage implements OnInit {
|
||||
|
||||
// clear the current month only
|
||||
this.eventSource = this.eventSource.filter((e)=> {
|
||||
if(new Date(startTime).getTime() <= new Date(e.StartDate).getTime() &&
|
||||
new Date(endTime).getTime() >= new Date(e.EndDate).getTime() && e.profile != 'md') {
|
||||
if(new Date(startTime).getTime() <= new Date(e.startTime).getTime() &&
|
||||
new Date(endTime).getTime() >= new Date(e.endTime).getTime() && e.profile == 'md') {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
})
|
||||
|
||||
this.eventsList = response;
|
||||
const eventsList = response;
|
||||
// loop
|
||||
this.eventsList.forEach((element, eventIndex) => {
|
||||
eventsList.forEach((element, eventIndex) => {
|
||||
|
||||
this.eventSource.push({
|
||||
title: element.Subject,
|
||||
@@ -512,7 +475,7 @@ export class AgendaPage implements OnInit {
|
||||
});
|
||||
});
|
||||
|
||||
const list = this.timelineFilter(this.timelineFilterState, this.eventsList, 'mdgpr');
|
||||
const list = this.timelineFilter(this.timelineFilterState, eventsList, 'mdgpr');
|
||||
|
||||
this.TimelineMDList = this.eventListBox(list)
|
||||
|
||||
@@ -544,17 +507,17 @@ export class AgendaPage implements OnInit {
|
||||
|
||||
// clear the current month only
|
||||
this.eventSource = this.eventSource.filter((e)=> {
|
||||
if(new Date(startTime).getTime() <= new Date(e.StartDate).getTime() &&
|
||||
new Date(endTime).getTime() >= new Date(e.EndDate).getTime() && e.profile != 'pr') {
|
||||
if(new Date(startTime).getTime() <= new Date(e.startTime).getTime() &&
|
||||
new Date(endTime).getTime() >= new Date(e.endTime).getTime() && e.profile == 'pr') {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
})
|
||||
|
||||
this.eventsList = response;
|
||||
const eventsList = response;
|
||||
|
||||
// calendar
|
||||
this.eventsList.forEach((element, eventIndex) => {
|
||||
eventsList.forEach((element, eventIndex) => {
|
||||
this.eventSource.push({
|
||||
title: element.Subject,
|
||||
startTime: new Date(element.StartDate),
|
||||
@@ -568,7 +531,7 @@ export class AgendaPage implements OnInit {
|
||||
|
||||
});
|
||||
|
||||
const list = this.timelineFilter(this.timelineFilterState, this.eventsList, 'pr');
|
||||
const list = this.timelineFilter(this.timelineFilterState, eventsList, 'pr');
|
||||
|
||||
this.TimelineMDList = this.eventListBox(list)
|
||||
|
||||
@@ -599,17 +562,17 @@ export class AgendaPage implements OnInit {
|
||||
|
||||
// clear the current month only
|
||||
this.eventSource = this.eventSource.filter((e)=> {
|
||||
if(new Date(startTime).getTime() <= new Date(e.StartDate).getTime() &&
|
||||
new Date(endTime).getTime() >= new Date(e.EndDate).getTime() && e.profile != 'pr') {
|
||||
if(new Date(startTime).getTime() <= new Date(e.startTime).getTime() &&
|
||||
new Date(endTime).getTime() >= new Date(e.endTime).getTime() && e.profile == 'pr') {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
})
|
||||
|
||||
this.eventsList = response;
|
||||
const eventsList = response;
|
||||
|
||||
// calendar
|
||||
this.eventsList.forEach((element, eventIndex) => {
|
||||
eventsList.forEach((element, eventIndex) => {
|
||||
this.eventSource.push({
|
||||
title: element.Subject,
|
||||
startTime: new Date(element.StartDate),
|
||||
@@ -623,7 +586,7 @@ export class AgendaPage implements OnInit {
|
||||
|
||||
});
|
||||
|
||||
const list = this.timelineFilter(this.timelineFilterState, this.eventsList, 'pr');
|
||||
const list = this.timelineFilter(this.timelineFilterState, eventsList, 'pr');
|
||||
|
||||
this.TimelineMDList = this.eventListBox(list)
|
||||
|
||||
@@ -654,18 +617,18 @@ export class AgendaPage implements OnInit {
|
||||
|
||||
// clear the current month only
|
||||
this.eventSource = this.eventSource.filter((e)=> {
|
||||
if(new Date(startTime).getTime() <= new Date(e.StartDate).getTime() &&
|
||||
new Date(endTime).getTime() >= new Date(e.EndDate).getTime() && e.profile != 'md') {
|
||||
if(new Date(startTime).getTime() <= new Date(e.startTime).getTime() &&
|
||||
new Date(endTime).getTime() >= new Date(e.endTime).getTime() && e.profile == 'md') {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
})
|
||||
|
||||
this.eventsListPessoal= [];
|
||||
|
||||
this.eventsListPessoal = response.filter(data => data.CalendarName == "Pessoal");
|
||||
|
||||
const eventsList = response.filter(data => data.CalendarName == "Pessoal");
|
||||
// loop
|
||||
this.eventsListPessoal.forEach((element, eventIndex) => {
|
||||
eventsList.forEach((element, eventIndex) => {
|
||||
|
||||
this.eventSource.push({
|
||||
title: element.Subject,
|
||||
@@ -679,7 +642,7 @@ export class AgendaPage implements OnInit {
|
||||
});
|
||||
});
|
||||
|
||||
const list = this.timelineFilter(this.timelineFilterState, this.eventsListPessoal, 'mdgpr');
|
||||
const list = this.timelineFilter(this.timelineFilterState, eventsList, 'mdgpr');
|
||||
|
||||
|
||||
this.TimelineMDList = this.eventListBox(list)
|
||||
@@ -704,15 +667,15 @@ export class AgendaPage implements OnInit {
|
||||
|
||||
// clear the current month only
|
||||
this.eventSource = this.eventSource.filter((e)=> {
|
||||
if(new Date(startTime).getTime() <= new Date(e.StartDate).getTime() &&
|
||||
new Date(endTime).getTime() >= new Date(e.EndDate).getTime() && e.profile != 'pr') {
|
||||
if(new Date(startTime).getTime() <= new Date(e.startTime).getTime() &&
|
||||
new Date(endTime).getTime() >= new Date(e.endTime).getTime() && e.profile == 'pr') {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
})
|
||||
|
||||
this.eventsListPessoal = response.filter(data => data.CalendarName == "Pessoal");
|
||||
this.eventsListPessoal.forEach(element => {
|
||||
const eventsList = response.filter(data => data.CalendarName == "Pessoal");
|
||||
eventsList.forEach(element => {
|
||||
this.eventSource.push({
|
||||
title: element.Subject,
|
||||
startTime: new Date(element.StartDate),
|
||||
@@ -724,7 +687,7 @@ export class AgendaPage implements OnInit {
|
||||
});
|
||||
});
|
||||
|
||||
const list = this.timelineFilter(this.timelineFilterState, this.eventsListPessoal, 'pr');
|
||||
const list = this.timelineFilter(this.timelineFilterState, eventsList, 'pr');
|
||||
|
||||
|
||||
this.TimelineMDList = this.eventListBox(list)
|
||||
@@ -748,7 +711,7 @@ export class AgendaPage implements OnInit {
|
||||
case "Oficial":
|
||||
|
||||
//Inicializa o array eventSource
|
||||
this.eventsListOficial = [];
|
||||
const eventsList = [];
|
||||
|
||||
if(this.profile == "mdgpr" && this.loggeduser.Profile == 'MDGPR') {
|
||||
this.eventService.getAllMdEvents(momentG(new Date(startTime),'yyyy-MM-dd HH:mm:ss'), momentG(new Date(endTime),'yyyy-MM-dd 23:59:59')).then((res:any) => {
|
||||
@@ -758,16 +721,16 @@ export class AgendaPage implements OnInit {
|
||||
|
||||
// clear the current month only
|
||||
this.eventSource = this.eventSource.filter((e)=> {
|
||||
if(new Date(startTime).getTime() <= new Date(e.StartDate).getTime() &&
|
||||
new Date(endTime).getTime() >= new Date(e.EndDate).getTime() && e.profile != 'md') {
|
||||
if(new Date(startTime).getTime() <= new Date(e.startTime).getTime() &&
|
||||
new Date(endTime).getTime() >= new Date(e.endTime).getTime() && e.profile == 'md') {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
})
|
||||
|
||||
this.eventsListOficial = res.filter(data => data.CalendarName == "Oficial");
|
||||
const eventsList = res.filter(data => data.CalendarName == "Oficial");
|
||||
|
||||
this.eventsListOficial.forEach(element => {
|
||||
eventsList.forEach(element => {
|
||||
this.eventSource.push({
|
||||
title: element.Subject,
|
||||
startTime: new Date(element.StartDate),
|
||||
@@ -779,7 +742,7 @@ export class AgendaPage implements OnInit {
|
||||
});
|
||||
});
|
||||
|
||||
const list = this.timelineFilter(this.timelineFilterState, this.eventsListOficial, 'mdgpr');
|
||||
const list = this.timelineFilter(this.timelineFilterState, eventsList, 'mdgpr');
|
||||
|
||||
this.TimelineMDList = this.eventListBox(list)
|
||||
|
||||
@@ -803,15 +766,15 @@ export class AgendaPage implements OnInit {
|
||||
|
||||
// clear the current month only
|
||||
this.eventSource = this.eventSource.filter((e)=> {
|
||||
if(new Date(startTime).getTime() <= new Date(e.StartDate).getTime() &&
|
||||
new Date(endTime).getTime() >= new Date(e.EndDate).getTime() && e.profile != 'pr') {
|
||||
if(new Date(startTime).getTime() <= new Date(e.startTime).getTime() &&
|
||||
new Date(endTime).getTime() >= new Date(e.endTime).getTime() && e.profile == 'pr') {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
})
|
||||
|
||||
this.eventsListOficial = res.filter(data => data.CalendarName == "Oficial");
|
||||
this.eventsListOficial.forEach(element => {
|
||||
const eventsList = res.filter(data => data.CalendarName == "Oficial");
|
||||
eventsList.forEach(element => {
|
||||
this.eventSource.push({
|
||||
title: element.Subject,
|
||||
startTime: new Date(element.StartDate),
|
||||
@@ -823,7 +786,7 @@ export class AgendaPage implements OnInit {
|
||||
});
|
||||
});
|
||||
|
||||
const list = this.timelineFilter(this.timelineFilterState, this.eventsListOficial, 'pr');
|
||||
const list = this.timelineFilter(this.timelineFilterState, eventsList, 'pr');
|
||||
|
||||
|
||||
this.TimelineMDList = this.eventListBox(list)
|
||||
@@ -854,30 +817,30 @@ export class AgendaPage implements OnInit {
|
||||
|
||||
this.eventService.getAllMdEvents( momentG(new Date(startTime),'yyyy-MM-dd HH:mm:ss'), momentG(new Date(endTime),'yyyy-MM-dd 23:59:59') ).then( (response:any) => {
|
||||
|
||||
|
||||
let eventsList;
|
||||
if(this.segment == 'Oficial') {
|
||||
this.eventsList = response.filter(data => data.CalendarName == "Oficial");
|
||||
eventsList = response.filter(data => data.CalendarName == "Oficial");
|
||||
} else if (this.segment == 'Pessoal') {
|
||||
this.eventsList = response.filter(data => data.CalendarName == "Pessoal");
|
||||
eventsList = response.filter(data => data.CalendarName == "Pessoal");
|
||||
} else {
|
||||
this.eventsList = response;
|
||||
eventsList = response;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// clear the current month only
|
||||
this.eventSource = this.eventSource.filter((e)=> {
|
||||
if(new Date(startTime).getTime() <= new Date(e.StartDate).getTime() &&
|
||||
new Date(endTime).getTime() >= new Date(e.EndDate).getTime() && e.profile != 'md') {
|
||||
if(new Date(startTime).getTime() <= new Date(e.startTime).getTime() &&
|
||||
new Date(endTime).getTime() >= new Date(e.endTime).getTime() && e.profile == 'md') {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
})
|
||||
|
||||
// loop
|
||||
this.eventsList.forEach((element, eventIndex) => {
|
||||
eventsList.forEach((element, eventIndex) => {
|
||||
|
||||
// calendar
|
||||
this.eventSource.push({
|
||||
index: eventIndex,
|
||||
title: element.Subject,
|
||||
startTime: new Date(element.StartDate),
|
||||
endTime: this.EventTretment({
|
||||
@@ -893,7 +856,7 @@ export class AgendaPage implements OnInit {
|
||||
|
||||
});
|
||||
|
||||
const MDEventList = this.timelineFilter(this.timelineFilterState, this.eventsList, 'mdgpr');
|
||||
const MDEventList = this.timelineFilter(this.timelineFilterState, eventsList, 'mdgpr');
|
||||
|
||||
this.TimelineMDList = this.eventListBox(MDEventList, 'md')
|
||||
|
||||
@@ -919,27 +882,29 @@ export class AgendaPage implements OnInit {
|
||||
|
||||
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");
|
||||
} else if (this.segment == 'Pessoal') {
|
||||
this.eventsList = response.filter(data => data.CalendarName == "Pessoal");
|
||||
} else {
|
||||
this.eventsList = response;
|
||||
}
|
||||
let eventsList;
|
||||
if(this.segment == 'Oficial') {
|
||||
eventsList = response.filter(data => data.CalendarName == "Oficial");
|
||||
} else if (this.segment == 'Pessoal') {
|
||||
eventsList = response.filter(data => data.CalendarName == "Pessoal");
|
||||
} else {
|
||||
eventsList = response;
|
||||
}
|
||||
|
||||
// clear the current month only
|
||||
this.eventSource = this.eventSource.filter((e)=> {
|
||||
if(new Date(startTime).getTime() <= new Date(e.StartDate).getTime() &&
|
||||
new Date(endTime).getTime() >= new Date(e.EndDate).getTime() && e.profile != 'pr') {
|
||||
if(new Date(startTime).getTime() <= new Date(e.startTime).getTime() &&
|
||||
new Date(endTime).getTime() >= new Date(e.endTime).getTime() && e.profile == 'pr') {
|
||||
console.log('remove from agenda')
|
||||
return false
|
||||
}
|
||||
return true
|
||||
})
|
||||
|
||||
this.eventsList.forEach((element, eventIndex) => {
|
||||
eventsList.forEach((element, eventIndex) => {
|
||||
|
||||
// calendar
|
||||
this.eventSource.push({
|
||||
index: eventIndex,
|
||||
title: element.Subject,
|
||||
startTime: new Date(element.StartDate),
|
||||
endTime: new Date(element.EndDate),
|
||||
@@ -952,7 +917,7 @@ export class AgendaPage implements OnInit {
|
||||
|
||||
});
|
||||
|
||||
this.TimelinePR = this.timelineFilter(this.timelineFilterState, this.eventsList, 'pr');
|
||||
this.TimelinePR = this.timelineFilter(this.timelineFilterState, eventsList, 'pr');
|
||||
|
||||
|
||||
this.TimelinePRList = this.eventListBox(this.TimelinePR)
|
||||
@@ -980,27 +945,29 @@ export class AgendaPage implements OnInit {
|
||||
|
||||
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) => {
|
||||
|
||||
let eventsList;
|
||||
if(this.segment == 'Oficial') {
|
||||
this.eventsList = response.filter(data => data.CalendarName == "Oficial");
|
||||
eventsList = response.filter(data => data.CalendarName == "Oficial");
|
||||
} else if (this.segment == 'Pessoal') {
|
||||
this.eventsList = response.filter(data => data.CalendarName == "Pessoal");
|
||||
eventsList = response.filter(data => data.CalendarName == "Pessoal");
|
||||
} else {
|
||||
this.eventsList = response;
|
||||
eventsList = response;
|
||||
}
|
||||
|
||||
// clear the current month only
|
||||
this.eventSource = this.eventSource.filter((e)=> {
|
||||
if(new Date(startTime).getTime() <= new Date(e.StartDate).getTime() &&
|
||||
new Date(endTime).getTime() >= new Date(e.EndDate).getTime() && e.profile != 'pr') {
|
||||
if(new Date(startTime).getTime() <= new Date(e.startTime).getTime() &&
|
||||
new Date(endTime).getTime() >= new Date(e.endTime).getTime() && e.profile == 'pr') {
|
||||
console.log('remove from agenda')
|
||||
return false
|
||||
}
|
||||
return true
|
||||
})
|
||||
|
||||
this.eventsList.forEach((element, eventIndex) => {
|
||||
eventsList.forEach((element, eventIndex) => {
|
||||
|
||||
// calendar
|
||||
this.eventSource.push({
|
||||
index: eventIndex,
|
||||
title: element.Subject,
|
||||
startTime: new Date(element.StartDate),
|
||||
endTime: new Date(element.EndDate),
|
||||
@@ -1013,7 +980,7 @@ export class AgendaPage implements OnInit {
|
||||
|
||||
});
|
||||
|
||||
this.TimelinePR = this.timelineFilter(this.timelineFilterState, this.eventsList, 'pr');
|
||||
this.TimelinePR = this.timelineFilter(this.timelineFilterState, eventsList, 'pr');
|
||||
|
||||
|
||||
this.TimelinePRList = this.eventListBox(this.TimelinePR)
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
export class eventListBox {
|
||||
filterProfile() {}
|
||||
daysBetween(){}
|
||||
list() {}
|
||||
}
|
||||
Reference in New Issue
Block a user