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.
148 lines
5.1 KiB
TypeScript
148 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 detialData: {
|
|
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 = JSON.parse(holdData.result.data)[0];
|
|
console.log(data);
|
|
this.detialData = {
|
|
id: data.rowID,
|
|
title_EN: data.Title_EN,
|
|
title_AR: data.Title_AR,
|
|
body_EN: data.Body_EN,
|
|
body_AR: data.Body_AR,
|
|
date: data.created,
|
|
img: data.Banner_Image
|
|
};
|
|
element.isOpen = !element.isOpen;
|
|
// this.common.stopLoading();
|
|
}
|
|
console.log(this.detialData);
|
|
});
|
|
} 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 = JSON.parse(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].Title_EN;
|
|
this.listOfAnnouncement[i].Title_AR = this.listOfAnnouncement[i].Title_AR;
|
|
this.listOfAnnouncement[i].EmailBody_EN = this.listOfAnnouncement[i].EmailBody_EN;
|
|
this.listOfAnnouncement[i].EmailBody_AR = this.listOfAnnouncement[i].EmailBody_AR;
|
|
this.arr[i] = {
|
|
id: this.listOfAnnouncement[i].rowID,
|
|
title_EN: this.listOfAnnouncement[i].Title_EN,
|
|
title_AR: this.listOfAnnouncement[i].Title_AR,
|
|
body_EN: this.listOfAnnouncement[i].EmailBody_EN,
|
|
body_AR: this.listOfAnnouncement[i].EmailBody_AR,
|
|
date: this.listOfAnnouncement[i].created,
|
|
img: this.listOfAnnouncement[i].Banner_Image,
|
|
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);
|
|
}
|
|
|
|
}
|