import { Component, OnInit, ViewChild } from '@angular/core'; import { SystemAdminService } from 'src/app/shared/services/systemadmin.service'; import { TourneePaypal, Currency } from 'tournee.businesslogic'; import { FeedbackPanelComponent } from 'src/app/shared/components/feedback-panel/feedback-panel.component'; import { LookupsService } from 'src/app/shared/services/lookups.service'; import { UtilityService } from 'src/app/shared/services/utility.service'; @Component({ selector: 'app-system-admin-tournee-paypal', templateUrl: './system-admin-tournee-paypal.component.html', styleUrls: ['./system-admin-tournee-paypal.component.css'], providers: [ SystemAdminService, LookupsService ] }) export class SystemAdminTourneePaypalComponent implements OnInit { isWorking: boolean = false; Currencies: Array = []; @ViewChild('FeedbackPanel') FeedbackPanel:FeedbackPanelComponent; EditModel: TourneePaypal; original_client_id: string; allow_edit: boolean = false; constructor(private _sysAdmin: SystemAdminService, private _lookups: LookupsService, public utility: UtilityService) { } ngOnInit() { this._sysAdmin.getTourneePaypal() .then((result) => { if (result.result && result.result.length == 1) { this.EditModel = new TourneePaypal(result.result[0]); } else { this.EditModel = new TourneePaypal(); } this.original_client_id = this.EditModel.paypal_client_id; return this._lookups.get('currency'); }) .then((result) => { this.Currencies = result.result.map((c) => { return new Currency(c); }); }) .catch((err) => { this.FeedbackPanel.triggerError(err); this.isWorking = false; }); } secretEditable() { return this.allow_edit || this.EditModel.paypal_client_id != this.original_client_id; } save() { if (this.isWorking) { return; } this.isWorking = true; this._sysAdmin.saveTourneePaypal(this.EditModel) .then((result) => { this.EditModel = new TourneePaypal(result.result); this.original_client_id = this.EditModel.paypal_client_id; this.isWorking = false; }) .catch((err) => { this.FeedbackPanel.triggerError(err); this.isWorking = false; }); } }