]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - client/src/app/core/routing/redirect.service.ts
Add note about instance config in contributing guide
[github/Chocobozzz/PeerTube.git] / client / src / app / core / routing / redirect.service.ts
CommitLineData
901637bb
C
1import { Injectable } from '@angular/core'
2import { Router } from '@angular/router'
3import { ServerService } from '../server'
4
5@Injectable()
6export class RedirectService {
7 // Default route could change according to the instance configuration
8 static INIT_DEFAULT_ROUTE = '/videos/trending'
9 static DEFAULT_ROUTE = RedirectService.INIT_DEFAULT_ROUTE
10
11 constructor (
12 private router: Router,
13 private serverService: ServerService
14 ) {
15 // The config is first loaded from the cache so try to get the default route
16 const config = this.serverService.getConfig()
17 if (config && config.instance && config.instance.defaultClientRoute) {
18 RedirectService.DEFAULT_ROUTE = config.instance.defaultClientRoute
19 }
20
21 this.serverService.configLoaded
a51bad1a
C
22 .subscribe(() => {
23 const defaultRouteConfig = this.serverService.getConfig().instance.defaultClientRoute
901637bb 24
a51bad1a
C
25 if (defaultRouteConfig) {
26 RedirectService.DEFAULT_ROUTE = defaultRouteConfig
27 }
28 })
901637bb
C
29 }
30
31 redirectToHomepage () {
32 console.log('Redirecting to %s...', RedirectService.DEFAULT_ROUTE)
33
989e526a 34 this.router.navigate([ RedirectService.DEFAULT_ROUTE ], { skipLocationChange: true })
a51bad1a
C
35 .catch(() => {
36 console.error(
37 'Cannot navigate to %s, resetting default route to %s.',
38 RedirectService.DEFAULT_ROUTE,
39 RedirectService.INIT_DEFAULT_ROUTE
40 )
901637bb 41
a51bad1a 42 RedirectService.DEFAULT_ROUTE = RedirectService.INIT_DEFAULT_ROUTE
989e526a 43 return this.router.navigate([ RedirectService.DEFAULT_ROUTE ], { skipLocationChange: true })
a51bad1a 44 })
901637bb
C
45
46 }
901637bb 47}