X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2Fcore%2Fserver%2Fserver.service.ts;h=fdfbe4c0260b68d17ca6da0aa9869a4416c9c0e6;hb=cdd8f7790c759664fe4d0962efa550cf1a8e37eb;hp=3997ce6db02b5bbb320a5f6d8ba8e0c67c58a659;hpb=16ec5e0833a4f72e75ca2a4f4be00f0453c68c80;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/core/server/server.service.ts b/client/src/app/core/server/server.service.ts index 3997ce6db..fdfbe4c02 100644 --- a/client/src/app/core/server/server.service.ts +++ b/client/src/app/core/server/server.service.ts @@ -9,6 +9,7 @@ import { VideoConstant } from '../../../../../shared/models/videos' import { isDefaultLocale, peertubeTranslate } from '../../../../../shared/models/i18n' import { getDevLocale, isOnDevLocale } from '@app/shared/i18n/i18n-utils' import { sortBy } from '@app/shared/misc/utils' +import { ServerStats } from '@shared/models/server' @Injectable() export class ServerService { @@ -16,9 +17,11 @@ export class ServerService { private static BASE_VIDEO_URL = environment.apiUrl + '/api/v1/videos/' private static BASE_VIDEO_PLAYLIST_URL = environment.apiUrl + '/api/v1/video-playlists/' private static BASE_LOCALE_URL = environment.apiUrl + '/client/locales/' + private static BASE_STATS_URL = environment.apiUrl + '/api/v1/server/stats' + private static CONFIG_LOCAL_STORAGE_KEY = 'server-config' - configReloaded = new Subject() + configReloaded = new Subject() private localeObservable: Observable private videoLicensesObservable: Observable[]> @@ -44,8 +47,16 @@ export class ServerService { css: '' } }, + search: { + remoteUri: { + users: true, + anonymous: false + } + }, plugin: { - registered: [] + registered: [], + registeredExternalAuths: [], + registeredIdAndPassAuths: [] }, theme: { registered: [], @@ -128,6 +139,12 @@ export class ServerService { indexUrl: 'https://instances.joinpeertube.org' } } + }, + broadcastMessage: { + enabled: false, + message: '', + level: 'info', + dismissable: false } } @@ -151,6 +168,11 @@ export class ServerService { resetConfig () { this.configLoaded = false this.configReset = true + + // Notify config update + this.getConfig().subscribe(() => { + // empty, to fire a reset config event + }) } getConfig () { @@ -164,9 +186,9 @@ export class ServerService { this.config = config this.configLoaded = true }), - tap(() => { + tap(config => { if (this.configReset) { - this.configReloaded.next() + this.configReloaded.next(config) this.configReset = false } }), @@ -238,6 +260,10 @@ export class ServerService { return this.localeObservable.pipe(first()) } + getServerStats () { + return this.http.get(ServerService.BASE_STATS_URL) + } + private loadAttributeEnum ( baseUrl: string, attributeName: 'categories' | 'licences' | 'languages' | 'privacies', @@ -250,17 +276,19 @@ export class ServerService { .pipe(map(data => ({ data, translations }))) }), map(({ data, translations }) => { - const hashToPopulate: VideoConstant[] = [] - - Object.keys(data) - .forEach(dataKey => { - const label = data[ dataKey ] - - hashToPopulate.push({ - id: (attributeName === 'languages' ? dataKey : parseInt(dataKey, 10)) as T, - label: peertubeTranslate(label, translations) - }) - }) + const hashToPopulate: VideoConstant[] = Object.keys(data) + .map(dataKey => { + const label = data[ dataKey ] + + const id = attributeName === 'languages' + ? dataKey as T + : parseInt(dataKey, 10) as T + + return { + id, + label: peertubeTranslate(label, translations) + } + }) if (sort === true) sortBy(hashToPopulate, 'label')