import { Component, OnInit, ViewChild } from '@angular/core'; import { ScrollToService, ScrollToConfigOptions } from '@nicky-lenaers/ngx-scroll-to'; import { FeedbackPanelComponent } from 'src/app/shared/components/feedback-panel/feedback-panel.component'; import { SystemAdminService } from 'src/app/shared/services/systemadmin.service'; import { WhiteListedEmail } from 'tournee.businesslogic'; @Component({ selector: 'app-system-admin-emailwhitelist', templateUrl: './system-admin-emailwhitelist.component.html', styleUrls: ['./system-admin-emailwhitelist.component.css'], providers: [SystemAdminService] }) export class SystemAdminEmailwhitelistComponent implements OnInit { @ViewChild('FeedbackPanel') FeedbackPanel:FeedbackPanelComponent; isWorking: boolean = false; Expanded: boolean = false; Whitelist: Array = []; EditModel: WhiteListedEmail = new WhiteListedEmail(); constructor(private _service: SystemAdminService, private _scrollToService: ScrollToService) { } ngOnInit() { this.load() } toggle() { this.Expanded = !this.Expanded; } load() { if (this.isWorking) { return; } this.isWorking = true; this._service.getWhitelist() .then((result) => { this.Whitelist = result.result.map((e) => { return new WhiteListedEmail(e); }); this.isWorking = false; }) .catch((err) => { this.isWorking = false; console.log(err); }); } save() { if (this.isWorking) { return; } this.isWorking = true; if (this.EditModel.id) { this.edit(); } else { this.add(); } } add() { this._service.addWhitelist(this.EditModel) .then((result) => { this.Whitelist = result.result.map((e) => { return new WhiteListedEmail(e); }); this.isWorking = false; this.reset(); this.FeedbackPanel.triggerSuccess("White List Saved Successfully"); }) .catch((err) => { this.isWorking = false; this.FeedbackPanel.triggerError(err); }); } edit() { this._service.updateWhitelist(this.EditModel) .then((result) => { this.Whitelist = result.result.map((e) => { return new WhiteListedEmail(e); }); this.isWorking = false; this.reset(); this.FeedbackPanel.triggerSuccess("White List Saved Successfully"); }) .catch((err) => { this.isWorking = false; this.FeedbackPanel.triggerError(err); }); } delete(item: WhiteListedEmail) { this._service.deleteWhitelist(item.id) .then((result) => { this.Whitelist = result.result.map((e) => { return new WhiteListedEmail(e); }); this.isWorking = false; this.reset(); this.FeedbackPanel.triggerSuccess("White List Saved Successfully"); }) .catch((err) => { this.isWorking = false; this.FeedbackPanel.triggerError(err); }); } beginEdit(whitelist: WhiteListedEmail) { this.EditModel.email = whitelist.email; this.EditModel.id = whitelist.id; this.EditModel.name = whitelist.name; const config: ScrollToConfigOptions = { target: 'whitelistForm' }; this._scrollToService.scrollTo(config); } reset() { this.EditModel.email = null; this.EditModel.name = null; this.EditModel.id = null; } }