diff options
author | Chocobozzz <chocobozzz@cpy.re> | 2021-05-27 15:59:55 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-27 15:59:55 +0200 |
commit | 2539932e16129992a2c0889b4ff527c265a8e2c7 (patch) | |
tree | fb5048e63e02a2485eb96d27455f43e4b22e8ae0 /client/src/app/+home | |
parent | eb34ec30e0b57286fc6f85160490d2e973a3b0b1 (diff) | |
download | PeerTube-2539932e16129992a2c0889b4ff527c265a8e2c7.tar.gz PeerTube-2539932e16129992a2c0889b4ff527c265a8e2c7.tar.zst PeerTube-2539932e16129992a2c0889b4ff527c265a8e2c7.zip |
Instance homepage support (#4007)
* Prepare homepage parsers
* Add ability to update instance hompage
* Add ability to set homepage as landing page
* Add homepage preview in admin
* Dynamically update left menu for homepage
* Inject home content in homepage
* Add videos list and channel miniature custom markup
* Remove unused elements in markup service
Diffstat (limited to 'client/src/app/+home')
-rw-r--r-- | client/src/app/+home/home-routing.module.ts | 18 | ||||
-rw-r--r-- | client/src/app/+home/home.component.html | 4 | ||||
-rw-r--r-- | client/src/app/+home/home.component.scss | 3 | ||||
-rw-r--r-- | client/src/app/+home/home.component.ts | 26 | ||||
-rw-r--r-- | client/src/app/+home/home.module.ts | 25 | ||||
-rw-r--r-- | client/src/app/+home/index.ts | 3 |
6 files changed, 79 insertions, 0 deletions
diff --git a/client/src/app/+home/home-routing.module.ts b/client/src/app/+home/home-routing.module.ts new file mode 100644 index 000000000..1eaee4449 --- /dev/null +++ b/client/src/app/+home/home-routing.module.ts | |||
@@ -0,0 +1,18 @@ | |||
1 | import { NgModule } from '@angular/core' | ||
2 | import { RouterModule, Routes } from '@angular/router' | ||
3 | import { MetaGuard } from '@ngx-meta/core' | ||
4 | import { HomeComponent } from './home.component' | ||
5 | |||
6 | const homeRoutes: Routes = [ | ||
7 | { | ||
8 | path: '', | ||
9 | component: HomeComponent, | ||
10 | canActivateChild: [ MetaGuard ] | ||
11 | } | ||
12 | ] | ||
13 | |||
14 | @NgModule({ | ||
15 | imports: [ RouterModule.forChild(homeRoutes) ], | ||
16 | exports: [ RouterModule ] | ||
17 | }) | ||
18 | export class HomeRoutingModule {} | ||
diff --git a/client/src/app/+home/home.component.html b/client/src/app/+home/home.component.html new file mode 100644 index 000000000..645b9dc69 --- /dev/null +++ b/client/src/app/+home/home.component.html | |||
@@ -0,0 +1,4 @@ | |||
1 | <div class="root margin-content"> | ||
2 | <div #contentWrapper></div> | ||
3 | </div> | ||
4 | |||
diff --git a/client/src/app/+home/home.component.scss b/client/src/app/+home/home.component.scss new file mode 100644 index 000000000..6c73e9248 --- /dev/null +++ b/client/src/app/+home/home.component.scss | |||
@@ -0,0 +1,3 @@ | |||
1 | .root { | ||
2 | padding-top: 20px; | ||
3 | } | ||
diff --git a/client/src/app/+home/home.component.ts b/client/src/app/+home/home.component.ts new file mode 100644 index 000000000..16d3a6df7 --- /dev/null +++ b/client/src/app/+home/home.component.ts | |||
@@ -0,0 +1,26 @@ | |||
1 | |||
2 | import { Component, ElementRef, OnInit, ViewChild } from '@angular/core' | ||
3 | import { CustomMarkupService } from '@app/shared/shared-custom-markup' | ||
4 | import { CustomPageService } from '@app/shared/shared-main/custom-page' | ||
5 | |||
6 | @Component({ | ||
7 | templateUrl: './home.component.html', | ||
8 | styleUrls: [ './home.component.scss' ] | ||
9 | }) | ||
10 | |||
11 | export class HomeComponent implements OnInit { | ||
12 | @ViewChild('contentWrapper') contentWrapper: ElementRef<HTMLInputElement> | ||
13 | |||
14 | constructor ( | ||
15 | private customMarkupService: CustomMarkupService, | ||
16 | private customPageService: CustomPageService | ||
17 | ) { } | ||
18 | |||
19 | async ngOnInit () { | ||
20 | this.customPageService.getInstanceHomepage() | ||
21 | .subscribe(async ({ content }) => { | ||
22 | const element = await this.customMarkupService.buildElement(content) | ||
23 | this.contentWrapper.nativeElement.appendChild(element) | ||
24 | }) | ||
25 | } | ||
26 | } | ||
diff --git a/client/src/app/+home/home.module.ts b/client/src/app/+home/home.module.ts new file mode 100644 index 000000000..102cdc296 --- /dev/null +++ b/client/src/app/+home/home.module.ts | |||
@@ -0,0 +1,25 @@ | |||
1 | import { NgModule } from '@angular/core' | ||
2 | import { SharedCustomMarkupModule } from '@app/shared/shared-custom-markup' | ||
3 | import { SharedMainModule } from '@app/shared/shared-main' | ||
4 | import { HomeRoutingModule } from './home-routing.module' | ||
5 | import { HomeComponent } from './home.component' | ||
6 | |||
7 | @NgModule({ | ||
8 | imports: [ | ||
9 | HomeRoutingModule, | ||
10 | |||
11 | SharedMainModule, | ||
12 | SharedCustomMarkupModule | ||
13 | ], | ||
14 | |||
15 | declarations: [ | ||
16 | HomeComponent | ||
17 | ], | ||
18 | |||
19 | exports: [ | ||
20 | HomeComponent | ||
21 | ], | ||
22 | |||
23 | providers: [ ] | ||
24 | }) | ||
25 | export class HomeModule { } | ||
diff --git a/client/src/app/+home/index.ts b/client/src/app/+home/index.ts new file mode 100644 index 000000000..7c77cf9fd --- /dev/null +++ b/client/src/app/+home/index.ts | |||
@@ -0,0 +1,3 @@ | |||
1 | export * from './home-routing.module' | ||
2 | export * from './home.component' | ||
3 | export * from './home.module' | ||