diff --git a/src/app/modals/document-set-up-meeting/document-set-up-meeting.page.html b/src/app/modals/document-set-up-meeting/document-set-up-meeting.page.html index 8e48ac78b..0c0d859d8 100644 --- a/src/app/modals/document-set-up-meeting/document-set-up-meeting.page.html +++ b/src/app/modals/document-set-up-meeting/document-set-up-meeting.page.html @@ -8,7 +8,7 @@ -
+
Campos marcados com * são obrigatórios @@ -21,7 +21,7 @@
O campo deve ter pelo menos 4 caracteres. @@ -35,15 +35,15 @@
- + - +
{{ environment.agendaPR}}
@@ -51,14 +51,34 @@
Agenda do {{calendars.Fullname}}
Minha agenda
- +
- +
- + + +
+
+
+ +
+
+ + + + + Agenda {{ calendars }} + + + + +
+
+
+
@@ -73,7 +93,7 @@ + + + Nunca + + + Diário + + + Semanalmente + + + Mensal + + + Anual + + + + +
+
+
+ + +
+
+
+ +
+ +
+ + + + + + + + +
+
+
+
@@ -194,7 +300,7 @@
- +

- {{document.Assunto}} + {{document.Assunto || document.SourceName}} {{ TaskService.attachmentAppName(document)}} {{document.appName}} @@ -353,7 +459,7 @@

