You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
sfh-mohemm/Mohem/src/app/backend-integrations/announcement/announcement.component.ts

149 lines
5.1 KiB
TypeScript

import { Component, OnInit, ViewChild } from '@angular/core';
import { detachEmbeddedView } from '@angular/core/src/view';
import { AnnouncementService } from 'src/app/hmg-common/services/announcement-services/announcement.service';
import { CommonService } from 'src/app/hmg-common/services/common/common.service';
import { TranslatorService } from 'src/app/hmg-common/services/translator/translator.service';
import { IonInfiniteScroll } from '@ionic/angular';
@Component({
selector: 'app-announcement',
templateUrl: './announcement.component.html',
styleUrls: ['./announcement.component.scss'],
})
export class AnnouncementComponent implements OnInit {
public arr: { id: number, title_EN: string, title_AR: string, body_EN: string, body_AR: string, img?: string, date: Date, isopen: boolean }[] = [];
public arrList = [];
public listOfAnnouncement;
direction: string;
public announcementList = [];
public numberOfListLength = 10;
public announcememntCounter = this.numberOfListLength;
@ViewChild(IonInfiniteScroll) infiniteScroll: IonInfiniteScroll;
public pageSize = 1;
public pageLength = 0;
public lengthCounter = 5;
public detailData: {
id: number,
title_EN: string,
title_AR: string,
body_EN: string,
body_AR: string,
img?: string,
date: Date
};
constructor(
public announcementService: AnnouncementService,
public translate: TranslatorService,
public common: CommonService
) { }
ngOnInit() {
this.common.startLoading();
this.direction = TranslatorService.getCurrentLanguageName();
this.getAnnouncementListService();
}
filterList(event) {
const val = event.target.value;
if (val === '') {
this.announcementList = this.arrList;
}
this.announcementList = this.arrList.filter((item) => {
return (item.title_EN.toLowerCase().indexOf(val.toLowerCase()) > -1);
});
}
toggleAnnouncement(item) {
this.common.startLoading();
let holdData;
let data;
this.announcementList.forEach(element => {
if (element.id === item.id) {
this.announcementService.getAnnouncementListService(this.pageSize, item.id).subscribe((result: any) => {
this.common.stopLoading();
if (this.common.validResponse(result)) {
holdData = JSON.parse(result.Mohemm_ITG_ResponseItem);
data = holdData.result.data[0];
console.log(data);
this.detailData = {
id: data.rowID,
title_EN: data.titleEn,
title_AR: data.titleAr,
body_EN: data.descriptionEn,
body_AR: data.descriptionAr,
date: data.created,
img: data.imageContent
};
element.isOpen = !element.isOpen;
// this.common.stopLoading();
}
console.log(this.detailData);
});
} else {
element.isOpen = false;
}
});
}
closeAnnouncement(item) {
item.isOpen = false;
}
getAnnouncementListService() {
// this.common.startLoading();
let holdData;
this.announcementService.getAnnouncementListService(this.pageSize).subscribe((result: any) => {
this.common.stopLoading();
if (this.common.validResponse(result)) {
holdData = JSON.parse(result.Mohemm_ITG_ResponseItem);
this.listOfAnnouncement = holdData.result.data;
this.pageLength = this.listOfAnnouncement[0].TotalItems;
for (let i = 0; i < this.listOfAnnouncement.length; i++) {
this.listOfAnnouncement[i].Title_EN = this.listOfAnnouncement[i].titleEn;
this.listOfAnnouncement[i].Title_AR = this.listOfAnnouncement[i].titleAr;
this.listOfAnnouncement[i].EmailBody_EN = this.listOfAnnouncement[i].descriptionEn;
this.listOfAnnouncement[i].EmailBody_AR = this.listOfAnnouncement[i].descriptionAr;
this.arr[i] = {
id: this.listOfAnnouncement[i].rowID,
title_EN: this.listOfAnnouncement[i].titleEn,
title_AR: this.listOfAnnouncement[i].titleAr,
body_EN: this.listOfAnnouncement[i].descriptionEn,
body_AR: this.listOfAnnouncement[i].descriptionAr,
date: this.listOfAnnouncement[i].created,
img: this.listOfAnnouncement[i].imageContent,
isopen: false
};
if (i < this.numberOfListLength) {
this.announcementList.push(this.arr[i]);
}
this.arrList.push(this.arr[i]);
}
}
// this.common.stopLoading();
});
}
loadData(event) {
// let counter = this.numberOfListLength + this.announcememntCounter;
setTimeout(() => {
event.target.complete();
// for(let i = this.announcememntCounter; i < counter; i++) {
// if(this.arrList[i]) {
// this.announcementList.push(this.arrList[i]);
// this.announcememntCounter ++;
// }
// }
this.pageSize += 1;
if (this.lengthCounter >= this.pageLength) {
event.target.disabled = true;
} else {
this.getAnnouncementListService();
}
this.lengthCounter += 5;
}, 500);
}
}