diff options
author | Chocobozzz <florian.bigard@gmail.com> | 2017-12-07 17:22:44 +0100 |
---|---|---|
committer | Chocobozzz <florian.bigard@gmail.com> | 2017-12-07 17:22:44 +0100 |
commit | baeefe22caf8ae6cb58dc40754e5db14b50168bf (patch) | |
tree | 67ccfe9629bd7ea69036017c8a959e36e1eab6fd /client/src/app/core | |
parent | 8e7f08b5a5e65195ad6dd3d7850fda57021421f3 (diff) | |
download | PeerTube-baeefe22caf8ae6cb58dc40754e5db14b50168bf.tar.gz PeerTube-baeefe22caf8ae6cb58dc40754e5db14b50168bf.tar.zst PeerTube-baeefe22caf8ae6cb58dc40754e5db14b50168bf.zip |
First upload step is ok
Diffstat (limited to 'client/src/app/core')
-rw-r--r-- | client/src/app/core/server/server.service.ts | 37 |
1 files changed, 23 insertions, 14 deletions
diff --git a/client/src/app/core/server/server.service.ts b/client/src/app/core/server/server.service.ts index cbc4074c9..43a836c5a 100644 --- a/client/src/app/core/server/server.service.ts +++ b/client/src/app/core/server/server.service.ts | |||
@@ -1,5 +1,7 @@ | |||
1 | import { Injectable } from '@angular/core' | ||
2 | import { HttpClient } from '@angular/common/http' | 1 | import { HttpClient } from '@angular/common/http' |
2 | import { Injectable } from '@angular/core' | ||
3 | import 'rxjs/add/operator/do' | ||
4 | import { ReplaySubject } from 'rxjs/ReplaySubject' | ||
3 | 5 | ||
4 | import { ServerConfig } from '../../../../../shared' | 6 | import { ServerConfig } from '../../../../../shared' |
5 | 7 | ||
@@ -8,6 +10,11 @@ export class ServerService { | |||
8 | private static BASE_CONFIG_URL = API_URL + '/api/v1/config/' | 10 | private static BASE_CONFIG_URL = API_URL + '/api/v1/config/' |
9 | private static BASE_VIDEO_URL = API_URL + '/api/v1/videos/' | 11 | private static BASE_VIDEO_URL = API_URL + '/api/v1/videos/' |
10 | 12 | ||
13 | videoPrivaciesLoaded = new ReplaySubject<boolean>(1) | ||
14 | videoCategoriesLoaded = new ReplaySubject<boolean>(1) | ||
15 | videoLicencesLoaded = new ReplaySubject<boolean>(1) | ||
16 | videoLanguagesLoaded = new ReplaySubject<boolean>(1) | ||
17 | |||
11 | private config: ServerConfig = { | 18 | private config: ServerConfig = { |
12 | signup: { | 19 | signup: { |
13 | allowed: false | 20 | allowed: false |
@@ -29,19 +36,19 @@ export class ServerService { | |||
29 | } | 36 | } |
30 | 37 | ||
31 | loadVideoCategories () { | 38 | loadVideoCategories () { |
32 | return this.loadVideoAttributeEnum('categories', this.videoCategories) | 39 | return this.loadVideoAttributeEnum('categories', this.videoCategories, this.videoCategoriesLoaded) |
33 | } | 40 | } |
34 | 41 | ||
35 | loadVideoLicences () { | 42 | loadVideoLicences () { |
36 | return this.loadVideoAttributeEnum('licences', this.videoLicences) | 43 | return this.loadVideoAttributeEnum('licences', this.videoLicences, this.videoLicencesLoaded) |
37 | } | 44 | } |
38 | 45 | ||
39 | loadVideoLanguages () { | 46 | loadVideoLanguages () { |
40 | return this.loadVideoAttributeEnum('languages', this.videoLanguages) | 47 | return this.loadVideoAttributeEnum('languages', this.videoLanguages, this.videoLanguagesLoaded) |
41 | } | 48 | } |
42 | 49 | ||
43 | loadVideoPrivacies () { | 50 | loadVideoPrivacies () { |
44 | return this.loadVideoAttributeEnum('privacies', this.videoPrivacies) | 51 | return this.loadVideoAttributeEnum('privacies', this.videoPrivacies, this.videoPrivaciesLoaded) |
45 | } | 52 | } |
46 | 53 | ||
47 | getConfig () { | 54 | getConfig () { |
@@ -66,17 +73,19 @@ export class ServerService { | |||
66 | 73 | ||
67 | private loadVideoAttributeEnum ( | 74 | private loadVideoAttributeEnum ( |
68 | attributeName: 'categories' | 'licences' | 'languages' | 'privacies', | 75 | attributeName: 'categories' | 'licences' | 'languages' | 'privacies', |
69 | hashToPopulate: { id: number, label: string }[] | 76 | hashToPopulate: { id: number, label: string }[], |
77 | notifier: ReplaySubject<boolean> | ||
70 | ) { | 78 | ) { |
71 | return this.http.get(ServerService.BASE_VIDEO_URL + attributeName) | 79 | return this.http.get(ServerService.BASE_VIDEO_URL + attributeName) |
72 | .subscribe(data => { | 80 | .do(() => notifier.next(true)) |
73 | Object.keys(data) | 81 | .subscribe(data => { |
74 | .forEach(dataKey => { | 82 | Object.keys(data) |
75 | hashToPopulate.push({ | 83 | .forEach(dataKey => { |
76 | id: parseInt(dataKey, 10), | 84 | hashToPopulate.push({ |
77 | label: data[dataKey] | 85 | id: parseInt(dataKey, 10), |
78 | }) | 86 | label: data[dataKey] |
79 | }) | 87 | }) |
80 | }) | 88 | }) |
89 | }) | ||
81 | } | 90 | } |
82 | } | 91 | } |