mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-18 20:47:54 +00:00
bugs solved
This commit is contained in:
@@ -133,6 +133,20 @@ export class HomePage implements OnInit {
|
||||
|
||||
ngOnInit() {
|
||||
|
||||
navigator.serviceWorker.onmessage = (event) => {
|
||||
console.log('Mensagem recebida do Service Worker:', event.data.data);
|
||||
let object = {
|
||||
notification: event.data
|
||||
}
|
||||
|
||||
|
||||
// Implemente a lógica para lidar com a mensagem recebida do Service Worker
|
||||
if (event.data.notificationClicked) {
|
||||
console.log('Notificação push do Firebase clicada em segundo plano!');
|
||||
// Implemente ações adicionais conforme necessário
|
||||
}
|
||||
};
|
||||
|
||||
this.logDeviceInfo();
|
||||
|
||||
this.notificationsService.onReciveForeground();
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { Component, Input, OnInit } from '@angular/core';
|
||||
import { EventPerson } from 'src/app/models/eventperson.model';
|
||||
import { ModalController, NavParams } from '@ionic/angular';
|
||||
import { ContactsService } from 'src/app/services/contacts.service';
|
||||
import { ThemeService } from 'src/app/services/theme.service'
|
||||
import { LoginUserRespose } from 'src/app/models/user.model';
|
||||
import { SessionStore } from 'src/app/store/session.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-attendees',
|
||||
@@ -21,6 +23,9 @@ export class AttendeesPageModal implements OnInit {
|
||||
|
||||
taskParticipants:EventPerson[] = [];
|
||||
taskParticipantsCc:EventPerson[] = [];
|
||||
loggeduser: LoginUserRespose;
|
||||
@Input() loggedAttendSon: boolean;
|
||||
|
||||
|
||||
constructor(
|
||||
private modalCtrl: ModalController,
|
||||
@@ -32,6 +37,7 @@ export class AttendeesPageModal implements OnInit {
|
||||
this.adding = this.navParams.get('adding');
|
||||
this.taskParticipants = this.navParams.get('taskParticipants');
|
||||
this.taskParticipantsCc = this.navParams.get('taskParticipantsCc');
|
||||
this.loggeduser = SessionStore.user;
|
||||
|
||||
}
|
||||
|
||||
@@ -132,11 +138,24 @@ export class AttendeesPageModal implements OnInit {
|
||||
});
|
||||
|
||||
result.splice(index, 1);
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
this.contacts = this.sort(result as any);
|
||||
if(this.loggedAttendSon) {
|
||||
this.contacts = result;
|
||||
this.showLoader = false;
|
||||
} else {
|
||||
this.contacts = result;
|
||||
console.log('Attendes Email',this.loggeduser.Email)
|
||||
let filterLoggedUserEmail = this.contacts.filter(item => item.EmailAddress.toLocaleLowerCase() != this.loggeduser.Email.toLocaleLowerCase())
|
||||
console.log('Attendes Email', filterLoggedUserEmail)
|
||||
let filterEmptyEmail = filterLoggedUserEmail.filter(item => item.EmailAddress.toLocaleLowerCase() != "")
|
||||
this.contacts = filterEmptyEmail;
|
||||
console.log('Attendes Email', this.contacts)
|
||||
this.showLoader = false;
|
||||
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
+97
-82
@@ -56,7 +56,7 @@ export class BookMeetingModalPage implements OnInit {
|
||||
public touchUi = false;
|
||||
public enableMeridian = false;
|
||||
public minDate = new Date();
|
||||
public ionicMinDate = new Date().toISOString().slice(0,10)
|
||||
public ionicMinDate = new Date().toISOString().slice(0, 10)
|
||||
|
||||
// curent timestamp + 15 minutes
|
||||
public endMinDate = new Date(new Date().getTime() + 15 * 60000);
|
||||
@@ -77,11 +77,11 @@ export class BookMeetingModalPage implements OnInit {
|
||||
|
||||
showLoader = false
|
||||
|
||||
get dateStart () {
|
||||
get dateStart() {
|
||||
return this.dateControlStart.value;
|
||||
}
|
||||
|
||||
get dateEnd () {
|
||||
get dateEnd() {
|
||||
return this.dateControlEnd.value;
|
||||
}
|
||||
|
||||
@@ -95,9 +95,9 @@ export class BookMeetingModalPage implements OnInit {
|
||||
taskParticipants: EventPerson[];
|
||||
taskParticipantsCc: EventPerson[] = [];
|
||||
|
||||
taskDocId:string;
|
||||
loadedAttachments:any;
|
||||
documents:SearchList[] = [];
|
||||
taskDocId: string;
|
||||
loadedAttachments: any;
|
||||
documents: SearchList[] = [];
|
||||
|
||||
adding: "intervenient" | "CC" = "intervenient";
|
||||
|
||||
@@ -106,46 +106,46 @@ export class BookMeetingModalPage implements OnInit {
|
||||
eventAttendees: EventPerson[];
|
||||
|
||||
formLocationSatus: boolean = false;
|
||||
showAttendees= false;
|
||||
showAttendees = false;
|
||||
emptyTextDescription = "Sem intervenientes selecionados";
|
||||
|
||||
CalendarName
|
||||
|
||||
sessionStore = SessionStore;
|
||||
environment = environment
|
||||
|
||||
|
||||
constructor(
|
||||
private modalController: ModalController,
|
||||
private navParams: NavParams,
|
||||
private attachmentsService: AttachmentsService,
|
||||
public calendarService: EventsService,
|
||||
public calendarService: EventsService,
|
||||
private toastService: ToastService,
|
||||
public ThemeService: ThemeService,
|
||||
public eventService: EventsService,
|
||||
public RoleIdService: RoleIdService,
|
||||
private httpErroHandle: HttpErrorHandle
|
||||
|
||||
|
||||
) {
|
||||
this.taskParticipants = [];
|
||||
|
||||
this.task = this.navParams.get('task');
|
||||
|
||||
this.postData = new Event();
|
||||
this.eventBody = { BodyType : "1", Text : ""};
|
||||
this.postData.Body = this.eventBody;
|
||||
) {
|
||||
this.taskParticipants = [];
|
||||
|
||||
this.postData.Subject = this.task.Folio;
|
||||
this.postData.CalendarName = "Oficial";
|
||||
this.task = this.navParams.get('task');
|
||||
|
||||
let startDate = this.roundTimeQuarterHour()
|
||||
this.dateControlStart = new FormControl(moment(startDate));
|
||||
this.dateControlEnd = new FormControl(moment(this.roundTimeQuarterHourPlus15(startDate)));
|
||||
this.postData = new Event();
|
||||
this.eventBody = { BodyType: "1", Text: "" };
|
||||
this.postData.Body = this.eventBody;
|
||||
|
||||
this.postData.Category = 'Reunião'
|
||||
this.postData.Subject = this.task.Folio;
|
||||
this.postData.CalendarName = "Oficial";
|
||||
|
||||
if(!this.CalendarName) {
|
||||
if(this.eventService.calendarNamesAry.includes('Meu calendario')) {
|
||||
let startDate = this.roundTimeQuarterHour()
|
||||
this.dateControlStart = new FormControl(moment(startDate));
|
||||
this.dateControlEnd = new FormControl(moment(this.roundTimeQuarterHourPlus15(startDate)));
|
||||
|
||||
this.postData.Category = 'Reunião'
|
||||
|
||||
if (!this.CalendarName) {
|
||||
if (this.eventService.calendarNamesAry.includes('Meu calendario')) {
|
||||
this.CalendarName = 'Meu calendario';
|
||||
// console.log(this.eventService.calendarNamesAry)
|
||||
} else {
|
||||
@@ -153,7 +153,7 @@ export class BookMeetingModalPage implements OnInit {
|
||||
}
|
||||
}
|
||||
|
||||
if(this.taskParticipants.length == 0) {
|
||||
if (this.taskParticipants.length == 0) {
|
||||
this.taskParticipants = [{
|
||||
EmailAddress: SessionStore.user.Email,
|
||||
IsRequired: true,
|
||||
@@ -173,10 +173,10 @@ export class BookMeetingModalPage implements OnInit {
|
||||
this.getRecurrenceTypes();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
getRecurrenceTypes() {
|
||||
this.calendarService.getRecurrenceTypes().subscribe(res=>{
|
||||
this.calendarService.getRecurrenceTypes().subscribe(res => {
|
||||
this.recurringTypes = res;
|
||||
});
|
||||
}
|
||||
@@ -185,8 +185,8 @@ export class BookMeetingModalPage implements OnInit {
|
||||
changeAgenda() {
|
||||
|
||||
setTimeout(() => {
|
||||
|
||||
if(this.calendarService.calendarNamesType[this.CalendarName]?.['Oficial'] && this.calendarService.calendarNamesType[this.CalendarName]?.['Pessoal']) {
|
||||
|
||||
if (this.calendarService.calendarNamesType[this.CalendarName]?.['Oficial'] && this.calendarService.calendarNamesType[this.CalendarName]?.['Pessoal']) {
|
||||
|
||||
this.CalendarNamesOptions = ['Oficial', 'Pessoal']
|
||||
} else if (this.calendarService.calendarNamesType[this.CalendarName]?.['Oficial']) {
|
||||
@@ -204,14 +204,14 @@ export class BookMeetingModalPage implements OnInit {
|
||||
}, 50)
|
||||
|
||||
}
|
||||
|
||||
|
||||
setDefaultTime() {
|
||||
this.postData.StartDate = this.roundTimeQuarterHour();
|
||||
this.postData.StartDate = this.roundTimeQuarterHour();
|
||||
this.postData.EndDate = this.roundTimeQuarterHourPlus15(this.postData.StartDate);
|
||||
}
|
||||
|
||||
getAttachments() {
|
||||
this.attachmentsService.getAttachmentsBySerial(this.task.SerialNumber).subscribe(res=>{
|
||||
this.attachmentsService.getAttachmentsBySerial(this.task.SerialNumber).subscribe(res => {
|
||||
this.loadedAttachments = res;
|
||||
});
|
||||
}
|
||||
@@ -227,11 +227,11 @@ export class BookMeetingModalPage implements OnInit {
|
||||
|
||||
|
||||
runValidation() {
|
||||
this.validateFrom = true
|
||||
this.validateFrom = true
|
||||
}
|
||||
|
||||
get dateValid() {
|
||||
return new Date(this.dateControlStart.value).getTime() < new Date(this.dateControlEnd.value).getTime() ? 'ok': null
|
||||
return new Date(this.dateControlStart.value).getTime() < new Date(this.dateControlEnd.value).getTime() ? 'ok' : null
|
||||
}
|
||||
|
||||
injectValidation() {
|
||||
@@ -262,19 +262,19 @@ export class BookMeetingModalPage implements OnInit {
|
||||
|
||||
async saveTask() {
|
||||
|
||||
if(SessionStore.user.Profile != 'PR') {
|
||||
if (SessionStore.user.Profile != 'PR') {
|
||||
this.injectValidation()
|
||||
this.runValidation()
|
||||
if(this.Form.invalid) return false
|
||||
if (this.Form.invalid) return false
|
||||
}
|
||||
|
||||
let Attendees = this.taskParticipants.concat(this.taskParticipantsCc);
|
||||
|
||||
this.eventBody={
|
||||
this.eventBody = {
|
||||
BodyType: '1',
|
||||
Text: this.postData.Body.Text,
|
||||
}
|
||||
this.postData = {
|
||||
let postData = {
|
||||
EventId: '',
|
||||
Subject: this.postData.Subject,
|
||||
Body: this.eventBody,
|
||||
@@ -296,18 +296,32 @@ export class BookMeetingModalPage implements OnInit {
|
||||
Type: this.EventRecurrenceType,
|
||||
LastOccurrence: this.Occurrence
|
||||
},
|
||||
Attachments: []
|
||||
}
|
||||
|
||||
const DocumentToSave = this.documents.map((e) => {
|
||||
console.log('ASSUNTO', e.Assunto)
|
||||
return {
|
||||
ApplicationId: e.ApplicationType,
|
||||
Source: 1,
|
||||
SourceId: e.Id,
|
||||
SourceName:e.Assunto,
|
||||
Description: e.Assunto,
|
||||
Stakeholders: e.EntidadeOrganicaNome
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
postData.Attachments = DocumentToSave;
|
||||
|
||||
if(this.task.FsId == '8') {
|
||||
|
||||
|
||||
if (this.task.FsId == '8') {
|
||||
const loader = this.toastService.loading()
|
||||
|
||||
try {
|
||||
const CalendarId = this.selectedCalendarId()
|
||||
await this.calendarService.genericPostExpedientEvent(this.task.DocId, this.postData, "",this.task.SerialNumber, this.task.FsId, CalendarId).toPromise();
|
||||
|
||||
await this.calendarService.genericPostExpedientEvent(this.task.DocId, postData, "", this.task.SerialNumber, this.task.FsId, CalendarId).toPromise();
|
||||
|
||||
this.modalController.dismiss();
|
||||
this.httpErroHandle.httpsSucessMessagge('Marcar Reunião')
|
||||
|
||||
@@ -320,14 +334,14 @@ export class BookMeetingModalPage implements OnInit {
|
||||
|
||||
|
||||
}
|
||||
else if(this.task.FsId == '361') {
|
||||
else if (this.task.FsId == '361') {
|
||||
console.log('361')
|
||||
const loader = this.toastService.loading()
|
||||
try {
|
||||
|
||||
const CalendarId = this.selectedCalendarId()
|
||||
console.log({CalendarId})
|
||||
await this.calendarService.genericCreateTaskEvent(this.task.FolderID | this.task.FolderId, this.postData, "",this.task.SerialNumber, this.task.FsId, CalendarId).toPromise();
|
||||
console.log({ CalendarId })
|
||||
await this.calendarService.genericCreateTaskEvent(this.task.FolderID | this.task.FolderId, postData, "", this.task.SerialNumber, this.task.FsId, CalendarId).toPromise();
|
||||
|
||||
this.close();
|
||||
this.httpErroHandle.httpsSucessMessagge('Marcar Reunião')
|
||||
@@ -346,8 +360,8 @@ export class BookMeetingModalPage implements OnInit {
|
||||
|
||||
|
||||
|
||||
|
||||
selectedCalendarId () {
|
||||
|
||||
selectedCalendarId() {
|
||||
|
||||
if (this.calendarService.calendarNamesType[this.CalendarName]?.['Oficial'] && this.postData.CalendarName == 'Oficial') {
|
||||
return this.calendarService.calendarNamesType[this.CalendarName]['OficialId']
|
||||
@@ -365,10 +379,10 @@ export class BookMeetingModalPage implements OnInit {
|
||||
|
||||
this.adding = "intervenient";
|
||||
|
||||
if(window.innerWidth <= 801){
|
||||
if (window.innerWidth <= 801) {
|
||||
const modal = await this.modalController.create({
|
||||
component: AttendeesPageModal,
|
||||
componentProps: {
|
||||
componentProps: {
|
||||
adding: this.adding,
|
||||
taskParticipants: this.taskParticipants,
|
||||
taskParticipantsCc: this.taskParticipantsCc
|
||||
@@ -381,7 +395,7 @@ export class BookMeetingModalPage implements OnInit {
|
||||
|
||||
modal.onDidDismiss().then((data) => {
|
||||
|
||||
if(data) {
|
||||
if (data) {
|
||||
data = data['data'];
|
||||
|
||||
const newAttendees: EventPerson[] = data['taskParticipants'];
|
||||
@@ -403,7 +417,7 @@ export class BookMeetingModalPage implements OnInit {
|
||||
|
||||
openLastOccurrence() {
|
||||
let input: any = document.querySelector('#last-occurrence')
|
||||
if(input) {
|
||||
if (input) {
|
||||
input.click()
|
||||
}
|
||||
}
|
||||
@@ -412,10 +426,10 @@ export class BookMeetingModalPage implements OnInit {
|
||||
|
||||
this.adding = "CC";
|
||||
|
||||
if(window.innerWidth <= 800) {
|
||||
if (window.innerWidth <= 800) {
|
||||
const modal = await this.modalController.create({
|
||||
component: AttendeesPageModal,
|
||||
componentProps: {
|
||||
componentProps: {
|
||||
adding: this.adding,
|
||||
taskParticipants: this.taskParticipants,
|
||||
taskParticipantsCc: this.taskParticipantsCc
|
||||
@@ -428,7 +442,7 @@ export class BookMeetingModalPage implements OnInit {
|
||||
|
||||
modal.onDidDismiss().then((data) => {
|
||||
|
||||
if(data) {
|
||||
if (data) {
|
||||
data = data['data'];
|
||||
|
||||
const newAttendees: EventPerson[] = data['taskParticipants'];
|
||||
@@ -448,8 +462,8 @@ export class BookMeetingModalPage implements OnInit {
|
||||
async distartExpedientModal() {
|
||||
const modal = await this.modalController.create({
|
||||
component: DiscartExpedientModalPage,
|
||||
componentProps: {
|
||||
serialNumber: this.task.SerialNumber,
|
||||
componentProps: {
|
||||
serialNumber: this.task.SerialNumber,
|
||||
},
|
||||
cssClass: 'discart-expedient-modal',
|
||||
backdropDismiss: false
|
||||
@@ -457,11 +471,11 @@ export class BookMeetingModalPage implements OnInit {
|
||||
|
||||
|
||||
modal.onDidDismiss().then(
|
||||
()=> {}
|
||||
() => { }
|
||||
, (error) => {
|
||||
console.log(error)
|
||||
})
|
||||
await modal.present();
|
||||
await modal.present();
|
||||
}
|
||||
|
||||
async getDoc() {
|
||||
@@ -475,37 +489,38 @@ export class BookMeetingModalPage implements OnInit {
|
||||
}
|
||||
});
|
||||
await modal.present();
|
||||
modal.onDidDismiss().then((res)=> {
|
||||
if(res){
|
||||
const data = res.data;
|
||||
this.documents.push(data.selected);
|
||||
}
|
||||
}, (error) => {
|
||||
console.log(error)
|
||||
});
|
||||
modal.onDidDismiss().then((res) => {
|
||||
if (res) {
|
||||
const data = res.data;
|
||||
this.documents.push(data.selected);
|
||||
console.log(this.documents)
|
||||
}
|
||||
}, (error) => {
|
||||
console.log(error)
|
||||
});
|
||||
}
|
||||
|
||||
removeAttachment(index: number){
|
||||
this.documents = this.documents.filter( (e, i) => index != i);
|
||||
removeAttachment(index: number) {
|
||||
this.documents = this.documents.filter((e, i) => index != i);
|
||||
}
|
||||
|
||||
validateFormInputs() {
|
||||
let formLocation = this.postData.Location.trim();
|
||||
if(!this.postData.Location && formLocation.length <= 0){
|
||||
if (!this.postData.Location && formLocation.length <= 0) {
|
||||
this.formLocationSatus = true;
|
||||
}
|
||||
}
|
||||
|
||||
dynamicSetIntervenient({taskParticipants, taskParticipantsCc}){
|
||||
dynamicSetIntervenient({ taskParticipants, taskParticipantsCc }) {
|
||||
this.taskParticipants = taskParticipants;
|
||||
this.taskParticipantsCc = taskParticipantsCc;
|
||||
}
|
||||
|
||||
setIntervenient(data){
|
||||
setIntervenient(data) {
|
||||
this.taskParticipants = data;
|
||||
}
|
||||
|
||||
setIntervenientCC(data){
|
||||
setIntervenientCC(data) {
|
||||
this.taskParticipantsCc = data;
|
||||
}
|
||||
|
||||
@@ -515,8 +530,8 @@ export class BookMeetingModalPage implements OnInit {
|
||||
const minutes = date.getMinutes();
|
||||
date.setSeconds(0);
|
||||
|
||||
if(minutes % 15 != 0) {
|
||||
|
||||
if (minutes % 15 != 0) {
|
||||
|
||||
if (minutes > 45) {
|
||||
date.setMinutes(60)
|
||||
} else if (minutes > 30) {
|
||||
@@ -527,25 +542,25 @@ export class BookMeetingModalPage implements OnInit {
|
||||
date.setMinutes(15)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return date
|
||||
}
|
||||
|
||||
roundTimeQuarterHourPlus15(date:Date) {
|
||||
roundTimeQuarterHourPlus15(date: Date) {
|
||||
const _date = new Date(date);
|
||||
const minutes = _date .getMinutes();
|
||||
_date .setMinutes(minutes + 15)
|
||||
return _date
|
||||
const minutes = _date.getMinutes();
|
||||
_date.setMinutes(minutes + 15)
|
||||
return _date
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
setStartDate() {
|
||||
this.postData.StartDate = this.roundTimeQuarterHour();
|
||||
}
|
||||
|
||||
setEndDate(){
|
||||
setEndDate() {
|
||||
this.postData.EndDate = this.postData.StartDate;
|
||||
}
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
|
||||
</div>
|
||||
|
||||
<div class="picture d-flex pb-5 hide-desktop" *ngIf="publication && capturedImage ==''">
|
||||
<div class="picture d-flex pb-5 hide-desktop" *ngIf="publication.FileBase64 && capturedImage ==''">
|
||||
<div class="post-img" *ngIf="publication.FileBase64">
|
||||
<img src="{{publication.FileBase64}}" alt="image" >
|
||||
</div>
|
||||
|
||||
@@ -71,6 +71,7 @@ export class NewPublicationPage implements OnInit {
|
||||
capturedImage: any = '';
|
||||
capturedImageTitle: any;
|
||||
public photos: any[] = [];
|
||||
pictureExiste = false
|
||||
|
||||
imgResultBeforeCompress: string;
|
||||
imgResultAfterCompress: string;
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
<ion-input [(ngModel)]='findEntity' class="search-input" type="search" placeholder="Pesquisar" (ngModelChange)="filterContact()" ></ion-input>
|
||||
</div>
|
||||
<ul>
|
||||
<li *ngFor="let organicEntity of showOrganicEntities" (click)="selectOrganicEntidy(organicEntity.Description)">
|
||||
<li *ngFor="let organicEntity of showOrganicEntities" (click)="selectOrganicEntidy(organicEntity)">
|
||||
{{ organicEntity.Description }}
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -52,7 +52,7 @@ export class OrganicEntityPage implements OnInit {
|
||||
this.showOrganicEntities = entities;
|
||||
}
|
||||
|
||||
selectOrganicEntidy(selectedOraganicEntit: string){
|
||||
selectOrganicEntidy(selectedOraganicEntit){
|
||||
this.modalController.dismiss(selectedOraganicEntit);
|
||||
}
|
||||
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<ion-icon name="restaurant-outline" src="assets/images/icons-advance-search-sender.svg"></ion-icon>
|
||||
</div>
|
||||
<div class="input-container d-flex ion-align-items-center">
|
||||
<ion-input [(ngModel)]='searchSender' class="search-input cursor-pointer" (click)="openAdvanceSearchSelection()" type="search" placeholder="Remetentes"></ion-input>
|
||||
<ion-input [(ngModel)]='searchSenderdescription' class="search-input cursor-pointer" (click)="openAdvanceSearchSelection()" type="search" placeholder="Remetentes"></ion-input>
|
||||
<div class="icon cursor-pointer" (click)="clearInputRemetente()" >
|
||||
<ion-icon *ngIf="ThemeService.currentTheme == 'default' "name="restaurant-outline" src="assets/images/icons-search-close.svg"></ion-icon>
|
||||
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " name="restaurant-outline" src="assets/images/theme/gov/icons-search-close.svg"></ion-icon>
|
||||
@@ -115,7 +115,7 @@
|
||||
<ion-icon name="restaurant-outline" src="assets/images/icons-arrow-arrow-down-25-copy.svg"></ion-icon>
|
||||
</div>
|
||||
<div class="input-container d-flex ion-align-items-center">
|
||||
<ion-input [(ngModel)]='searchOrganicEntiry' class="search-input custom-checkbox" type="search" placeholder="Entidade Orgânica" (click)="openOrganicEntitySelection()"></ion-input>
|
||||
<ion-input [(ngModel)]='searchOrganicEntiryDescription' class="search-input custom-checkbox" type="search" placeholder="Entidade Orgânica" (click)="openOrganicEntitySelection()"></ion-input>
|
||||
<div class="icon cursor-pointer" (click)="clearInputOrganicEntity()" >
|
||||
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " name="restaurant-outline" src="assets/images/icons-search-close.svg"></ion-icon>
|
||||
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " name="restaurant-outline" src="assets/images/theme/gov/icons-search-close.svg"></ion-icon>
|
||||
|
||||
@@ -52,8 +52,10 @@ export class SearchPage implements OnInit {
|
||||
// https params
|
||||
searchSubject: string;
|
||||
searchDocumentDate: string;
|
||||
searchSender: string;
|
||||
searchOrganicEntiry: string;
|
||||
searchSenderdescription: string;
|
||||
searchSenderId: number;
|
||||
searchOrganicEntiryDescription: string;
|
||||
searchOrganicEntiryCode: number;
|
||||
searchDocTypeId: string;
|
||||
ordinance: string;
|
||||
|
||||
@@ -336,8 +338,8 @@ export class SearchPage implements OnInit {
|
||||
|
||||
this.showLoader = true;
|
||||
|
||||
this.search.basicSearch(this.searchSubject, searchDocumentDate, this.searchSender
|
||||
,this.searchOrganicEntiry, this.searchDocTypeId, '0').subscribe(res=>{
|
||||
this.search.basicSearch(this.searchSubject, searchDocumentDate, this.searchSenderId
|
||||
,this.searchOrganicEntiryCode, this.searchDocTypeId, '0').subscribe(res=>{
|
||||
|
||||
res.Categories.forEach( e => {
|
||||
e['Active'] = false;
|
||||
@@ -379,8 +381,8 @@ export class SearchPage implements OnInit {
|
||||
|
||||
let counter = 0;
|
||||
|
||||
this.search.searchForDoc(this.searchSubject, searchDocumentDate, this.searchSender
|
||||
,this.searchOrganicEntiry, this.searchDocTypeId, '8').subscribe(res => {
|
||||
this.search.searchForDoc(this.searchSubject, searchDocumentDate, this.searchSenderId
|
||||
,this.searchOrganicEntiryCode, this.searchDocTypeId, '8').subscribe(res => {
|
||||
|
||||
res.Categories.forEach( e => {
|
||||
e['Active'] = false;
|
||||
@@ -418,8 +420,8 @@ export class SearchPage implements OnInit {
|
||||
}
|
||||
});
|
||||
|
||||
this.search.searchForDoc(this.searchSubject, searchDocumentDate, this.searchSender
|
||||
,this.searchOrganicEntiry, this.searchDocTypeId, '361').subscribe(res=>{
|
||||
this.search.searchForDoc(this.searchSubject, searchDocumentDate, this.searchSenderId
|
||||
,this.searchOrganicEntiryCode, this.searchDocTypeId, '361').subscribe(res=>{
|
||||
|
||||
res.Categories.forEach( e => {
|
||||
e['Active'] = false;
|
||||
@@ -461,8 +463,8 @@ export class SearchPage implements OnInit {
|
||||
} else {
|
||||
let counter = 0;
|
||||
|
||||
this.search.basicSearch(this.searchSubject, searchDocumentDate, this.searchSender
|
||||
,this.searchOrganicEntiry, this.searchDocTypeId, '8').subscribe(res => {
|
||||
this.search.basicSearch(this.searchSubject, searchDocumentDate, this.searchSenderId
|
||||
,this.searchOrganicEntiryCode, this.searchDocTypeId, '8').subscribe(res => {
|
||||
res.Categories.forEach( e => {
|
||||
e['Active'] = false;
|
||||
this.searchCategories.push(e)
|
||||
@@ -501,8 +503,8 @@ export class SearchPage implements OnInit {
|
||||
}
|
||||
});
|
||||
|
||||
this.search.searchForDoc(this.searchSubject, searchDocumentDate, this.searchSender
|
||||
,this.searchOrganicEntiry, this.searchDocTypeId, '361').subscribe(res => {
|
||||
this.search.searchForDoc(this.searchSubject, searchDocumentDate, this.searchSenderId
|
||||
,this.searchOrganicEntiryCode, this.searchDocTypeId, '361').subscribe(res => {
|
||||
|
||||
res.Categories.forEach( e => {
|
||||
e['Active'] = false;
|
||||
@@ -556,8 +558,8 @@ export class SearchPage implements OnInit {
|
||||
|
||||
let counter = 0;
|
||||
|
||||
this.search.searchForDoc(this.searchSubject, searchDocumentDate, this.searchSender
|
||||
,this.searchOrganicEntiry, this.searchDocTypeId, '8').subscribe(res=>{
|
||||
this.search.searchForDoc(this.searchSubject, searchDocumentDate, this.searchSenderId
|
||||
,this.searchOrganicEntiryCode, this.searchDocTypeId, '8').subscribe(res=>{
|
||||
|
||||
res.Categories.forEach( e => {
|
||||
e['Active'] = false;
|
||||
@@ -594,8 +596,8 @@ export class SearchPage implements OnInit {
|
||||
} else {
|
||||
let counter = 0;
|
||||
|
||||
this.search.basicSearch(this.searchSubject, searchDocumentDate, this.searchSender
|
||||
,this.searchOrganicEntiry, this.searchDocTypeId, '8').subscribe(res=>{
|
||||
this.search.basicSearch(this.searchSubject, searchDocumentDate, this.searchSenderId
|
||||
,this.searchOrganicEntiryCode, this.searchDocTypeId, '8').subscribe(res=>{
|
||||
|
||||
res.Categories.forEach( e => {
|
||||
e['Active'] = false;
|
||||
@@ -692,8 +694,8 @@ export class SearchPage implements OnInit {
|
||||
|
||||
|
||||
|
||||
this.search.basicSearchPublication(this.searchSubject, searchDocumentDate, this.searchSender
|
||||
,this.searchOrganicEntiry, this.searchDocTypeId, '386').subscribe(res => {
|
||||
this.search.basicSearchPublication(this.searchSubject, searchDocumentDate, this.searchSenderId
|
||||
,this.searchOrganicEntiryCode, this.searchDocTypeId, '386').subscribe(res => {
|
||||
|
||||
|
||||
res.Categories.forEach( e => {
|
||||
@@ -780,13 +782,15 @@ export class SearchPage implements OnInit {
|
||||
}
|
||||
|
||||
clearInputRemetente() {
|
||||
this.searchSender = "";
|
||||
this.searchSenderdescription = "";
|
||||
this.searchSenderId = null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
clearInputOrganicEntity(){
|
||||
this.searchOrganicEntiry = "";
|
||||
this.searchOrganicEntiryDescription = "";
|
||||
this.searchOrganicEntiryCode = null;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -815,7 +819,8 @@ export class SearchPage implements OnInit {
|
||||
|
||||
|
||||
modal.onDidDismiss().then((data) => {
|
||||
this.searchSender = data.data;
|
||||
this.searchSenderdescription = data.data.Name;
|
||||
this.searchSenderId = data.data.Id
|
||||
});
|
||||
await modal.present();
|
||||
|
||||
@@ -840,7 +845,9 @@ export class SearchPage implements OnInit {
|
||||
|
||||
|
||||
modal.onDidDismiss().then((data) => {
|
||||
this.searchOrganicEntiry = data.data;
|
||||
console.log('SerachEntity',data.data )
|
||||
this.searchOrganicEntiryDescription = data.data.Description;
|
||||
this.searchOrganicEntiryCode = data.data.Code;
|
||||
});
|
||||
await modal.present();
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
<ion-input [(ngModel)]='sender' class="search-input" type="search" placeholder="Pesquisar" (ngModelChange)="filterContact($event)" ></ion-input>
|
||||
</div>
|
||||
<ul>
|
||||
<li *ngFor="let contact of showContacts" (click)="selectUser(contact.Name)">
|
||||
<li *ngFor="let contact of showContacts" (click)="selectUser(contact)">
|
||||
{{ contact.Name }}
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -48,7 +48,7 @@ export class SenderPage implements OnInit {
|
||||
this.showContacts = persons;
|
||||
}
|
||||
|
||||
selectUser(username:string){
|
||||
selectUser(username){
|
||||
this.selectedUser = username;
|
||||
this.close(this.selectedUser);
|
||||
}
|
||||
|
||||
@@ -3,6 +3,8 @@ import { EventPerson } from 'src/app/models/eventperson.model';
|
||||
import { ModalController, NavParams } from '@ionic/angular';
|
||||
import { ContactsService } from 'src/app/services/contacts.service';
|
||||
import { ThemeService } from 'src/app/services/theme.service'
|
||||
import { LoginUserRespose } from 'src/app/models/user.model';
|
||||
import { SessionStore } from 'src/app/store/session.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-attendees',
|
||||
@@ -21,6 +23,8 @@ export class AttendeesPageModal implements OnInit {
|
||||
|
||||
taskParticipants:EventPerson[] = [];
|
||||
taskParticipantsCc:EventPerson[] = [];
|
||||
loggeduser: LoginUserRespose;
|
||||
@Input() loggedAttendSon: boolean;
|
||||
|
||||
constructor(
|
||||
private modalCtrl: ModalController,
|
||||
@@ -32,6 +36,7 @@ export class AttendeesPageModal implements OnInit {
|
||||
this.adding = this.navParams.get('adding');
|
||||
this.taskParticipants = this.navParams.get('taskParticipants');
|
||||
this.taskParticipantsCc = this.navParams.get('taskParticipantsCc');
|
||||
this.loggeduser = SessionStore.user;
|
||||
|
||||
}
|
||||
|
||||
@@ -135,8 +140,20 @@ export class AttendeesPageModal implements OnInit {
|
||||
});
|
||||
}
|
||||
|
||||
this.contacts = result;
|
||||
if(this.loggedAttendSon) {
|
||||
this.contacts = result;
|
||||
this.showLoader = false;
|
||||
} else {
|
||||
this.contacts = result;
|
||||
console.log('Attendes Email',this.loggeduser.Email)
|
||||
let filterLoggedUserEmail = this.contacts.filter(item => item.EmailAddress.toLocaleLowerCase() != this.loggeduser.Email.toLocaleLowerCase())
|
||||
console.log('Attendes Email', filterLoggedUserEmail)
|
||||
let filterEmptyEmail = filterLoggedUserEmail.filter(item => item.EmailAddress.toLocaleLowerCase() != "")
|
||||
this.contacts = filterEmptyEmail;
|
||||
console.log('Attendes Email', this.contacts)
|
||||
this.showLoader = false;
|
||||
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
@@ -225,6 +225,22 @@ export class NotificationsService {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
sendNotificationWithSend(userID, title, bodymsg, roomId) {
|
||||
const geturl = environment.apiURL + `notifications/send`;
|
||||
|
||||
const headers = { 'Authorization': SessionStore.user.BasicAuthKey };
|
||||
const message = {
|
||||
"Service": "chat",
|
||||
"IdObject": roomId
|
||||
}
|
||||
let id = 437
|
||||
this.http.post<Tokenn>(geturl + `?userId=${userID}&title=${title}&body=${bodymsg}`, message, { headers }).subscribe(data => {
|
||||
this.active = true
|
||||
}, (error) => {
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
ChatSendMessageNotification(userID, title, bodymsg, roomId) {
|
||||
|
||||
@@ -42,7 +42,7 @@ export class SearchService {
|
||||
}
|
||||
|
||||
|
||||
basicSearch(subject:string, date:string = null, sender:string = null, organicEntity:string = null, docTypeId:string = null, applicationType:string): Observable<EventSearch>{
|
||||
basicSearch(subject:string, date:string = null, sender:number = null, organicEntity:number = null, docTypeId:string = null, applicationType:string): Observable<EventSearch>{
|
||||
// Endpoint
|
||||
const geturl = environment.apiURL + 'search';
|
||||
// store params
|
||||
@@ -67,7 +67,7 @@ export class SearchService {
|
||||
}
|
||||
|
||||
|
||||
basicSearchPublication(subject:string, date:string = null, sender:string = null, organicEntity:string = null, docTypeId:string = null, applicationType:string): Observable<EventSearch>{
|
||||
basicSearchPublication(subject:string, date:string = null, sender:number = null, organicEntity:number = null, docTypeId:string = null, applicationType:string): Observable<EventSearch>{
|
||||
// Endpoint
|
||||
const geturl = environment.apiURL + 'search';
|
||||
// store params
|
||||
@@ -113,7 +113,7 @@ export class SearchService {
|
||||
return this.http.get<any>(`${geturl}`, options);
|
||||
}
|
||||
|
||||
searchForDoc(subject:string, date:string, sender:string, organicEntity:string, docTypeId:string, applicationType:string): Observable<EventSearch> {
|
||||
searchForDoc(subject:string, date:string, sender:number, organicEntity:number, docTypeId:string, applicationType:string): Observable<EventSearch> {
|
||||
// Endpoint
|
||||
const geturl = environment.apiURL + 'search/attachment?';
|
||||
// store params
|
||||
|
||||
@@ -30,6 +30,7 @@ import {
|
||||
MAT_MOMENT_DATE_ADAPTER_OPTIONS
|
||||
} from '@angular/material-moment-adapter';
|
||||
import {DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE} from '@angular/material/core';
|
||||
import { AttendeeModalPageModule } from 'src/app/shared/event/attendee-modal/attendee-modal.module';
|
||||
|
||||
|
||||
@NgModule({
|
||||
@@ -55,7 +56,8 @@ import {DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE} from '@angular/material/
|
||||
//MatRadioModule,
|
||||
//MatCheckboxModule,
|
||||
MatButtonModule,
|
||||
ReactiveFormsModule
|
||||
ReactiveFormsModule,
|
||||
AttendeeModalPageModule
|
||||
],
|
||||
declarations: [NewEventPage],
|
||||
providers: [
|
||||
|
||||
@@ -327,9 +327,18 @@
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
</ion-list>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div *ngIf="mostrarModal">
|
||||
<app-attendee-modal [loggedAttendSon]="loggedAttendDad"></app-attendee-modal>
|
||||
</div>
|
||||
|
||||
</ion-content>
|
||||
<ion-footer class="ion-no-border">
|
||||
<ion-toolbar class="footer-toolbar">
|
||||
@@ -344,5 +353,10 @@
|
||||
<ion-label>Gravar</ion-label>
|
||||
</button>
|
||||
</ion-buttons>
|
||||
|
||||
<!-- <app-new-event
|
||||
[loggedAttend]="loggedAttend"
|
||||
></app-new-event> -->
|
||||
|
||||
</ion-toolbar>
|
||||
</ion-footer>
|
||||
|
||||
@@ -70,6 +70,8 @@ export class NewEventPage implements OnInit {
|
||||
public color: ThemePalette = 'primary';
|
||||
recurringTypes = []
|
||||
selectedRecurringType: any;
|
||||
loggedAttendDad: boolean = true;
|
||||
mostrarModal = false;
|
||||
|
||||
@Input() attendees: []
|
||||
@Input() profile:string;
|
||||
@@ -701,6 +703,7 @@ export class NewEventPage implements OnInit {
|
||||
}
|
||||
|
||||
async addParticipants() {
|
||||
|
||||
|
||||
this.saveTemporaryData();
|
||||
|
||||
@@ -709,6 +712,7 @@ export class NewEventPage implements OnInit {
|
||||
});
|
||||
|
||||
this.clearContact.emit();
|
||||
this.mostrarModal = true;
|
||||
}
|
||||
|
||||
async addParticipantsCc() {
|
||||
|
||||
@@ -6,6 +6,8 @@ import { removeDuplicate } from 'src/plugin/removeDuplicate.js'
|
||||
import { ThemeService } from 'src/app/services/theme.service'
|
||||
import { ViewChild } from '@angular/core';
|
||||
import { Searchbar } from 'ionic-angular';
|
||||
import { LoginUserRespose } from 'src/app/models/user.model';
|
||||
import { SessionStore } from 'src/app/store/session.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-attendee-modal',
|
||||
@@ -16,6 +18,7 @@ export class AttendeePage implements OnInit {
|
||||
|
||||
// Defined by the API
|
||||
contacts: EventPerson[];
|
||||
filterEmptyEmail: EventPerson[];
|
||||
showLoader: boolean = false;
|
||||
eventPersons: EventPerson[];
|
||||
inputFilter = ''
|
||||
@@ -30,6 +33,7 @@ export class AttendeePage implements OnInit {
|
||||
|
||||
@Input() taskParticipants:EventPerson[] = [];
|
||||
@Input() taskParticipantsCc:EventPerson[] = [];
|
||||
@Input() loggedAttendSon: boolean;
|
||||
|
||||
@Input() footer: boolean;
|
||||
|
||||
@@ -37,26 +41,34 @@ export class AttendeePage implements OnInit {
|
||||
|
||||
LtaskParticipants: EventPerson[] = [];
|
||||
LtaskParticipantsCc: EventPerson[] = [];
|
||||
loggeduser: LoginUserRespose;
|
||||
|
||||
constructor(
|
||||
private modalCtrl: ModalController,
|
||||
private contactsService: ContactsService,
|
||||
public ThemeService: ThemeService ) {
|
||||
|
||||
|
||||
|
||||
this.LtaskParticipants = removeDuplicate(this.taskParticipants);
|
||||
this.LtaskParticipantsCc = removeDuplicate(this.taskParticipantsCc);
|
||||
this.LtaskParticipantsCc = removeDuplicate(this.taskParticipantsCc);
|
||||
this.loggeduser = SessionStore.user;
|
||||
}
|
||||
|
||||
ngOnChanges() {
|
||||
this.LtaskParticipants = removeDuplicate(this.taskParticipants);
|
||||
this.LtaskParticipantsCc = removeDuplicate(this.taskParticipantsCc);
|
||||
console.log('PARTE PARTE',this.loggedAttendSon)
|
||||
}
|
||||
|
||||
currentPath = window.location.pathname;
|
||||
@Input() adding: "intervenient" | "CC";
|
||||
|
||||
ngOnInit() {
|
||||
|
||||
setTimeout(() => {
|
||||
console.log('PARTE PARTE',this.loggedAttendSon)
|
||||
});
|
||||
|
||||
this.fetchContacts("");
|
||||
|
||||
if(this.LtaskParticipants == null || this.LtaskParticipants == undefined) {
|
||||
@@ -211,8 +223,20 @@ export class AttendeePage implements OnInit {
|
||||
});
|
||||
}
|
||||
|
||||
this.contacts = this.sort(result as any);
|
||||
if(this.loggedAttendSon) {
|
||||
this.contacts = this.sort(result as any);
|
||||
this.showLoader = false;
|
||||
} else {
|
||||
this.contacts = this.sort(result as any);
|
||||
console.log('Attendes Email',this.loggeduser.Email)
|
||||
let filterLoggedUserEmail = this.contacts.filter(item => item.EmailAddress.toLocaleLowerCase() != this.loggeduser.Email.toLocaleLowerCase())
|
||||
console.log('Attendes Email', filterLoggedUserEmail)
|
||||
let filterEmptyEmail = filterLoggedUserEmail.filter(item => item.EmailAddress.toLocaleLowerCase() != "")
|
||||
this.contacts = filterEmptyEmail;
|
||||
console.log('Attendes Email', this.contacts)
|
||||
this.showLoader = false;
|
||||
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
@@ -26,8 +26,8 @@ messaging.onBackgroundMessage(function(payload) {
|
||||
body: payload.notification.body,
|
||||
};
|
||||
|
||||
self.registration.showNotification(notificationTitle,
|
||||
notificationOptions);
|
||||
/* self.registration.showNotification(notificationTitle,
|
||||
notificationOptions); */
|
||||
});
|
||||
|
||||
|
||||
@@ -63,6 +63,7 @@ self.addEventListener('notificationclick', function(event) {
|
||||
console.log("Push Clicked ", event);
|
||||
// Enviar uma mensagem para o cliente (componente)
|
||||
self.clients.matchAll().then((clients) => {
|
||||
console.log("Push Clicked 2", clients);
|
||||
if (clients && clients.length) {
|
||||
clients.forEach((client) => {
|
||||
client.postMessage({ notificationClicked: true });
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
export let versionData = {
|
||||
"shortSHA": "bf89e4684",
|
||||
"SHA": "bf89e468416cca7863800d7aa06efec843d39156",
|
||||
"shortSHA": "2bfec8211",
|
||||
"SHA": "2bfec82113924fa075bd6bc54e9f2515f149e8fe",
|
||||
"branch": "developer",
|
||||
"lastCommitAuthor": "'Eudes Inácio'",
|
||||
"lastCommitTime": "'Tue Aug 8 15:40:10 2023 +0100'",
|
||||
"lastCommitMessage": "Improve tinymce autosave and notification web click solved",
|
||||
"lastCommitNumber": "5138",
|
||||
"lastCommitTime": "'Tue Aug 8 15:41:52 2023 +0100'",
|
||||
"lastCommitMessage": "pull made",
|
||||
"lastCommitNumber": "5142",
|
||||
"change": "",
|
||||
"changeStatus": "On branch developer\nYour branch and 'origin/developer' have diverged,\nand have 1 and 3 different commits each, respectively.\n (use \"git pull\" to merge the remote branch into yours)\n\nAll conflicts fixed but you are still merging.\n (use \"git commit\" to conclude merge)\n\nChanges to be committed:\n\tnew file: index.html\n\tmodified: src/app/modals/create-process/create-process.page.ts\n\tmodified: src/app/models/message.model.ts\n\tmodified: src/app/pages/agenda/new-event/new-event.page.ts\n\tmodified: src/app/pages/chat/chat.page.html\n\tmodified: src/app/pages/chat/chat.page.scss\n\tmodified: src/app/pages/chat/chat.page.ts\n\tmodified: src/app/pages/chat/edit-group/edit-group.page.scss\n\tmodified: src/app/pages/chat/group-messages/group-messages.page.html\n\tmodified: src/app/pages/chat/group-messages/group-messages.page.ts\n\tmodified: src/app/pages/events/events.page.html\n\tmodified: src/app/pages/events/events.page.ts\n\tmodified: src/app/pages/gabinete-digital/despachos/despacho/despacho.page.ts\n\tmodified: src/app/pages/gabinete-digital/diplomas-gerar/diplomas-gerar/diplomas-gerar.page.ts\n\tmodified: src/app/pages/login/login.page.ts\n\tmodified: src/app/pages/publications/new-action/new-action.page.html\n\tmodified: src/app/pages/publications/new-action/new-action.page.scss\n\tmodified: src/app/pages/publications/new-action/new-action.page.ts\n\tmodified: src/app/pages/publications/publications.page.scss\n\tmodified: src/app/services/chat/message.service.ts\n\tmodified: src/app/services/chat/room.service.ts\n\tmodified: src/app/shared/agenda/edit-event/edit-event.page.ts\n\tmodified: src/app/shared/chat/group-messages/group-contacts/group-contacts.page.ts\n\tmodified: src/app/shared/chat/group-messages/group-messages.page.html\n\tmodified: src/app/shared/popover/chat-popover/chat-popover.page.ts\n\tmodified: src/app/shared/publication/new-action/new-action.page.html\n\tmodified: src/global.scss",
|
||||
"changeStatus": "On branch developer\nYour branch is up to date with 'origin/developer'.\n\nChanges to be committed:\n (use \"git restore --staged <file>...\" to unstage)\n\tmodified: src/app/home/home.page.ts\n\tmodified: src/app/pages/events/attendees/attendees.page.ts\n\tmodified: src/app/pages/gabinete-digital/expediente/book-meeting-modal/book-meeting-modal.page.ts\n\tmodified: src/app/pages/publications/new-publication/new-publication.page.html\n\tmodified: src/app/pages/publications/new-publication/new-publication.page.ts\n\tmodified: src/app/pages/search/organic-entity/organic-entity.page.html\n\tmodified: src/app/pages/search/organic-entity/organic-entity.page.ts\n\tmodified: src/app/pages/search/search.page.html\n\tmodified: src/app/pages/search/search.page.ts\n\tmodified: src/app/pages/search/sender/sender.page.html\n\tmodified: src/app/pages/search/sender/sender.page.ts\n\tmodified: src/app/services/events/attendees/attendees.page.ts\n\tmodified: src/app/services/notifications.service.ts\n\tmodified: src/app/services/search.service.ts\n\tmodified: src/app/shared/agenda/new-event/new-event.module.ts\n\tmodified: src/app/shared/agenda/new-event/new-event.page.html\n\tmodified: src/app/shared/agenda/new-event/new-event.page.ts\n\tmodified: src/app/shared/event/attendee-modal/attendee-modal.page.ts\n\tmodified: src/firebase-messaging-sw.js",
|
||||
"changeAuthor": "eudes.inacio"
|
||||
}
|
||||
Reference in New Issue
Block a user