import { Component, OnInit, ViewChild } from '@angular/core'; import { FeedbackPanelComponent } from 'src/app/shared/components/feedback-panel/feedback-panel.component'; import { SystemAdminService } from 'src/app/shared/services/systemadmin.service'; import { TournamentManagerZonePermissions } from 'tournee.businesslogic'; @Component({ selector: 'app-system-admin-tournament-zones', templateUrl: './system-admin-tournament-zones.component.html', styleUrls: ['./system-admin-tournament-zones.component.css'], providers: [ SystemAdminService ] }) export class SystemAdminTournamentZonesComponent implements OnInit { @ViewChild('FeedbackPanel') FeedbackPanel:FeedbackPanelComponent; isWorking: boolean = false; Expanded: boolean = false; Permissions: Array = []; EditModel: TournamentManagerZonePermissions = new TournamentManagerZonePermissions(); constructor(private _sysAdmin: SystemAdminService) { } ngOnInit() { this._sysAdmin.getTournamentManagerZonePermissions() .then((result) => { this.Permissions = result.result.map((p) => { return new TournamentManagerZonePermissions(p); }); }) .catch((err) => { this.FeedbackPanel.triggerError(err); }); } toggle() { this.Expanded = !this.Expanded; } save() { if (this.isWorking) { return; } this.isWorking = false; this.FeedbackPanel.reset(); this._sysAdmin.saveTournamentManagerZonePermissions(this.EditModel) .then((result) => { this.Permissions = result.result.map((p) => { return new TournamentManagerZonePermissions(p); }); this.isWorking = false; }) .catch((err) => { this.FeedbackPanel.triggerError(err); this.isWorking = false; }); } beginEdit(permission: TournamentManagerZonePermissions) { this.EditModel = JSON.parse(JSON.stringify(permission)); } delete(permission: TournamentManagerZonePermissions) { if (this.isWorking) { return; } this.isWorking = true; this.FeedbackPanel.reset(); this._sysAdmin.deleteTournamentManagerZonePermissions(permission) .then((result) => { this.Permissions = result.result.map((p) => { return new TournamentManagerZonePermissions(p); }); }) .catch((err) => { this.FeedbackPanel.triggerError(err); }); } reset() { this.EditModel = new TournamentManagerZonePermissions(); } }