- +
diff --git a/src/app/modals/document-set-up-meeting/document-set-up-meeting.page.ts b/src/app/modals/document-set-up-meeting/document-set-up-meeting.page.ts index ef6a05478..0293ca6a4 100644 --- a/src/app/modals/document-set-up-meeting/document-set-up-meeting.page.ts +++ b/src/app/modals/document-set-up-meeting/document-set-up-meeting.page.ts @@ -23,7 +23,13 @@ import { HttpErrorHandle } from 'src/app/services/http-error-handle.service'; import { environment } from 'src/environments/environment'; import { TaskService } from 'src/app/services/task.service' import { ContactsService } from 'src/app/services/contacts.service'; - +import { AgendaDataRepositoryService } from 'src/app/services/Repositorys/Agenda/agenda-data-repository.service'; +import { TracingType, XTracerAsync } from 'src/app/services/monitoring/opentelemetry/tracer'; +import { Observable } from 'rxjs'; +import { TableSharedCalendar } from 'src/app/services/Repositorys/Agenda/agenda-local-data-source.service'; +import { isHttpError } from 'src/app/services/http.service'; +import { RoleIdService } from 'src/app/services/role-id.service'; +import { Utils } from 'src/app/services/Repositorys/Agenda/utils'; const CUSTOM_DATE_FORMATS: NgxMatDateFormats = { parse: { @@ -97,25 +103,32 @@ export class DocumentSetUpMeetingPage implements OnInit { eventPipe = new EventPipe() CalendarName; CalendarNameShow = true - CalendarNamesOptions testeFormDefaul = "Eudes" environment = environment eventPersons: EventPerson[]; contacts: EventPerson[]; + sharedCalendar: Observable + selectedUserCalendar:any; + sessionStore = SessionStore; + hasChangeCalendar = false + eventRecurence = 'never'; + + CalendarNamesOptions = ['Oficial', 'Pessoal'] constructor( private modalController: ModalController, private router: Router, private navParams: NavParams, - authService: AuthService, private toastService: ToastService, private calendarService: EventsService, - private eventService: EventService, public ThemeService: ThemeService, public _eventService: EventsService, private httpErroHandle: HttpErrorHandle, public TaskService: TaskService, private contactsService: ContactsService, + private agendaDataRepository: AgendaDataRepositoryService, + public RoleIdService: RoleIdService, + public utils: Utils, ) { this.loggeduser = SessionStore.user; this.document = this.navParams.get('document') @@ -192,6 +205,14 @@ export class DocumentSetUpMeetingPage implements OnInit { this.changeAgenda() + this.postData.EventRecurrence = { + frequency: this.eventRecurence, + until: "", + Type: '' , + } + + this.postData.IsAllDayEvent = false; + } ngOnInit() { @@ -199,14 +220,36 @@ export class DocumentSetUpMeetingPage implements OnInit { this.setDefaultTime() this.getRecurrenceTypes(); this.fetchContacts("") - - + this.setCalendarByDefault(true) } ngOnDestroy() { clearInterval(this.myInterval) } + changeSegmentCalendar() { + this.hasChangeCalendar = true + } + + + async changeAgenda() { + + const result = await this.agendaDataRepository.geCalendars() + + const selectedCalendar = result.find(e => e.wxUserId == this.selectedUserCalendar) + + if(selectedCalendar) { + if(selectedCalendar.shareType == 1) { + this.CalendarNamesOptions = ['Oficial'] + } else if(selectedCalendar.shareType == 2) { + this.CalendarNamesOptions = ['Pessoal'] + } else if (selectedCalendar.shareType == 3) { + this.CalendarNamesOptions = ['Oficial', 'Pessoal'] + } + } + + } + myInterval = setInterval(() => { document.querySelectorAll('.ngx-mat-timepicker input').forEach((e: any) => { if (e) { @@ -279,34 +322,25 @@ export class DocumentSetUpMeetingPage implements OnInit { }) } - changeAgenda() { + async setCalendarByDefault(force) { + if (!this.selectedUserCalendar || force) { - this.CalendarNameShow = false - - setTimeout(() => { - - this.CalendarNameShow = true - - if (this._eventService.calendarNamesType[this.CalendarName]?.['Oficial'] && this._eventService.calendarNamesType[this.CalendarName]?.['Pessoal']) { - - this.CalendarNamesOptions = ['Oficial', 'Pessoal'] - - } else if (this._eventService.calendarNamesType[this.CalendarName]?.['Oficial']) { - this.CalendarNamesOptions = ['Oficial'] - this.postData.CalendarName = 'Oficial' - - } else if (this._eventService.calendarNamesType[this.CalendarName]?.['Pessoal']) { - this.CalendarNamesOptions = ['Pessoal'] - this.postData.CalendarName = 'Pessoal' + const data = await this.agendaDataRepository.geCalendars() + const prObject = data.find(e => e?.roleId == 100000014) + if(prObject) { + this.selectedUserCalendar = prObject.wxUserId } else { - this.CalendarNamesOptions = ['Oficial', 'Pessoal'] + this.selectedUserCalendar = SessionStore.user.UserId } - }, 50) + this.changeAgenda() + + } } - async saveTask() { + @XTracerAsync({name:'document-setup-metting', bugPrint: true}) + async saveTask(tracing?: TracingType) { if (this.loggeduser.Profile != 'PR') { this.injectValidation() @@ -314,49 +348,95 @@ export class DocumentSetUpMeetingPage implements OnInit { if (this.Form.invalid) return false } - let Attendees = this.taskParticipants.concat(this.taskParticipantsCc); - - let postEvent = { - EventId: '', - Subject: this.postData.Subject, - Body: this.postData.Body.Text, - Location: this.postData.Location, - CalendarId: this.selectedCalendarId(), - CalendarName: this.postData.CalendarName, - StartDate: this.postData.StartDate, - EndDate: this.postData.EndDate, - EventType: 'Reunião', - Attendees: Attendees, - IsMeeting: false, // - IsRecurring: this.postData.IsRecurring, - AppointmentState: 0, // - TimeZone: '', // - Organizer: '', // - Category: 'Reunião', - HasAttachments: false, - EventRecurrence: { - Type: this.EventRecurrenceType, - LastOccurrence: this.Occurrence, - }, - Attachments: this.attachments, - } + this.postData.Attendees = this.taskParticipants.concat(this.taskParticipantsCc); const laoder = this.toastService.loading(); + const calendar = await this.agendaDataRepository.getCalendarByUserId(this.selectedUserCalendar) + if(calendar.isOk()) { + + const value = await this.agendaDataRepository.createEvent(this.postData, this.attachments, calendar.value, tracing, true) + if(value.isOk()) { - this.eventService.create({ body: postEvent, calendar: this.postData.CalendarName }).subscribe(async (respose) => { - laoder.remove(); this.httpErroHandle.httpsSucessMessagge('new event'); this.modalController.dismiss() - }, (error) => { - laoder.remove(); - this.httpErroHandle.httpStatusHandle(error) - }, () => { - laoder.remove(); - }); + } else { + + if(!isHttpError(value.error)) { + this.toastService._badRequest('Pedimos desculpa mas não foi possível executar a acção. Por favor, contacte o apoio técnico. #1') + console.log(value.error) + tracing.bugFlag() + } else { + this.httpErroHandle.httpStatusHandle(value.error.status) + } + console.log('create event error: ', value.error) + tracing.setAttribute('outcome', 'failed') + } + + + } else { + + + tracing.setAttribute('outcome', 'failed') + tracing.setAttribute('no', 'this.selectedUserCalendar') + tracing.bugFlag() + } + + laoder.remove(); } + onCheckboxChange(event: any) { + if (this.postData.IsAllDayEvent) { + this.postData.IsAllDayEvent = this.postData.IsAllDayEvent; + this.postData.StartDate = this.setAlldayTime(this.postData.StartDate) + this.postData.EndDate = this.setAlldayTimeEndDate(this.postData.EndDate) + + console.log('Recurso ativado!!'); + } else { + this.postData.IsAllDayEvent = this.postData.IsAllDayEvent; + this.postData.EndDate = this.setAlldayTimeEndDateNotAlday(this.postData.EndDate) + console.log('Recurso desativado'); + + } + } + + + + setAlldayTime(timeToReturn) { + let date: any = new Date(timeToReturn) || new Date(); + let newdate = new Date(); + date.setHours(0) + date.setMinutes(0) + date.setSeconds(0); + + + return date + } + + setAlldayTimeEndDate(timeToReturn) { + let date: any = new Date(timeToReturn) || new Date(); + let newdate = new Date(); + date.setHours(23) + date.setMinutes(59) + date.setSeconds(0); + + + return date + } + + setAlldayTimeEndDateNotAlday(timeToReturn) { + let date: any = new Date(timeToReturn) || new Date(); + let newdate = new Date(); + date.setHours(23) + date.setMinutes(0) + date.setSeconds(0); + + + return date + } + + async addParticipants() { this.adding = "intervenient"; diff --git a/src/app/pages/agenda/new-event/new-event.page.html b/src/app/pages/agenda/new-event/new-event.page.html index ed6d185a3..1a311a6d8 100644 --- a/src/app/pages/agenda/new-event/new-event.page.html +++ b/src/app/pages/agenda/new-event/new-event.page.html @@ -298,35 +298,6 @@
- - -
diff --git a/src/app/pages/gabinete-digital/expediente/book-meeting-modal/book-meeting-modal.page.ts b/src/app/pages/gabinete-digital/expediente/book-meeting-modal/book-meeting-modal.page.ts index f37e3b648..d362e8f9f 100644 --- a/src/app/pages/gabinete-digital/expediente/book-meeting-modal/book-meeting-modal.page.ts +++ b/src/app/pages/gabinete-digital/expediente/book-meeting-modal/book-meeting-modal.page.ts @@ -118,6 +118,7 @@ export class BookMeetingModalPage implements OnInit { sharedCalendar: Observable allDayCheck: boolean = false; CalendarNameShow = true + eventRecurence = 'never'; constructor( private modalController: ModalController, @@ -159,6 +160,12 @@ export class BookMeetingModalPage implements OnInit { this.postData.Category = 'Reunião' this.postData.IsAllDayEvent = false + this.postData.EventRecurrence = { + frequency: this.eventRecurence, + until: "", + Type: '' , + }; + if (this.taskParticipants.length == 0) { this.taskParticipants = [ // { @@ -348,7 +355,10 @@ export class BookMeetingModalPage implements OnInit { Category: 'Meeting', HasAttachments: true, IsAllDayEvent: this.postData.IsAllDayEvent, - EventRecurrence: this.postData.EventRecurrence, + EventRecurrence: { + frequency: this.eventRecurence, + until: "", + Type: '' }, Attachments: [] } @@ -363,13 +373,13 @@ export class BookMeetingModalPage implements OnInit { } }); - postData.Attachments = DocumentToSave; + this.postData.Attachments = DocumentToSave as any; let loader = this.toastService.loading(); const calendar = await this.agendaDataRepository.getCalendarByUserId(this.selectedUserCalendar) if(calendar.isOk()) { - const value = await this.agendaDataRepository.createEvent(postData, this.documents, calendar.value, tracing) + const value = await this.agendaDataRepository.createEvent(this.postData, this.documents, calendar.value, tracing) if(value.isOk()) { console.log(value.value) diff --git a/src/app/services/Repositorys/Agenda/agenda-data-repository.service.ts b/src/app/services/Repositorys/Agenda/agenda-data-repository.service.ts index 72cdc8030..4da95cc8f 100644 --- a/src/app/services/Repositorys/Agenda/agenda-data-repository.service.ts +++ b/src/app/services/Repositorys/Agenda/agenda-data-repository.service.ts @@ -162,7 +162,7 @@ export class AgendaDataRepositoryService { } - createEvent(eventData: Event, documents, calendar: TableSharedCalendar, tracing: TracingType) { + createEvent(eventData: Event, documents, calendar: TableSharedCalendar, tracing: TracingType, addAll =false) { console.log('eventData', eventData); @@ -177,7 +177,7 @@ export class AgendaDataRepositoryService { type: this.utils.calendarTypeSeleted(eventData.Category), category: this.utils.calendarCategorySeleted(eventData.CalendarName), attendees: this.utils.attendeesAdded(eventData.Attendees), - attachments: this.utils.documentAdded(documents), + attachments: this.utils.documentAdded(documents, addAll), recurrence: { frequency: this.utils.eventRecurence(eventData.EventRecurrence.frequency), until:((eventData.EventRecurrence.until === "") ? this.utils.addOneHourToIsoString(eventData.EndDate.toISOString()) : eventData.EventRecurrence.until), @@ -243,7 +243,7 @@ export class AgendaDataRepositoryService { addEventAttachment(id, attachmentData, tracing: TracingType) { console.log(attachmentData) - const attachments = { attachments: this.utils.documentAdded(attachmentData) } + const attachments = { attachments: this.utils.documentAdded(attachmentData, false) } APINODReturn(AttachInputDTOSchema, attachments, `POST/${id}/Attendee`, tracing) return this.agendaDataService.addEventAttachment(id, attachments); } diff --git a/src/app/services/Repositorys/Agenda/utils.ts b/src/app/services/Repositorys/Agenda/utils.ts index 6027ce565..736bcb2e8 100644 --- a/src/app/services/Repositorys/Agenda/utils.ts +++ b/src/app/services/Repositorys/Agenda/utils.ts @@ -73,17 +73,19 @@ export class Utils { 'Meeting': 1, 'Travel': 2, 'Conference': 3, - 'Encontro': 1 + 'Encontro': 1, + 'Reunião': 1, + 'Conferência': 3 } return selectedType[calendarName]; } - documentAdded(documents: any[]) { + documentAdded(documents: any[], addAll: Boolean) { console.log('added doc create event', documents) let listupdate = [] documents.forEach(element => { let object = { - docId: element.docId || element.DocId || element.Id, + docId: element.SourceId || element.docId || element.DocId || element.Id, sourceName: element.subject || element.sourceNames || element.Description || element.SourceName || element.Assunto, description: "", applicationId: element.applicationId || element.ApplicationId @@ -92,7 +94,10 @@ export class Utils { listupdate.push(object) }); - return listupdate.filter( e=> typeof e.docId == 'number') + + console.log({listupdate}) + + return listupdate.filter( e=> typeof e.docId == 'number' || addAll) /* return documents.map((e) => { return { diff --git a/src/app/shared/agenda/edit-event-to-approve/edit-event-to-approve.page.html b/src/app/shared/agenda/edit-event-to-approve/edit-event-to-approve.page.html index 120a689be..18183f7b2 100644 --- a/src/app/shared/agenda/edit-event-to-approve/edit-event-to-approve.page.html +++ b/src/app/shared/agenda/edit-event-to-approve/edit-event-to-approve.page.html @@ -131,6 +131,16 @@
+ +
+
+ + Todo dia + + +
+
+
diff --git a/src/app/shared/agenda/edit-event-to-approve/edit-event-to-approve.page.ts b/src/app/shared/agenda/edit-event-to-approve/edit-event-to-approve.page.ts index e0f0aaab5..0e0ef3911 100644 --- a/src/app/shared/agenda/edit-event-to-approve/edit-event-to-approve.page.ts +++ b/src/app/shared/agenda/edit-event-to-approve/edit-event-to-approve.page.ts @@ -54,7 +54,7 @@ export class EditEventToApprovePage implements OnInit { recurringTypes: any; selectedRecurringType: any; - showLoader = false + showLoader = false; get dateStart() { return this.dateControlStart.value @@ -570,6 +570,55 @@ export class EditEventToApprovePage implements OnInit { } + onCheckboxChange(event: any) { + + if (this.eventProcess.workflowInstanceDataFields.IsAllDayEvent) { + this.eventProcess.workflowInstanceDataFields.StartDate = this.setAlldayTime(this.eventProcess.workflowInstanceDataFields.StartDate) + this.eventProcess.workflowInstanceDataFields.EndDate = this.setAlldayTimeEndDate(this.eventProcess.workflowInstanceDataFields.EndDate) + + console.log('Recurso ativado!!'); + } else { + this.eventProcess.workflowInstanceDataFields.IsAllDayEvent = this.eventProcess.workflowInstanceDataFields.IsAllDayEvent; + this.eventProcess.workflowInstanceDataFields.EndDate = this.setAlldayTimeEndDateNotAlday(this.eventProcess.workflowInstanceDataFields.EndDate) + console.log('Recurso desativado'); + + } + } + + setAlldayTime(timeToReturn) { + let date: any = new Date(timeToReturn) || new Date(); + let newdate = new Date(); + date.setHours(0) + date.setMinutes(0) + date.setSeconds(0); + + + return date + } + + + setAlldayTimeEndDate(timeToReturn) { + let date: any = new Date(timeToReturn) || new Date(); + let newdate = new Date(); + date.setHours(23) + date.setMinutes(59) + date.setSeconds(0); + + + return date + } + + setAlldayTimeEndDateNotAlday(timeToReturn) { + let date: any = new Date(timeToReturn) || new Date(); + let newdate = new Date(); + date.setHours(23) + date.setMinutes(0) + date.setSeconds(0); + + + return date + } + async addParticipants() { //this.saveTemporaryData(); diff --git a/src/app/shared/event/attendee-modal/attendee-modal.page.ts b/src/app/shared/event/attendee-modal/attendee-modal.page.ts index 6f5c5c171..db64e005a 100644 --- a/src/app/shared/event/attendee-modal/attendee-modal.page.ts +++ b/src/app/shared/event/attendee-modal/attendee-modal.page.ts @@ -49,6 +49,7 @@ export class AttendeePage implements OnInit { LtaskParticipantsCc: EventPerson[] = []; loggeduser: LoginUserRespose; listOfNotAllowdRoute = ['/home/gabinete-digital/despachos/', ] + selectedUserCalendar:any; constructor( public ThemeService: ThemeService, @@ -242,7 +243,7 @@ export class AttendeePage implements OnInit { let result if(this.hideExternalDomain) { - result = _result.filter( e => e.UserType == 'GD') + result = _result.filter( e => e.UserType == 'GD' && e.Name.includes(filter)) } else { result = _result } diff --git a/src/app/shared/gabinete-digital/edit-event-to-approve/edit-event.page.html b/src/app/shared/gabinete-digital/edit-event-to-approve/edit-event.page.html index 2a9c2e660..c59de001a 100644 --- a/src/app/shared/gabinete-digital/edit-event-to-approve/edit-event.page.html +++ b/src/app/shared/gabinete-digital/edit-event-to-approve/edit-event.page.html @@ -100,6 +100,15 @@
+
+
+ + Todo dia + + +
+
+
diff --git a/src/app/shared/gabinete-digital/edit-event-to-approve/edit-event.page.ts b/src/app/shared/gabinete-digital/edit-event-to-approve/edit-event.page.ts index d0efd8d3f..64e84a360 100644 --- a/src/app/shared/gabinete-digital/edit-event-to-approve/edit-event.page.ts +++ b/src/app/shared/gabinete-digital/edit-event-to-approve/edit-event.page.ts @@ -393,6 +393,58 @@ export class EditEventToApproveComponent implements OnInit { } + + + onCheckboxChange(event: any) { + + if (this.eventProcess.workflowInstanceDataFields.IsAllDayEvent) { + this.eventProcess.workflowInstanceDataFields.StartDate = this.setAlldayTime(this.eventProcess.workflowInstanceDataFields.StartDate) + this.eventProcess.workflowInstanceDataFields.EndDate = this.setAlldayTimeEndDate(this.eventProcess.workflowInstanceDataFields.EndDate) + + console.log('Recurso ativado!!'); + } else { + this.eventProcess.workflowInstanceDataFields.IsAllDayEvent = this.eventProcess.workflowInstanceDataFields.IsAllDayEvent; + this.eventProcess.workflowInstanceDataFields.EndDate = this.setAlldayTimeEndDateNotAlday(this.eventProcess.workflowInstanceDataFields.EndDate) + console.log('Recurso desativado'); + + } + } + + setAlldayTime(timeToReturn) { + let date: any = new Date(timeToReturn) || new Date(); + let newdate = new Date(); + date.setHours(0) + date.setMinutes(0) + date.setSeconds(0); + + + return date + } + + + setAlldayTimeEndDate(timeToReturn) { + let date: any = new Date(timeToReturn) || new Date(); + let newdate = new Date(); + date.setHours(23) + date.setMinutes(59) + date.setSeconds(0); + + + return date + } + + setAlldayTimeEndDateNotAlday(timeToReturn) { + let date: any = new Date(timeToReturn) || new Date(); + let newdate = new Date(); + date.setHours(23) + date.setMinutes(0) + date.setSeconds(0); + + + return date + } + + async openAttendees() { if (window.innerWidth <= 1024) { diff --git a/src/app/shared/gabinete-digital/generic/task-details/task-details.page.html b/src/app/shared/gabinete-digital/generic/task-details/task-details.page.html index ae6a2f3b6..15e6156ca 100644 --- a/src/app/shared/gabinete-digital/generic/task-details/task-details.page.html +++ b/src/app/shared/gabinete-digital/generic/task-details/task-details.page.html @@ -74,7 +74,7 @@
Detalhes
-
{{ task.Note || fulltask?.workflowInstanceDataFields?.TaskMessage}} 
+
diff --git a/src/app/shared/gabinete-digital/generic/task-details/task-details.page.ts b/src/app/shared/gabinete-digital/generic/task-details/task-details.page.ts index 166130b28..080ac35f8 100644 --- a/src/app/shared/gabinete-digital/generic/task-details/task-details.page.ts +++ b/src/app/shared/gabinete-digital/generic/task-details/task-details.page.ts @@ -1,4 +1,4 @@ -import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; +import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core'; import { customTask } from 'src/app/models/dailyworktask.model'; import { ThemeService } from 'src/app/services/theme.service' import { DeviceService } from "src/app/services/device.service" @@ -12,6 +12,9 @@ import { SessionStore } from 'src/app/store/session.service'; import { LoginUserRespose } from 'src/app/models/user.model'; import { object } from 'zod'; import { element } from 'protractor'; +import { task } from '../../../../models/ExpedientTaskModalPage'; +import { DomSanitizer, SafeHtml } from '@angular/platform-browser'; + @Component({ selector: 'app-task-details', @@ -34,17 +37,103 @@ export class TaskDetailsPage implements OnInit { selectedIndex = 0 dropButton = true loggeduser: LoginUserRespose; + @ViewChild('text', { static: false }) text: ElementRef; + constructor( public ThemeService: ThemeService, public DeviceService: DeviceService, private DocumentViewerOptionService: DocumentViewerOptionService, public p: PermissionService, private modalController: ModalController, - private HeaderSettingsService: HeaderSettingsService + private HeaderSettingsService: HeaderSettingsService, + private sanitizer: DomSanitizer ) { this.DeviceService.isDesktop(); this.loggeduser = SessionStore.user + + // if(this.task.Note) { + // this.task.Note = this.sanitizeHtml(this.task.Note) as any + // } + + // if(this.fulltask?.workflowInstanceDataFields?.TaskMessage) { + // this.fulltask.workflowInstanceDataFields.TaskMessage = this.sanitizeHtml(this.fulltask.workflowInstanceDataFields.TaskMessage); + // } + + + setTimeout(() => { + console.log('change', this.task.Note); + // this.task.Note = this.sanitizeHtml(this.task.Note) as any + (this.text.nativeElement as HTMLDivElement).innerHTML = this.decode(this.task.Note) + + }, 10) + + setTimeout(() => { + console.log('change', this.task.Note); + // this.task.Note = this.sanitizeHtml(this.task.Note) as any + (this.text.nativeElement as HTMLDivElement).innerHTML = this.decode(this.task.Note) + + }, 100) + + setTimeout(() => { + console.log('change', this.task.Note); + // this.task.Note = this.sanitizeHtml(this.task.Note) as any + (this.text.nativeElement as HTMLDivElement).innerHTML = this.decode(this.task.Note) + + }, 500) + + setTimeout(() => { + console.log('change', this.task.Note); + // this.task.Note = this.sanitizeHtml(this.task.Note) as any + (this.text.nativeElement as HTMLDivElement).innerHTML = this.decode(this.task.Note) + + }, 1000) + + setTimeout(() => { + console.log('change', this.task.Note); + // this.task.Note = this.sanitizeHtml(this.task.Note) as any + (this.text.nativeElement as HTMLDivElement).innerHTML = this.decode(this.task.Note) + + }, 2000) + + + setTimeout(() => { + console.log('change', this.task.Note); + // this.task.Note = this.sanitizeHtml(this.task.Note) as any + (this.text.nativeElement as HTMLDivElement).innerHTML = this.decode(this.task.Note) + + }, 4000) + + } + + + + ngChange( ) { + console.log('change', this.task.Note) + // this.task.Note = this.sanitizeHtml(this.task.Note) as any + + } + + decode(encodedString) { + // Create a temporary element to decode HTML entities + let tempElement = document.createElement('div'); + tempElement.innerHTML = encodedString; + + // Return the decoded string + return tempElement.textContent || tempElement.innerText || ''; + } + + + sanitizeHtml(html: string): SafeHtml { + return this.sanitizer.bypassSecurityTrustHtml(html) + const decodedHtml = this.decodeHtml(html); + return this.sanitizer.bypassSecurityTrustHtml(decodedHtml); + } + + decodeHtml(html: string): string { + const txt = document.createElement('textarea'); + txt.innerHTML = html; + return txt.value; } ngOnInit() { diff --git a/version/git-version.ts b/version/git-version.ts index eb6fb64ca..c27343d25 100644 --- a/version/git-version.ts +++ b/version/git-version.ts @@ -1,11 +1,11 @@ export let versionData = { - "shortSHA": "186324832", - "SHA": "186324832df0e3b475f7913fa33911eebe6d5448", + "shortSHA": "da8ac83a5", + "SHA": "da8ac83a5b750bd08d5b41db5b2e0a548f5ce2a8", "branch": "feature/agenda-api-peter", "lastCommitAuthor": "'Peter Maquiran'", - "lastCommitTime": "'Thu Jul 11 12:52:35 2024 +0100'", - "lastCommitMessage": "fix attendees type", - "lastCommitNumber": "5863", - "changeStatus": "On branch feature/agenda-api-peter\nYour branch is up to date with 'origin/feature/agenda-api-peter'.\n\nChanges to be committed:\n (use \"git restore --staged ...\" to unstage)\n\tmodified: src/app/modals/delegar/delegar.page.ts\n\tmodified: src/app/pages/agenda/agenda.page.ts\n\tmodified: src/app/pages/agenda/event-actions-popover/event-actions-popover.page.html\n\tmodified: src/app/pages/agenda/event-actions-popover/event-actions-popover.page.ts\n\tmodified: src/app/pages/gabinete-digital/event-list/approve-event/approve-event.page.html\n\tmodified: src/app/pages/gabinete-digital/event-list/approve-event/approve-event.page.ts\n\tmodified: src/app/shared/agenda/approve-event/approve-event.page.html\n\tmodified: src/app/shared/agenda/approve-event/approve-event.page.ts", + "lastCommitTime": "'Fri Jul 12 10:23:02 2024 +0100'", + "lastCommitMessage": "show all options to event to approve", + "lastCommitNumber": "5864", + "changeStatus": "On branch feature/agenda-api-peter\nYour branch is up to date with 'origin/feature/agenda-api-peter'.\n\nChanges to be committed:\n (use \"git restore --staged ...\" to unstage)\n\tmodified: src/app/modals/document-set-up-meeting/document-set-up-meeting.page.html\n\tmodified: src/app/modals/document-set-up-meeting/document-set-up-meeting.page.ts\n\tmodified: src/app/pages/agenda/new-event/new-event.page.html\n\tmodified: src/app/pages/gabinete-digital/expediente/book-meeting-modal/book-meeting-modal.page.ts\n\tmodified: src/app/services/Repositorys/Agenda/agenda-data-repository.service.ts\n\tmodified: src/app/services/Repositorys/Agenda/utils.ts\n\tmodified: src/app/shared/agenda/edit-event-to-approve/edit-event-to-approve.page.html\n\tmodified: src/app/shared/agenda/edit-event-to-approve/edit-event-to-approve.page.ts\n\tmodified: src/app/shared/event/attendee-modal/attendee-modal.page.ts\n\tmodified: src/app/shared/gabinete-digital/edit-event-to-approve/edit-event.page.html\n\tmodified: src/app/shared/gabinete-digital/edit-event-to-approve/edit-event.page.ts\n\tmodified: src/app/shared/gabinete-digital/generic/task-details/task-details.page.html\n\tmodified: src/app/shared/gabinete-digital/generic/task-details/task-details.page.ts\n\tmodified: version/git-version.ts", "changeAuthor": "peter.maquiran" } \ No newline at end of file