import { Component, OnInit, ViewChild } from '@angular/core'; import { TournamentTicketsService } from 'src/app/shared/services/tournament.tickets.service'; import { UtilityService } from 'src/app/shared/services/utility.service'; import { SoldTournamentTicket, SoldTicketFilter, } from 'tournee.businesslogic'; import { AuthService } from 'src/app/shared/services/auth.service'; import { FeedbackPanelComponent } from 'src/app/shared/components/feedback-panel/feedback-panel.component'; @Component({ selector: 'app-user-selectable-listing-ticket-purchased', templateUrl: './user-selectable-listing-ticket-purchased.component.html', styleUrls: ['./user-selectable-listing-ticket-purchased.component.css'], providers: [TournamentTicketsService] }) export class UserSelectableListingTicketPurchasedComponent implements OnInit { isWorking: boolean = false; @ViewChild('FeedbackPanel') FeedbackPanel:FeedbackPanelComponent; Tickets: Array = []; currently_gifting: SoldTournamentTicket = null; constructor(private _tickets: TournamentTicketsService, public utility: UtilityService, private _auth: AuthService) { } ngOnInit() { this.load(); } load() { if (this.isWorking) { return; } this.isWorking = true; this.FeedbackPanel.reset(); this._tickets.my_purchased(SoldTicketFilter.create().set('attendee_id', this._auth.User.id)) .then((result) => { this.Tickets = result.result.map((t) => { return new SoldTournamentTicket(t); }); this.isWorking = false; }) .catch((err) => { this.FeedbackPanel.triggerError(err); this.isWorking = false; }); } select(ticket: SoldTournamentTicket) { } ErrorRaised(error: Error) { this.FeedbackPanel.triggerError(error); } ErrorClear() { this.FeedbackPanel.reset(); } ticket_class(ticket: SoldTournamentTicket) { if (this.currently_gifting && this.currently_gifting.sold_ticket_id != ticket.sold_ticket_id) { return 'disabled'; } return ''; } is_currently_gifting(ticket: SoldTournamentTicket) { if (!this.currently_gifting) { return false; } return this.currently_gifting.sold_ticket_id == ticket.sold_ticket_id; } begin_gifting(ticket: SoldTournamentTicket) { this.currently_gifting = ticket; } cancel_gifting() { this.currently_gifting = null; } success_gifting() { this.currently_gifting = null; this.FeedbackPanel.triggerSuccess("Ticket gifted successfully"); this.load(); } }