mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-18 12:37:53 +00:00
1 line
68 KiB
JSON
1 line
68 KiB
JSON
{"ast":null,"code":"import _asyncToGenerator from \"C:/Users/eudes.inacio/GabineteDigital/gabinete-digital-fo/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\";\nimport { __decorate } from \"tslib\";\nimport __NG_CLI_RESOURCE__0 from \"./new-event.page.html?ngResource\";\nimport __NG_CLI_RESOURCE__1 from \"./new-event.page.scss?ngResource\";\nimport { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { EventsService } from 'src/app/services/events.service';\nimport { AttachmentsService } from 'src/app/services/attachments.service';\nimport { Event } from 'src/app/models/event.model';\nimport { ModalController } from '@ionic/angular';\nimport { removeDuplicate } from 'src/plugin/removeDuplicate.js';\nimport { SearchPage } from 'src/app/pages/search/search.page';\nimport { ToastService } from 'src/app/services/toast.service';\nimport { DateAdapter } from '@angular/material/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { ViewChild } from '@angular/core';\nimport { UntypedFormGroup, Validators } from '@angular/forms';\nimport { NGX_MAT_DATE_FORMATS } from '@angular-material-components/datetime-picker';\nimport { ThemeService } from 'src/app/services/theme.service';\nimport { ChatMethodsService } from 'src/app/services/chat/chat-methods.service';\nimport { SessionStore } from 'src/app/store/session.service';\nimport { HttpErrorHandle } from 'src/app/services/http-error-handle.service';\nimport { environment } from 'src/environments/environment';\nconst CUSTOM_DATE_FORMATS = {\n parse: {\n dateInput: \"YYYY-MMMM-DD HH:mm\"\n },\n display: {\n dateInput: \"DD MMM YYYY H:mm\",\n monthYearLabel: \"MMM YYYY\",\n dateA11yLabel: \"LL\",\n monthYearA11yLabel: \"MMMM YYYY\"\n }\n};\nlet NewEventPage = class NewEventPage {\n constructor(modalController, eventService, attachmentsService, toastService, dateAdapter, ThemeService, chatMethodService, hhtpErrorHandle) {\n this.modalController = modalController;\n this.eventService = eventService;\n this.attachmentsService = attachmentsService;\n this.toastService = toastService;\n this.dateAdapter = dateAdapter;\n this.ThemeService = ThemeService;\n this.chatMethodService = chatMethodService;\n this.hhtpErrorHandle = hhtpErrorHandle;\n this.segment = \"true\";\n this.disabled = false;\n this.showSpinners = true;\n this.showSeconds = false;\n this.touchUi = false;\n this.enableMeridian = false;\n this.stepHour = 1;\n this.stepMinute = 15;\n this.stepSecond = 15;\n this.currentDate = this.roundTimeQuarterHour();\n this.color = 'primary';\n this.recurringTypes = [];\n this.taskParticipants = [];\n this.taskParticipantsCc = [];\n this.setIntervenient = new EventEmitter();\n this.setIntervenientCC = new EventEmitter();\n this.onAddEvent = new EventEmitter();\n this.openAttendeesComponent = new EventEmitter();\n this.clearContact = new EventEmitter();\n this.GoBackEditOrAdd = new EventEmitter();\n this.cloneAllmobileComponent = new EventEmitter();\n this.backToChat = new EventEmitter();\n this.documents = [];\n this.validateFrom = false;\n this.options = [{\n value: true,\n label: 'True'\n }, {\n value: false,\n label: 'False'\n }];\n this.listColors = ['primary', 'accent', 'warn'];\n this.stepHours = [1, 2, 3, 4, 5];\n this.stepMinutes = [1, 5, 10, 15, 20, 25];\n this.stepSeconds = [1, 5, 10, 15, 20, 25];\n this.showLoader = false;\n this.CalendarNameShow = true;\n this.CalendarNamesOptions = ['Oficial', 'Pessoal'];\n this.environment = environment;\n this.dateAdapter.setLocale('pt');\n this.loggeduser = SessionStore.user;\n this.postEvent = new Event();\n }\n ngOnInit() {\n if (!this.CalendarName) {\n if (this.eventService.calendarNamesAry.includes('Meu calendario')) {\n this.CalendarName = 'Meu calendario';\n } else {\n this.CalendarName = this.eventService.calendarNamesAry[0];\n }\n }\n this.getRecurrenceTypes();\n if (!this.restoreTemporaryData()) {\n // clear\n this.eventBody = {\n BodyType: \"1\",\n Text: \"\"\n };\n this.postEvent.Body = this.eventBody;\n if (this.selectedSegment != \"Combinada\") {\n this.postEvent = {\n EventId: '',\n Subject: '',\n Body: this.eventBody,\n Location: '',\n CalendarId: '',\n CalendarName: 'Oficial',\n StartDate: this.autoStartTime,\n EndDate: this.autoEndTime,\n EventType: 'Reunião',\n Attendees: this.attendees || null,\n IsMeeting: false,\n IsRecurring: false,\n AppointmentState: 0,\n TimeZone: '',\n Organizer: '',\n Category: 'Reunião',\n HasAttachments: false,\n EventRecurrence: {\n Type: '-1',\n LastOccurrence: this.autoEndTime\n }\n };\n } else {\n this.postEvent = {\n EventId: '',\n Subject: '',\n Body: this.eventBody,\n Location: '',\n CalendarId: '',\n CalendarName: 'Oficial',\n StartDate: this.autoStartTime,\n EndDate: this.autoEndTime,\n EventType: 'Reunião',\n Attendees: this.attendees || null,\n IsMeeting: false,\n IsRecurring: false,\n AppointmentState: 0,\n TimeZone: '',\n Organizer: '',\n Category: 'Reunião',\n HasAttachments: false,\n EventRecurrence: {\n Type: '-1',\n LastOccurrence: this.autoEndTime\n }\n };\n }\n if (this.postEvent.Attendees != null) {\n this.postEvent.Attendees.forEach(e => {\n if (e.IsRequired) {\n this.taskParticipants.push(e);\n } else {\n this.taskParticipantsCc.push(e);\n }\n });\n }\n this.taskParticipants = removeDuplicate(this.taskParticipants);\n this.taskParticipantsCc = removeDuplicate(this.taskParticipantsCc);\n this.setIntervenient.emit(this.taskParticipants);\n this.setIntervenientCC.emit(this.taskParticipantsCc);\n }\n this.date = new Date(2021, 9, 4, 5, 6, 7);\n this.injectValidation();\n this.setDefaultTime();\n this.changeAgenda();\n }\n setDefaultTime() {\n this.postEvent.StartDate = this.roundTimeQuarterHour(this.CalendarDate);\n this.postEvent.EndDate = this.roundTimeQuarterHourPlus15(this.postEvent.StartDate);\n }\n roundTimeQuarterHour(timeToReturn = new Date()) {\n let date = new Date(timeToReturn) || new Date();\n const minutes = date.getMinutes();\n date.setSeconds(0);\n if (minutes % 15 != 0) {\n if (minutes > 45) {\n date.setMinutes(60);\n } else if (minutes > 30) {\n date.setMinutes(45);\n } else if (minutes > 15) {\n date.setMinutes(30);\n } else if (minutes > 0) {\n date.setMinutes(15);\n }\n }\n return date;\n }\n roundTimeQuarterHourPlus15(date) {\n const _date = new Date(date);\n const minutes = _date.getMinutes();\n _date.setMinutes(minutes + 15);\n return _date;\n }\n roundTimeQuarterHour1(timeToReturn) {\n let date = new Date(timeToReturn) || new Date();\n const minutes = date.getMinutes();\n date.setSeconds(0);\n if (minutes % 15 != 0) {\n let a = (Math.floor(minutes / 15) + 1) * 15;\n date.setMinutes(a);\n }\n return date;\n }\n setStartDate() {\n // this.postEvent.StartDate = this.roundTimeQuarterHour();\n }\n setEndDate() {\n // this.postEvent.EndDate = this.postEvent.StartDate;\n }\n runValidation() {\n this.validateFrom = true;\n if (new Date(this.postEvent.StartDate).getTime() > new Date(this.postEvent.EndDate).getTime()) {\n this.toastService._badRequest(\"A data de fim não pode ser inferior a data de início do evento\");\n }\n }\n injectValidation() {\n if (typeof this.postEvent.EventRecurrence.Type == 'number') {\n const str = this.postEvent.EventRecurrence.Type.toString();\n this.postEvent.EventRecurrence.Type = str;\n }\n this.Form = new UntypedFormGroup({\n Subject: new UntypedFormControl(this.postEvent.Subject, [Validators.required\n // Validators.minLength(4)\n ]),\n\n Location: new UntypedFormControl(this.postEvent.Location, [Validators.required]),\n CalendarName: new UntypedFormControl(this.postEvent.CalendarName),\n Categories: new UntypedFormControl(this.postEvent.Category, [Validators.required]),\n dateStart: new UntypedFormControl(this.postEvent.StartDate, [Validators.required]),\n dateEnd: new UntypedFormControl(this.postEvent.EndDate, [Validators.required]),\n dateOccurrence: new UntypedFormControl(this.postEvent.EventRecurrence.Type.toString() == '-1' ? ['ok'] : this.postEvent.EventRecurrence.LastOccurrence && new Date(this.postEvent.EventRecurrence.LastOccurrence).getTime() > new Date(this.postEvent.EndDate).getTime() ? 'ok' : null, [Validators.required]),\n participantes: new UntypedFormControl(this.taskParticipants, [\n // Validators.required\n ]),\n Date: new UntypedFormControl(new Date(this.postEvent.StartDate).getTime() < new Date(this.postEvent.EndDate).getTime() ? 'ok' : null, [Validators.required])\n });\n }\n openInicio() {\n let input = document.querySelector('#new-inicio');\n if (input) {\n input.click();\n }\n }\n openFim() {\n let input = document.querySelector('#new-fim');\n if (input) {\n input.click();\n }\n }\n changeAgenda() {\n this.CalendarNameShow = false;\n setTimeout(() => {\n this.CalendarNameShow = true;\n if (this.eventService.calendarNamesType[this.CalendarName]?.['Oficial'] && this.eventService.calendarNamesType[this.CalendarName]?.['Pessoal']) {\n this.CalendarNamesOptions = ['Oficial', 'Pessoal'];\n } else if (this.eventService.calendarNamesType[this.CalendarName]?.['Oficial']) {\n this.CalendarNamesOptions = ['Oficial'];\n this.postEvent.CalendarName = 'Oficial';\n } else if (this.eventService.calendarNamesType[this.CalendarName]?.['Pessoal']) {\n this.CalendarNamesOptions = ['Pessoal'];\n this.postEvent.CalendarName = 'Pessoal';\n } else {\n this.CalendarNamesOptions = ['Oficial', 'Pessoal'];\n }\n }, 50);\n }\n openLastOccurrence() {\n let input = document.querySelector('#last-occurrence');\n if (input) {\n input.click();\n }\n }\n getDoc() {\n var _this = this;\n return _asyncToGenerator(function* () {\n const modal = yield _this.modalController.create({\n component: SearchPage,\n cssClass: 'modal-width-100-width-background modal',\n componentProps: {\n type: 'AccoesPresidenciais & ArquivoDespachoElect',\n showSearchInput: true,\n select: true\n }\n });\n yield modal.present();\n modal.onDidDismiss().then(res => {\n if (res) {\n const data = res.data;\n _this.documents.push(data.selected);\n }\n });\n })();\n }\n close() {\n this.deleteTemporaryData();\n this.clearContact.emit();\n this.setIntervenient.emit([]);\n this.setIntervenientCC.emit([]);\n // chat exit\n this.backToChat.emit({\n roomId: this.roomId\n });\n // agenda exit\n this.cloneAllmobileComponent.emit({});\n }\n getRecurrenceTypes() {\n this.eventService.getRecurrenceTypes().subscribe(res => {\n this.recurringTypes = res;\n });\n }\n onSelectedRecurringChanged(ev) {\n this.calculetedLastOccurrence(ev);\n if (ev.length > 1) {\n this.postEvent.EventRecurrence.Type = ev.filter(data => data != '-1');\n }\n if (ev.length == 0) {\n this.postEvent.EventRecurrence.Type = \"-1\";\n }\n }\n calculetedLastOccurrence(type) {\n var valor;\n var opcao;\n if (type == 0) {\n valor = 7;\n opcao = true;\n } else if (type == 1) {\n valor = 30;\n opcao = true;\n } else if (type == 2) {\n valor = 1;\n opcao = false;\n } else if (type == 3) {\n valor = 5;\n opcao = false;\n }\n this.defineLastOccurrence(valor, opcao);\n }\n defineLastOccurrence(valor, opcao) {\n var time = new Date(this.postEvent.EndDate);\n if (opcao == true) {\n time.setDate(time.getDate() + valor);\n this.postEvent.EventRecurrence.LastOccurrence = time;\n } else {\n time = new Date(time.getFullYear() + valor, time.getMonth(), time.getDate(), time.getHours(), time.getMinutes());\n this.postEvent.EventRecurrence.LastOccurrence = time;\n }\n }\n save() {\n var _this2 = this;\n return _asyncToGenerator(function* () {\n _this2.injectValidation();\n _this2.runValidation();\n if (_this2.Form.invalid) {\n return false;\n }\n _this2.postEvent.Attendees = _this2.taskParticipants.concat(_this2.taskParticipantsCc);\n if (_this2.documents.length >= 0) {\n _this2.postEvent.HasAttachments = true;\n }\n if (_this2.postEvent.EventRecurrence.Type == undefined) {\n _this2.postEvent.EventRecurrence.Type = '-1';\n }\n if (_this2.loggeduser.Profile == 'MDGPR') {\n const CalendarId = _this2.selectedCalendarId();\n _this2.showLoader = true;\n let loader = _this2.toastService.loading();\n _this2.eventService.postEventGeneric(_this2.postEvent, _this2.postEvent.CalendarName, CalendarId).subscribe( /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (id) {\n loader.remove();\n _this2.showLoader = false;\n const eventId = id;\n const DocumentToSave = _this2.documents.map(e => {\n return {\n SourceTitle: e.Assunto,\n ParentId: eventId,\n Source: '1',\n SourceId: e.Id,\n ApplicationId: e.ApplicationType.toString(),\n Id: '',\n Link: '',\n SerialNumber: ''\n };\n });\n yield DocumentToSave.forEach((attachments, i) => {\n _this2.attachmentsService.setEventAttachmentById(attachments).subscribe(res => {\n if (DocumentToSave.length == i + 1) {\n _this2.afterSave();\n }\n });\n });\n if (DocumentToSave.length == 0) {\n _this2.afterSave();\n }\n _this2.hhtpErrorHandle.httpsSucessMessagge('new event');\n let data = {\n \"subject\": _this2.postEvent.Subject,\n \"start\": _this2.postEvent.StartDate,\n \"end\": _this2.postEvent.EndDate,\n \"venue\": _this2.postEvent.Location,\n \"id\": id,\n \"calendarId\": CalendarId\n };\n if (_this2.roomId) {\n _this2.chatMethodService.sendMessage(_this2.roomId, data);\n }\n });\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }(), error => {\n loader.remove();\n _this2.showLoader = false;\n _this2.hhtpErrorHandle.httpStatusHandle(error);\n });\n } else if (_this2.loggeduser.Profile == 'PR') {\n const CalendarId = _this2.selectedCalendarId();\n let loader = _this2.toastService.loading();\n _this2.eventService.postEventGeneric(_this2.postEvent, _this2.postEvent.CalendarName, CalendarId).subscribe(id => {\n loader.remove();\n const eventId = id;\n const DocumentToSave = _this2.documents.map(e => {\n return {\n SourceTitle: e.Assunto,\n ParentId: eventId,\n Source: '1',\n SourceId: e.Id,\n ApplicationId: e.ApplicationType.toString(),\n Id: '',\n Link: '',\n SerialNumber: ''\n };\n });\n DocumentToSave.forEach((attachments, i) => {\n _this2.attachmentsService.setEventAttachmentById(attachments).subscribe(res => {\n if (DocumentToSave.length == i + 1) {\n _this2.afterSave();\n }\n });\n });\n if (DocumentToSave.length == 0) {\n _this2.afterSave();\n }\n _this2.hhtpErrorHandle.httpsSucessMessagge('new event');\n let data = {\n \"subject\": _this2.postEvent.Subject,\n \"start\": _this2.postEvent.StartDate,\n \"end\": _this2.postEvent.EndDate,\n \"venue\": _this2.postEvent.Location,\n \"id\": id,\n \"calendarId\": CalendarId\n };\n if (_this2.roomId) {\n _this2.chatMethodService.sendMessage(_this2.roomId, data);\n }\n }, error => {\n //const connectionToServer = this.ServerConnectionService.BaseAPI()\n _this2.hhtpErrorHandle.httpStatusHandle(error);\n loader.remove();\n _this2.showLoader = false;\n });\n } else {\n _this2.postEvent.CalendarName;\n const CalendarId = _this2.selectedCalendarId();\n let loader = _this2.toastService.loading();\n _this2.eventService.postEventGeneric(_this2.postEvent, _this2.postEvent.CalendarName, CalendarId).subscribe(id => {\n loader.remove();\n const eventId = id;\n const DocumentToSave = _this2.documents.map(e => {\n return {\n SourceTitle: e.Assunto,\n ParentId: eventId,\n Source: '1',\n SourceId: e.Id,\n ApplicationId: e.ApplicationType.toString(),\n Id: '',\n Link: '',\n SerialNumber: ''\n };\n });\n DocumentToSave.forEach((attachments, i) => {\n _this2.attachmentsService.setEventAttachmentById(attachments).subscribe(res => {\n if (DocumentToSave.length == i + 1) {\n _this2.afterSave();\n }\n });\n });\n if (DocumentToSave.length == 0) {\n _this2.afterSave();\n }\n _this2.hhtpErrorHandle.httpsSucessMessagge('new event');\n let data = {\n \"subject\": _this2.postEvent.Subject,\n \"start\": _this2.postEvent.StartDate,\n \"end\": _this2.postEvent.EndDate,\n \"venue\": _this2.postEvent.Location,\n \"id\": id,\n \"calendarId\": CalendarId\n };\n if (_this2.roomId) {\n _this2.chatMethodService.sendMessage(_this2.roomId, data);\n }\n }, error => {\n loader.remove();\n _this2.showLoader = false;\n _this2.hhtpErrorHandle.httpStatusHandle(error);\n });\n }\n })();\n }\n selectedCalendarId() {\n if (this.eventService.calendarNamesType[this.CalendarName]?.['Oficial'] && this.postEvent.CalendarName == 'Oficial') {\n return this.eventService.calendarNamesType[this.CalendarName]['OficialId'];\n } else if (this.eventService.calendarNamesType[this.CalendarName]?.['Pessoal'] && this.postEvent.CalendarName == 'Pessoal') {\n return this.eventService.calendarNamesType[this.CalendarName]['PessoalId'];\n } else {\n return '11:11';\n }\n }\n afterSave() {\n this.deleteTemporaryData();\n this.onAddEvent.emit(Object.assign(this.postEvent, {\n roomId: this.roomId\n }));\n this.GoBackEditOrAdd.emit();\n this.setIntervenient.emit([]);\n this.setIntervenientCC.emit([]);\n }\n removeAttachment(index) {\n this.documents = this.documents.filter((e, i) => index != i);\n }\n addParticipants() {\n var _this3 = this;\n return _asyncToGenerator(function* () {\n _this3.saveTemporaryData();\n _this3.openAttendeesComponent.emit({\n type: \"intervenient\"\n });\n _this3.clearContact.emit();\n })();\n }\n addParticipantsCc() {\n var _this4 = this;\n return _asyncToGenerator(function* () {\n _this4.saveTemporaryData();\n _this4.openAttendeesComponent.emit({\n type: \"CC\"\n });\n _this4.clearContact.emit();\n })();\n }\n saveTemporaryData() {\n window['temp.path:/home/agenda/new-event.component.ts'] = {\n postEvent: this.postEvent,\n eventBody: this.eventBody,\n segment: this.segment,\n CalendarName: this.CalendarName\n };\n }\n /**\r\n *\r\n * @description o pipeline já esta a funcionar tuda vez que nos fazer push na branch master e test o pipeline executa os teste, mas agora os teste temos que melhora para testar a app em tudos os pontos\r\n * o pipeline já está a funcionar toda vez que nos fazer um push na branch master ou teste o pipeline executa os testes, mas agora os testes temos que melhorar para testar a app em todos os pontos\r\n */\n restoreTemporaryData() {\n const restoredData = window['temp.path:/home/agenda/new-event.component.ts'];\n if (JSON.stringify(restoredData) != \"{}\" && undefined != restoredData) {\n this.postEvent = restoredData.postEvent;\n this.eventBody = restoredData.eventBody;\n this.segment = restoredData.segment;\n this.CalendarName = restoredData.CalendarName;\n // restore dater for date and hours picker\n return true;\n } else {}\n }\n deleteTemporaryData() {\n window['temp.path:/home/agenda/new-event.component.ts'] = {};\n }\n};\nNewEventPage.ctorParameters = () => [{\n type: ModalController\n}, {\n type: EventsService\n}, {\n type: AttachmentsService\n}, {\n type: ToastService\n}, {\n type: DateAdapter\n}, {\n type: ThemeService\n}, {\n type: ChatMethodsService\n}, {\n type: HttpErrorHandle\n}];\nNewEventPage.propDecorators = {\n attendees: [{\n type: Input\n }],\n profile: [{\n type: Input\n }],\n roomId: [{\n type: Input\n }],\n selectedSegment: [{\n type: Input\n }],\n selectedDate: [{\n type: Input\n }],\n CalendarDate: [{\n type: Input\n }],\n taskParticipants: [{\n type: Input\n }],\n taskParticipantsCc: [{\n type: Input\n }],\n setIntervenient: [{\n type: Output\n }],\n setIntervenientCC: [{\n type: Output\n }],\n onAddEvent: [{\n type: Output\n }],\n openAttendeesComponent: [{\n type: Output\n }],\n clearContact: [{\n type: Output\n }],\n GoBackEditOrAdd: [{\n type: Output\n }],\n cloneAllmobileComponent: [{\n type: Output\n }],\n backToChat: [{\n type: Output\n }],\n picker: [{\n type: ViewChild,\n args: ['picker']\n }],\n fim: [{\n type: ViewChild,\n args: ['fim']\n }],\n inicio: [{\n type: ViewChild,\n args: ['inicio']\n }],\n occurrence: [{\n type: ViewChild,\n args: ['occurrence']\n }],\n picker1: [{\n type: ViewChild,\n args: ['picker1']\n }]\n};\nNewEventPage = __decorate([Component({\n selector: 'app-new-event',\n template: __NG_CLI_RESOURCE__0,\n providers: [{\n provide: NGX_MAT_DATE_FORMATS,\n useValue: CUSTOM_DATE_FORMATS\n }],\n styles: [__NG_CLI_RESOURCE__1]\n})], NewEventPage);\nexport { NewEventPage };","map":{"version":3,"mappings":"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","names":["Component","Input","Output","EventEmitter","EventsService","AttachmentsService","Event","ModalController","removeDuplicate","SearchPage","ToastService","DateAdapter","UntypedFormControl","ViewChild","UntypedFormGroup","Validators","NGX_MAT_DATE_FORMATS","ThemeService","ChatMethodsService","SessionStore","HttpErrorHandle","environment","CUSTOM_DATE_FORMATS","parse","dateInput","display","monthYearLabel","dateA11yLabel","monthYearA11yLabel","NewEventPage","constructor","modalController","eventService","attachmentsService","toastService","dateAdapter","chatMethodService","hhtpErrorHandle","roundTimeQuarterHour","value","label","setLocale","loggeduser","user","postEvent","ngOnInit","CalendarName","calendarNamesAry","includes","getRecurrenceTypes","restoreTemporaryData","eventBody","BodyType","Text","Body","selectedSegment","EventId","Subject","Location","CalendarId","StartDate","autoStartTime","EndDate","autoEndTime","EventType","Attendees","attendees","IsMeeting","IsRecurring","AppointmentState","TimeZone","Organizer","Category","HasAttachments","EventRecurrence","Type","LastOccurrence","forEach","e","IsRequired","taskParticipants","push","taskParticipantsCc","setIntervenient","emit","setIntervenientCC","date","Date","injectValidation","setDefaultTime","changeAgenda","CalendarDate","roundTimeQuarterHourPlus15","timeToReturn","minutes","getMinutes","setSeconds","setMinutes","_date","roundTimeQuarterHour1","a","Math","floor","setStartDate","setEndDate","runValidation","validateFrom","getTime","_badRequest","str","toString","Form","required","Categories","dateStart","dateEnd","dateOccurrence","participantes","openInicio","input","document","querySelector","click","openFim","CalendarNameShow","setTimeout","calendarNamesType","CalendarNamesOptions","openLastOccurrence","getDoc","modal","_this","create","component","cssClass","componentProps","type","showSearchInput","select","present","onDidDismiss","then","res","data","documents","selected","close","deleteTemporaryData","clearContact","backToChat","roomId","cloneAllmobileComponent","subscribe","recurringTypes","onSelectedRecurringChanged","ev","calculetedLastOccurrence","length","filter","valor","opcao","defineLastOccurrence","time","setDate","getDate","getFullYear","getMonth","getHours","save","_this2","invalid","concat","undefined","Profile","selectedCalendarId","showLoader","loader","loading","postEventGeneric","id","remove","eventId","DocumentToSave","map","SourceTitle","Assunto","ParentId","Source","SourceId","Id","ApplicationId","ApplicationType","Link","SerialNumber","attachments","i","setEventAttachmentById","afterSave","httpsSucessMessagge","sendMessage","error","httpStatusHandle","onAddEvent","Object","assign","GoBackEditOrAdd","removeAttachment","index","addParticipants","_this3","saveTemporaryData","openAttendeesComponent","addParticipantsCc","_this4","window","segment","restoredData","JSON","stringify","args","selector","template","providers","provide","useValue"],"sourceRoot":"","sources":["C:\\Users\\eudes.inacio\\GabineteDigital\\gabinete-digital-fo\\src\\app\\shared\\agenda\\new-event\\new-event.page.ts"],"sourcesContent":["import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { EventBody } from 'src/app/models/eventbody.model';\r\nimport { EventPerson } from 'src/app/models/eventperson.model';\r\nimport { EventsService } from 'src/app/services/events.service';\r\nimport { AttachmentsService } from 'src/app/services/attachments.service';\r\nimport { Event } from 'src/app/models/event.model';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { removeDuplicate } from 'src/plugin/removeDuplicate.js'\r\nimport { SearchPage } from 'src/app/pages/search/search.page';\r\nimport { SearchList } from \"src/app/models/search-document\";\r\nimport { EventAttachment } from 'src/app/models/attachment.model';\r\n\r\nimport { ToastService } from 'src/app/services/toast.service';\r\nimport { LoginUserRespose } from 'src/app/models/user.model';\r\n\r\nimport {DateAdapter} from '@angular/material/core';\r\nimport * as _moment from 'moment';\r\nimport * as _rollupMoment from 'moment';\r\nimport { UntypedFormControl } from '@angular/forms';\r\nimport { NgxMatDateFormats } from '@angular-material-components/datetime-picker';\r\nimport { ThemePalette } from '@angular/material/core';\r\n\r\nimport { ViewChild } from '@angular/core';\r\nimport { UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { NGX_MAT_DATE_FORMATS } from '@angular-material-components/datetime-picker';\r\nimport { ThemeService } from 'src/app/services/theme.service'\r\nimport { ChatMethodsService } from 'src/app/services/chat/chat-methods.service';\r\nimport { ServerConnectionService } from 'src/app/services/server-connection.service';\r\nimport { SessionStore } from 'src/app/store/session.service';\r\nimport { HttpErrorHandle } from 'src/app/services/http-error-handle.service';\r\nimport { environment } from 'src/environments/environment';\r\n\r\nconst CUSTOM_DATE_FORMATS: NgxMatDateFormats = {\r\n parse: {\r\n dateInput: \"YYYY-MMMM-DD HH:mm\"\r\n },\r\n display: {\r\n dateInput: \"DD MMM YYYY H:mm\",\r\n monthYearLabel: \"MMM YYYY\",\r\n dateA11yLabel: \"LL\",\r\n monthYearA11yLabel: \"MMMM YYYY\"\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'app-new-event',\r\n templateUrl: './new-event.page.html',\r\n styleUrls: ['./new-event.page.scss'],\r\n providers: [\r\n { provide: NGX_MAT_DATE_FORMATS, useValue: CUSTOM_DATE_FORMATS },\r\n ]\r\n})\r\n\r\n\r\nexport class NewEventPage implements OnInit {\r\n\r\n eventBody: EventBody;\r\n segment:string = \"true\";\r\n\r\n public date: any;\r\n public disabled = false;\r\n public showSpinners = true;\r\n public showSeconds = false;\r\n public touchUi = false;\r\n public enableMeridian = false;\r\n public stepHour = 1;\r\n public stepMinute = 15;\r\n public stepSecond = 15;\r\n currentDate = this.roundTimeQuarterHour();\r\n public color: ThemePalette = 'primary';\r\n recurringTypes = []\r\n selectedRecurringType: any;\r\n\r\n @Input() attendees: []\r\n @Input() profile:string;\r\n @Input() roomId:string;\r\n @Input() selectedSegment: string;\r\n @Input() selectedDate: Date;\r\n @Input() CalendarDate: Date;\r\n @Input() taskParticipants: EventPerson[] = [];\r\n @Input() taskParticipantsCc: any = [];\r\n\r\n @Output() setIntervenient = new EventEmitter<any>();\r\n @Output() setIntervenientCC = new EventEmitter<any>();\r\n\r\n postEvent: Event;\r\n @Output() onAddEvent = new EventEmitter<any>();\r\n @Output() openAttendeesComponent = new EventEmitter<any>();\r\n @Output() clearContact = new EventEmitter<any>();\r\n @Output() GoBackEditOrAdd = new EventEmitter<any>();\r\n @Output() cloneAllmobileComponent = new EventEmitter<any>();\r\n @Output() backToChat = new EventEmitter<any>();\r\n\r\n documents:SearchList[] = [];\r\n\r\n // minDate: string;\r\n\r\n loggeduser: LoginUserRespose;\r\n @ViewChild('picker') picker: any;\r\n @ViewChild('fim') fim: any;\r\n @ViewChild('inicio') inicio: any;\r\n @ViewChild('occurrence') occurrence: any;\r\n @ViewChild('picker1') picker1: any;\r\n\r\n Form: UntypedFormGroup;\r\n validateFrom = false;\r\n autoStartTime;\r\n autoEndTime; \r\n\r\n public options = [\r\n { value: true, label: 'True' },\r\n { value: false, label: 'False' }\r\n ];\r\n\r\n public listColors = ['primary', 'accent', 'warn'];\r\n public stepHours = [1, 2, 3, 4, 5];\r\n public stepMinutes = [1, 5, 10, 15, 20, 25];\r\n public stepSeconds = [1, 5, 10, 15, 20, 25];\r\n\r\n showLoader = false\r\n\r\n CalendarName;\r\n CalendarNameShow = true\r\n\r\n CalendarNamesOptions = ['Oficial', 'Pessoal']\r\n environment = environment\r\n\r\n constructor(\r\n private modalController: ModalController,\r\n public eventService: EventsService,\r\n private attachmentsService: AttachmentsService,\r\n private toastService: ToastService,\r\n private dateAdapter: DateAdapter<any>,\r\n public ThemeService: ThemeService,\r\n private chatMethodService: ChatMethodsService,\r\n private hhtpErrorHandle: HttpErrorHandle\r\n ) {\r\n this.dateAdapter.setLocale('pt');\r\n this.loggeduser = SessionStore.user;\r\n this.postEvent = new Event();\r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n if(!this.CalendarName) {\r\n if(this.eventService.calendarNamesAry.includes('Meu calendario')) {\r\n this.CalendarName = 'Meu calendario';\r\n } else {\r\n this.CalendarName = this.eventService.calendarNamesAry[0]\r\n }\r\n }\r\n\r\n this.getRecurrenceTypes();\r\n if(!this.restoreTemporaryData()) {\r\n // clear\r\n this.eventBody = { BodyType : \"1\", Text : \"\"};\r\n this.postEvent.Body = this.eventBody;\r\n\r\n if(this.selectedSegment != \"Combinada\") {\r\n this.postEvent = {\r\n EventId: '',\r\n Subject: '',\r\n Body: this.eventBody,\r\n Location: '',\r\n CalendarId: '',\r\n CalendarName: 'Oficial',\r\n StartDate: this.autoStartTime,\r\n EndDate: this.autoEndTime,\r\n EventType: 'Reunião',\r\n Attendees: this.attendees || null,\r\n IsMeeting: false,\r\n IsRecurring: false,\r\n AppointmentState: 0,\r\n TimeZone: '',\r\n Organizer: '',\r\n Category: 'Reunião',\r\n HasAttachments: false,\r\n EventRecurrence: { Type:'-1', LastOccurrence: this.autoEndTime },\r\n };\r\n }\r\n else{\r\n this.postEvent = {\r\n EventId: '',\r\n Subject: '',\r\n Body: this.eventBody,\r\n Location: '',\r\n CalendarId: '',\r\n CalendarName: 'Oficial',\r\n StartDate: this.autoStartTime,\r\n EndDate: this.autoEndTime,\r\n EventType: 'Reunião',\r\n Attendees: this.attendees || null,\r\n IsMeeting: false,\r\n IsRecurring: false,\r\n AppointmentState: 0,\r\n TimeZone: '',\r\n Organizer: '',\r\n Category: 'Reunião',\r\n HasAttachments: false,\r\n EventRecurrence: {Type:'-1',LastOccurrence:this.autoEndTime},\r\n }\r\n }\r\n\r\n if(this.postEvent.Attendees != null) {\r\n this.postEvent.Attendees.forEach(e => {\r\n if(e.IsRequired) {\r\n this.taskParticipants.push(e);\r\n } else {\r\n this.taskParticipantsCc.push(e);\r\n }\r\n })\r\n }\r\n this.taskParticipants = removeDuplicate(this.taskParticipants);\r\n this.taskParticipantsCc = removeDuplicate(this.taskParticipantsCc);\r\n\r\n this.setIntervenient.emit(this.taskParticipants);\r\n this.setIntervenientCC.emit(this.taskParticipantsCc);\r\n }\r\n\r\n \r\n\r\n this.date = new Date(2021,9,4,5,6,7);\r\n\r\n this.injectValidation();\r\n this.setDefaultTime();\r\n this.changeAgenda()\r\n\r\n }\r\n\r\n setDefaultTime() {\r\n this.postEvent.StartDate = this.roundTimeQuarterHour(this.CalendarDate);\r\n this.postEvent.EndDate = this.roundTimeQuarterHourPlus15(this.postEvent.StartDate);\r\n }\r\n\r\n roundTimeQuarterHour(timeToReturn = new Date()): Date {\r\n \r\n let date = new Date(timeToReturn) || new Date();\r\n\r\n const minutes = date.getMinutes();\r\n date.setSeconds(0);\r\n\r\n if(minutes % 15 != 0) {\r\n \r\n if (minutes > 45) {\r\n date.setMinutes(60)\r\n } else if (minutes > 30) {\r\n date.setMinutes(45)\r\n } else if (minutes > 15) {\r\n date.setMinutes(30)\r\n } else if (minutes > 0) {\r\n date.setMinutes(15)\r\n }\r\n \r\n } \r\n\r\n return date\r\n }\r\n\r\n roundTimeQuarterHourPlus15(date:Date) {\r\n const _date = new Date(date);\r\n const minutes = _date .getMinutes();\r\n _date .setMinutes(minutes + 15)\r\n return _date \r\n }\r\n\r\n\r\n roundTimeQuarterHour1 (timeToReturn) {\r\n let date: any = new Date(timeToReturn) || new Date();\r\n const minutes = date.getMinutes();\r\n date.setSeconds(0);\r\n\r\n if((minutes % 15) != 0 ) {\r\n let a = (Math.floor(minutes / 15) + 1) * 15\r\n date.setMinutes(a)\r\n }\r\n\r\n return date\r\n }\r\n\r\n setStartDate(){\r\n // this.postEvent.StartDate = this.roundTimeQuarterHour();\r\n }\r\n\r\n setEndDate(){\r\n // this.postEvent.EndDate = this.postEvent.StartDate;\r\n }\r\n\r\n runValidation() {\r\n this.validateFrom = true;\r\n if(new Date(this.postEvent.StartDate).getTime() > new Date(this.postEvent.EndDate).getTime()){\r\n this.toastService._badRequest(\"A data de fim não pode ser inferior a data de início do evento\")\r\n }\r\n }\r\n\r\n injectValidation() {\r\n\r\n if (typeof(this.postEvent.EventRecurrence.Type) == 'number') {\r\n const str: any = this.postEvent.EventRecurrence.Type.toString()\r\n this.postEvent.EventRecurrence.Type = str\r\n }\r\n\r\n this.Form = new UntypedFormGroup({\r\n Subject: new UntypedFormControl(this.postEvent.Subject, [\r\n Validators.required,\r\n // Validators.minLength(4)\r\n ]),\r\n Location: new UntypedFormControl(this.postEvent.Location, [\r\n Validators.required,\r\n ]),\r\n CalendarName: new UntypedFormControl(this.postEvent.CalendarName),\r\n Categories: new UntypedFormControl(this.postEvent.Category, [\r\n Validators.required\r\n ]),\r\n dateStart: new UntypedFormControl(this.postEvent.StartDate, [\r\n Validators.required\r\n ]),\r\n dateEnd: new UntypedFormControl(this.postEvent.EndDate, [\r\n Validators.required\r\n ]),\r\n dateOccurrence: new UntypedFormControl(this.postEvent.EventRecurrence.Type.toString() == '-1' ? ['ok']: this.postEvent.EventRecurrence.LastOccurrence && new Date(this.postEvent.EventRecurrence.LastOccurrence).getTime() > new Date(this.postEvent.EndDate).getTime() ? 'ok': null, [\r\n Validators.required\r\n ]),\r\n participantes: new UntypedFormControl(this.taskParticipants, [\r\n // Validators.required\r\n ]),\r\n Date: new UntypedFormControl( new Date(this.postEvent.StartDate).getTime() < new Date(this.postEvent.EndDate).getTime() ? 'ok': null,[\r\n Validators.required\r\n ]),\r\n })\r\n\r\n }\r\n\r\n\r\n openInicio() {\r\n let input: any = document.querySelector('#new-inicio')\r\n if(input) {\r\n \r\n input.click()\r\n }\r\n }\r\n\r\n openFim() {\r\n let input: any = document.querySelector('#new-fim')\r\n if(input) {\r\n input.click()\r\n }\r\n }\r\n\r\n changeAgenda() {\r\n\r\n this.CalendarNameShow = false\r\n\r\n setTimeout(()=>{\r\n\r\n this.CalendarNameShow = true\r\n\r\n if(this.eventService.calendarNamesType[this.CalendarName]?.['Oficial'] && this.eventService.calendarNamesType[this.CalendarName]?.['Pessoal']) {\r\n \r\n this.CalendarNamesOptions = ['Oficial', 'Pessoal']\r\n \r\n } else if (this.eventService.calendarNamesType[this.CalendarName]?.['Oficial']) {\r\n this.CalendarNamesOptions = ['Oficial']\r\n this.postEvent.CalendarName = 'Oficial'\r\n \r\n } else if (this.eventService.calendarNamesType[this.CalendarName]?.['Pessoal']) {\r\n this.CalendarNamesOptions = ['Pessoal']\r\n this.postEvent.CalendarName = 'Pessoal'\r\n \r\n } else {\r\n this.CalendarNamesOptions = ['Oficial', 'Pessoal']\r\n }\r\n }, 50)\r\n\r\n }\r\n \r\n openLastOccurrence() {\r\n let input: any = document.querySelector('#last-occurrence')\r\n if(input) {\r\n input.click()\r\n }\r\n }\r\n\r\n async getDoc() {\r\n const modal = await this.modalController.create({\r\n component: SearchPage,\r\n cssClass: 'modal-width-100-width-background modal',\r\n componentProps: {\r\n type: 'AccoesPresidenciais & ArquivoDespachoElect',\r\n showSearchInput: true,\r\n select: true\r\n }\r\n });\r\n await modal.present();\r\n modal.onDidDismiss().then((res) => {\r\n if(res){\r\n const data = res.data;\r\n this.documents.push(data.selected);\r\n }\r\n });\r\n }\r\n\r\n close() {\r\n\r\n this.deleteTemporaryData();\r\n this.clearContact.emit();\r\n this.setIntervenient.emit([]);\r\n this.setIntervenientCC.emit([]);\r\n // chat exit\r\n this.backToChat.emit({roomId:this.roomId})\r\n // agenda exit\r\n this.cloneAllmobileComponent.emit({})\r\n }\r\n\r\n getRecurrenceTypes() {\r\n this.eventService.getRecurrenceTypes().subscribe(res=>{\r\n \r\n this.recurringTypes = res;\r\n });\r\n }\r\n\r\n onSelectedRecurringChanged(ev:any){\r\n \r\n this.calculetedLastOccurrence(ev);\r\n \r\n if(ev.length > 1){\r\n \r\n this.postEvent.EventRecurrence.Type = ev.filter(data => data != '-1');\r\n }\r\n if(ev.length == 0){\r\n this.postEvent.EventRecurrence.Type = \"-1\";\r\n }\r\n }\r\n\r\n calculetedLastOccurrence(type:number){\r\n\r\n var valor; \r\n var opcao: boolean;\r\n if (type == 0) {\r\n valor = 7;\r\n opcao = true;\r\n } else if(type == 1){\r\n valor = 30;\r\n opcao = true;\r\n } else if(type == 2){\r\n valor = 1;\r\n opcao = false;\r\n }else if(type == 3){\r\n valor = 5;\r\n opcao = false;\r\n }\r\n this.defineLastOccurrence(valor, opcao);\r\n }\r\n\r\n\r\n defineLastOccurrence(valor:number, opcao:boolean){\r\n var time = new Date(this.postEvent.EndDate);\r\n if (opcao == true) {\r\n time.setDate(time.getDate() + valor);\r\n this.postEvent.EventRecurrence.LastOccurrence = time;\r\n } else {\r\n time = new Date(\r\n time.getFullYear() + valor, \r\n time.getMonth(), \r\n time.getDate(), \r\n time.getHours(), \r\n time.getMinutes()\r\n );\r\n this.postEvent.EventRecurrence.LastOccurrence = time;\r\n }\r\n \r\n }\r\n\r\n async save() {\r\n\r\n this.injectValidation()\r\n this.runValidation()\r\n\r\n if(this.Form.invalid) {\r\n \r\n return false\r\n }\r\n\r\n this.postEvent.Attendees = this.taskParticipants.concat(this.taskParticipantsCc);\r\n\r\n if(this.documents.length >= 0) {\r\n this.postEvent.HasAttachments = true;\r\n }\r\n\r\n if(this.postEvent.EventRecurrence.Type == undefined) {\r\n this.postEvent.EventRecurrence.Type = '-1'\r\n }\r\n\r\n if(this.loggeduser.Profile == 'MDGPR') {\r\n const CalendarId = this.selectedCalendarId()\r\n this.showLoader = true;\r\n \r\n let loader = this.toastService.loading();\r\n \r\n this.eventService.postEventGeneric(this.postEvent, this.postEvent.CalendarName, CalendarId).subscribe(\r\n async (id) => {\r\n loader.remove()\r\n this.showLoader = false\r\n const eventId: any = id;\r\n const DocumentToSave: EventAttachment[] = this.documents.map((e) => {\r\n return {\r\n SourceTitle: e.Assunto,\r\n ParentId: eventId,\r\n Source: '1',\r\n SourceId: e.Id,\r\n ApplicationId: e.ApplicationType.toString(),\r\n Id: '',\r\n Link: '',\r\n SerialNumber: ''\r\n };\r\n });\r\n await DocumentToSave.forEach((attachments, i) => {\r\n this.attachmentsService.setEventAttachmentById(attachments).subscribe((res) =>{\r\n if(DocumentToSave.length == (i+1)) {\r\n this.afterSave();\r\n }\r\n });\r\n });\r\n if(DocumentToSave.length == 0) {\r\n this.afterSave();\r\n }\r\n this.hhtpErrorHandle.httpsSucessMessagge('new event')\r\n let data = {\r\n \"subject\": this.postEvent.Subject,\r\n \"start\": this.postEvent.StartDate,\r\n \"end\": this.postEvent.EndDate,\r\n \"venue\": this.postEvent.Location,\r\n \"id\": id,\r\n \"calendarId\": CalendarId\r\n }\r\n\r\n if(this.roomId) {\r\n this.chatMethodService.sendMessage(this.roomId,data);\r\n }\r\n \r\n },\r\n error => {\r\n loader.remove()\r\n this.showLoader = false\r\n this.hhtpErrorHandle.httpStatusHandle(error)\r\n });\r\n\r\n }\r\n else if(this.loggeduser.Profile == 'PR') {\r\n \r\n const CalendarId = this.selectedCalendarId()\r\n let loader = this.toastService.loading();\r\n \r\n this.eventService.postEventGeneric(this.postEvent, this.postEvent.CalendarName, CalendarId).subscribe(\r\n (id) => {\r\n \r\n loader.remove()\r\n\r\n const eventId: any = id;\r\n\r\n const DocumentToSave: EventAttachment[] = this.documents.map((e) => {\r\n return {\r\n SourceTitle: e.Assunto,\r\n ParentId: eventId,\r\n Source: '1',\r\n SourceId: e.Id,\r\n ApplicationId: e.ApplicationType.toString(),\r\n Id: '',\r\n Link: '',\r\n SerialNumber: ''\r\n };\r\n });\r\n\r\n DocumentToSave.forEach((attachments, i) => {\r\n this.attachmentsService.setEventAttachmentById(attachments).subscribe((res) =>{\r\n if(DocumentToSave.length == (i+1)){\r\n this.afterSave();\r\n }\r\n });\r\n });\r\n\r\n if(DocumentToSave.length == 0){\r\n this.afterSave();\r\n }\r\n this.hhtpErrorHandle.httpsSucessMessagge('new event')\r\n let data = {\r\n \"subject\": this.postEvent.Subject,\r\n \"start\": this.postEvent.StartDate,\r\n \"end\": this.postEvent.EndDate,\r\n \"venue\": this.postEvent.Location,\r\n \"id\": id,\r\n \"calendarId\": CalendarId\r\n }\r\n if(this.roomId) {\r\n this.chatMethodService.sendMessage(this.roomId,data);\r\n }\r\n },(error) => {\r\n\r\n //const connectionToServer = this.ServerConnectionService.BaseAPI()\r\n\r\n this.hhtpErrorHandle.httpStatusHandle(error)\r\n\r\n loader.remove()\r\n this.showLoader = false\r\n \r\n });\r\n } else {\r\n\r\n this.postEvent.CalendarName\r\n\r\n const CalendarId = this.selectedCalendarId()\r\n let loader = this.toastService.loading();\r\n \r\n this.eventService.postEventGeneric(this.postEvent, this.postEvent.CalendarName, CalendarId).subscribe(\r\n (id) => {\r\n loader.remove();\r\n\r\n const eventId: any = id;\r\n\r\n const DocumentToSave: EventAttachment[] = this.documents.map((e) => {\r\n return {\r\n SourceTitle: e.Assunto,\r\n ParentId: eventId,\r\n Source: '1',\r\n SourceId: e.Id,\r\n ApplicationId: e.ApplicationType.toString(),\r\n Id: '',\r\n Link: '',\r\n SerialNumber: ''\r\n };\r\n });\r\n\r\n DocumentToSave.forEach((attachments, i) => {\r\n this.attachmentsService.setEventAttachmentById(attachments).subscribe((res) =>{\r\n if(DocumentToSave.length == (i+1)){\r\n this.afterSave();\r\n }\r\n });\r\n });\r\n\r\n if(DocumentToSave.length == 0){\r\n this.afterSave();\r\n }\r\n\r\n this.hhtpErrorHandle.httpsSucessMessagge('new event')\r\n let data = {\r\n \"subject\": this.postEvent.Subject,\r\n \"start\": this.postEvent.StartDate,\r\n \"end\": this.postEvent.EndDate,\r\n \"venue\": this.postEvent.Location,\r\n \"id\": id,\r\n \"calendarId\": CalendarId\r\n }\r\n if(this.roomId) {\r\n this.chatMethodService.sendMessage(this.roomId,data);\r\n }\r\n },(error)=>{\r\n\r\n loader.remove()\r\n this.showLoader = false\r\n this.hhtpErrorHandle.httpStatusHandle(error)\r\n });\r\n\r\n }\r\n }\r\n\r\n selectedCalendarId () {\r\n\r\n if (this.eventService.calendarNamesType[this.CalendarName]?.['Oficial'] && this.postEvent.CalendarName == 'Oficial') {\r\n\r\n return this.eventService.calendarNamesType[this.CalendarName]['OficialId']\r\n\r\n } else if (this.eventService.calendarNamesType[this.CalendarName]?.['Pessoal'] && this.postEvent.CalendarName == 'Pessoal') {\r\n\r\n return this.eventService.calendarNamesType[this.CalendarName]['PessoalId']\r\n\r\n } else {\r\n\r\n return '11:11'\r\n }\r\n }\r\n\r\n afterSave() {\r\n this.deleteTemporaryData();\r\n\r\n this.onAddEvent.emit(Object.assign(this.postEvent, {\r\n roomId: this.roomId\r\n }));\r\n\r\n this.GoBackEditOrAdd.emit();\r\n\r\n this.setIntervenient.emit([]);\r\n this.setIntervenientCC.emit([]);\r\n }\r\n\r\n removeAttachment(index: number) {\r\n this.documents = this.documents.filter( (e, i) => index != i);\r\n\r\n }\r\n\r\n async addParticipants() {\r\n\r\n this.saveTemporaryData();\r\n\r\n this.openAttendeesComponent.emit({\r\n type: \"intervenient\"\r\n });\r\n\r\n this.clearContact.emit();\r\n }\r\n\r\n async addParticipantsCc() {\r\n\r\n this.saveTemporaryData();\r\n\r\n this.openAttendeesComponent.emit({\r\n type: \"CC\"\r\n });\r\n\r\n this.clearContact.emit();\r\n }\r\n\r\n saveTemporaryData() {\r\n window['temp.path:/home/agenda/new-event.component.ts'] = {\r\n postEvent: this.postEvent,\r\n eventBody: this.eventBody,\r\n segment: this.segment,\r\n CalendarName: this.CalendarName\r\n }\r\n }\r\n\r\n /**\r\n *\r\n * @description o pipeline já esta a funcionar tuda vez que nos fazer push na branch master e test o pipeline executa os teste, mas agora os teste temos que melhora para testar a app em tudos os pontos\r\n * o pipeline já está a funcionar toda vez que nos fazer um push na branch master ou teste o pipeline executa os testes, mas agora os testes temos que melhorar para testar a app em todos os pontos\r\n */\r\n restoreTemporaryData(): boolean {\r\n\r\n const restoredData = window['temp.path:/home/agenda/new-event.component.ts']\r\n\r\n if(JSON.stringify(restoredData) != \"{}\" && undefined != restoredData) {\r\n this.postEvent = restoredData.postEvent\r\n this.eventBody = restoredData.eventBody\r\n this.segment = restoredData.segment\r\n this.CalendarName = restoredData.CalendarName\r\n\r\n // restore dater for date and hours picker\r\n\r\n return true;\r\n } else {\r\n\r\n \r\n }\r\n }\r\n\r\n deleteTemporaryData() {\r\n window['temp.path:/home/agenda/new-event.component.ts'] = {}\r\n }\r\n\r\n}\r\n\r\n"]},"metadata":{},"sourceType":"module"} |