import { Component, OnInit, ViewChild } from '@angular/core'; import * as Moment from 'moment'; import { BlogEntry } from 'tournee.businesslogic'; import { BlogService } from 'src/app/shared/services/blog.service'; import { AuthService } from 'src/app/shared/services/auth.service'; import { FeedbackPanelComponent } from 'src/app/shared/components/feedback-panel/feedback-panel.component'; @Component({ selector: 'app-system-admin-blog', templateUrl: './system-admin-blog.component.html', styleUrls: ['./system-admin-blog.component.css'], providers: [ BlogService ] }) export class SystemAdminBlogComponent implements OnInit { @ViewChild('FeedbackPanel') FeedbackPanel:FeedbackPanelComponent; isWorking: boolean = false; EditModel: BlogEntry = BlogEntry.create(this._auth.User); BlogEntries: Array = []; update_publish_date: boolean = false; constructor(private _blogs: BlogService, private _auth: AuthService) { } ngOnInit() { this.isWorking = true; this._blogs.get_all() .then((result) => { this.BlogEntries = result.result.map((b) => { return new BlogEntry(b); }); this.isWorking = false; }) .catch((err) => { this.isWorking = false; this.FeedbackPanel.triggerError(err); }); } Save() { if (this.isWorking) { return; } this.isWorking = true; if (this.update_publish_date) { this.EditModel.publish_date = Moment(); } this._blogs.update(this.EditModel) .then((result) => { this.BlogEntries = result.result.map((b) => { return new BlogEntry(b); }); this.EditModel = BlogEntry.create(this._auth.User); this.update_publish_date = false; this.isWorking = false; }) .catch((err) => { this.isWorking = false; this.FeedbackPanel.triggerError(err); }); } edit(entry: BlogEntry) { this.EditModel = JSON.parse(JSON.stringify(entry)); } }