You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Ombi/src/Ombi/ClientApp/src/app/media-details/components/shared/new-issue/new-issue.component.ts

59 lines
2.1 KiB

import { Component, Inject, OnInit } from "@angular/core";
import { IIssueDialogData } from "../interfaces/interfaces";
import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material/dialog";
import { MessageService, IssuesService } from "../../../../services";
import { IIssues, IIssueCategory, IssueStatus, RequestType } from "../../../../interfaces";
import { TranslateService } from "@ngx-translate/core";
import { firstValueFrom } from "rxjs";
@Component({
selector: "new-issue",
templateUrl: "./new-issue.component.html",
})
export class NewIssueComponent implements OnInit {
public issue: IIssues;
public issueCategories: IIssueCategory[];
constructor(
public dialogRef: MatDialogRef<NewIssueComponent>,
@Inject(MAT_DIALOG_DATA) public data: IIssueDialogData,
private issueService: IssuesService,
public messageService: MessageService,
private translate: TranslateService) {
this.issue = {
subject: "",
description: "",
issueCategory: { value: "", id: 0 },
status: IssueStatus.Pending,
resolvedDate: undefined,
id: undefined,
issueCategoryId: 0,
comments: [],
requestId: data.requestId,
requestType: data.requestType,
title: data.title,
providerId: data.providerId,
userReported: undefined,
posterPath: data.posterPath,
};
}
public async ngOnInit(): Promise<void> {
const categories$ = this.issueService.getCategories();
this.issueCategories = await firstValueFrom(categories$);
}
public async createIssue() {
const result = await this.issueService.createIssue(this.issue).toPromise();
if (result) {
this.messageService.send(this.translate.instant("Issues.IssueDialog.IssueCreated"));
}
}
public onNoClick(): void {
this.dialogRef.close();
delete this.issue;
}
}