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.
mohemmionic5/Mohem/src/app/offersdiscount/home/home.component.ts

81 lines
2.4 KiB
TypeScript

import { AfterViewInit, Component, OnInit } from '@angular/core';
import { connectableObservableDescriptor } from 'rxjs/internal/observable/ConnectableObservable';
import { CommonService } from 'src/app/hmg-common/services/common/common.service';
import { TranslatorService } from 'src/app/hmg-common/services/translator/translator.service';
import { OfferDiscountService } from '../services/service';
@Component({
selector: 'app-home',
templateUrl: './home.component.html',
styleUrls: ['./home.component.scss'],
})
export class HomeComponent implements AfterViewInit {
segment: any = '1';
categoriesObj: any;
categories: any = [];
offersData: any = [];
activeClass: any;
tempSearch: any = [];
searchText: String;
constructor(public ts: TranslatorService, public cs: CommonService, public offersService: OfferDiscountService) { }
ngAfterViewInit(): void {
this.getOfferDiscount();
}
openDetails(offer) {
this.cs.sharedService.setSharedData(offer, OfferDiscountService.selected_offers);
var related = this.offersData.filter((res) => res.rowID != offer.rowID);
this.cs.sharedService.setSharedData(related, OfferDiscountService.related_offers);
this.cs.navigateForward('/offersdiscount/offer-details');
}
getOfferDiscount() {
this.cs.startLoading();
this.offersService.getOffers({}, () => { }, this.ts.trPK('general', 'retry')).subscribe((res) => {
var data = JSON.parse(res['Mohemm_ITG_ResponseItem']);
this.cs.stopLoading();
if (data['result'])
this.displayOffers(data['result']);
});
}
displayOffers(data) {
if (data['data']) {
var parseJSON = data['data'];
var offers = JSON.parse(parseJSON)
this.categoriesObj = this.groupBy(offers, 'categoryName');
this.categories = Object.keys(this.categoriesObj);
this.filterOffers(this.categories[0]);
}
}
groupBy(xs, key) {
return xs.reduce((rv, x) => {
(rv[x[key]] = rv[x[key]] || []).push(x);
return rv;
}, {});
};
filterOffers(key) {
this.activeClass = key;
this.offersData = this.categoriesObj[key];
this.tempSearch = JSON.parse(JSON.stringify(this.offersData));
}
checkDate(date) {
return new Date(date) >= new Date()
}
getDotted(temp) {
return temp.substring(0, 60) + " ...";
}
search(t) {
this.offersData = this.tempSearch.filter((post, index) => {
if (post.Title.toLowerCase().indexOf(t.toLowerCase()) > -1)
return true;
});
}
}