</div>
<div class="short-description">
- <div>{{ shortDescription }}</div>
+ <div class="block short-description">{{ shortDescription }}</div>
- <div *ngIf="isNSFW" class="dedicated-to-nsfw">This instance is dedicated to sensitive/NSFW content.</div>
+ <div *ngIf="isNSFW" class="block dedicated-to-nsfw">This instance is dedicated to sensitive/NSFW content.</div>
+
+ <div class="block">
+ <div class="section-title" *ngIf="languages.length !== 0">Main instance languages</div>
+
+ <ul>
+ <li *ngFor="let language of languages">{{ language }}</li>
+ </ul>
+ </div>
+
+ <div class="block">
+ <div class="section-title" *ngIf="categories.length !== 0">Main instance categories</div>
+
+ <ul>
+ <li *ngFor="let category of categories">{{ category }}</li>
+ </ul>
+ </div>
</div>
<div class="middle-title" *ngIf="html.administrator || maintenanceLifetime || businessModel">
</div>
<div class="block administrator" *ngIf="html.administrator">
- <div i18n class="section-title">Instance administrators</div>
+ <div i18n class="section-title">Who are we?</div>
<div [innerHTML]="html.administrator"></div>
</div>
<div class="block maintenance-lifetime" *ngIf="maintenanceLifetime">
- <div i18n class="section-title">Maintenance lifetime</div>
+ <div i18n class="section-title">How long do we plan to maintain this instance?</div>
<p>{{ maintenanceLifetime }}</p>
</div>
<div class="block business-model" *ngIf="businessModel">
- <div i18n class="section-title">Business model</div>
+ <div i18n class="section-title">How will we pay this instance?</div>
<p>{{ businessModel }}</p>
</div>
import { ContactAdminModalComponent } from '@app/+about/about-instance/contact-admin-modal.component'
import { InstanceService } from '@app/shared/instance/instance.service'
import { MarkdownService } from '@app/shared/renderer'
+import { forkJoin } from 'rxjs'
+import { first } from 'rxjs/operators'
+import { peertubeTranslate } from '@shared/models'
@Component({
selector: 'my-about-instance',
businessModel = ''
languages: string[] = []
- categories: number[] = []
+ categories: string[] = []
constructor (
private notifier: Notifier,
}
ngOnInit () {
- this.instanceService.getAbout()
- .subscribe(
- async res => {
- this.shortDescription = res.instance.shortDescription
-
- this.maintenanceLifetime = res.instance.maintenanceLifetime
- this.businessModel = res.instance.businessModel
-
- for (const key of [ 'description', 'terms', 'codeOfConduct', 'moderationInformation', 'administrator' ]) {
- this.html[key] = await this.markdownService.textMarkdownToHTML(res.instance[key])
- }
-
- this.languages = res.instance.languages
- this.categories = res.instance.categories
- },
-
- () => this.notifier.error(this.i18n('Cannot get about information from server'))
- )
+ forkJoin([
+ this.instanceService.getAbout(),
+ this.serverService.localeObservable.pipe(first()),
+ this.serverService.videoLanguagesLoaded.pipe(first()),
+ this.serverService.videoCategoriesLoaded.pipe(first())
+ ]).subscribe(
+ async ([ res, translations ]) => {
+ this.shortDescription = res.instance.shortDescription
+
+ this.maintenanceLifetime = res.instance.maintenanceLifetime
+ this.businessModel = res.instance.businessModel
+
+ for (const key of [ 'description', 'terms', 'codeOfConduct', 'moderationInformation', 'administrator' ]) {
+ this.html[ key ] = await this.markdownService.textMarkdownToHTML(res.instance[ key ])
+ }
+
+ const languagesArray = this.serverService.getVideoLanguages()
+ const categoriesArray = this.serverService.getVideoCategories()
+
+ this.languages = res.instance.languages
+ .map(l => {
+ const languageObj = languagesArray.find(la => la.id === l)
+
+ return peertubeTranslate(languageObj.label, translations)
+ })
+
+ this.categories = res.instance.categories
+ .map(c => {
+ const categoryObj = categoriesArray.find(ca => ca.id === c)
+
+ return peertubeTranslate(categoryObj.label, translations)
+ })
+ },
+
+ () => this.notifier.error(this.i18n('Cannot get about information from server'))
+ )
}
openContactModal () {
return this.contactAdminModal.show()
}
-
}