mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-18 20:47:54 +00:00
edit event to aprove done
This commit is contained in:
@@ -0,0 +1,185 @@
|
|||||||
|
// {
|
||||||
|
// "serialNumber": "47026_169",
|
||||||
|
// "taskStatus": null,
|
||||||
|
// "originator": {
|
||||||
|
// "email": "dlima@gabinetedigital.local",
|
||||||
|
// "manager": "",
|
||||||
|
// "displayName": "",
|
||||||
|
// "fqn": "K2:gabinetedigital\\dlima",
|
||||||
|
// "username": "gabinetedigital\\dlima"
|
||||||
|
// },
|
||||||
|
// "isDelegated": false,
|
||||||
|
// "isExtended": false,
|
||||||
|
// "hasTakenAcknowledge": false,
|
||||||
|
// "actions": [
|
||||||
|
// "Reenviar",
|
||||||
|
// "Descartar"
|
||||||
|
// ],
|
||||||
|
// "activityInstanceName": "Editar Evento",
|
||||||
|
// "workflowInstanceFolio": "MTk4",
|
||||||
|
// "taskStartDate": "2024-04-10T14:30:39.58",
|
||||||
|
// "deadline": null,
|
||||||
|
// "workflowID": 24744,
|
||||||
|
// "workflowInstanceID": 47026,
|
||||||
|
// "workflowName": "Agenda\\Agenda Oficial MDGPR",
|
||||||
|
// "workflowDisplayName": "Agenda Oficial MDGPR",
|
||||||
|
// "formURL": "http://bpmdev.gabinetedigital.local/Runtime/Runtime/Form/Exchange+Calendar+Meeting+Edition/?SerialNo=47026_169&ProcessInstanceID=&InstanceId=",
|
||||||
|
// "workflowInstanceDataFields": {
|
||||||
|
// "Body": "safsafas",
|
||||||
|
// "Location": "Luanda",
|
||||||
|
// "Subject": "Event to approve MD",
|
||||||
|
// "StartDate": "2024-04-10 00:00:00",
|
||||||
|
// "EndDate": "2024-04-11 05:00:00",
|
||||||
|
// "Participants": "evilarinho@gabinetedigital.local",
|
||||||
|
// "CC": "",
|
||||||
|
// "ReviewUserComment": "{\r\n \"option\": \"save\",\r\n \"note\": \"\"\r\n}",
|
||||||
|
// "Role": 100000011,
|
||||||
|
// "MDName": "Eduardo Vilarinho",
|
||||||
|
// "MDEmail": "evilarinho@gabinetedigital.local",
|
||||||
|
// "OriginatorComments": "",
|
||||||
|
// "Status": "Active",
|
||||||
|
// "TimeZone": "",
|
||||||
|
// "Agenda": "Oficial",
|
||||||
|
// "EventType": "Reunião",
|
||||||
|
// "EventID": "",
|
||||||
|
// "HasAttachments": true,
|
||||||
|
// "ParticipantsList": [
|
||||||
|
// {
|
||||||
|
// "EmailAddress": "evilarinho@gabinetedigital.local",
|
||||||
|
// "Name": "Eduardo Vilarinho (evilarinho@gabinetedigital.local)",
|
||||||
|
// "IsRequired": true,
|
||||||
|
// "UserType": "GD"
|
||||||
|
// }
|
||||||
|
// ],
|
||||||
|
// "EventOrganizer": "{\"$type\":\"GabineteDigital.k2RESTidentifier_EventPerson, GabineteDigital, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null\",\"EmailAddress\":\"agenda.mdgpr@gabinetedigital.local\",\"Name\":\"Agenda do Ministro e Director do Gabinete do PR\",\"IsRequired\":true}",
|
||||||
|
// "CreateEvent": "",
|
||||||
|
// "IsAllDayEvent": false,
|
||||||
|
// "SerializedItem": "",
|
||||||
|
// "MDwxUserID": 198,
|
||||||
|
// "DeserializedItem": "",
|
||||||
|
// "Message": "Foi adicionado para a sua agenda um evento com o assunto: Event to approve MD, para a vossa aprovação",
|
||||||
|
// "InstanceId": "AGD_dlima_2024-04-10_14:30:39.453",
|
||||||
|
// "For Each Result": "",
|
||||||
|
// "For Each Index": 0,
|
||||||
|
// "Header": "",
|
||||||
|
// "RecurringString": "",
|
||||||
|
// "LastOccurrence": "",
|
||||||
|
// "OccurrenceType": "-1",
|
||||||
|
// "SerialNumber": "",
|
||||||
|
// "For Each Result 1": "false",
|
||||||
|
// "For Each Index 1": 0,
|
||||||
|
// "UserEmail": "",
|
||||||
|
// "LastActivInstanceID": "78",
|
||||||
|
// "IsRecurring": false,
|
||||||
|
// "CalendarId": "AQMkAGVhZWZkOGM0LWNiZjMtNGE4Ny05NTY4LWZjMTEANTE2MWU4YmUALgAAAwkDRuPtBKJItLDcu6efhYABACLK19NpGvtHh8oQYZPTW2sAAAIBSgAAAA==",
|
||||||
|
// "wxUserID": 312
|
||||||
|
// },
|
||||||
|
// "totalDocuments": null,
|
||||||
|
// "Documents": null,
|
||||||
|
// "PrivateMessage": null
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
import { z } from "zod";
|
||||||
|
|
||||||
|
const ParticipantSchema = z.object({
|
||||||
|
EmailAddress: z.string(),
|
||||||
|
Name: z.string(),
|
||||||
|
IsRequired: z.boolean(),
|
||||||
|
UserType: z.string()
|
||||||
|
});
|
||||||
|
|
||||||
|
const WorkflowInstanceDataFieldsSchema = z.object({
|
||||||
|
Body: z.string(),
|
||||||
|
Location: z.string(),
|
||||||
|
Subject: z.string(),
|
||||||
|
StartDate: z.string(),
|
||||||
|
EndDate: z.string(),
|
||||||
|
Participants: z.string(),
|
||||||
|
CC: z.string().nullable(),
|
||||||
|
ReviewUserComment: z.string(),
|
||||||
|
Role: z.number(),
|
||||||
|
MDName: z.string(),
|
||||||
|
MDEmail: z.string(),
|
||||||
|
OriginatorComments: z.string().nullable(),
|
||||||
|
Status: z.string(),
|
||||||
|
TimeZone: z.string().nullable(),
|
||||||
|
Agenda: z.string(),
|
||||||
|
EventType: z.string(),
|
||||||
|
EventID: z.string().nullable(),
|
||||||
|
HasAttachments: z.boolean(),
|
||||||
|
ParticipantsList: z.array(ParticipantSchema),
|
||||||
|
EventOrganizer: z.string(),
|
||||||
|
CreateEvent: z.string().nullable(),
|
||||||
|
IsAllDayEvent: z.boolean(),
|
||||||
|
SerializedItem: z.string().nullable(),
|
||||||
|
MDwxUserID: z.number(),
|
||||||
|
DeserializedItem: z.string().nullable(),
|
||||||
|
Message: z.string(),
|
||||||
|
InstanceId: z.string(),
|
||||||
|
Header: z.string().nullable(),
|
||||||
|
RecurringString: z.string().nullable(),
|
||||||
|
LastOccurrence: z.string().nullable(),
|
||||||
|
OccurrenceType: z.number(),
|
||||||
|
SerialNumber: z.string().nullable(),
|
||||||
|
UserEmail: z.string().nullable(),
|
||||||
|
LastActivInstanceID: z.string(),
|
||||||
|
IsRecurring: z.boolean(),
|
||||||
|
CalendarId: z.string(),
|
||||||
|
wxUserID: z.number()
|
||||||
|
});
|
||||||
|
|
||||||
|
const OriginatorSchema = z.object({
|
||||||
|
email: z.string(),
|
||||||
|
manager: z.string().nullable(),
|
||||||
|
displayName: z.string().nullable(),
|
||||||
|
fqn: z.string(),
|
||||||
|
username: z.string()
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const Attachments = z.object({
|
||||||
|
Id: z.number().optional(),
|
||||||
|
ParentId: z.string().optional(),
|
||||||
|
Source: z.number().optional(),
|
||||||
|
SourceId: z.string().optional(),
|
||||||
|
Description: z.string().optional(),
|
||||||
|
SourceName: z.string().optional(),
|
||||||
|
CreateDate: z.string().optional(),
|
||||||
|
Stakeholders: z.string().optional(),
|
||||||
|
Link: z.string().optional(),
|
||||||
|
Data: z.null().optional(),
|
||||||
|
ApplicationId: z.number().optional(),
|
||||||
|
FileSize: z.number().optional(),
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
const EventToApproveDetails = z.object({
|
||||||
|
serialNumber: z.string(),
|
||||||
|
taskStatus: z.string().nullable(),
|
||||||
|
originator: OriginatorSchema,
|
||||||
|
isDelegated: z.boolean(),
|
||||||
|
isExtended: z.boolean(),
|
||||||
|
hasTakenAcknowledge: z.boolean(),
|
||||||
|
actions: z.array(z.string()),
|
||||||
|
activityInstanceName: z.string(),
|
||||||
|
workflowInstanceFolio: z.string(),
|
||||||
|
taskStartDate: z.string(),
|
||||||
|
deadline: z.string().nullable(),
|
||||||
|
workflowID: z.number(),
|
||||||
|
workflowInstanceID: z.number(),
|
||||||
|
workflowName: z.string(),
|
||||||
|
workflowDisplayName: z.string(),
|
||||||
|
formURL: z.string().url(),
|
||||||
|
workflowInstanceDataFields: WorkflowInstanceDataFieldsSchema,
|
||||||
|
totalDocuments: z.number().nullable(),
|
||||||
|
Documents: z.array(z.unknown()).nullable(),
|
||||||
|
PrivateMessage: z.string().nullable(),
|
||||||
|
Attachments: z.array(Attachments)
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
export type EventToApproveDetails = z.infer<typeof EventToApproveDetails>
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
import { z } from 'zod';
|
||||||
|
|
||||||
|
const WorkflowInstanceDataFieldsSchema = z.object({
|
||||||
|
Agenda: z.string(),
|
||||||
|
EndDate: z.string(),
|
||||||
|
StartDate: z.string(),
|
||||||
|
Subject: z.string(),
|
||||||
|
Location: z.string(),
|
||||||
|
Status: z.string(),
|
||||||
|
IsAllDayEvent: z.boolean(),
|
||||||
|
InstanceId: z.string(),
|
||||||
|
originator: z.string().email(),
|
||||||
|
});
|
||||||
|
|
||||||
|
const EventToApproveListSchema = z.array(
|
||||||
|
z.object({
|
||||||
|
serialNumber: z.string(),
|
||||||
|
taskStatus: z.string(),
|
||||||
|
taskStartDate: z.string(),
|
||||||
|
taskReceiveDate: z.string(),
|
||||||
|
deadline: z.null(),
|
||||||
|
workflowDisplayName: z.string(),
|
||||||
|
activityInstanceName: z.string(),
|
||||||
|
totalDocuments: z.number(),
|
||||||
|
workflowInstanceDataFields: WorkflowInstanceDataFieldsSchema,
|
||||||
|
})
|
||||||
|
) ;
|
||||||
|
|
||||||
|
|
||||||
|
export type EventToApproveList = z.infer<typeof EventToApproveListSchema>
|
||||||
@@ -637,8 +637,12 @@ export class AgendaPage implements OnInit {
|
|||||||
let load = 0;
|
let load = 0;
|
||||||
for (const selectedCalendar of selectedCalendarIds) {
|
for (const selectedCalendar of selectedCalendarIds) {
|
||||||
|
|
||||||
this.AgendaDataRepositoryService.EventList({userId: selectedCalendar.OwnerUserId, calendarOwnerName: selectedCalendar['FullName'] }).subscribe( response => {
|
(async () => {
|
||||||
|
|
||||||
|
|
||||||
|
const response = await this.AgendaDataRepositoryService.EventList({userId: selectedCalendar.OwnerUserId, calendarOwnerName: selectedCalendar['FullName'] })
|
||||||
|
|
||||||
|
if(response.isOk()) {
|
||||||
let label;
|
let label;
|
||||||
|
|
||||||
if (SessionStore.user.Profile == 'PR') {
|
if (SessionStore.user.Profile == 'PR') {
|
||||||
@@ -649,11 +653,11 @@ export class AgendaPage implements OnInit {
|
|||||||
label = "pr"
|
label = "pr"
|
||||||
}
|
}
|
||||||
|
|
||||||
let eventsList = response;
|
let eventsList = response.value;
|
||||||
this.CalendarStore.pushEvent(eventsList, label);
|
this.CalendarStore.pushEvent(eventsList, label);
|
||||||
|
|
||||||
this.listToPresent = this.CalendarStore.getEventsByCalendarIds(selectedCalendarIds)
|
this.listToPresent = this.CalendarStore.getEventsByCalendarIds(selectedCalendarIds)
|
||||||
this.updateEventListBox()
|
|
||||||
|
|
||||||
this.showTimelinePR = true;
|
this.showTimelinePR = true;
|
||||||
|
|
||||||
@@ -665,8 +669,7 @@ export class AgendaPage implements OnInit {
|
|||||||
this.myCal.update();
|
this.myCal.update();
|
||||||
this.myCal.loadEvents();
|
this.myCal.loadEvents();
|
||||||
this.updateEventListBox()
|
this.updateEventListBox()
|
||||||
}, () => {
|
} else {
|
||||||
|
|
||||||
load++
|
load++
|
||||||
if (load == selectedCalendarIds.length) {
|
if (load == selectedCalendarIds.length) {
|
||||||
this.showLoader = false;
|
this.showLoader = false;
|
||||||
@@ -678,7 +681,11 @@ export class AgendaPage implements OnInit {
|
|||||||
console.log('111b')
|
console.log('111b')
|
||||||
this.listToPresent = this.CalendarStore.getEventsByCalendarIds(selectedCalendarIds)
|
this.listToPresent = this.CalendarStore.getEventsByCalendarIds(selectedCalendarIds)
|
||||||
this.updateEventListBox()
|
this.updateEventListBox()
|
||||||
})
|
}
|
||||||
|
|
||||||
|
})()
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,8 @@ import { ViewEventPage } from 'src/app/modals/view-event/view-event.page';
|
|||||||
import { ChangeProfileService } from 'src/app/services/change-profile.service';
|
import { ChangeProfileService } from 'src/app/services/change-profile.service';
|
||||||
import { SessionStore } from 'src/app/store/session.service';
|
import { SessionStore } from 'src/app/store/session.service';
|
||||||
import { TaskService } from 'src/app/services/task.service';
|
import { TaskService } from 'src/app/services/task.service';
|
||||||
|
import { AgendaDataRepositoryService } from 'src/app/services/Repositorys/Agenda/agenda-data-repository.service';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-events',
|
selector: 'app-events',
|
||||||
templateUrl: './events.page.html',
|
templateUrl: './events.page.html',
|
||||||
@@ -90,7 +92,8 @@ export class EventsPage implements OnInit {
|
|||||||
private storage: Storage,
|
private storage: Storage,
|
||||||
public p: PermissionService,
|
public p: PermissionService,
|
||||||
private changeProfileService: ChangeProfileService,
|
private changeProfileService: ChangeProfileService,
|
||||||
public TaskService: TaskService
|
public TaskService: TaskService,
|
||||||
|
public AgendaDataRepositoryService: AgendaDataRepositoryService
|
||||||
) {
|
) {
|
||||||
|
|
||||||
window['zipPhoneCallback'] = function (zipphone) {
|
window['zipPhoneCallback'] = function (zipphone) {
|
||||||
@@ -225,8 +228,10 @@ export class EventsPage implements OnInit {
|
|||||||
|
|
||||||
let date = new Date();
|
let date = new Date();
|
||||||
let month = date.getMonth() + 1;
|
let month = date.getMonth() + 1;
|
||||||
|
|
||||||
let start = date.getFullYear() + "-" + month + "-" + date.getDate() + " " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
|
let start = date.getFullYear() + "-" + month + "-" + date.getDate() + " " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
|
||||||
let end = date.getFullYear() + "-" + month + "-" + date.getDate() + " 23:59:59";
|
let end = date.getFullYear() + "-" + month + "-" + date.getDate() + " 23:59:59";
|
||||||
|
|
||||||
if(SessionStore.user) {
|
if(SessionStore.user) {
|
||||||
let onwEvent:any = await this.eventService.getAllOwnEvents(start, end).catch((error) => {
|
let onwEvent:any = await this.eventService.getAllOwnEvents(start, end).catch((error) => {
|
||||||
this.showLoader = false;
|
this.showLoader = false;
|
||||||
|
|||||||
@@ -1,12 +1,17 @@
|
|||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { AgendaDataService } from './agenda-data.service';
|
import { AgendaDataService } from './agenda-data.service';
|
||||||
import { map } from 'rxjs/operators';
|
import { catchError, map } from 'rxjs/operators';
|
||||||
import { ListEventMapper } from './mapper/EventListMapper';
|
import { ListEventMapper } from './mapper/EventListMapper';
|
||||||
import { EventMapper } from './mapper/EventDetailsMapper';
|
import { EventMapper } from './mapper/EventDetailsMapper';
|
||||||
import { Utils } from './utils';
|
import { Utils } from './utils';
|
||||||
import { EventInputDTO } from './agendaDataModels';
|
import { EventInputDTO } from './agendaDataModels';
|
||||||
import { Event } from 'src/app/models/event.model';
|
import { Event } from 'src/app/models/event.model';
|
||||||
import { SessionStore } from 'src/app/store/session.service';
|
import { SessionStore } from 'src/app/store/session.service';
|
||||||
|
import { EventListToApproveMapper } from './mapper/eventToApproveListMapper';
|
||||||
|
import { err, ok } from 'neverthrow';
|
||||||
|
import { of } from 'rxjs';
|
||||||
|
import { HttpErrorResponse } from '@angular/common/http';
|
||||||
|
import { EventToApproveDetailsMapper } from './mapper/EventToApproveDetailsMapper';
|
||||||
|
|
||||||
@Injectable({
|
@Injectable({
|
||||||
providedIn: 'root'
|
providedIn: 'root'
|
||||||
@@ -18,26 +23,52 @@ export class AgendaDataRepositoryService {
|
|||||||
private utils: Utils
|
private utils: Utils
|
||||||
) { }
|
) { }
|
||||||
|
|
||||||
getEventById(id: string) {
|
async getEventById(id: string) {
|
||||||
return this.agendaDataService.getEvent(id).pipe(
|
try {
|
||||||
|
const result = await this.agendaDataService.getEvent(id).pipe(
|
||||||
map((response) => {
|
map((response) => {
|
||||||
return EventMapper.toDomain(response.data)
|
return EventMapper.toDomain(response.data)
|
||||||
})
|
})
|
||||||
)
|
).toPromise()
|
||||||
|
return ok (result)
|
||||||
|
} catch (e) {
|
||||||
|
return err(e as HttpErrorResponse)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
EventList({ userId = null, startDate = null, endDate = null, status = 2, category = null, type = null, calendarOwnerName = '' }) {
|
async getEventToApproveById(id: string) {
|
||||||
return this.agendaDataService.getEvents(userId, startDate, endDate, status, category, type).pipe(
|
|
||||||
|
try {
|
||||||
|
const result = await this.agendaDataService.getEvent(id).pipe(
|
||||||
|
map((response) => {
|
||||||
|
return EventToApproveDetailsMapper.toDomain(response.data)
|
||||||
|
})
|
||||||
|
).toPromise()
|
||||||
|
return ok (result)
|
||||||
|
} catch (e) {
|
||||||
|
return err(e as HttpErrorResponse)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
async EventList({userId = null, startDate = null, endDate = null, status= 2, category= null, type= null, calendarOwnerName = ''}) {
|
||||||
|
try {
|
||||||
|
const result = await this.agendaDataService.getEvents(userId, startDate, endDate, status, category, type).pipe(
|
||||||
map((response) => {
|
map((response) => {
|
||||||
return ListEventMapper.toDomain(response.data, calendarOwnerName, userId)
|
return ListEventMapper.toDomain(response.data, calendarOwnerName, userId)
|
||||||
}
|
}
|
||||||
))
|
)).toPromise()
|
||||||
|
return ok (result)
|
||||||
|
} catch (e) {
|
||||||
|
return err(e as HttpErrorResponse)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
eventToApprove({ userId, startDate = null, endDate = null, status = 0, category = null, type = null, calendarOwnerName = '' }) {
|
eventToApproveList({userId, startDate = null, endDate = null, status = 0, category= null, type= null, calendarOwnerName = ''}) {
|
||||||
return this.agendaDataService.getEvents(userId, startDate = null, endDate = null, status, category = null, type = null).pipe(
|
|
||||||
|
return this.agendaDataService.getEvents(userId, startDate = null, endDate = null, status, category= null, type= null).pipe(
|
||||||
map((response) => {
|
map((response) => {
|
||||||
return ListEventMapper.toDomain(response.data, calendarOwnerName, userId)
|
return EventListToApproveMapper.toDomain(response.data, calendarOwnerName, userId)
|
||||||
}
|
}
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
@@ -68,13 +99,13 @@ export class AgendaDataRepositoryService {
|
|||||||
return this.agendaDataService.createEvent(eventInput)
|
return this.agendaDataService.createEvent(eventInput)
|
||||||
}
|
}
|
||||||
|
|
||||||
updateEvent(eventId, eventData: Event, CalendarName, documents) {
|
updateEvent(eventId, eventData) {
|
||||||
console.log(eventData.StartDate)
|
console.log(eventData.StartDate)
|
||||||
console.log(eventData.EndDate)
|
console.log(eventData.EndDate)
|
||||||
|
|
||||||
let eventInput = {
|
let eventInput = {
|
||||||
subject: eventData.Subject,
|
subject: eventData.Subject,
|
||||||
body: eventData.Body.Text,
|
body: eventData.Body.Text || eventData.Body,
|
||||||
location: eventData.Location,
|
location: eventData.Location,
|
||||||
startDate: eventData.StartDate,
|
startDate: eventData.StartDate,
|
||||||
endDate: eventData.EndDate,
|
endDate: eventData.EndDate,
|
||||||
@@ -103,4 +134,19 @@ export class AgendaDataRepositoryService {
|
|||||||
removeEventAttachment(eventId,attachmentData) {
|
removeEventAttachment(eventId,attachmentData) {
|
||||||
return this.agendaDataService.removeEventAttachment(eventId,attachmentData);
|
return this.agendaDataService.removeEventAttachment(eventId,attachmentData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async deleteEvent1(eventId) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
const result = await this.agendaDataService.deleteEvent(eventId,false).toPromise()
|
||||||
|
return ok (result)
|
||||||
|
} catch (e) {
|
||||||
|
return err(e as HttpErrorResponse)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
eventToaprovalStatus(eventId, status) {
|
||||||
|
return this.agendaDataService.updateEventStatus(eventId,this.utils.statusEventAproval(status))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import { HttpClient, HttpParams } from '@angular/common/http';
|
|||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
import { EventOutputDTO } from './model/eventDTOOutput';
|
import { EventOutputDTO } from './model/eventDTOOutput';
|
||||||
|
import { EventInputDTO } from './model/eventInputDTO';
|
||||||
|
|
||||||
@Injectable({
|
@Injectable({
|
||||||
providedIn: 'root'
|
providedIn: 'root'
|
||||||
@@ -34,14 +35,23 @@ export class AgendaDataService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Events Endpoints
|
// Events Endpoints
|
||||||
createEvent(eventData: any): Observable<any> {
|
createEvent(eventData: EventInputDTO): Observable<any> {
|
||||||
return this.http.post<any>(`${this.baseUrl}/Events`, eventData);
|
return this.http.post<any>(`${this.baseUrl}/Events`, eventData);
|
||||||
}
|
}
|
||||||
|
|
||||||
getEvents(userId: number, startDate: string, endDate: string, status: number, category: string, type: string): Observable<any> {
|
getEvents(userId: number, startDate: string, endDate: string, status: number, category: string, type: string): Observable<any> {
|
||||||
const params = new HttpParams()
|
let params = new HttpParams()
|
||||||
.set('UserId', userId)
|
.set('UserId', userId)
|
||||||
.set('Status', status)
|
.set('Status', status)
|
||||||
|
|
||||||
|
if (startDate !== null && startDate !== undefined) {
|
||||||
|
params = params.set('startDate', startDate);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (endDate !== null && endDate !== undefined) {
|
||||||
|
params = params.set('endDate', endDate);
|
||||||
|
}
|
||||||
|
|
||||||
return this.http.get<any>(`${this.baseUrl}/Events`, { params });
|
return this.http.get<any>(`${this.baseUrl}/Events`, { params });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,102 @@
|
|||||||
|
import { EventToApproveDetails } from "src/app/models/entiry/agenda/eventToApproveDetails"
|
||||||
|
import { EventOutputDTO } from "../model/eventDTOOutput"
|
||||||
|
|
||||||
|
export class EventToApproveDetailsMapper {
|
||||||
|
|
||||||
|
constructor() {}
|
||||||
|
static toDomain(dto: EventOutputDTO): EventToApproveDetails {
|
||||||
|
|
||||||
|
return {
|
||||||
|
"serialNumber": dto.id,
|
||||||
|
"taskStatus": dto.status,
|
||||||
|
"originator": {
|
||||||
|
"email": dto.organizer.wxeMail,
|
||||||
|
"manager": "",
|
||||||
|
"displayName": "",
|
||||||
|
// "fqn": "K2:gabinetedigital\\dlima",
|
||||||
|
// "username": "gabinetedigital\\dlima"
|
||||||
|
},
|
||||||
|
// "isDelegated": false,
|
||||||
|
// "isExtended": false,
|
||||||
|
// "hasTakenAcknowledge": false,
|
||||||
|
// "actions": [
|
||||||
|
// "Reenviar",
|
||||||
|
// "Descartar"
|
||||||
|
// ],
|
||||||
|
"activityInstanceName": "Editar Evento",
|
||||||
|
// "workflowInstanceFolio": "MTk4",
|
||||||
|
// "taskStartDate": "2024-04-10T14:30:39.58",
|
||||||
|
// "deadline": null,
|
||||||
|
// "workflowID": 24744,
|
||||||
|
// "workflowInstanceID": 47026,
|
||||||
|
//"workflowName": "Agenda\\Agenda Oficial MDGPR",
|
||||||
|
"workflowDisplayName": "Agenda Oficial MDGPR",
|
||||||
|
//"formURL": "http://bpmdev.gabinetedigital.local/Runtime/Runtime/Form/Exchange+Calendar+Meeting+Edition/?SerialNo=47026_169&ProcessInstanceID=&InstanceId=",
|
||||||
|
"workflowInstanceDataFields": {
|
||||||
|
"Body": "safsafas",
|
||||||
|
"Location": "Luanda",
|
||||||
|
"Subject": "Event to approve MD",
|
||||||
|
"StartDate": "2024-04-10 00:00:00",
|
||||||
|
"EndDate": "2024-04-11 05:00:00",
|
||||||
|
// "Participants": "evilarinho@gabinetedigital.local",
|
||||||
|
// "CC": "",
|
||||||
|
// "ReviewUserComment": "{\r\n \"option\": \"save\",\r\n \"note\": \"\"\r\n}",
|
||||||
|
// "Role": 100000011,
|
||||||
|
// "MDName": "Eduardo Vilarinho",
|
||||||
|
// "MDEmail": "evilarinho@gabinetedigital.local",
|
||||||
|
// "OriginatorComments": "",
|
||||||
|
"Status": "Active",
|
||||||
|
//"TimeZone": "",
|
||||||
|
"Agenda": "Oficial",
|
||||||
|
"EventType": "Reunião",
|
||||||
|
//"EventID": "",
|
||||||
|
//"HasAttachments": true,
|
||||||
|
"ParticipantsList": [
|
||||||
|
...dto.attendees.map( e => ({
|
||||||
|
Name: e.name,
|
||||||
|
EmailAddress: e.emailAddress,
|
||||||
|
IsRequired: e.attendeeType == '0' ? true : false,
|
||||||
|
UserType: "GD",
|
||||||
|
}))
|
||||||
|
],
|
||||||
|
//"EventOrganizer": "{\"$type\":\"GabineteDigital.k2RESTidentifier_EventPerson, GabineteDigital, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null\",\"EmailAddress\":\"agenda.mdgpr@gabinetedigital.local\",\"Name\":\"Agenda do Ministro e Director do Gabinete do PR\",\"IsRequired\":true}",
|
||||||
|
"CreateEvent": "",
|
||||||
|
"IsAllDayEvent": false,
|
||||||
|
//"SerializedItem": "",
|
||||||
|
//"MDwxUserID": 198,
|
||||||
|
//"DeserializedItem": "",
|
||||||
|
//"Message": "Foi adicionado para a sua agenda um evento com o assunto: Event to approve MD, para a vossa aprovação",
|
||||||
|
//"InstanceId": "AGD_dlima_2024-04-10_14:30:39.453",
|
||||||
|
//"For Each Result": "",
|
||||||
|
//"For Each Index": 0,
|
||||||
|
//"Header": "",
|
||||||
|
//"RecurringString": "",
|
||||||
|
//"LastOccurrence": "",
|
||||||
|
//"OccurrenceType": "-1",
|
||||||
|
//"SerialNumber": "",
|
||||||
|
//"For Each Result 1": "false",
|
||||||
|
//"For Each Index 1": 0,
|
||||||
|
//"UserEmail": "",
|
||||||
|
//"LastActivInstanceID": "78",
|
||||||
|
"IsRecurring": false,
|
||||||
|
//"CalendarId": "AQMkAGVhZWZkOGM0LWNiZjMtNGE4Ny05NTY4LWZjMTEANTE2MWU4YmUALgAAAwkDRuPtBKJItLDcu6efhYABACLK19NpGvtHh8oQYZPTW2sAAAIBSgAAAA==",
|
||||||
|
//"wxUserID": 312
|
||||||
|
},
|
||||||
|
"totalDocuments": null,
|
||||||
|
"Documents": null,
|
||||||
|
"PrivateMessage": null,
|
||||||
|
Attachments: dto.attachments.map( e => ({
|
||||||
|
DocId: '',
|
||||||
|
Description: '',
|
||||||
|
Stakeholders: '',
|
||||||
|
CreateDate: '',
|
||||||
|
ApplicationId: 0,
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static toDTO(data: any): any {
|
||||||
|
return {}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,85 @@
|
|||||||
|
import { EventList } from "src/app/models/entiry/agenda/eventList"
|
||||||
|
import { EventListOutputDTO } from "../model/eventListDTOOutput"
|
||||||
|
import { EventToApproveListOutputDTO } from "../model/eventToApproveListOutputDTO";
|
||||||
|
import { EventToApproveList } from "src/app/models/entiry/agenda/eventToApproveList";
|
||||||
|
|
||||||
|
|
||||||
|
function getTextInsideParentheses(inputString): string {
|
||||||
|
var startIndex = inputString.indexOf('(');
|
||||||
|
var endIndex = inputString.indexOf(')');
|
||||||
|
if (startIndex !== -1 && endIndex !== -1) {
|
||||||
|
return inputString.substring(startIndex + 1, endIndex);
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class EventListToApproveMapper {
|
||||||
|
static toDomain(dto: EventToApproveListOutputDTO, calendarOwnerName: string, userId: string): EventToApproveList {
|
||||||
|
return dto.map((e) => ({
|
||||||
|
serialNumber: e.id,
|
||||||
|
taskStatus: e.status,
|
||||||
|
taskStartDate: e.startDate,
|
||||||
|
taskReceiveDate: e.startDate,
|
||||||
|
deadline: null,
|
||||||
|
workflowDisplayName: "",
|
||||||
|
activityInstanceName: "",
|
||||||
|
totalDocuments: 0,
|
||||||
|
workflowInstanceDataFields: {
|
||||||
|
Agenda: e.category,
|
||||||
|
EndDate: e.endDate,
|
||||||
|
StartDate: e.startDate,
|
||||||
|
Subject: e.body,
|
||||||
|
Location: e.location,
|
||||||
|
Status: e.status,
|
||||||
|
IsAllDayEvent: e.isAllDayEvent,
|
||||||
|
InstanceId: "",
|
||||||
|
originator: ""
|
||||||
|
}
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
|
||||||
|
static toDTO() {}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// "serialNumber": "47315_184",
|
||||||
|
// "taskStatus": "Open",
|
||||||
|
// "taskStartDate": "2024-04-24T11:27:12.527",
|
||||||
|
// "taskReceiveDate": "2024-04-24T11:29:17.76",
|
||||||
|
// "deadline": null,
|
||||||
|
// "workflowDisplayName": "Agenda Oficial PR",
|
||||||
|
// "activityInstanceName": "Comunicar Evento",
|
||||||
|
// "totalDocuments": 0,
|
||||||
|
// "workflowInstanceDataFields": {
|
||||||
|
// "Agenda": "Oficial",
|
||||||
|
// "EndDate": "2024-04-25 11:30:00",
|
||||||
|
// "StartDate": "2024-04-24 11:30:00",
|
||||||
|
// "Subject": "Event 2 After MERGE",
|
||||||
|
// "Location": "lUANDA",
|
||||||
|
// "Status": "Active",
|
||||||
|
// "IsAllDayEvent": false,
|
||||||
|
// "InstanceId": "AAMkADVhOGY3ZDQzLTg4ZGEtNDYxMC1iMzc5LTJkMDgwNjMxOWFlZQBGAAAAAABEDW9nKs69TKQcVqQURj8YBwBR2HR2eO7pSpNdD9cc70l+AAAAAAFKAABR2HR2eO7pSpNdD9cc70l+AACK2Od9AAA=",
|
||||||
|
// "originator": "dlima@gabinetedigital.local"
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// {
|
||||||
|
// "id": "5b170417-df57-4b5c-9a5e-3c73726a116d",
|
||||||
|
// "owner": null,
|
||||||
|
// "ownerType": "PR",
|
||||||
|
// "subject": "string",
|
||||||
|
// "body": "string",
|
||||||
|
// "location": "string",
|
||||||
|
// "startDate": "2024-05-29T00:00:00+00:00",
|
||||||
|
// "endDate": "2024-05-29T23:59:00+00:00",
|
||||||
|
// "type": "Meeting",
|
||||||
|
// "category": "Oficial",
|
||||||
|
// "isRecurring": false,
|
||||||
|
// "eventRecurrence": null,
|
||||||
|
// "hasAttachments": false,
|
||||||
|
// "isPrivate": false,
|
||||||
|
// "isAllDayEvent": true,
|
||||||
|
// "status": "Pending"
|
||||||
|
// }
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
import { z } from 'zod';
|
||||||
|
|
||||||
|
const attendeeSchema = z.object({
|
||||||
|
name: z.string(),
|
||||||
|
emailAddress: z.string(),
|
||||||
|
attendeeType: z.number(),
|
||||||
|
wxUserId: z.number()
|
||||||
|
});
|
||||||
|
|
||||||
|
const attachmentSchema = z.object({
|
||||||
|
docId: z.number(),
|
||||||
|
sourceName: z.string(),
|
||||||
|
description: z.string(),
|
||||||
|
applicationId: z.number()
|
||||||
|
});
|
||||||
|
|
||||||
|
const recurrenceSchema = z.object({
|
||||||
|
frequency: z.number(),
|
||||||
|
occurrences: z.number()
|
||||||
|
});
|
||||||
|
|
||||||
|
const EventInputDTOSchema = z.object({
|
||||||
|
userId: z.number(),
|
||||||
|
ownerType: z.number(),
|
||||||
|
subject: z.string(),
|
||||||
|
body: z.string(),
|
||||||
|
location: z.string(),
|
||||||
|
startDate: z.string().datetime(),
|
||||||
|
endDate: z.string().datetime(),
|
||||||
|
type: z.number(),
|
||||||
|
category: z.number(),
|
||||||
|
attendees: z.array(attendeeSchema),
|
||||||
|
attachments: z.array(attachmentSchema),
|
||||||
|
recurrence: recurrenceSchema,
|
||||||
|
organizerId: z.number(),
|
||||||
|
isAllDayEvent: z.boolean()
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
export type EventInputDTO = z.infer<typeof EventInputDTOSchema>
|
||||||
|
|
||||||
+4
-2
@@ -1,6 +1,6 @@
|
|||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
|
|
||||||
const EventToApproveList = z.object({
|
const EventToApproveList = z.array(z.object({
|
||||||
id: z.string().uuid(),
|
id: z.string().uuid(),
|
||||||
owner: z.string().nullable(),
|
owner: z.string().nullable(),
|
||||||
ownerType: z.enum(["PR", "MD", "Other"]),
|
ownerType: z.enum(["PR", "MD", "Other"]),
|
||||||
@@ -17,4 +17,6 @@ const EventToApproveList = z.object({
|
|||||||
isPrivate: z.boolean(),
|
isPrivate: z.boolean(),
|
||||||
isAllDayEvent: z.boolean(),
|
isAllDayEvent: z.boolean(),
|
||||||
status: z.enum(["Pending"])
|
status: z.enum(["Pending"])
|
||||||
});
|
}))
|
||||||
|
|
||||||
|
export type EventToApproveListOutputDTO = z.infer<typeof EventToApproveList>;
|
||||||
@@ -94,4 +94,15 @@ export class Utils {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
statusEventAproval(type) {
|
||||||
|
var selectedType = {
|
||||||
|
'Pending': 0,
|
||||||
|
'Revision':1,
|
||||||
|
'Approved':2,
|
||||||
|
"Declined":3,
|
||||||
|
"Communicated":4
|
||||||
|
}
|
||||||
|
return selectedType[type];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ export class DateService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
fixDate(res: EventList) {
|
fixDate(res: EventList): any {
|
||||||
if(res.IsAllDayEvent && this.deferenceBetweenDays(new Date(res.StartDate), new Date(res.EndDate)) >= 1) {
|
if(res.IsAllDayEvent && this.deferenceBetweenDays(new Date(res.StartDate), new Date(res.EndDate)) >= 1) {
|
||||||
|
|
||||||
const date = new Date(res.EndDate);
|
const date = new Date(res.EndDate);
|
||||||
|
|||||||
@@ -11,7 +11,9 @@ import { ViewDocumentPage } from 'src/app/modals/view-document/view-document.pag
|
|||||||
import { ThemeService } from 'src/app/services/theme.service';
|
import { ThemeService } from 'src/app/services/theme.service';
|
||||||
import { HttpErrorHandle } from 'src/app/services/http-error-handle.service';
|
import { HttpErrorHandle } from 'src/app/services/http-error-handle.service';
|
||||||
import { TaskService } from 'src/app/services/task.service'
|
import { TaskService } from 'src/app/services/task.service'
|
||||||
|
import { AgendaDataRepositoryService } from 'src/app/services/Repositorys/Agenda/agenda-data-repository.service';
|
||||||
|
import { EventToApproveDetails } from 'src/app/models/entiry/agenda/eventToApproveDetails';
|
||||||
|
import { HttpResponseBase } from '@angular/common/http';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-approve-event',
|
selector: 'app-approve-event',
|
||||||
@@ -21,7 +23,7 @@ import { TaskService } from 'src/app/services/task.service'
|
|||||||
export class ApproveEventPage implements OnInit {
|
export class ApproveEventPage implements OnInit {
|
||||||
|
|
||||||
event: Event;
|
event: Event;
|
||||||
@Input() loadedEvent:any;
|
@Input() loadedEvent: EventToApproveDetails;
|
||||||
loadedAttachments:any;
|
loadedAttachments:any;
|
||||||
customDate:any;
|
customDate:any;
|
||||||
today:any;
|
today:any;
|
||||||
@@ -51,7 +53,8 @@ export class ApproveEventPage implements OnInit {
|
|||||||
private toastService: ToastService,
|
private toastService: ToastService,
|
||||||
public ThemeService: ThemeService,
|
public ThemeService: ThemeService,
|
||||||
private httpErroHandle: HttpErrorHandle,
|
private httpErroHandle: HttpErrorHandle,
|
||||||
public TaskService: TaskService
|
public TaskService: TaskService,
|
||||||
|
public AgendaDataRepositoryService: AgendaDataRepositoryService
|
||||||
) {
|
) {
|
||||||
// Event to approve list
|
// Event to approve list
|
||||||
|
|
||||||
@@ -76,15 +79,19 @@ export class ApproveEventPage implements OnInit {
|
|||||||
this.modalController.dismiss();
|
this.modalController.dismiss();
|
||||||
}
|
}
|
||||||
|
|
||||||
getTask() {
|
async getTask() {
|
||||||
this.processes.GetTask(this.serialNumber).subscribe(res => {
|
|
||||||
|
|
||||||
this.loadedEvent = res;
|
const res = await this.AgendaDataRepositoryService.getEventToApproveById(this.serialNumber)
|
||||||
this.today = new Date(res.workflowInstanceDataFields.StartDate);
|
|
||||||
|
if(res.isOk()) {
|
||||||
|
this.loadedEvent = res.value;
|
||||||
|
this.today = new Date(res.value.workflowInstanceDataFields.StartDate);
|
||||||
//
|
//
|
||||||
this.customDate = this.days[this.today.getDay()]+ ", " + this.today.getDate() +" de " + ( this.months[this.today.getMonth()]);
|
this.customDate = this.days[this.today.getDay()]+ ", " + this.today.getDate() +" de " + ( this.months[this.today.getMonth()]);
|
||||||
|
} else {
|
||||||
|
console.log(res.error.status)
|
||||||
|
}
|
||||||
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async approveTask(serialNumber:string) {
|
async approveTask(serialNumber:string) {
|
||||||
@@ -151,7 +158,7 @@ export class ApproveEventPage implements OnInit {
|
|||||||
Document,
|
Document,
|
||||||
applicationId: Document.ApplicationId,
|
applicationId: Document.ApplicationId,
|
||||||
docId: Document.DocId || Document.SourceId,
|
docId: Document.DocId || Document.SourceId,
|
||||||
folderId: this.loadedEvent.FolderId,
|
// folderId: this.loadedEvent.FolderId,
|
||||||
task: this.loadedEvent
|
task: this.loadedEvent
|
||||||
},
|
},
|
||||||
cssClass: 'modal modal-desktop'
|
cssClass: 'modal modal-desktop'
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import { EventToApproveEdit } from 'src/app/models/event.model';
|
|||||||
import { ThemeService } from 'src/app/services/theme.service'
|
import { ThemeService } from 'src/app/services/theme.service'
|
||||||
import { HttpErrorHandle } from 'src/app/services/http-error-handle.service';
|
import { HttpErrorHandle } from 'src/app/services/http-error-handle.service';
|
||||||
import { DomSanitizerService } from 'src/app/services/DomSanitizer.service';
|
import { DomSanitizerService } from 'src/app/services/DomSanitizer.service';
|
||||||
|
import { AgendaDataRepositoryService } from 'src/app/services/Repositorys/Agenda/agenda-data-repository.service';
|
||||||
|
|
||||||
|
|
||||||
const CUSTOM_DATE_FORMATS: NgxMatDateFormats = {
|
const CUSTOM_DATE_FORMATS: NgxMatDateFormats = {
|
||||||
@@ -133,7 +134,8 @@ export class EditEventToApprovePage implements OnInit {
|
|||||||
private toastService: ToastService,
|
private toastService: ToastService,
|
||||||
public ThemeService: ThemeService,
|
public ThemeService: ThemeService,
|
||||||
public httpErrorHandler: HttpErrorHandle,
|
public httpErrorHandler: HttpErrorHandle,
|
||||||
private domSanitizeService: DomSanitizerService
|
private domSanitizeService: DomSanitizerService,
|
||||||
|
private agendaDataRepository: AgendaDataRepositoryService
|
||||||
) {
|
) {
|
||||||
this.isEventEdited = false;
|
this.isEventEdited = false;
|
||||||
}
|
}
|
||||||
@@ -152,8 +154,8 @@ export class EditEventToApprovePage implements OnInit {
|
|||||||
|
|
||||||
async getTask() {
|
async getTask() {
|
||||||
|
|
||||||
this.processes.GetTask(this.serialNumber).subscribe( (result) => {
|
const res: any = await this.agendaDataRepository.getEventToApproveById(this.serialNumber)
|
||||||
this.eventProcess = result
|
this.eventProcess = res.value;
|
||||||
|
|
||||||
this.eventProcess.workflowInstanceDataFields.LastOccurrence = new Date(this.eventProcess.workflowInstanceDataFields.LastOccurrence)
|
this.eventProcess.workflowInstanceDataFields.LastOccurrence = new Date(this.eventProcess.workflowInstanceDataFields.LastOccurrence)
|
||||||
|
|
||||||
@@ -170,7 +172,6 @@ export class EditEventToApprovePage implements OnInit {
|
|||||||
this.setOtherData()
|
this.setOtherData()
|
||||||
|
|
||||||
this.saveTemporaryData()
|
this.saveTemporaryData()
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
getRecurrenceTypes() {
|
getRecurrenceTypes() {
|
||||||
@@ -365,7 +366,13 @@ export class EditEventToApprovePage implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await this.eventsService.postEventToApproveEdit(event).toPromise()
|
/* await this.eventsService.postEventToApproveEdit(event).toPromise() */
|
||||||
|
this.agendaDataRepository.updateEvent(this.eventProcess.serialNumber, event).subscribe((value) => {
|
||||||
|
console.log(value)
|
||||||
|
}, ((error) => {
|
||||||
|
console.log('edit event error: ', error)
|
||||||
|
}));
|
||||||
|
|
||||||
|
|
||||||
this.close()
|
this.close()
|
||||||
|
|
||||||
|
|||||||
@@ -400,7 +400,7 @@ export class EditEventPage implements OnInit {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
this.agendaDataRepository.updateEvent(this._postEvent.EventId, this._postEvent, this._postEvent.CalendarName, this.loadedEventAttachments).subscribe((value) => {
|
this.agendaDataRepository.updateEvent(this._postEvent.EventId, this._postEvent).subscribe((value) => {
|
||||||
console.log(value)
|
console.log(value)
|
||||||
}, ((error) => {
|
}, ((error) => {
|
||||||
console.log('edit event error: ', error)
|
console.log('edit event error: ', error)
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import { EventsService } from 'src/app/services/events.service';
|
|||||||
import { EventoAprovacaoStore } from 'src/app/store/eventoaprovacao-store.service';
|
import { EventoAprovacaoStore } from 'src/app/store/eventoaprovacao-store.service';
|
||||||
import { environment } from 'src/environments/environment';
|
import { environment } from 'src/environments/environment';
|
||||||
import { AgendaDataRepositoryService } from 'src/app/services/Repositorys/Agenda/agenda-data-repository.service';
|
import { AgendaDataRepositoryService } from 'src/app/services/Repositorys/Agenda/agenda-data-repository.service';
|
||||||
|
import { EventToApproveList } from 'src/app/models/entiry/agenda/eventToApproveList';
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-event-list',
|
selector: 'app-event-list',
|
||||||
templateUrl: './event-list.page.html',
|
templateUrl: './event-list.page.html',
|
||||||
@@ -19,7 +20,7 @@ export class EventListPage implements OnInit {
|
|||||||
// [desktop] event list to approve
|
// [desktop] event list to approve
|
||||||
|
|
||||||
showLoader: boolean;
|
showLoader: boolean;
|
||||||
eventsList: any = []
|
eventsList: EventToApproveList = []
|
||||||
|
|
||||||
eventPerson: EventPerson;
|
eventPerson: EventPerson;
|
||||||
eventBody: EventBody;
|
eventBody: EventBody;
|
||||||
@@ -92,61 +93,34 @@ export class EventListPage implements OnInit {
|
|||||||
return new Date(e).toDateString()
|
return new Date(e).toDateString()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
async LoadToApproveEvents() {
|
async LoadToApproveEvents() {
|
||||||
|
|
||||||
|
|
||||||
/* if(SessionStore.user.Profile == 'PR') {
|
|
||||||
return false
|
|
||||||
} */
|
|
||||||
|
|
||||||
this.showLoader = true;
|
this.showLoader = true;
|
||||||
|
|
||||||
const segment: any = this.segment
|
const segment: any = this.segment
|
||||||
|
let userId;
|
||||||
|
|
||||||
if(this.segment == 'Meu calendario') {
|
if(this.segment == 'Meu calendario') {
|
||||||
// color
|
|
||||||
|
|
||||||
if(SessionStore.user.Profile == 'PR') {
|
if(SessionStore.user.Profile == 'PR') {
|
||||||
this.color = 'pr'
|
this.color = 'pr'
|
||||||
} else {
|
} else {
|
||||||
this.color = 'mdgpr'
|
this.color = 'mdgpr'
|
||||||
}
|
}
|
||||||
|
userId = SessionStore.user.UserId
|
||||||
|
|
||||||
|
} else if(segment) {
|
||||||
|
this.color = 'pr'
|
||||||
|
userId = segment
|
||||||
|
}
|
||||||
|
|
||||||
let genericEvents = await this.processes.eventsToApprove(SessionStore.user.UserId,'mobile agenda').toPromise()
|
|
||||||
try {
|
try {
|
||||||
this.eventsList = this.sortService.sortArrayByDate(genericEvents).reverse();
|
let allEvents = await this.AgendaDataRepositoryService.eventToApproveList({userId}).toPromise()
|
||||||
} catch (error) {
|
this.eventsList = this.sortService.sortArrayByDate(allEvents).reverse();
|
||||||
|
this.eventoaprovacaostore.save(segment, this.eventsList)
|
||||||
|
} catch (e) {
|
||||||
this.eventsList = [];
|
this.eventsList = [];
|
||||||
this.showLoader = false;
|
this.showLoader = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
alert('my agenda')
|
|
||||||
this.eventoaprovacaostore.save(segment, this.eventsList)
|
|
||||||
|
|
||||||
let a = await this.AgendaDataRepositoryService.eventToApprove({userId: this.SessionStore.user.UserId}).toPromise()
|
|
||||||
|
|
||||||
|
|
||||||
} else if(segment) {
|
|
||||||
// console.log('segment', segment)
|
|
||||||
|
|
||||||
this.color = 'pr'
|
|
||||||
let allEvents = await this.processes.eventsToApprove(segment,'agenda desktop').toPromise()
|
|
||||||
try {
|
|
||||||
this.eventsList = this.sortService.sortArrayByDate(allEvents).reverse();
|
|
||||||
} catch(error) {
|
|
||||||
this.eventsList = []
|
|
||||||
this.showLoader = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.eventsList = this.eventsList
|
|
||||||
this.eventsList = this.eventsList
|
|
||||||
this.eventoaprovacaostore.save(segment, this.eventsList)
|
|
||||||
}
|
|
||||||
|
|
||||||
this.showLoader = false;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async LoadToApproveEventsNoLoader() {
|
async LoadToApproveEventsNoLoader() {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<ion-header class="ion-no-border">
|
<ion-header class="ion-no-border">
|
||||||
<ion-toolbar class="header-toolbar">
|
<ion-toolbar class="header-toolbar" >
|
||||||
<div class="main-header px-20" style="overflow: unset !important;">
|
<div class="main-header px-20" style="overflow: unset !important;">
|
||||||
<div class="title-content d-flex">
|
<div class="title-content d-flex">
|
||||||
<div class="left">
|
<div class="left">
|
||||||
|
|||||||
@@ -127,22 +127,17 @@ export class ViewEventPage implements OnInit {
|
|||||||
}
|
}
|
||||||
async loadEvent() {
|
async loadEvent() {
|
||||||
|
|
||||||
try {
|
let res = await this.agendaDataRepository.getEventById(this.eventId)
|
||||||
|
|
||||||
let res = await this.agendaDataRepository.getEventById(this.eventId).toPromise()
|
if(res.isOk()) {
|
||||||
console.log('Loaded Event', res)
|
console.log('Loaded Event', res.value)
|
||||||
res = this.dateService.fixDate(res as any)
|
let changeDate = this.dateService.fixDate(res.value as any) as any
|
||||||
this.loadedEvent = res as any;
|
this.loadedEvent = changeDate as any;
|
||||||
this.setTimeZone()
|
this.setTimeZone()
|
||||||
// this.addEventToDb(res);
|
} else {
|
||||||
|
|
||||||
|
|
||||||
} catch (error) {
|
|
||||||
this.viewEventDetailDismiss.emit({
|
this.viewEventDetailDismiss.emit({
|
||||||
type: 'close'
|
type: 'close'
|
||||||
})
|
})
|
||||||
|
|
||||||
// this.httpErrorHandle.httpStatusHandle(error)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user