import { Component, OnInit, OnDestroy } from '@angular/core'; import { HttpErrorResponse, HttpResponse } from '@angular/common/http'; import { Subscription } from 'rxjs'; import { JhiEventManager, JhiAlertService } from 'ng-jhipster'; import { IPost } from 'app/shared/model/post.model'; import { Principal } from 'app/core'; import { PostService } from './post.service'; @Component({ selector: 'jhi-post', templateUrl: './post.component.html' }) export class PostComponent implements OnInit, OnDestroy { posts: IPost[]; currentAccount: any; eventSubscriber: Subscription; constructor( private postService: PostService, private jhiAlertService: JhiAlertService, private eventManager: JhiEventManager, private principal: Principal ) {} loadAll() { this.postService.query().subscribe( (res: HttpResponse) => { this.posts = res.body; }, (res: HttpErrorResponse) => this.onError(res.message) ); } ngOnInit() { this.loadAll(); this.principal.identity().then(account => { this.currentAccount = account; }); this.registerChangeInPosts(); } ngOnDestroy() { this.eventManager.destroy(this.eventSubscriber); } trackId(index: number, item: IPost) { return item.id; } registerChangeInPosts() { this.eventSubscriber = this.eventManager.subscribe('postListModification', response => this.loadAll()); } private onError(errorMessage: string) { this.jhiAlertService.error(errorMessage, null, null); } }