mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-19 04:57:52 +00:00
changes
This commit is contained in:
@@ -141,6 +141,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;
|
||||
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
@@ -173,7 +173,7 @@
|
||||
(click)="TaskService.goToProcess(task.SerialNumber || task.serialNumber, task.WorkflowName || task.workflowName || task.workflowDisplayName || task.workflowName, task.activityInstanceName)">
|
||||
<div class="item-exp d-flex">
|
||||
<div class="schedule-date">
|
||||
<div class="time-end">{{task.TaskStartDate | date: 'dd-MM-yy'}}</div>
|
||||
<div class="time-end">{{task.TaskStartDate | date: 'dd-MM-yyyy'}}</div>
|
||||
<div class="time-start">{{task.TaskStartDate | date: 'HH:mm'}}</div>
|
||||
</div>
|
||||
<div class="schedule-details pointer">
|
||||
@@ -295,7 +295,7 @@
|
||||
(click)="TaskService.goToProcess(task.SerialNumber || task.serialNumber, task.WorkflowName || task.workflowName || task.workflowDisplayName || task.workflowName, task.activityInstanceName)">
|
||||
<div class="item-exp d-flex">
|
||||
<div class="schedule-date">
|
||||
<div class="time-end">{{task.TaskStartDate | date: 'dd-MM-yy'}}</div>
|
||||
<div class="time-end">{{task.TaskStartDate | date: 'dd-MM-yyyy'}}</div>
|
||||
<div class="time-start">{{task.TaskStartDate | date: 'HH:mm'}}</div>
|
||||
</div>
|
||||
<div class="schedule-details pointer">
|
||||
|
||||
+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;
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@
|
||||
</div>
|
||||
<div class="div-title">
|
||||
<p class="title font-25-em"> {{publication.Title}} </p>
|
||||
<p class="post-data font-16-em">{{publication.DatePublication | date: 'dd-MM-yy | h:mm'}}</p>
|
||||
<p class="post-data font-16-em">{{publication.DatePublication | date: 'dd-MM-yyyy | h:mm'}}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
+1
@@ -92,6 +92,7 @@ export class PublicationDetailPage implements OnInit {
|
||||
OriginalFileName: res.OriginalFileName,
|
||||
FileExtension: 'jpeg',
|
||||
}
|
||||
console.log('PUBLICATIO ImG',this.publication.FileBase64)
|
||||
this.showLoader = false;
|
||||
}, (error) => {
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<div *ngIf="publicationFolderService.FolderDetails[folderId]?.DateBegin != null" class="div-title flex-grow-1">
|
||||
<p class="title font-25-em mb-10-em">{{publicationFolderService.FolderDetails[folderId].Description}}</p>
|
||||
<p class="item-content-detail font-14-em">{{publicationFolderService.FolderDetails[folderId].Detail}}</p>
|
||||
<p class="item-content-date font-13-em" >{{publicationFolderService.FolderDetails[folderId].DateBegin | date: 'dd-MM-yy HH:mm'}}</p>
|
||||
<p class="item-content-date font-13-em" >{{publicationFolderService.FolderDetails[folderId].DateBegin | date: 'dd-MM-yyyy HH:mm'}}</p>
|
||||
</div>
|
||||
<div *ngIf="p.userPermission([p.permissionList.Actions.createPost]) && publicationFolderService.FolderDetails[folderId]" class="cursor-pointer font-35-em" (click)="AddPublication('2',publicationFolderService.FolderDetails[folderId].ProcessId)">
|
||||
<!-- <ion-icon (click)="AddPublication('1',item.ProcessId)" slot="end" src='assets/images/icons-add-photo.svg'></ion-icon> -->
|
||||
@@ -42,7 +42,7 @@
|
||||
<div class="post-title font-15-em">
|
||||
<ion-label>{{publication.Title}}</ion-label>
|
||||
</div>
|
||||
<div class="post-data font-13-em">{{publication.DatePublication | date: 'dd-MM-yy HH:mm'}}</div>
|
||||
<div class="post-data font-13-em">{{publication.DatePublication | date: 'dd-MM-yyyy HH:mm'}}</div>
|
||||
</div>
|
||||
<div class="post-description ">
|
||||
<pre class="text font-14-em">{{publication.Message}}</pre>
|
||||
@@ -71,7 +71,7 @@
|
||||
<div class="post-title">
|
||||
<ion-label>{{publication.Title}}</ion-label>
|
||||
</div>
|
||||
<div class="post-data">{{publication.DatePublication | date: 'dd-MM-yy HH:mm'}}</div>
|
||||
<div class="post-data">{{publication.DatePublication | date: 'dd-MM-yyyy HH:mm'}}</div>
|
||||
</div>
|
||||
<div class="post-description">
|
||||
<p>{{publication.Message}}</p>
|
||||
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
@@ -222,6 +222,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;
|
||||
|
||||
@@ -39,26 +43,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) {
|
||||
@@ -213,8 +225,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;
|
||||
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
+1
-1
@@ -7,7 +7,7 @@
|
||||
</div>
|
||||
<div class="div-title">
|
||||
<ion-label class="title"> {{publication.Title}}</ion-label>
|
||||
<p class="post-data">{{publication.DatePublication | date: 'dd-MM-yy | h:mm'}}</p>
|
||||
<p class="post-data">{{publication.DatePublication | date: 'dd-MM-yyyy | h:mm'}}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div *ngIf="publication.Title == ''" class="title-contentd-flex pl-20 pt-25">
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
</div>
|
||||
<div class="div-body width-100" *ngIf="publicationFolderService.FolderDetails[folderId]?.DateBegin != null">
|
||||
<p class="item-content-detail">{{publicationFolderService.FolderDetails[folderId].Detail}}</p>
|
||||
<p class="item-content-date">{{ publicationFolderService.FolderDetails[folderId].DateBegin | date: 'dd-MM-yy HH:mm'}}</p>
|
||||
<p class="item-content-date">{{ publicationFolderService.FolderDetails[folderId].DateBegin | date: 'dd-MM-yyyy HH:mm'}}</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -47,7 +47,7 @@
|
||||
<div class="post-title">
|
||||
<ion-label>{{publication.Title}}</ion-label>
|
||||
</div>
|
||||
<div class="post-data">{{publication.DatePublication | date: 'dd-MM-yy HH:mm'}}</div>
|
||||
<div class="post-data">{{publication.DatePublication | date: 'dd-MM-yyyy HH:mm'}}</div>
|
||||
</div>
|
||||
<div class="post-description">
|
||||
<pre class="text">{{publication.Message}}</pre>
|
||||
@@ -70,7 +70,7 @@
|
||||
<div class="post-title">
|
||||
<ion-label>{{publication.Title}}</ion-label>
|
||||
</div>
|
||||
<div class="post-data">{{publication.DatePublication | date: 'dd-MM-yy HH:mm'}}</div>
|
||||
<div class="post-data">{{publication.DatePublication | date: 'dd-MM-yyyy HH:mm'}}</div>
|
||||
</div>
|
||||
<div class="post-description">
|
||||
<p>{{publication.Message}}</p>
|
||||
|
||||
@@ -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 });
|
||||
|
||||
Reference in New Issue
Block a user