feat: Upgrade to Angular14 (#4668)

* refactor: 🔥 removed angular-bootstrap-md dependancy

* chore: update tsconfig

* yeah

* ng14 upgrade

* refactor: migration changes

* fix: fixed CLI

* test: Fixed automation
This commit is contained in:
Jamie 2022-06-22 21:33:45 +01:00 committed by GitHub
commit b9d55a469b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
54 changed files with 1829 additions and 1415 deletions

View file

@ -19,7 +19,7 @@
"index": "src/index.html", "index": "src/index.html",
"main": "src/main.ts", "main": "src/main.ts",
"polyfills": "src/polyfills.ts", "polyfills": "src/polyfills.ts",
"tsConfig": "src/tsconfig.app.json", "tsConfig": "src/tsconfig.json",
"assets": [ "assets": [
"src/assets" "src/assets"
], ],
@ -114,7 +114,7 @@
"builder": "@angular-devkit/build-angular:tslint", "builder": "@angular-devkit/build-angular:tslint",
"options": { "options": {
"tsConfig": [ "tsConfig": [
"src/tsconfig.app.json" "src/tsconfig.json"
], ],
"exclude": [ "exclude": [
"**/node_modules/**" "**/node_modules/**"
@ -124,7 +124,6 @@
} }
} }
}, },
"defaultProject": "ombi",
"cli": { "cli": {
"analytics": false "analytics": false
} }

View file

@ -4,23 +4,23 @@
"scripts": { "scripts": {
"ng": "ng", "ng": "ng",
"start": "ng serve --port 3578 --configuration hmr", "start": "ng serve --port 3578 --configuration hmr",
"build": "node --max_old_space_size=6144 node_modules/@angular/cli/bin/ng build --prod", "build": "node --max_old_space_size=6144 node_modules/@angular/cli/bin/ng build -c production",
"lint": "ng lint" "lint": "ng lint"
}, },
"private": true, "private": true,
"dependencies": { "dependencies": {
"@angular/animations": "^13.2.0", "@angular/animations": "^14.0.0",
"@angular/cdk": "^13.2.0", "@angular/cdk": "^13.2.0",
"@angular/common": "^13.2.0", "@angular/common": "^14.0.0",
"@angular/compiler": "^13.2.0", "@angular/compiler": "^14.0.0",
"@angular/core": "^13.2.0", "@angular/core": "^14.0.0",
"@angular/forms": "^13.2.0", "@angular/forms": "^14.0.0",
"@angular/localize": "^13.2.0", "@angular/localize": "^14.0.0",
"@angular/material": "^13.2.0", "@angular/material": "^13.2.0",
"@angular/platform-browser": "^13.2.0", "@angular/platform-browser": "^14.0.0",
"@angular/platform-browser-dynamic": "^13.2.0", "@angular/platform-browser-dynamic": "^14.0.0",
"@angular/platform-server": "^13.2.0", "@angular/platform-server": "^14.0.0",
"@angular/router": "^13.2.0", "@angular/router": "^14.0.0",
"@angularclass/hmr": "^3.0.0", "@angularclass/hmr": "^3.0.0",
"@aspnet/signalr": "^1.1.0", "@aspnet/signalr": "^1.1.0",
"@auth0/angular-jwt": "^5.0.2", "@auth0/angular-jwt": "^5.0.2",
@ -34,7 +34,6 @@
"@ngxs/store": "^3.7.3", "@ngxs/store": "^3.7.3",
"@types/jquery": "^3.5.13", "@types/jquery": "^3.5.13",
"@yellowspot/ng-truncate": "^2.0.0", "@yellowspot/ng-truncate": "^2.0.0",
"angular-bootstrap-md": "^7.5.4",
"angular-router-loader": "^0.8.5", "angular-router-loader": "^0.8.5",
"angularx-qrcode": "^13.0.3", "angularx-qrcode": "^13.0.3",
"bootstrap": "^4.2.1", "bootstrap": "^4.2.1",
@ -63,19 +62,19 @@
"zone.js": "~0.11.4" "zone.js": "~0.11.4"
}, },
"devDependencies": { "devDependencies": {
"@angular-devkit/build-angular": "~13.2.0", "@angular-devkit/build-angular": "^14.0.0",
"@angular/cli": "~13.2.0", "@angular/cli": "^14.0.0",
"@angular/compiler-cli": "^13.2.0", "@angular/compiler-cli": "^14.0.0",
"@angular/language-service": "^13.2.0", "@angular/language-service": "^14.0.0",
"@types/jasmine": "~3.6.7", "@types/jasmine": "~3.6.7",
"@types/jasminewd2": "~2.0.8", "@types/jasminewd2": "~2.0.8",
"@types/node": "^16.10.9", "@types/node": "^16.10.9",
"codelyzer": "^6.0.1", "codelyzer": "^6.0.1",
"typescript": "~4.5.5" "typescript": "~4.7.3"
}, },
"optionalDependencies": { "optionalDependencies": {
"protractor": "~5.4.0", "protractor": "~5.4.0",
"ts-node": "~5.0.1", "ts-node": "~5.0.1",
"tslint": "^5.12.0" "tslint": "^5.12.0"
} }
} }

View file

