diff options
author | Chocobozzz <me@florianbigard.com> | 2018-02-22 10:22:53 +0100 |
---|---|---|
committer | Chocobozzz <me@florianbigard.com> | 2018-02-22 10:22:53 +0100 |
commit | 00b5556c182fa70dfca17c517488b8afae6257c9 (patch) | |
tree | 853ad8d85572b5b37b1956fea96a51fed211453f /client/src/app/app.component.ts | |
parent | 6221f311de0eb8f2a9e7e4a77b8cb0ecbde6dfcd (diff) | |
download | PeerTube-00b5556c182fa70dfca17c517488b8afae6257c9.tar.gz PeerTube-00b5556c182fa70dfca17c517488b8afae6257c9.tar.zst PeerTube-00b5556c182fa70dfca17c517488b8afae6257c9.zip |
Add ability to add custom css/javascript
Diffstat (limited to 'client/src/app/app.component.ts')
-rw-r--r-- | client/src/app/app.component.ts | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/client/src/app/app.component.ts b/client/src/app/app.component.ts index 3af33ba2b..25936146c 100644 --- a/client/src/app/app.component.ts +++ b/client/src/app/app.component.ts | |||
@@ -1,4 +1,5 @@ | |||
1 | import { Component, OnInit } from '@angular/core' | 1 | import { Component, OnInit } from '@angular/core' |
2 | import { DomSanitizer, SafeHtml } from '@angular/platform-browser' | ||
2 | import { GuardsCheckStart, Router } from '@angular/router' | 3 | import { GuardsCheckStart, Router } from '@angular/router' |
3 | import { AuthService, ServerService } from '@app/core' | 4 | import { AuthService, ServerService } from '@app/core' |
4 | import { isInSmallView } from '@app/shared/misc/utils' | 5 | import { isInSmallView } from '@app/shared/misc/utils' |
@@ -24,10 +25,13 @@ export class AppComponent implements OnInit { | |||
24 | 25 | ||
25 | isMenuDisplayed = true | 26 | isMenuDisplayed = true |
26 | 27 | ||
28 | customCSS: SafeHtml | ||
29 | |||
27 | constructor ( | 30 | constructor ( |
28 | private router: Router, | 31 | private router: Router, |
29 | private authService: AuthService, | 32 | private authService: AuthService, |
30 | private serverService: ServerService | 33 | private serverService: ServerService, |
34 | private domSanitizer: DomSanitizer | ||
31 | ) {} | 35 | ) {} |
32 | 36 | ||
33 | get serverVersion () { | 37 | get serverVersion () { |
@@ -66,6 +70,26 @@ export class AppComponent implements OnInit { | |||
66 | } | 70 | } |
67 | } | 71 | } |
68 | ) | 72 | ) |
73 | |||
74 | this.serverService.configLoaded | ||
75 | .subscribe(() => { | ||
76 | const config = this.serverService.getConfig() | ||
77 | |||
78 | // We test customCSS in case or the admin removed the css | ||
79 | if (this.customCSS || config.instance.customizations.css) { | ||
80 | const styleTag = '<style>' + config.instance.customizations.css + '</style>' | ||
81 | this.customCSS = this.domSanitizer.bypassSecurityTrustHtml(styleTag) | ||
82 | } | ||
83 | |||
84 | if (config.instance.customizations.javascript) { | ||
85 | try { | ||
86 | // tslint:disable:no-eval | ||
87 | eval(config.instance.customizations.javascript) | ||
88 | } catch (err) { | ||
89 | console.error('Cannot eval custom JavaScript.', err) | ||
90 | } | ||
91 | } | ||
92 | }) | ||
69 | } | 93 | } |
70 | 94 | ||
71 | toggleMenu () { | 95 | toggleMenu () { |