mirror of https://github.com/Ombi-app/Ombi
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.
75 lines
2.6 KiB
75 lines
2.6 KiB
import { Component, OnInit } from "@angular/core";
|
|
import { UntypedFormBuilder, UntypedFormGroup } from "@angular/forms";
|
|
|
|
import { Branch, ILanguageRefine, IOmbiSettings } from "../../interfaces";
|
|
import { NotificationService } from "../../services";
|
|
import { SettingsService } from "../../services";
|
|
|
|
import languageData from "./../../../other/iso-lang.json";
|
|
|
|
@Component({
|
|
templateUrl: "./ombi.component.html",
|
|
styleUrls: ["./ombi.component.scss"],
|
|
})
|
|
export class OmbiComponent implements OnInit {
|
|
|
|
public form: UntypedFormGroup;
|
|
public langauges: ILanguageRefine[];
|
|
public Branch = Branch;
|
|
|
|
constructor(private settingsService: SettingsService,
|
|
private notificationService: NotificationService,
|
|
private fb: UntypedFormBuilder) { }
|
|
|
|
public ngOnInit() {
|
|
this.settingsService.getOmbi().subscribe(x => {
|
|
this.form = this.fb.group({
|
|
collectAnalyticData: [x.collectAnalyticData],
|
|
apiKey: [x.apiKey],
|
|
baseUrl: [x.baseUrl],
|
|
doNotSendNotificationsForAutoApprove: [x.doNotSendNotificationsForAutoApprove],
|
|
hideRequestsUsers: [x.hideRequestsUsers],
|
|
defaultLanguageCode: [x.defaultLanguageCode],
|
|
disableHealthChecks: [x.disableHealthChecks],
|
|
autoDeleteAvailableRequests: [x.autoDeleteAvailableRequests],
|
|
autoDeleteAfterDays: [x.autoDeleteAfterDays],
|
|
branch: [x.branch]
|
|
});
|
|
});
|
|
this.langauges = <ILanguageRefine[]>languageData
|
|
}
|
|
|
|
public refreshApiKey() {
|
|
this.settingsService.resetOmbiApi().subscribe(x => {
|
|
this.form.controls.apiKey.patchValue(x);
|
|
});
|
|
}
|
|
|
|
public onSubmit(form: UntypedFormGroup) {
|
|
if (form.invalid) {
|
|
this.notificationService.error("Please check your entered values");
|
|
return;
|
|
}
|
|
|
|
const result = <IOmbiSettings> form.value;
|
|
if (result.baseUrl && result.baseUrl.length > 0) {
|
|
if (!result.baseUrl.startsWith("/")) {
|
|
this.notificationService.error("Please ensure your base url starts with a '/'");
|
|
return;
|
|
}
|
|
}
|
|
|
|
this.settingsService.saveOmbi(form.value).subscribe(x => {
|
|
if (x) {
|
|
this.notificationService.success("Successfully saved Ombi settings");
|
|
} else {
|
|
this.notificationService.success("There was an error when saving the Ombi settings");
|
|
}
|
|
});
|
|
}
|
|
|
|
public successfullyCopied() {
|
|
this.notificationService.success("Copied the Api Key to the clipboard!");
|
|
}
|
|
}
|