@ -1,5 +1,4 @@
import { APP_BASE_HREF, CommonModule, PlatformLocation } from "@angular/common"; import { APP_BASE_HREF, CommonModule, PlatformLocation } from "@angular/common";
import { CardsFreeModule, MDBBootstrapModule, NavbarModule } from "angular-bootstrap-md";
import { CustomPageService, ImageService, RequestService, SettingsService } from "./services"; import { CustomPageService, ImageService, RequestService, SettingsService } from "./services";
import { FormsModule, ReactiveFormsModule } from "@angular/forms"; import { FormsModule, ReactiveFormsModule } from "@angular/forms";
import { HTTP_INTERCEPTORS, HttpClient, HttpClientModule } from "@angular/common/http"; import { HTTP_INTERCEPTORS, HttpClient, HttpClientModule } from "@angular/common/http";
@ -131,7 +130,6 @@ export function JwtTokenGetter() {
MatSnackBarModule, MatSnackBarModule,
DialogModule, DialogModule,
MatButtonModule, MatButtonModule,
NavbarModule,
MatCardModule, MatCardModule,
MatTooltipModule, MatTooltipModule,
MatMenuModule, MatMenuModule,
@ -145,11 +143,9 @@ export function JwtTokenGetter() {
ConfirmDialogModule, ConfirmDialogModule,
OverlayPanelModule, OverlayPanelModule,
CommonModule, CommonModule,
CardsFreeModule,
OverlayModule, OverlayModule,
MatCheckboxModule, MatCheckboxModule,
MatProgressSpinnerModule, MatProgressSpinnerModule,
MDBBootstrapModule.forRoot(),
JwtModule.forRoot({ JwtModule.forRoot({
config: { config: {
tokenGetter: JwtTokenGetter, tokenGetter: JwtTokenGetter,

View file

@ -1,5 +1,5 @@
import { Component, OnInit, SecurityContext } from "@angular/core"; import { Component, OnInit, SecurityContext } from "@angular/core";
import { FormBuilder, FormGroup, Validators } from "@angular/forms"; import { UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms";
import { DomSanitizer } from "@angular/platform-browser"; import { DomSanitizer } from "@angular/platform-browser";
import { AuthService } from "../auth/auth.service"; import { AuthService } from "../auth/auth.service";
import { CustomPageService, NotificationService } from "../services"; import { CustomPageService, NotificationService } from "../services";
@ -10,11 +10,11 @@ import { CustomPageService, NotificationService } from "../services";
}) })
export class CustomPageComponent implements OnInit { export class CustomPageComponent implements OnInit {
public form: FormGroup; public form: UntypedFormGroup;
public isEditing: boolean; public isEditing: boolean;
public isAdmin: boolean; public isAdmin: boolean;
constructor(private auth: AuthService, private settings: CustomPageService, private fb: FormBuilder, constructor(private auth: AuthService, private settings: CustomPageService, private fb: UntypedFormBuilder,
private notificationService: NotificationService, private notificationService: NotificationService,
private sanitizer: DomSanitizer) { private sanitizer: DomSanitizer) {
} }

View file

@ -1,5 +1,5 @@
import { Component, OnDestroy, OnInit, Inject } from "@angular/core"; import { Component, OnDestroy, OnInit, Inject } from "@angular/core";
import { FormBuilder, FormGroup, Validators } from "@angular/forms"; import { UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms";
import { ActivatedRoute, Router } from "@angular/router"; import { ActivatedRoute, Router } from "@angular/router";
import { TranslateService } from "@ngx-translate/core"; import { TranslateService } from "@ngx-translate/core";
@ -24,7 +24,7 @@ import { CustomizationFacade } from "../state/customization";
styleUrls: ["./login.component.scss"], styleUrls: ["./login.component.scss"],
}) })
export class LoginComponent implements OnDestroy, OnInit { export class LoginComponent implements OnDestroy, OnInit {
public form: FormGroup; public form: UntypedFormGroup;
public customizationSettings: ICustomizationSettings; public customizationSettings: ICustomizationSettings;
public authenticationSettings: IAuthenticationSettings; public authenticationSettings: IAuthenticationSettings;
public plexEnabled: boolean; public plexEnabled: boolean;
@ -59,7 +59,7 @@ export class LoginComponent implements OnDestroy, OnInit {
private authService: AuthService, private authService: AuthService,
private router: Router, private router: Router,
private status: StatusService, private status: StatusService,
private fb: FormBuilder, private fb: UntypedFormBuilder,
private settingsService: SettingsService, private settingsService: SettingsService,
private customziationFacade: CustomizationFacade, private customziationFacade: CustomizationFacade,
private images: ImageService, private images: ImageService,
@ -132,7 +132,7 @@ export class LoginComponent implements OnDestroy, OnInit {
.subscribe((x) => (this.errorValidation = x)); .subscribe((x) => (this.errorValidation = x));
} }
public onSubmit(form: FormGroup) { public onSubmit(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notify.open(this.errorValidation, "OK", { this.notify.open(this.errorValidation, "OK", {
duration: 300000, duration: 300000,

View file

@ -1,6 +1,6 @@
import { PlatformLocation, APP_BASE_HREF } from "@angular/common"; import { PlatformLocation, APP_BASE_HREF } from "@angular/common";
import { Component, OnInit, Inject } from "@angular/core"; import { Component, OnInit, Inject } from "@angular/core";
import { FormBuilder, FormGroup, Validators } from "@angular/forms"; import { UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms";
import { DomSanitizer } from "@angular/platform-browser"; import { DomSanitizer } from "@angular/platform-browser";
import { fadeInOutAnimation } from "../animations/fadeinout"; import { fadeInOutAnimation } from "../animations/fadeinout";
@ -15,7 +15,7 @@ import { CustomizationFacade } from "../state/customization";
}) })
export class ResetPasswordComponent implements OnInit { export class ResetPasswordComponent implements OnInit {
public form: FormGroup; public form: UntypedFormGroup;
public customizationSettings: ICustomizationSettings; public customizationSettings: ICustomizationSettings;
public emailSettingsEnabled: boolean; public emailSettingsEnabled: boolean;
public baseUrl: string; public baseUrl: string;
@ -23,7 +23,7 @@ export class ResetPasswordComponent implements OnInit {
private href: string; private href: string;
constructor(private identityService: IdentityService, private notify: NotificationService, constructor(private identityService: IdentityService, private notify: NotificationService,
private fb: FormBuilder, private settingsService: SettingsService, @Inject(APP_BASE_HREF) href:string, private fb: UntypedFormBuilder, private settingsService: SettingsService, @Inject(APP_BASE_HREF) href:string,
private images: ImageService, private sanitizer: DomSanitizer, private customizationFacade: CustomizationFacade) { private images: ImageService, private sanitizer: DomSanitizer, private customizationFacade: CustomizationFacade) {
this.href = href; this.href = href;
this.form = this.fb.group({ this.form = this.fb.group({
@ -43,7 +43,7 @@ export class ResetPasswordComponent implements OnInit {
this.settingsService.getEmailSettingsEnabled().subscribe(x => this.emailSettingsEnabled = x); this.settingsService.getEmailSettingsEnabled().subscribe(x => this.emailSettingsEnabled = x);
} }
public onSubmit(form: FormGroup) { public onSubmit(form: UntypedFormGroup) {
if (this.emailSettingsEnabled) { if (this.emailSettingsEnabled) {
if (form.invalid) { if (form.invalid) {

View file

@ -1,6 +1,6 @@
import { ActivatedRoute, Params } from "@angular/router"; import { ActivatedRoute, Params } from "@angular/router";
import { Component, OnInit } from "@angular/core"; import { Component, OnInit } from "@angular/core";
import { FormBuilder, FormGroup, Validators } from "@angular/forms"; import { UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms";
import { IdentityService, ImageService } from "../services"; import { IdentityService, ImageService } from "../services";
import { CustomizationFacade } from "../state/customization"; import { CustomizationFacade } from "../state/customization";
@ -17,13 +17,13 @@ import { Router } from "@angular/router";
}) })
export class TokenResetPasswordComponent implements OnInit { export class TokenResetPasswordComponent implements OnInit {
public form: FormGroup; public form: UntypedFormGroup;
public customizationSettings: ICustomizationSettings; public customizationSettings: ICustomizationSettings;
public background: any; public background: any;
public baseUrl: string; public baseUrl: string;
constructor(private identityService: IdentityService, private router: Router, private route: ActivatedRoute, private notify: NotificationService, constructor(private identityService: IdentityService, private router: Router, private route: ActivatedRoute, private notify: NotificationService,
private fb: FormBuilder, private location: PlatformLocation, private images: ImageService, private fb: UntypedFormBuilder, private location: PlatformLocation, private images: ImageService,
private sanitizer: DomSanitizer, private customizationFacade: CustomizationFacade, private sanitizer: DomSanitizer, private customizationFacade: CustomizationFacade,
) { ) {
@ -49,7 +49,7 @@ export class TokenResetPasswordComponent implements OnInit {
this.customizationFacade.settings$().subscribe(x => this.customizationSettings = x); this.customizationFacade.settings$().subscribe(x => this.customizationSettings = x);
} }
public onSubmit(form: FormGroup) { public onSubmit(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notify.error("Email address is required"); this.notify.error("Email address is required");
return; return;

View file

@ -1,11 +1,10 @@
import { Component, OnInit } from "@angular/core"; import { Component, OnInit } from "@angular/core";
import { map, startWith } from "rxjs/operators";
import { FormControl } from "@angular/forms";
import { IUserDropdown } from "../../../../interfaces";
import { IdentityService } from "../../../../services";
import { MatDialogRef } from "@angular/material/dialog"; import { MatDialogRef } from "@angular/material/dialog";
import { IdentityService } from "../../../../services";
import { IUserDropdown } from "../../../../interfaces";
import { UntypedFormControl } from "@angular/forms";
import { Observable } from "rxjs"; import { Observable } from "rxjs";
import { map, startWith } from "rxjs/operators";
@Component({ @Component({
selector: "request-behalf", selector: "request-behalf",
@ -16,7 +15,7 @@ export class RequestBehalfComponent implements OnInit {
public dialogRef: MatDialogRef<RequestBehalfComponent>, public dialogRef: MatDialogRef<RequestBehalfComponent>,
public identity: IdentityService) { } public identity: IdentityService) { }
public myControl = new FormControl(); public myControl = new UntypedFormControl();
public options: IUserDropdown[]; public options: IUserDropdown[];
public filteredOptions: Observable<IUserDropdown[]>; public filteredOptions: Observable<IUserDropdown[]>;
public userId: string; public userId: string;

View file

@ -8,7 +8,7 @@ import {
import { empty} from "rxjs"; import { empty} from "rxjs";
import { Router } from "@angular/router"; import { Router } from "@angular/router";
import { FormGroup, FormBuilder } from "@angular/forms"; import { UntypedFormGroup, UntypedFormBuilder } from "@angular/forms";
@Component({ @Component({
selector: "app-nav-search", selector: "app-nav-search",
@ -17,11 +17,11 @@ import { FormGroup, FormBuilder } from "@angular/forms";
}) })
export class NavSearchComponent implements OnInit { export class NavSearchComponent implements OnInit {
public searchForm: FormGroup; public searchForm: UntypedFormGroup;
constructor( constructor(
private router: Router, private router: Router,
private fb: FormBuilder private fb: UntypedFormBuilder
) {} ) {}
public async ngOnInit() { public async ngOnInit() {

View file

@ -1,27 +1,21 @@
import { CommonModule } from "@angular/common"; import { RouterModule, Routes } from "@angular/router";
import { NgModule } from "@angular/core";
import { FormsModule } from "@angular/forms";
import { RouterModule, Routes } from "@angular/router";
import { MovieSearchComponent } from "./moviesearch.component";
import { MovieSearchGridComponent } from "./moviesearchgrid.component";
import { AlbumSearchComponent } from "./music/albumsearch.component"; import { AlbumSearchComponent } from "./music/albumsearch.component";
import { ArtistSearchComponent } from "./music/artistsearch.component"; import { ArtistSearchComponent } from "./music/artistsearch.component";
import { MusicSearchComponent } from "./music/musicsearch.component";
import { SearchComponent } from "./search.component";
import { SeriesInformationComponent } from "./seriesinformation.component";
import { TvSearchComponent } from "./tvsearch.component";
import { CardsFreeModule } from "angular-bootstrap-md";
import { RequestService } from "../services";
import { SearchService } from "../services";
import { AuthGuard } from "../auth/auth.guard"; import { AuthGuard } from "../auth/auth.guard";
import { CommonModule } from "@angular/common";
import { FormsModule } from "@angular/forms";
import { MovieSearchComponent } from "./moviesearch.component";
import { MovieSearchGridComponent } from "./moviesearchgrid.component";
import { MusicSearchComponent } from "./music/musicsearch.component";
import { NgModule } from "@angular/core";
import { RemainingRequestsComponent } from "../requests/remainingrequests.component"; import { RemainingRequestsComponent } from "../requests/remainingrequests.component";
import { RequestService } from "../services";
import { SearchComponent } from "./search.component";
import { SearchService } from "../services";
import { SeriesInformationComponent } from "./seriesinformation.component";
import { SharedModule } from "../shared/shared.module"; import { SharedModule } from "../shared/shared.module";
import { TvSearchComponent } from "./tvsearch.component";
const routes: Routes = [ const routes: Routes = [
{ path: "", component: SearchComponent, canActivate: [AuthGuard] }, { path: "", component: SearchComponent, canActivate: [AuthGuard] },
@ -36,7 +30,6 @@ const routes: Routes = [
SharedModule, SharedModule,
SidebarModule, SidebarModule,
TooltipModule, TooltipModule,
CardsFreeModule,
], ],
declarations: [ declarations: [
SearchComponent, SearchComponent,

View file

@ -1,5 +1,5 @@
import { Injectable } from "@angular/core"; import { Injectable } from "@angular/core";
import { FormGroup, ValidatorFn, Validators } from "@angular/forms"; import { UntypedFormGroup, ValidatorFn, Validators } from "@angular/forms";
@Injectable() @Injectable()
export class ValidationService { export class ValidationService {
@ -9,7 +9,7 @@ export class ValidationService {
* @param form * @param form
* @param name * @param name
*/ */
public disableValidation(form: FormGroup, name: string) { public disableValidation(form: UntypedFormGroup, name: string) {
form.controls[name].clearValidators(); form.controls[name].clearValidators();
form.controls[name].updateValueAndValidity(); form.controls[name].updateValueAndValidity();
} }
@ -19,8 +19,8 @@ export class ValidationService {
* @param form * @param form
* @param name * @param name
*/ */
public enableValidation(form: FormGroup, name: string): void; public enableValidation(form: UntypedFormGroup, name: string): void;
public enableValidation(form: FormGroup, name: string, validators?: ValidatorFn[]) { public enableValidation(form: UntypedFormGroup, name: string, validators?: ValidatorFn[]) {
if (validators) { if (validators) {
// If we provide some use them // If we provide some use them
form.controls[name].setValidators(validators); form.controls[name].setValidators(validators);

View file

@ -1,5 +1,5 @@
import { Component, OnInit } from "@angular/core"; import { Component, OnInit } from "@angular/core";
import { FormBuilder, FormGroup, Validators } from "@angular/forms"; import { UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms";
import { NotificationService } from "../../services"; import { NotificationService } from "../../services";
import { SettingsService } from "../../services"; import { SettingsService } from "../../services";
@ -10,11 +10,11 @@ import { SettingsService } from "../../services";
}) })
export class AuthenticationComponent implements OnInit { export class AuthenticationComponent implements OnInit {
public form: FormGroup; public form: UntypedFormGroup;
constructor(private settingsService: SettingsService, constructor(private settingsService: SettingsService,
private notificationService: NotificationService, private notificationService: NotificationService,
private fb: FormBuilder) { } private fb: UntypedFormBuilder) { }
public ngOnInit() { public ngOnInit() {
this.settingsService.getAuthentication().subscribe(x => { this.settingsService.getAuthentication().subscribe(x => {
@ -42,7 +42,7 @@ export class AuthenticationComponent implements OnInit {
} }
public onSubmit(form: FormGroup) { public onSubmit(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;

View file

@ -1,5 +1,5 @@
import { Component, OnInit } from "@angular/core"; import { Component, OnInit } from "@angular/core";
import { FormBuilder, FormControl, FormGroup, Validators } from "@angular/forms"; import { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup, Validators } from "@angular/forms";
import { CouchPotatoService, NotificationService, SettingsService, TesterService } from "../../services"; import { CouchPotatoService, NotificationService, SettingsService, TesterService } from "../../services";
@ -11,13 +11,13 @@ import { ICouchPotatoProfiles } from "../../interfaces";
}) })
export class CouchPotatoComponent implements OnInit { export class CouchPotatoComponent implements OnInit {
public form: FormGroup; public form: UntypedFormGroup;
public profiles: ICouchPotatoProfiles; public profiles: ICouchPotatoProfiles;
public profilesRunning: boolean; public profilesRunning: boolean;
constructor(private readonly settingsService: SettingsService, constructor(private readonly settingsService: SettingsService,
private readonly fb: FormBuilder, private readonly fb: UntypedFormBuilder,
private readonly notificationService: NotificationService, private readonly notificationService: NotificationService,
private readonly couchPotatoService: CouchPotatoService, private readonly couchPotatoService: CouchPotatoService,
private readonly testerService: TesterService) { } private readonly testerService: TesterService) { }
@ -42,7 +42,7 @@ export class CouchPotatoComponent implements OnInit {
}); });
} }
public getProfiles(form: FormGroup) { public getProfiles(form: UntypedFormGroup) {
this.profilesRunning = true; this.profilesRunning = true;
this.couchPotatoService.getProfiles(form.value).subscribe(x => { this.couchPotatoService.getProfiles(form.value).subscribe(x => {
this.profiles = x; this.profiles = x;
@ -50,7 +50,7 @@ export class CouchPotatoComponent implements OnInit {
}); });
} }
public onSubmit(form: FormGroup) { public onSubmit(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;
@ -67,7 +67,7 @@ export class CouchPotatoComponent implements OnInit {
}); });
} }
public test(form: FormGroup) { public test(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;
@ -82,10 +82,10 @@ export class CouchPotatoComponent implements OnInit {
}); });
} }
public requestToken(form: FormGroup) { public requestToken(form: UntypedFormGroup) {
this.couchPotatoService.getApiKey(form.value).subscribe(x => { this.couchPotatoService.getApiKey(form.value).subscribe(x => {
if (x.success === true) { if (x.success === true) {
(<FormControl>this.form.controls.apiKey).setValue(x.api_key); (<UntypedFormControl>this.form.controls.apiKey).setValue(x.api_key);
this.notificationService.success("Successfully grabbed the Api Key"); this.notificationService.success("Successfully grabbed the Api Key");
} else { } else {
this.notificationService.error("Could not get the Api Key"); this.notificationService.error("Could not get the Api Key");

View file

@ -1,5 +1,5 @@
import { Component, OnInit } from "@angular/core"; import { Component, OnInit } from "@angular/core";
import { FormBuilder, FormGroup, Validators } from "@angular/forms"; import { UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms";
import { NotificationService, SettingsService } from "../../services"; import { NotificationService, SettingsService } from "../../services";
@ -9,12 +9,12 @@ import { NotificationService, SettingsService } from "../../services";
}) })
export class DogNzbComponent implements OnInit { export class DogNzbComponent implements OnInit {
public form: FormGroup; public form: UntypedFormGroup;
public profilesRunning: boolean; public profilesRunning: boolean;
constructor(private readonly settingsService: SettingsService, constructor(private readonly settingsService: SettingsService,
private readonly fb: FormBuilder, private readonly fb: UntypedFormBuilder,
private readonly notificationService: NotificationService) { } private readonly notificationService: NotificationService) { }
public ngOnInit() { public ngOnInit() {
@ -28,7 +28,7 @@ export class DogNzbComponent implements OnInit {
}); });
} }
public onSubmit(form: FormGroup) { public onSubmit(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;

View file

@ -2,7 +2,7 @@
import { EmbyService, JobService, NotificationService, SettingsService, TesterService } from "../../services"; import { EmbyService, JobService, NotificationService, SettingsService, TesterService } from "../../services";
import { IEmbyLibrariesSettings, IEmbyServer, IEmbySettings } from "../../interfaces"; import { IEmbyLibrariesSettings, IEmbyServer, IEmbySettings } from "../../interfaces";
import {FormControl} from '@angular/forms'; import {UntypedFormControl} from '@angular/forms';
import { MatTabChangeEvent } from "@angular/material/tabs"; import { MatTabChangeEvent } from "@angular/material/tabs";
@Component({ @Component({
@ -13,7 +13,7 @@ export class EmbyComponent implements OnInit {
public settings: IEmbySettings; public settings: IEmbySettings;
public hasDiscoveredOrDirty: boolean; public hasDiscoveredOrDirty: boolean;
selected = new FormControl(0); selected = new UntypedFormControl(0);
constructor(private settingsService: SettingsService, constructor(private settingsService: SettingsService,
private notificationService: NotificationService, private notificationService: NotificationService,

View file

@ -1,5 +1,5 @@
import { Component, OnInit } from "@angular/core"; import { Component, OnInit } from "@angular/core";
import { FormBuilder, FormGroup } from "@angular/forms"; import { UntypedFormBuilder, UntypedFormGroup } from "@angular/forms";
import { IIssueCategory } from "../../interfaces"; import { IIssueCategory } from "../../interfaces";
import { IssuesService, NotificationService, SettingsService } from "../../services"; import { IssuesService, NotificationService, SettingsService } from "../../services";
@ -12,11 +12,11 @@ export class IssuesComponent implements OnInit {
public categories: IIssueCategory[]; public categories: IIssueCategory[];
public categoryToAdd: IIssueCategory = {id: 0, value: ""}; public categoryToAdd: IIssueCategory = {id: 0, value: ""};
public form: FormGroup; public form: UntypedFormGroup;
constructor(private issuesService: IssuesService, constructor(private issuesService: IssuesService,
private settingsService: SettingsService, private settingsService: SettingsService,
private readonly fb: FormBuilder, private readonly fb: UntypedFormBuilder,
private notificationService: NotificationService) { } private notificationService: NotificationService) { }
public ngOnInit() { public ngOnInit() {
@ -48,7 +48,7 @@ export class IssuesComponent implements OnInit {
}); });
} }
public onSubmit(form: FormGroup) { public onSubmit(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;

View file

@ -2,7 +2,7 @@
import { IEmbyServer, IJellyfinLibrariesSettings, IJellyfinServer, IJellyfinSettings } from "../../interfaces"; import { IEmbyServer, IJellyfinLibrariesSettings, IJellyfinServer, IJellyfinSettings } from "../../interfaces";
import { JellyfinService, JobService, NotificationService, SettingsService, TesterService } from "../../services"; import { JellyfinService, JobService, NotificationService, SettingsService, TesterService } from "../../services";
import {FormControl} from '@angular/forms'; import {UntypedFormControl} from '@angular/forms';
import { MatTabChangeEvent } from "@angular/material/tabs"; import { MatTabChangeEvent } from "@angular/material/tabs";
@Component({ @Component({
@ -13,7 +13,7 @@ export class JellyfinComponent implements OnInit {
public settings: IJellyfinSettings; public settings: IJellyfinSettings;
public hasDiscoveredOrDirty: boolean; public hasDiscoveredOrDirty: boolean;
selected = new FormControl(0); selected = new UntypedFormControl(0);
constructor(private settingsService: SettingsService, constructor(private settingsService: SettingsService,

View file

@ -1,5 +1,5 @@
import { Component, OnInit } from "@angular/core"; import { Component, OnInit } from "@angular/core";
import { FormBuilder, FormGroup, Validators } from "@angular/forms"; import { UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms";
import { JobService, NotificationService, SettingsService } from "../../services"; import { JobService, NotificationService, SettingsService } from "../../services";
@Component({ @Component({
@ -8,12 +8,12 @@ import { JobService, NotificationService, SettingsService } from "../../services
}) })
export class JobsComponent implements OnInit { export class JobsComponent implements OnInit {
public form: FormGroup; public form: UntypedFormGroup;
public profilesRunning: boolean; public profilesRunning: boolean;
constructor(private readonly settingsService: SettingsService, constructor(private readonly settingsService: SettingsService,
private readonly fb: FormBuilder, private readonly fb: UntypedFormBuilder,
private readonly notificationService: NotificationService, private readonly notificationService: NotificationService,
private readonly jobsService: JobService) { } private readonly jobsService: JobService) { }
@ -52,7 +52,7 @@ export class JobsComponent implements OnInit {
}); });
} }
public onSubmit(form: FormGroup) { public onSubmit(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;

View file

@ -1,5 +1,5 @@
import { Component, OnInit } from "@angular/core"; import { Component, OnInit } from "@angular/core";
import { FormBuilder, FormGroup, Validators } from "@angular/forms"; import { UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms";
import { ILidarrSettings, IMinimumAvailability, IProfiles, IRadarrProfile, IRadarrRootFolder } from "../../interfaces"; import { ILidarrSettings, IMinimumAvailability, IProfiles, IRadarrProfile, IRadarrRootFolder } from "../../interfaces";
import { LidarrService, TesterService } from "../../services"; import { LidarrService, TesterService } from "../../services";
@ -20,12 +20,12 @@ export class LidarrComponent implements OnInit {
public rootFoldersRunning: boolean; public rootFoldersRunning: boolean;
public metadataRunning: boolean; public metadataRunning: boolean;
public advanced = false; public advanced = false;
public form: FormGroup; public form: UntypedFormGroup;
constructor(private settingsService: SettingsService, constructor(private settingsService: SettingsService,
private lidarrService: LidarrService, private lidarrService: LidarrService,
private notificationService: NotificationService, private notificationService: NotificationService,
private fb: FormBuilder, private fb: UntypedFormBuilder,
private testerService: TesterService) { } private testerService: TesterService) { }
public ngOnInit() { public ngOnInit() {
@ -67,7 +67,7 @@ export class LidarrComponent implements OnInit {
}); });
} }
public getProfiles(form: FormGroup) { public getProfiles(form: UntypedFormGroup) {
this.profilesRunning = true; this.profilesRunning = true;
this.lidarrService.getQualityProfiles(form.value).subscribe(x => { this.lidarrService.getQualityProfiles(form.value).subscribe(x => {
this.qualities = x; this.qualities = x;
@ -78,7 +78,7 @@ export class LidarrComponent implements OnInit {
}); });
} }
public getRootFolders(form: FormGroup) { public getRootFolders(form: UntypedFormGroup) {
this.rootFoldersRunning = true; this.rootFoldersRunning = true;
this.lidarrService.getRootFolders(form.value).subscribe(x => { this.lidarrService.getRootFolders(form.value).subscribe(x => {
this.rootFolders = x; this.rootFolders = x;
@ -89,7 +89,7 @@ export class LidarrComponent implements OnInit {
}); });
} }
public getMetadataProfiles(form: FormGroup) { public getMetadataProfiles(form: UntypedFormGroup) {
this.metadataRunning = true; this.metadataRunning = true;
this.lidarrService.getMetadataProfiles(form.value).subscribe(x => { this.lidarrService.getMetadataProfiles(form.value).subscribe(x => {
this.metadataProfiles = x; this.metadataProfiles = x;
@ -100,7 +100,7 @@ export class LidarrComponent implements OnInit {
}); });
} }
public test(form: FormGroup) { public test(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;
@ -117,7 +117,7 @@ export class LidarrComponent implements OnInit {
}); });
} }
public onSubmit(form: FormGroup) { public onSubmit(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;

View file

@ -1,5 +1,5 @@
import { Component, OnInit } from "@angular/core"; import { Component, OnInit } from "@angular/core";
import { FormBuilder, FormGroup } from "@angular/forms"; import { UntypedFormBuilder, UntypedFormGroup } from "@angular/forms";
import { IMobileNotifcationSettings, IMobileUsersViewModel, INotificationTemplates, NotificationType, ICloudMobileDevices, ICloudMobileModel } from "../../interfaces"; import { IMobileNotifcationSettings, IMobileUsersViewModel, INotificationTemplates, NotificationType, ICloudMobileDevices, ICloudMobileModel } from "../../interfaces";
import { TesterService } from "../../services"; import { TesterService } from "../../services";
@ -17,7 +17,7 @@ export class CloudMobileComponent implements OnInit {
public NotificationType = NotificationType; public NotificationType = NotificationType;
public templates: INotificationTemplates[]; public templates: INotificationTemplates[];
public form: FormGroup; public form: UntypedFormGroup;
public devices: MatTableDataSource<ICloudMobileModel>; public devices: MatTableDataSource<ICloudMobileModel>;
public selection = new SelectionModel<ICloudMobileModel>(true, []); public selection = new SelectionModel<ICloudMobileModel>(true, []);
displayedColumns: string[] = ['select', 'username']; displayedColumns: string[] = ['select', 'username'];
@ -25,7 +25,7 @@ export class CloudMobileComponent implements OnInit {
constructor(private settingsService: SettingsService, constructor(private settingsService: SettingsService,
private notificationService: NotificationService, private notificationService: NotificationService,
private fb: FormBuilder, private fb: UntypedFormBuilder,
private mobileService: CloudMobileService) { } private mobileService: CloudMobileService) { }
public async ngOnInit() { public async ngOnInit() {
@ -42,7 +42,7 @@ export class CloudMobileComponent implements OnInit {
} }
} }
public onSubmit(form: FormGroup) { public onSubmit(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;
@ -61,7 +61,7 @@ export class CloudMobileComponent implements OnInit {
} }
public async sendMessage(form: FormGroup) { public async sendMessage(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;

View file

@ -1,5 +1,5 @@
import { Component, OnInit } from "@angular/core"; import { Component, OnInit } from "@angular/core";
import { FormBuilder, FormGroup, Validators } from "@angular/forms"; import { UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms";
import { IDiscordNotifcationSettings, INotificationTemplates, NotificationType } from "../../interfaces"; import { IDiscordNotifcationSettings, INotificationTemplates, NotificationType } from "../../interfaces";
import { TesterService } from "../../services"; import { TesterService } from "../../services";
@ -14,11 +14,11 @@ export class DiscordComponent implements OnInit {
public NotificationType = NotificationType; public NotificationType = NotificationType;
public templates: INotificationTemplates[]; public templates: INotificationTemplates[];
public form: FormGroup; public form: UntypedFormGroup;
constructor(private settingsService: SettingsService, constructor(private settingsService: SettingsService,
private notificationService: NotificationService, private notificationService: NotificationService,
private fb: FormBuilder, private fb: UntypedFormBuilder,
private testerService: TesterService) { } private testerService: TesterService) { }
public ngOnInit() { public ngOnInit() {
@ -36,7 +36,7 @@ export class DiscordComponent implements OnInit {
}); });
} }
public onSubmit(form: FormGroup) { public onSubmit(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;
@ -55,7 +55,7 @@ export class DiscordComponent implements OnInit {
} }
public test(form: FormGroup) { public test(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;

View file

@ -1,5 +1,5 @@
import { Component, OnInit } from "@angular/core"; import { Component, OnInit } from "@angular/core";
import { FormBuilder, FormGroup, Validators } from "@angular/forms"; import { UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms";
import { IEmailNotificationSettings, INotificationTemplates, NotificationType } from "../../interfaces"; import { IEmailNotificationSettings, INotificationTemplates, NotificationType } from "../../interfaces";
import { TesterService } from "../../services"; import { TesterService } from "../../services";
@ -14,11 +14,11 @@ import { SettingsService } from "../../services";
export class EmailNotificationComponent implements OnInit { export class EmailNotificationComponent implements OnInit {
public NotificationType = NotificationType; public NotificationType = NotificationType;
public templates: INotificationTemplates[]; public templates: INotificationTemplates[];
public emailForm: FormGroup; public emailForm: UntypedFormGroup;
constructor(private settingsService: SettingsService, constructor(private settingsService: SettingsService,
private notificationService: NotificationService, private notificationService: NotificationService,
private fb: FormBuilder, private fb: UntypedFormBuilder,
private validationService: ValidationService, private validationService: ValidationService,
private testerService: TesterService) { } private testerService: TesterService) { }
@ -48,7 +48,7 @@ export class EmailNotificationComponent implements OnInit {
}); });
} }
public onSubmit(form: FormGroup) { public onSubmit(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;
@ -67,7 +67,7 @@ export class EmailNotificationComponent implements OnInit {
} }
public test(form: FormGroup) { public test(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;

View file

@ -1,5 +1,5 @@
import { Component, OnInit } from "@angular/core"; import { Component, OnInit } from "@angular/core";
import { FormBuilder, FormGroup, Validators } from "@angular/forms"; import { UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms";
import { IGotifyNotificationSettings, INotificationTemplates, NotificationType } from "../../interfaces"; import { IGotifyNotificationSettings, INotificationTemplates, NotificationType } from "../../interfaces";
import { TesterService } from "../../services"; import { TesterService } from "../../services";
@ -13,11 +13,11 @@ import { SettingsService } from "../../services";
export class GotifyComponent implements OnInit { export class GotifyComponent implements OnInit {
public NotificationType = NotificationType; public NotificationType = NotificationType;
public templates: INotificationTemplates[]; public templates: INotificationTemplates[];
public form: FormGroup; public form: UntypedFormGroup;
constructor(private settingsService: SettingsService, constructor(private settingsService: SettingsService,
private notificationService: NotificationService, private notificationService: NotificationService,
private fb: FormBuilder, private fb: UntypedFormBuilder,
private testerService: TesterService) { } private testerService: TesterService) { }
public ngOnInit() { public ngOnInit() {
@ -33,7 +33,7 @@ export class GotifyComponent implements OnInit {
}); });
} }
public onSubmit(form: FormGroup) { public onSubmit(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;
@ -52,7 +52,7 @@ export class GotifyComponent implements OnInit {
} }
public test(form: FormGroup) { public test(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;

View file

@ -1,5 +1,5 @@
import { Component, OnInit } from "@angular/core"; import { Component, OnInit } from "@angular/core";
import { FormBuilder, FormGroup, Validators } from "@angular/forms"; import { UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms";
import { IMattermostNotifcationSettings, INotificationTemplates, NotificationType } from "../../interfaces"; import { IMattermostNotifcationSettings, INotificationTemplates, NotificationType } from "../../interfaces";
import { TesterService } from "../../services"; import { TesterService } from "../../services";
@ -14,11 +14,11 @@ export class MattermostComponent implements OnInit {
public NotificationType = NotificationType; public NotificationType = NotificationType;
public templates: INotificationTemplates[]; public templates: INotificationTemplates[];
public form: FormGroup; public form: UntypedFormGroup;
constructor(private settingsService: SettingsService, constructor(private settingsService: SettingsService,
private notificationService: NotificationService, private notificationService: NotificationService,
private fb: FormBuilder, private fb: UntypedFormBuilder,
private testerService: TesterService) { } private testerService: TesterService) { }
public ngOnInit() { public ngOnInit() {
@ -36,7 +36,7 @@ export class MattermostComponent implements OnInit {
}); });
} }
public onSubmit(form: FormGroup) { public onSubmit(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;
@ -55,7 +55,7 @@ export class MattermostComponent implements OnInit {
} }
public test(form: FormGroup) { public test(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;

View file

@ -1,5 +1,5 @@
import { Component, OnInit } from "@angular/core"; import { Component, OnInit } from "@angular/core";
import { FormBuilder, FormGroup } from "@angular/forms"; import { UntypedFormBuilder, UntypedFormGroup } from "@angular/forms";
import { IMobileNotifcationSettings, IMobileUsersViewModel, INotificationTemplates, NotificationType } from "../../interfaces"; import { IMobileNotifcationSettings, IMobileUsersViewModel, INotificationTemplates, NotificationType } from "../../interfaces";
import { TesterService } from "../../services"; import { TesterService } from "../../services";
@ -14,13 +14,13 @@ export class MobileComponent implements OnInit {
public NotificationType = NotificationType; public NotificationType = NotificationType;
public templates: INotificationTemplates[]; public templates: INotificationTemplates[];
public form: FormGroup; public form: UntypedFormGroup;
public userList: IMobileUsersViewModel[]; public userList: IMobileUsersViewModel[];
public testUserId: string; public testUserId: string;
constructor(private settingsService: SettingsService, constructor(private settingsService: SettingsService,
private notificationService: NotificationService, private notificationService: NotificationService,
private fb: FormBuilder, private fb: UntypedFormBuilder,
private testerService: TesterService, private testerService: TesterService,
private mobileService: MobileService) { } private mobileService: MobileService) { }
@ -42,7 +42,7 @@ export class MobileComponent implements OnInit {
}); });
} }
public onSubmit(form: FormGroup) { public onSubmit(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;
@ -61,7 +61,7 @@ export class MobileComponent implements OnInit {
} }
public test(form: FormGroup) { public test(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;

View file

@ -1,5 +1,5 @@
import { Component, OnInit } from "@angular/core"; import { Component, OnInit } from "@angular/core";
import { FormBuilder, FormGroup, Validators } from "@angular/forms"; import { UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms";
import { INotificationTemplates, IPushbulletNotificationSettings, NotificationType } from "../../interfaces"; import { INotificationTemplates, IPushbulletNotificationSettings, NotificationType } from "../../interfaces";
import { TesterService } from "../../services"; import { TesterService } from "../../services";
@ -13,11 +13,11 @@ import { SettingsService } from "../../services";
export class PushbulletComponent implements OnInit { export class PushbulletComponent implements OnInit {
public NotificationType = NotificationType; public NotificationType = NotificationType;
public templates: INotificationTemplates[]; public templates: INotificationTemplates[];
public form: FormGroup; public form: UntypedFormGroup;
constructor(private settingsService: SettingsService, constructor(private settingsService: SettingsService,
private notificationService: NotificationService, private notificationService: NotificationService,
private fb: FormBuilder, private fb: UntypedFormBuilder,
private testerService: TesterService) { } private testerService: TesterService) { }
public ngOnInit() { public ngOnInit() {
@ -32,7 +32,7 @@ export class PushbulletComponent implements OnInit {
}); });
} }
public onSubmit(form: FormGroup) { public onSubmit(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;
@ -51,7 +51,7 @@ export class PushbulletComponent implements OnInit {
} }
public test(form: FormGroup) { public test(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;

View file

@ -1,5 +1,5 @@
import { Component, OnInit } from "@angular/core"; import { Component, OnInit } from "@angular/core";
import { FormBuilder, FormGroup, Validators } from "@angular/forms"; import { UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms";
import { INotificationTemplates, IPushoverNotificationSettings, NotificationType } from "../../interfaces"; import { INotificationTemplates, IPushoverNotificationSettings, NotificationType } from "../../interfaces";
import { TesterService } from "../../services"; import { TesterService } from "../../services";
@ -13,11 +13,11 @@ import { SettingsService } from "../../services";
export class PushoverComponent implements OnInit { export class PushoverComponent implements OnInit {
public NotificationType = NotificationType; public NotificationType = NotificationType;
public templates: INotificationTemplates[]; public templates: INotificationTemplates[];
public form: FormGroup; public form: UntypedFormGroup;
constructor(private settingsService: SettingsService, constructor(private settingsService: SettingsService,
private notificationService: NotificationService, private notificationService: NotificationService,
private fb: FormBuilder, private fb: UntypedFormBuilder,
private testerService: TesterService) { } private testerService: TesterService) { }
public ngOnInit() { public ngOnInit() {
@ -34,7 +34,7 @@ export class PushoverComponent implements OnInit {
}); });
} }
public onSubmit(form: FormGroup) { public onSubmit(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;
@ -53,7 +53,7 @@ export class PushoverComponent implements OnInit {
} }
public test(form: FormGroup) { public test(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;

View file

@ -1,5 +1,5 @@
import { Component, OnInit } from "@angular/core"; import { Component, OnInit } from "@angular/core";
import { FormBuilder, FormGroup, Validators } from "@angular/forms"; import { UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms";
import { INotificationTemplates, ISlackNotificationSettings, NotificationType } from "../../interfaces"; import { INotificationTemplates, ISlackNotificationSettings, NotificationType } from "../../interfaces";
import { TesterService } from "../../services"; import { TesterService } from "../../services";
@ -13,11 +13,11 @@ import { SettingsService } from "../../services";
export class SlackComponent implements OnInit { export class SlackComponent implements OnInit {
public NotificationType = NotificationType; public NotificationType = NotificationType;
public templates: INotificationTemplates[]; public templates: INotificationTemplates[];
public form: FormGroup; public form: UntypedFormGroup;
constructor(private settingsService: SettingsService, constructor(private settingsService: SettingsService,
private notificationService: NotificationService, private notificationService: NotificationService,
private fb: FormBuilder, private fb: UntypedFormBuilder,
private testerService: TesterService) { } private testerService: TesterService) { }
public ngOnInit() { public ngOnInit() {
@ -36,7 +36,7 @@ export class SlackComponent implements OnInit {
}); });
} }
public onSubmit(form: FormGroup) { public onSubmit(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;
@ -60,7 +60,7 @@ export class SlackComponent implements OnInit {
} }
public test(form: FormGroup) { public test(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;

View file

@ -1,5 +1,5 @@
import { Component, OnInit } from "@angular/core"; import { Component, OnInit } from "@angular/core";
import { FormBuilder, FormGroup, Validators } from "@angular/forms"; import { UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms";
import { INotificationTemplates, ITelegramNotifcationSettings, NotificationType } from "../../interfaces"; import { INotificationTemplates, ITelegramNotifcationSettings, NotificationType } from "../../interfaces";
import { TesterService } from "../../services"; import { TesterService } from "../../services";
@ -14,11 +14,11 @@ export class TelegramComponent implements OnInit {
public NotificationType = NotificationType; public NotificationType = NotificationType;
public templates: INotificationTemplates[]; public templates: INotificationTemplates[];
public form: FormGroup; public form: UntypedFormGroup;
constructor(private settingsService: SettingsService, constructor(private settingsService: SettingsService,
private notificationService: NotificationService, private notificationService: NotificationService,
private fb: FormBuilder, private fb: UntypedFormBuilder,
private testerService: TesterService) { } private testerService: TesterService) { }
public ngOnInit() { public ngOnInit() {
@ -35,7 +35,7 @@ export class TelegramComponent implements OnInit {
}); });
} }
public onSubmit(form: FormGroup) { public onSubmit(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;
@ -54,7 +54,7 @@ export class TelegramComponent implements OnInit {
} }
public test(form: FormGroup) { public test(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;

View file

@ -1,5 +1,5 @@
import { Component, OnInit } from "@angular/core"; import { Component, OnInit } from "@angular/core";
import { FormBuilder, FormGroup, Validators } from "@angular/forms"; import { UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms";
import { INotificationTemplates, ITwilioSettings, NotificationType } from "../../../interfaces"; import { INotificationTemplates, ITwilioSettings, NotificationType } from "../../../interfaces";
import { TesterService } from "../../../services"; import { TesterService } from "../../../services";
@ -12,11 +12,11 @@ import { SettingsService } from "../../../services";
export class TwilioComponent implements OnInit { export class TwilioComponent implements OnInit {
public NotificationType = NotificationType; public NotificationType = NotificationType;
public templates: INotificationTemplates[]; public templates: INotificationTemplates[];
public form: FormGroup; public form: UntypedFormGroup;
constructor(private settingsService: SettingsService, constructor(private settingsService: SettingsService,
private notificationService: NotificationService, private notificationService: NotificationService,
private fb: FormBuilder, private fb: UntypedFormBuilder,
private testerService: TesterService) { } private testerService: TesterService) { }
public ngOnInit() { public ngOnInit() {
@ -34,7 +34,7 @@ export class TwilioComponent implements OnInit {
}); });
} }
public onSubmit(form: FormGroup) { public onSubmit(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;

View file

@ -1,5 +1,5 @@
import { Component, Input } from "@angular/core"; import { Component, Input } from "@angular/core";
import { FormGroup } from "@angular/forms"; import { UntypedFormGroup } from "@angular/forms";
import { TesterService, NotificationService } from "../../../services"; import { TesterService, NotificationService } from "../../../services";
import { INotificationTemplates, NotificationType } from "../../../interfaces"; import { INotificationTemplates, NotificationType } from "../../../interfaces";
@ -13,13 +13,13 @@ export class WhatsAppComponent {
public NotificationType = NotificationType; public NotificationType = NotificationType;
@Input() public templates: INotificationTemplates[]; @Input() public templates: INotificationTemplates[];
@Input() public form: FormGroup; @Input() public form: UntypedFormGroup;
constructor(private testerService: TesterService, constructor(private testerService: TesterService,
private notificationService: NotificationService) { } private notificationService: NotificationService) { }
public test(form: FormGroup) { public test(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;

View file

@ -1,5 +1,5 @@
import { Component, OnInit } from "@angular/core"; import { Component, OnInit } from "@angular/core";
import { FormBuilder, FormGroup, Validators } from "@angular/forms"; import { UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms";
import { INotificationTemplates, IWebhookNotificationSettings, NotificationType } from "../../interfaces"; import { INotificationTemplates, IWebhookNotificationSettings, NotificationType } from "../../interfaces";
import { TesterService } from "../../services"; import { TesterService } from "../../services";
@ -13,11 +13,11 @@ import { SettingsService } from "../../services";
export class WebhookComponent implements OnInit { export class WebhookComponent implements OnInit {
public NotificationType = NotificationType; public NotificationType = NotificationType;
public templates: INotificationTemplates[]; public templates: INotificationTemplates[];
public form: FormGroup; public form: UntypedFormGroup;
constructor(private settingsService: SettingsService, constructor(private settingsService: SettingsService,
private notificationService: NotificationService, private notificationService: NotificationService,
private fb: FormBuilder, private fb: UntypedFormBuilder,
private testerService: TesterService) { } private testerService: TesterService) { }
public ngOnInit() { public ngOnInit() {
@ -30,7 +30,7 @@ export class WebhookComponent implements OnInit {
}); });
} }
public onSubmit(form: FormGroup) { public onSubmit(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;
@ -48,7 +48,7 @@ export class WebhookComponent implements OnInit {
} }
public test(form: FormGroup) { public test(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;

View file

@ -1,5 +1,5 @@
import { Component, OnInit } from "@angular/core"; import { Component, OnInit } from "@angular/core";
import { FormBuilder, FormGroup } from "@angular/forms"; import { UntypedFormBuilder, UntypedFormGroup } from "@angular/forms";
import { Branch, ILanguageRefine, IOmbiSettings } from "../../interfaces"; import { Branch, ILanguageRefine, IOmbiSettings } from "../../interfaces";
import { NotificationService } from "../../services"; import { NotificationService } from "../../services";
@ -13,13 +13,13 @@ import languageData from "./../../../other/iso-lang.json";
}) })
export class OmbiComponent implements OnInit { export class OmbiComponent implements OnInit {
public form: FormGroup; public form: UntypedFormGroup;
public langauges: ILanguageRefine[]; public langauges: ILanguageRefine[];
public Branch = Branch; public Branch = Branch;
constructor(private settingsService: SettingsService, constructor(private settingsService: SettingsService,
private notificationService: NotificationService, private notificationService: NotificationService,
private fb: FormBuilder) { } private fb: UntypedFormBuilder) { }
public ngOnInit() { public ngOnInit() {
this.settingsService.getOmbi().subscribe(x => { this.settingsService.getOmbi().subscribe(x => {
@ -45,7 +45,7 @@ export class OmbiComponent implements OnInit {
}); });
} }
public onSubmit(form: FormGroup) { public onSubmit(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;

View file

@ -5,7 +5,7 @@ import { takeUntil } from "rxjs/operators";
import { IPlexLibrariesSettings, IPlexServer, IPlexServerResponse, IPlexServerViewModel, IPlexSettings } from "../../interfaces"; import { IPlexLibrariesSettings, IPlexServer, IPlexServerResponse, IPlexServerViewModel, IPlexSettings } from "../../interfaces";
import { JobService, NotificationService, PlexService, SettingsService, TesterService } from "../../services"; import { JobService, NotificationService, PlexService, SettingsService, TesterService } from "../../services";
import { MatTabChangeEvent, MatTabGroup } from "@angular/material/tabs"; import { MatTabChangeEvent, MatTabGroup } from "@angular/material/tabs";
import {FormControl} from '@angular/forms'; import {UntypedFormControl} from '@angular/forms';
@Component({ @Component({
templateUrl: "./plex.component.html", templateUrl: "./plex.component.html",
@ -17,7 +17,7 @@ export class PlexComponent implements OnInit, OnDestroy {
public username: string; public username: string;
public password: string; public password: string;
public serversButton = false; public serversButton = false;
selected = new FormControl(0); selected = new UntypedFormControl(0);
@ViewChild("tabGroup", {static: false}) public tagGroup: MatTabGroup; @ViewChild("tabGroup", {static: false}) public tagGroup: MatTabGroup;
public advanced = false; public advanced = false;

View file

@ -1,5 +1,5 @@
import { ChangeDetectionStrategy, Component, OnInit } from "@angular/core"; import { ChangeDetectionStrategy, Component, OnInit } from "@angular/core";
import { ControlContainer, FormGroup, Validators } from "@angular/forms"; import { ControlContainer, UntypedFormGroup, Validators } from "@angular/forms";
import { IMinimumAvailability, IRadarrProfile, IRadarrRootFolder, IRadarrSettings } from "../../../interfaces"; import { IMinimumAvailability, IRadarrProfile, IRadarrRootFolder, IRadarrSettings } from "../../../interfaces";
import { TesterService, NotificationService, RadarrService } from "../../../services"; import { TesterService, NotificationService, RadarrService } from "../../../services";
@ -18,7 +18,7 @@ export class RadarrFormComponent implements OnInit {
public minimumAvailabilityOptions: IMinimumAvailability[]; public minimumAvailabilityOptions: IMinimumAvailability[];
public profilesRunning: boolean; public profilesRunning: boolean;
public rootFoldersRunning: boolean; public rootFoldersRunning: boolean;
public form: FormGroup; public form: UntypedFormGroup;
constructor(private radarrService: RadarrService, constructor(private radarrService: RadarrService,
private notificationService: NotificationService, private notificationService: NotificationService,
@ -27,7 +27,7 @@ export class RadarrFormComponent implements OnInit {
} }
public ngOnInit() { public ngOnInit() {
this.form = <FormGroup>this.controlContainer.control; this.form = <UntypedFormGroup>this.controlContainer.control;
this.qualities = []; this.qualities = [];
this.qualities.push({ name: "Please Select", id: -1 }); this.qualities.push({ name: "Please Select", id: -1 });
@ -59,7 +59,7 @@ export class RadarrFormComponent implements OnInit {
this.form.controls.minimumAvailability.setValidators(enabled ? [Validators.required] : null); this.form.controls.minimumAvailability.setValidators(enabled ? [Validators.required] : null);
} }
public getProfiles(form: FormGroup) { public getProfiles(form: UntypedFormGroup) {
this.profilesRunning = true; this.profilesRunning = true;
this.radarrService.getQualityProfiles(form.value).subscribe(x => { this.radarrService.getQualityProfiles(form.value).subscribe(x => {
this.qualities = x; this.qualities = x;
@ -70,7 +70,7 @@ export class RadarrFormComponent implements OnInit {
}); });
} }
public getRootFolders(form: FormGroup) { public getRootFolders(form: UntypedFormGroup) {
this.rootFoldersRunning = true; this.rootFoldersRunning = true;
this.radarrService.getRootFolders(form.value).subscribe(x => { this.radarrService.getRootFolders(form.value).subscribe(x => {
this.rootFolders = x; this.rootFolders = x;
@ -81,7 +81,7 @@ export class RadarrFormComponent implements OnInit {
}); });
} }
public test(form: FormGroup) { public test(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;

View file

@ -1,5 +1,5 @@
import { Component, OnInit, QueryList, ViewChild, ViewChildren } from "@angular/core"; import { Component, OnInit, QueryList, ViewChild, ViewChildren } from "@angular/core";
import { FormBuilder, FormGroup } from "@angular/forms"; import { UntypedFormBuilder, UntypedFormGroup } from "@angular/forms";
import { IMinimumAvailability, IRadarrCombined, IRadarrProfile, IRadarrRootFolder } from "../../interfaces"; import { IMinimumAvailability, IRadarrCombined, IRadarrProfile, IRadarrRootFolder } from "../../interfaces";
import { NotificationService, SettingsService } from "../../services"; import { NotificationService, SettingsService } from "../../services";
@ -17,7 +17,7 @@ export class RadarrComponent implements OnInit {
public minimumAvailabilityOptions: IMinimumAvailability[]; public minimumAvailabilityOptions: IMinimumAvailability[];
public profilesRunning: boolean; public profilesRunning: boolean;
public rootFoldersRunning: boolean; public rootFoldersRunning: boolean;
public form: FormGroup; public form: UntypedFormGroup;
public is4kEnabled: boolean = false; public is4kEnabled: boolean = false;
@ViewChildren('4kForm') public form4k: QueryList<RadarrFormComponent>; @ViewChildren('4kForm') public form4k: QueryList<RadarrFormComponent>;
@ -26,7 +26,7 @@ export class RadarrComponent implements OnInit {
constructor(private settingsService: SettingsService, constructor(private settingsService: SettingsService,
private notificationService: NotificationService, private notificationService: NotificationService,
private featureFacade: FeaturesFacade, private featureFacade: FeaturesFacade,
private fb: FormBuilder) { } private fb: UntypedFormBuilder) { }
public ngOnInit() { public ngOnInit() {
@ -74,13 +74,13 @@ export class RadarrComponent implements OnInit {
} }
public onSubmit(form: FormGroup) { public onSubmit(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;
} }
const radarrForm = form.controls.radarr as FormGroup; const radarrForm = form.controls.radarr as UntypedFormGroup;
const radarr4KForm = form.controls.radarr4K as FormGroup; const radarr4KForm = form.controls.radarr4K as UntypedFormGroup;
if (radarrForm.controls.enabled.value && (radarrForm.controls.defaultQualityProfile.value === -1 || radarrForm.controls.defaultRootPath.value === "Please Select")) { if (radarrForm.controls.enabled.value && (radarrForm.controls.defaultQualityProfile.value === -1 || radarrForm.controls.defaultRootPath.value === "Please Select")) {
this.notificationService.error("Please check your entered values for Radarr"); this.notificationService.error("Please check your entered values for Radarr");

View file

@ -1,5 +1,5 @@
import { Component, OnInit } from "@angular/core"; import { Component, OnInit } from "@angular/core";
import { FormBuilder, FormGroup, Validators } from "@angular/forms"; import { UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms";
import { IDropDownModel, ISickRageSettings } from "../../interfaces"; import { IDropDownModel, ISickRageSettings } from "../../interfaces";
import { TesterService } from "../../services"; import { TesterService } from "../../services";
@ -13,12 +13,12 @@ import { SettingsService } from "../../services";
export class SickRageComponent implements OnInit { export class SickRageComponent implements OnInit {
public qualities: IDropDownModel[]; public qualities: IDropDownModel[];
public form: FormGroup; public form: UntypedFormGroup;
constructor(private settingsService: SettingsService, constructor(private settingsService: SettingsService,
private notificationService: NotificationService, private notificationService: NotificationService,
private testerService: TesterService, private testerService: TesterService,
private fb: FormBuilder) { } private fb: UntypedFormBuilder) { }
public ngOnInit() { public ngOnInit() {
this.settingsService.getSickRageSettings() this.settingsService.getSickRageSettings()
@ -36,7 +36,7 @@ export class SickRageComponent implements OnInit {
}); });
} }
public test(form: FormGroup) { public test(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;
@ -51,7 +51,7 @@ export class SickRageComponent implements OnInit {
}); });
} }
public onSubmit(form: FormGroup) { public onSubmit(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;

View file

@ -1,5 +1,5 @@
import { Component, OnInit } from "@angular/core"; import { Component, OnInit } from "@angular/core";
import { FormBuilder, FormControl, FormGroup, Validators } from "@angular/forms"; import { UntypedFormBuilder, FormControl, UntypedFormGroup, Validators } from "@angular/forms";
import { ILanguageProfiles, ISonarrProfile, ISonarrRootFolder } from "../../interfaces"; import { ILanguageProfiles, ISonarrProfile, ISonarrRootFolder } from "../../interfaces";
@ -27,7 +27,7 @@ export class SonarrComponent implements OnInit {
public profilesRunning: boolean; public profilesRunning: boolean;
public rootFoldersRunning: boolean; public rootFoldersRunning: boolean;
public langRunning: boolean; public langRunning: boolean;
public form: FormGroup; public form: UntypedFormGroup;
public advanced = false; public advanced = false;
formErrors: any; formErrors: any;
@ -35,7 +35,7 @@ export class SonarrComponent implements OnInit {
private sonarrService: SonarrService, private sonarrService: SonarrService,
private notificationService: NotificationService, private notificationService: NotificationService,
private testerService: TesterService, private testerService: TesterService,
private fb: FormBuilder){} private fb: UntypedFormBuilder){}
onFormValuesChanged() onFormValuesChanged()
{ {
@ -115,7 +115,7 @@ export class SonarrComponent implements OnInit {
this.qualities.push({ name: "Please Select", id: -1 }); this.qualities.push({ name: "Please Select", id: -1 });
} }
public getProfiles(form: FormGroup) { public getProfiles(form: UntypedFormGroup) {
this.profilesRunning = true; this.profilesRunning = true;
this.sonarrService.getQualityProfiles(form.value) this.sonarrService.getQualityProfiles(form.value)
.subscribe(x => { .subscribe(x => {
@ -127,7 +127,7 @@ export class SonarrComponent implements OnInit {
}); });
} }
public getRootFolders(form: FormGroup) { public getRootFolders(form: UntypedFormGroup) {
this.rootFoldersRunning = true; this.rootFoldersRunning = true;
this.sonarrService.getRootFolders(form.value) this.sonarrService.getRootFolders(form.value)
.subscribe(x => { .subscribe(x => {
@ -140,7 +140,7 @@ export class SonarrComponent implements OnInit {
}); });
} }
public getLanguageProfiles(form: FormGroup) { public getLanguageProfiles(form: UntypedFormGroup) {
this.langRunning = true; this.langRunning = true;
this.sonarrService.getV3LanguageProfiles(form.value) this.sonarrService.getV3LanguageProfiles(form.value)
.subscribe(x => { .subscribe(x => {
@ -155,7 +155,7 @@ export class SonarrComponent implements OnInit {
} }
} }
public test(form: FormGroup) { public test(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;
@ -172,7 +172,7 @@ export class SonarrComponent implements OnInit {
}); });
} }
public onSubmit(form: FormGroup) { public onSubmit(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;

View file

@ -1,6 +1,6 @@
import {COMMA, ENTER} from "@angular/cdk/keycodes"; import {COMMA, ENTER} from "@angular/cdk/keycodes";
import { Component, ElementRef, OnInit, ViewChild } from "@angular/core"; import { Component, ElementRef, OnInit, ViewChild } from "@angular/core";
import { FormBuilder, FormGroup } from "@angular/forms"; import { UntypedFormBuilder, UntypedFormGroup } from "@angular/forms";
import { ILanguage, IMovieDbKeyword, ITheMovieDbSettings } from "../../interfaces"; import { ILanguage, IMovieDbKeyword, ITheMovieDbSettings } from "../../interfaces";
import { debounceTime, switchMap } from "rxjs/operators"; import { debounceTime, switchMap } from "rxjs/operators";
@ -26,7 +26,7 @@ export class TheMovieDbComponent implements OnInit {
public excludedKeywords: IKeywordTag[]; public excludedKeywords: IKeywordTag[];
public excludedMovieGenres: IKeywordTag[]; public excludedMovieGenres: IKeywordTag[];
public excludedTvGenres: IKeywordTag[]; public excludedTvGenres: IKeywordTag[];
public tagForm: FormGroup; public tagForm: UntypedFormGroup;
public languages: ILanguage[]; public languages: ILanguage[];
public filteredTags: IMovieDbKeyword[]; public filteredTags: IMovieDbKeyword[];
public filteredMovieGenres: IMovieDbKeyword[]; public filteredMovieGenres: IMovieDbKeyword[];
@ -37,7 +37,7 @@ export class TheMovieDbComponent implements OnInit {
private notificationService: NotificationService, private notificationService: NotificationService,
private tmdbService: TheMovieDbService, private tmdbService: TheMovieDbService,
private searchService: SearchV2Service, private searchService: SearchV2Service,
private fb: FormBuilder) { } private fb: UntypedFormBuilder) { }
public ngOnInit() { public ngOnInit() {
this.settingsService.getTheMovieDbSettings().subscribe(settings => { this.settingsService.getTheMovieDbSettings().subscribe(settings => {

View file

@ -1,5 +1,5 @@
import { Component, OnInit } from "@angular/core"; import { Component, OnInit } from "@angular/core";
import { FormBuilder, FormGroup } from "@angular/forms"; import { UntypedFormBuilder, UntypedFormGroup } from "@angular/forms";
import { NotificationService } from "../../services"; import { NotificationService } from "../../services";
import { JobService, SettingsService } from "../../services"; import { JobService, SettingsService } from "../../services";
@ -10,7 +10,7 @@ import { JobService, SettingsService } from "../../services";
}) })
export class UpdateComponent implements OnInit { export class UpdateComponent implements OnInit {
public form: FormGroup; public form: UntypedFormGroup;
public updateAvailable = false; public updateAvailable = false;
public enableUpdateButton = false; public enableUpdateButton = false;
public isWindows = false; public isWindows = false;
@ -22,7 +22,7 @@ export class UpdateComponent implements OnInit {
constructor(private settingsService: SettingsService, constructor(private settingsService: SettingsService,
private notificationService: NotificationService, private notificationService: NotificationService,
private updateService: JobService, private updateService: JobService,
private fb: FormBuilder) { } private fb: UntypedFormBuilder) { }
public ngOnInit() { public ngOnInit() {
this.settingsService.getUpdateSettings() this.settingsService.getUpdateSettings()
@ -59,7 +59,7 @@ export class UpdateComponent implements OnInit {
this.notificationService.success("We triggered the update job"); this.notificationService.success("We triggered the update job");
} }
public onSubmit(form: FormGroup) { public onSubmit(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;

View file

@ -1,5 +1,5 @@
import { Component, OnInit } from "@angular/core"; import { Component, OnInit } from "@angular/core";
import { FormBuilder, FormGroup, Validators } from "@angular/forms"; import { UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms";
import { NotificationService, SettingsService } from "../../services"; import { NotificationService, SettingsService } from "../../services";
@ -9,10 +9,10 @@ import { NotificationService, SettingsService } from "../../services";
}) })
export class VoteComponent implements OnInit { export class VoteComponent implements OnInit {
public form: FormGroup; public form: UntypedFormGroup;
constructor(private settingsService: SettingsService, constructor(private settingsService: SettingsService,
private readonly fb: FormBuilder, private readonly fb: UntypedFormBuilder,
private notificationService: NotificationService) { } private notificationService: NotificationService) { }
public ngOnInit() { public ngOnInit() {
@ -26,7 +26,7 @@ export class VoteComponent implements OnInit {
}); });
} }
public onSubmit(form: FormGroup) { public onSubmit(form: UntypedFormGroup) {
if (form.invalid) { if (form.invalid) {
this.notificationService.error("Please check your entered values"); this.notificationService.error("Please check your entered values");
return; return;

View file

@ -1,5 +1,5 @@
import { Component, Inject, OnInit } from "@angular/core"; import { Component, Inject, OnInit } from "@angular/core";
import { FormBuilder, FormGroup } from "@angular/forms"; import { UntypedFormBuilder, UntypedFormGroup } from "@angular/forms";
import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material/dialog"; import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material/dialog";
import { firstValueFrom, Observable } from "rxjs"; import { firstValueFrom, Observable } from "rxjs";
import { startWith, map } from "rxjs/operators"; import { startWith, map } from "rxjs/operators";
@ -25,10 +25,10 @@ export class AdminRequestDialogComponent implements OnInit {
private sonarrService: SonarrService, private sonarrService: SonarrService,
private settingsService: SettingsService, private settingsService: SettingsService,
private radarrService: RadarrService, private radarrService: RadarrService,
private fb: FormBuilder private fb: UntypedFormBuilder
) {} ) {}
public form: FormGroup; public form: UntypedFormGroup;
public RequestType = RequestType; public RequestType = RequestType;
public options: IUserDropdown[]; public options: IUserDropdown[];

View file

@ -1,5 +1,5 @@
import { Component, Inject, OnInit } from "@angular/core"; import { Component, Inject, OnInit } from "@angular/core";
import { FormBuilder, FormGroup } from "@angular/forms"; import { UntypedFormBuilder, UntypedFormGroup } from "@angular/forms";
import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material/dialog"; import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material/dialog";
import { RequestType } from "../../interfaces"; import { RequestType } from "../../interfaces";
import { SearchV2Service } from "../../services"; import { SearchV2Service } from "../../services";
@ -13,12 +13,12 @@ import { AdvancedSearchDialogDataService } from "./advanced-search-dialog-data.s
export class AdvancedSearchDialogComponent implements OnInit { export class AdvancedSearchDialogComponent implements OnInit {
constructor( constructor(
public dialogRef: MatDialogRef<AdvancedSearchDialogComponent, boolean>, public dialogRef: MatDialogRef<AdvancedSearchDialogComponent, boolean>,
private fb: FormBuilder, private fb: UntypedFormBuilder,
private searchService: SearchV2Service, private searchService: SearchV2Service,
private advancedSearchDialogService: AdvancedSearchDialogDataService private advancedSearchDialogService: AdvancedSearchDialogDataService
) {} ) {}
public form: FormGroup; public form: UntypedFormGroup;
public async ngOnInit() { public async ngOnInit() {

View file

@ -1,5 +1,5 @@
import { Component, ElementRef, Input, OnInit, ViewChild } from "@angular/core"; import { Component, ElementRef, Input, OnInit, ViewChild } from "@angular/core";
import { FormControl, FormGroup } from "@angular/forms"; import { UntypedFormControl, UntypedFormGroup } from "@angular/forms";
import { debounceTime, distinctUntilChanged, map, startWith, switchMap } from "rxjs/operators"; import { debounceTime, distinctUntilChanged, map, startWith, switchMap } from "rxjs/operators";
import { IMovieDbKeyword } from "../../../interfaces"; import { IMovieDbKeyword } from "../../../interfaces";
@ -16,7 +16,7 @@ export class GenreSelectComponent {
private searchService: SearchV2Service private searchService: SearchV2Service
) {} ) {}
@Input() public form: FormGroup; @Input() public form: UntypedFormGroup;
private _mediaType: string; private _mediaType: string;
@Input() set mediaType(type: string) { @Input() set mediaType(type: string) {
@ -33,7 +33,7 @@ export class GenreSelectComponent {
return this._mediaType; return this._mediaType;
} }
public genres: IMovieDbKeyword[] = []; public genres: IMovieDbKeyword[] = [];
public control = new FormControl(); public control = new UntypedFormControl();
public filteredTags: IMovieDbKeyword[]; public filteredTags: IMovieDbKeyword[];
public filteredKeywords: Observable<IMovieDbKeyword[]>; public filteredKeywords: Observable<IMovieDbKeyword[]>;

View file

@ -1,5 +1,5 @@
import { Component, ElementRef, Input, OnInit, ViewChild } from "@angular/core"; import { Component, ElementRef, Input, OnInit, ViewChild } from "@angular/core";
import { FormControl, FormGroup } from "@angular/forms"; import { UntypedFormControl, UntypedFormGroup } from "@angular/forms";
import { debounceTime, distinctUntilChanged, startWith, switchMap } from "rxjs/operators"; import { debounceTime, distinctUntilChanged, startWith, switchMap } from "rxjs/operators";
import { IMovieDbKeyword } from "../../../interfaces"; import { IMovieDbKeyword } from "../../../interfaces";
@ -16,8 +16,8 @@ export class KeywordSearchComponent implements OnInit {
private tmdbService: TheMovieDbService private tmdbService: TheMovieDbService
) {} ) {}
@Input() public form: FormGroup; @Input() public form: UntypedFormGroup;
public control = new FormControl(); public control = new UntypedFormControl();
public filteredTags: IMovieDbKeyword[]; public filteredTags: IMovieDbKeyword[];
public filteredKeywords: Observable<IMovieDbKeyword[]>; public filteredKeywords: Observable<IMovieDbKeyword[]>;

View file

@ -1,5 +1,5 @@
import { Component, ElementRef, Input, OnInit, ViewChild } from "@angular/core"; import { Component, ElementRef, Input, OnInit, ViewChild } from "@angular/core";
import { FormControl, FormGroup } from "@angular/forms"; import { UntypedFormControl, UntypedFormGroup } from "@angular/forms";
import { IMovieDbKeyword, IWatchProvidersResults } from "../../../interfaces"; import { IMovieDbKeyword, IWatchProvidersResults } from "../../../interfaces";
import { debounceTime, distinctUntilChanged, map, startWith, switchMap } from "rxjs/operators"; import { debounceTime, distinctUntilChanged, map, startWith, switchMap } from "rxjs/operators";
@ -30,10 +30,10 @@ export class WatchProvidersSelectComponent {
get mediaType(): string { get mediaType(): string {
return this._mediaType; return this._mediaType;
} }
@Input() public form: FormGroup; @Input() public form: UntypedFormGroup;
public watchProviders: IWatchProvidersResults[] = []; public watchProviders: IWatchProvidersResults[] = [];
public control = new FormControl(); public control = new UntypedFormControl();
public filteredTags: IWatchProvidersResults[]; public filteredTags: IWatchProvidersResults[];
public filteredList: Observable<IWatchProvidersResults[]>; public filteredList: Observable<IWatchProvidersResults[]>;

View file

@ -5,7 +5,7 @@ import { AvailableLanguages } from "./user-preference.constants";
import { IdentityService, NotificationService, ValidationService } from "../../../services"; import { IdentityService, NotificationService, ValidationService } from "../../../services";
import { IUser, UserType } from "../../../interfaces"; import { IUser, UserType } from "../../../interfaces";
import { Md5 } from "ts-md5"; import { Md5 } from "ts-md5";
import { FormBuilder, FormGroup, Validators } from "@angular/forms"; import { UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms";
import { APP_BASE_HREF } from "@angular/common"; import { APP_BASE_HREF } from "@angular/common";
import { CustomizationFacade } from "../../../state/customization"; import { CustomizationFacade } from "../../../state/customization";
@ -26,7 +26,7 @@ export class UserPreferenceComponent implements OnInit {
public UserType = UserType; public UserType = UserType;
public baseUrl: string; public baseUrl: string;
public passwordForm: FormGroup; public passwordForm: UntypedFormGroup;
private user: IUser; private user: IUser;
private applicationUrl: string = this.customizationFacade.appUrl(); private applicationUrl: string = this.customizationFacade.appUrl();
@ -36,7 +36,7 @@ export class UserPreferenceComponent implements OnInit {
private readonly translate: TranslateService, private readonly translate: TranslateService,
private readonly notification: NotificationService, private readonly notification: NotificationService,
private readonly identityService: IdentityService, private readonly identityService: IdentityService,
private readonly fb: FormBuilder, private readonly fb: UntypedFormBuilder,
private readonly validationService: ValidationService, private readonly validationService: ValidationService,
private readonly customizationFacade: CustomizationFacade, private readonly customizationFacade: CustomizationFacade,
@Inject(APP_BASE_HREF) public internalBaseUrl: string) { } @Inject(APP_BASE_HREF) public internalBaseUrl: string) { }

View file

@ -1,6 +1,6 @@
<div class="wizard-background"> <div class="wizard-background">
<div class="container wizard-inner"> <div class="container wizard-inner">
<mat-horizontal-stepper linear #stepper> <mat-stepper linear #stepper>
<mat-step > <mat-step >
<form > <form >
<ng-template matStepLabel>Welcome</ng-template> <ng-template matStepLabel>Welcome</ng-template>
@ -53,7 +53,7 @@
</form> </form>
</mat-step> </mat-step>
<mat-step [optional]="true"> <mat-step [optional]="true">
<form > <form>
<ng-template matStepLabel>Ombi config</ng-template> <ng-template matStepLabel>Ombi config</ng-template>
<wizard-ombi [config]="config"></wizard-ombi> <wizard-ombi [config]="config"></wizard-ombi>
<div> <div>
@ -81,6 +81,6 @@
<button mat-button (click)="stepper.reset()" class="mat-raised-button mat-error left">Reset</button> <button mat-button (click)="stepper.reset()" class="mat-raised-button mat-error left">Reset</button>
</div> </div>
</mat-step> </mat-step>
</mat-horizontal-stepper> </mat-stepper>
</div> </div>
</div> </div>

View file

@ -1,10 +1,10 @@
import { AfterViewInit, Component, OnInit, ViewChild } from "@angular/core"; import { Component, OnInit, ViewChild } from "@angular/core";
import { IdentityService, NotificationService, SettingsService } from "../../services"; import { IdentityService, NotificationService, SettingsService } from "../../services";
import { CustomizationFacade } from "../../state/customization/customization.facade"; import { CustomizationFacade } from "../../state/customization/customization.facade";
import { ICreateWizardUser } from "../../interfaces"; import { ICreateWizardUser } from "../../interfaces";
import { IOmbiConfigModel } from "../models/OmbiConfigModel"; import { IOmbiConfigModel } from "../models/OmbiConfigModel";
import { MatHorizontalStepper } from'@angular/material/stepper'; import { MatStepper } from'@angular/material/stepper';
import { Router } from "@angular/router"; import { Router } from "@angular/router";
import { WizardService } from "../services/wizard.service"; import { WizardService } from "../services/wizard.service";
@ -14,7 +14,7 @@ import { WizardService } from "../services/wizard.service";
}) })
export class WelcomeComponent implements OnInit { export class WelcomeComponent implements OnInit {
@ViewChild('stepper', {static: false}) public stepper: MatHorizontalStepper; @ViewChild('stepper', {static: false}) public stepper: MatStepper;
public localUser: ICreateWizardUser; public localUser: ICreateWizardUser;
public config: IOmbiConfigModel; public config: IOmbiConfigModel;

View file

@ -9,7 +9,7 @@
"moduleResolution": "node", "moduleResolution": "node",
"emitDecoratorMetadata": true, "emitDecoratorMetadata": true,
"experimentalDecorators": true, "experimentalDecorators": true,
"target": "es2015", "target": "es2020",
"types": ["node"], "types": ["node"],
"resolveJsonModule":true, "resolveJsonModule":true,
"allowSyntheticDefaultImports":true, "allowSyntheticDefaultImports":true,

View file

@ -0,0 +1,32 @@
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"module": "esnext",
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es2020",
"types": ["node"],
"resolveJsonModule":true,
"allowSyntheticDefaultImports":true,
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2017",
"dom"
]
}
,
"files": [
"main.ts",
"polyfills.ts"
],
"include": [
"src/**/*.d.ts"
]
}

File diff suppressed because it is too large Load diff

View file

@ -24,7 +24,7 @@ export class DiscoverCard {
} }
get requestType(): Cypress.Chainable<any> { get requestType(): Cypress.Chainable<any> {
return cy.get(`#type${this.id}`); return cy.get(`#type${this.id}-${this.movie ? 'movie': 'tvShow'}`);
} }
get statusClass(): Cypress.Chainable<any> { get statusClass(): Cypress.Chainable<any> {

View file

@ -3,7 +3,7 @@ import { searchPage as Page } from "@/integration/page-objects";
describe("Search Tests", () => { describe("Search Tests", () => {
beforeEach(() => { beforeEach(() => {
cy.login(); cy.login();
cy.intercept("POST", "v2/search/multi/").as("searchResponse"); cy.intercept("POST", "api/v2/search/multi/*").as("searchResponse");
}); });
it("Single result when TV Search Only", () => { it("Single result when TV Search Only", () => {