diff --git a/src/Ombi/ClientApp/app/login/login.component.ts b/src/Ombi/ClientApp/app/login/login.component.ts
index 357a8ca9f..661850e86 100644
--- a/src/Ombi/ClientApp/app/login/login.component.ts
+++ b/src/Ombi/ClientApp/app/login/login.component.ts
@@ -1,4 +1,4 @@
-import { Component, OnInit } from "@angular/core";
+import { Component, OnDestroy, OnInit } from "@angular/core";
import { FormBuilder, FormGroup, Validators } from "@angular/forms";
import { ActivatedRoute, Router } from "@angular/router";
import { TranslateService } from "@ngx-translate/core";
@@ -13,11 +13,14 @@ import { StatusService } from "../services";
import { DomSanitizer } from "@angular/platform-browser";
import { ImageService } from "../services";
+import { fadeInOutAnimation } from "../animations/fadeinout";
+
@Component({
templateUrl: "./login.component.html",
+ animations: [fadeInOutAnimation],
styleUrls: ["./login.component.scss"],
})
-export class LoginComponent implements OnInit {
+export class LoginComponent implements OnDestroy, OnInit {
public form: FormGroup;
public customizationSettings: ICustomizationSettings;
@@ -25,6 +28,7 @@ export class LoginComponent implements OnInit {
public background: any;
public landingFlag: boolean;
public baseUrl: string;
+ private timer: any;
private errorBody: string;
private errorValidation: string;
@@ -67,6 +71,10 @@ export class LoginComponent implements OnInit {
this.images.getRandomBackground().subscribe(x => {
this.background = this.sanitizer.bypassSecurityTrustStyle("linear-gradient(-10deg, transparent 20%, rgba(0,0,0,0.7) 20.0%, rgba(0,0,0,0.7) 80.0%, transparent 80%),url(" + x.url + ")");
});
+ this.timer = setInterval(() => {
+ this.cycleBackground();
+ }, 10000);
+
const base = this.location.getBaseHrefFromDOM();
if (base.length > 1) {
this.baseUrl = base;
@@ -102,4 +110,19 @@ export class LoginComponent implements OnInit {
}, err => this.notify.error(this.errorBody));
});
}
+
+ public ngOnDestroy() {
+ clearInterval(this.timer);
+ }
+
+ private cycleBackground() {
+ this.images.getRandomBackground().subscribe(x => {
+ this.background = "";
+ });
+ this.images.getRandomBackground().subscribe(x => {
+ this.background = this.sanitizer
+ .bypassSecurityTrustStyle("linear-gradient(-10deg, transparent 20%, rgba(0,0,0,0.7) 20.0%, rgba(0,0,0,0.7) 80.0%, transparent 80%), url(" + x.url + ")");
+ });
+ }
+
}
diff --git a/src/Ombi/Ombi.csproj b/src/Ombi/Ombi.csproj
index 393de0e23..3b7e7400e 100644
--- a/src/Ombi/Ombi.csproj
+++ b/src/Ombi/Ombi.csproj
@@ -97,5 +97,13 @@
+
+
+
+
+
+
+
+
diff --git a/src/Ombi/webpack.config.vendor.ts b/src/Ombi/webpack.config.vendor.ts
index 1fdacb684..b50e784f4 100644
--- a/src/Ombi/webpack.config.vendor.ts
+++ b/src/Ombi/webpack.config.vendor.ts
@@ -80,7 +80,7 @@ module.exports = (env: any) => {
},
plugins: [
new webpack.ProvidePlugin({ $: "jquery", jQuery: "jquery", Hammer: "hammerjs/hammer" }), // Global identifiers
- new webpack.ContextReplacementPlugin(/\@angular(\\|\/)core(\\|\/)esm5/, path.join(__dirname,"./client")), // Workaround for https://github.com/angular/angular/issues/20357
+ new webpack.ContextReplacementPlugin(/\@angular(\\|\/)core(\\|\/)esm5/, path.join(__dirname, "./client")), // Workaround for https://github.com/angular/angular/issues/20357
new webpack.ContextReplacementPlugin(/\@angular\b.*\b(bundles|linker)/, path.join(__dirname, "./ClientApp")), // Workaround for https://github.com/angular/angular/issues/11580
new webpack.ContextReplacementPlugin(/angular(\\|\/)core(\\|\/)@angular/, path.join(__dirname, "./ClientApp")), // Workaround for https://github.com/angular/angular/issues/14898
extractCSS,