From 901637bb87f5eb0518fb7ca69d98b53ed918339e Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Thu, 1 Mar 2018 13:57:29 +0100 Subject: Add ability to change the homepage --- client/src/app/core/routing/redirect.service.ts | 48 +++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 client/src/app/core/routing/redirect.service.ts (limited to 'client/src/app/core/routing/redirect.service.ts') diff --git a/client/src/app/core/routing/redirect.service.ts b/client/src/app/core/routing/redirect.service.ts new file mode 100644 index 000000000..a0125e0ae --- /dev/null +++ b/client/src/app/core/routing/redirect.service.ts @@ -0,0 +1,48 @@ +import { Injectable } from '@angular/core' +import { Router } from '@angular/router' +import { ServerService } from '../server' + +@Injectable() +export class RedirectService { + // Default route could change according to the instance configuration + static INIT_DEFAULT_ROUTE = '/videos/trending' + static DEFAULT_ROUTE = RedirectService.INIT_DEFAULT_ROUTE + + constructor ( + private router: Router, + private serverService: ServerService + ) { + // The config is first loaded from the cache so try to get the default route + const config = this.serverService.getConfig() + if (config && config.instance && config.instance.defaultClientRoute) { + RedirectService.DEFAULT_ROUTE = config.instance.defaultClientRoute + } + + this.serverService.configLoaded + .subscribe(() => { + const defaultRouteConfig = this.serverService.getConfig().instance.defaultClientRoute + + if (defaultRouteConfig) { + RedirectService.DEFAULT_ROUTE = defaultRouteConfig + } + }) + } + + redirectToHomepage () { + console.log('Redirecting to %s...', RedirectService.DEFAULT_ROUTE) + + this.router.navigate([ RedirectService.DEFAULT_ROUTE ]) + .catch(() => { + console.error( + 'Cannot navigate to %s, resetting default route to %s.', + RedirectService.DEFAULT_ROUTE, + RedirectService.INIT_DEFAULT_ROUTE + ) + + RedirectService.DEFAULT_ROUTE = RedirectService.INIT_DEFAULT_ROUTE + return this.router.navigate([ RedirectService.DEFAULT_ROUTE ]) + }) + + } + +} -- cgit v1.2.3