From 45e0d6697c107d77dce73d8e354867dc1959741d Mon Sep 17 00:00:00 2001 From: Rigel Kent Date: Wed, 11 Mar 2020 19:38:17 +0100 Subject: Properly scroll to anchors in links, especially in admin config --- .../edit-custom-config.component.html | 18 ++++++++------ .../edit-custom-config.component.ts | 29 ++++++++++++++++++++-- 2 files changed, 38 insertions(+), 9 deletions(-) (limited to 'client/src/app/+admin') diff --git a/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html b/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html index be89d8294..b3b4f7728 100644 --- a/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html +++ b/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html @@ -1,8 +1,8 @@
- + - + @@ -210,7 +210,7 @@
-
2vCore 2GB RAM/or directly the link to the server you rent etc
+
i.e. 2vCore 2GB RAM, a direct the link to the server you rent, etc.
- +
APPEARANCE
- Use plugins & themes for more involved changes. + Use plugins & themes for more involved changes, or add slight customizations.
@@ -391,6 +391,9 @@
FEDERATION
+
+ Manage relations with other instances. +
@@ -489,7 +492,7 @@ - +
@@ -542,7 +545,7 @@ - +
@@ -718,6 +721,7 @@
+
CUSTOMIZATIONS
Slight modifications to your PeerTube instance for when creating a plugin or theme is overkill. diff --git a/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts b/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts index c88e81c01..c3eac68bb 100644 --- a/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts +++ b/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts @@ -1,4 +1,4 @@ -import { Component, OnInit } from '@angular/core' +import { Component, OnInit, AfterViewChecked, ViewChild } from '@angular/core' import { ConfigService } from '@app/+admin/config/shared/config.service' import { ServerService } from '@app/core/server/server.service' import { CustomConfigValidatorsService, FormReactive, UserValidatorsService } from '@app/shared' @@ -9,13 +9,18 @@ import { FormValidatorService } from '@app/shared/forms/form-validators/form-val import { SelectItem } from 'primeng/api' import { forkJoin } from 'rxjs' import { ServerConfig } from '@shared/models' +import { ViewportScroller } from '@angular/common' +import { NgbTabset } from '@ng-bootstrap/ng-bootstrap' @Component({ selector: 'my-edit-custom-config', templateUrl: './edit-custom-config.component.html', styleUrls: [ './edit-custom-config.component.scss' ] }) -export class EditCustomConfigComponent extends FormReactive implements OnInit { +export class EditCustomConfigComponent extends FormReactive implements OnInit, AfterViewChecked { + @ViewChild('tabs') private tabs: NgbTabset + + initDone = false customConfig: CustomConfig resolutions: { id: string, label: string, description?: string }[] = [] @@ -27,6 +32,7 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit { private serverConfig: ServerConfig constructor ( + private viewportScroller: ViewportScroller, protected formValidatorService: FormValidatorService, private customConfigValidatorsService: CustomConfigValidatorsService, private userValidatorsService: UserValidatorsService, @@ -226,6 +232,13 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit { this.checkTranscodingFields() } + ngAfterViewChecked () { + if (!this.initDone) { + this.initDone = true + this.gotoAnchor() + } + } + isTranscodingEnabled () { return this.form.value['transcoding']['enabled'] === true } @@ -272,6 +285,18 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit { return this.i18n('No category') } + gotoAnchor () { + const hashToTab = { + 'customizations': 'advanced-configuration' + } + const hash = window.location.hash.replace('#', '') + + if (hash && Object.keys(hashToTab).includes(hash)) { + this.tabs.select(hashToTab[hash]) + setTimeout(() => this.viewportScroller.scrollToAnchor(hash), 100) + } + } + private updateForm () { this.form.patchValue(this.customConfig) } -- cgit v1.2.3