diff options
Diffstat (limited to 'client/src/app')
52 files changed, 177 insertions, 142 deletions
diff --git a/client/src/app/+admin/overview/users/user-list/user-list.component.ts b/client/src/app/+admin/overview/users/user-list/user-list.component.ts index 3e1a5f6b8..99987fdff 100644 --- a/client/src/app/+admin/overview/users/user-list/user-list.component.ts +++ b/client/src/app/+admin/overview/users/user-list/user-list.component.ts | |||
@@ -2,11 +2,12 @@ import { SortMeta } from 'primeng/api' | |||
2 | import { Component, OnInit, ViewChild } from '@angular/core' | 2 | import { Component, OnInit, ViewChild } from '@angular/core' |
3 | import { ActivatedRoute, Router } from '@angular/router' | 3 | import { ActivatedRoute, Router } from '@angular/router' |
4 | import { AuthService, ConfirmService, LocalStorageService, Notifier, RestPagination, RestTable, ServerService } from '@app/core' | 4 | import { AuthService, ConfirmService, LocalStorageService, Notifier, RestPagination, RestTable, ServerService } from '@app/core' |
5 | import { prepareIcu, getAPIHost } from '@app/helpers' | 5 | import { getAPIHost, prepareIcu } from '@app/helpers' |
6 | import { AdvancedInputFilter } from '@app/shared/shared-forms' | 6 | import { AdvancedInputFilter } from '@app/shared/shared-forms' |
7 | import { Actor, DropdownAction } from '@app/shared/shared-main' | 7 | import { Actor, DropdownAction } from '@app/shared/shared-main' |
8 | import { AccountMutedStatus, BlocklistService, UserBanModalComponent, UserModerationDisplayType } from '@app/shared/shared-moderation' | 8 | import { AccountMutedStatus, BlocklistService, UserBanModalComponent, UserModerationDisplayType } from '@app/shared/shared-moderation' |
9 | import { UserAdminService } from '@app/shared/shared-users' | 9 | import { UserAdminService } from '@app/shared/shared-users' |
10 | import { logger } from '@root-helpers/logger' | ||
10 | import { User, UserRole } from '@shared/models' | 11 | import { User, UserRole } from '@shared/models' |
11 | 12 | ||
12 | type UserForList = User & { | 13 | type UserForList = User & { |
@@ -149,7 +150,7 @@ export class UserListComponent extends RestTable implements OnInit { | |||
149 | this.selectedColumns = JSON.parse(result) | 150 | this.selectedColumns = JSON.parse(result) |
150 | return | 151 | return |
151 | } catch (err) { | 152 | } catch (err) { |
152 | console.error('Cannot load selected columns.', err) | 153 | logger.error('Cannot load selected columns.', err) |
153 | } | 154 | } |
154 | } | 155 | } |
155 | 156 | ||
diff --git a/client/src/app/+admin/plugins/plugin-search/plugin-search.component.ts b/client/src/app/+admin/plugins/plugin-search/plugin-search.component.ts index d39c2ea1c..b02c054a2 100644 --- a/client/src/app/+admin/plugins/plugin-search/plugin-search.component.ts +++ b/client/src/app/+admin/plugins/plugin-search/plugin-search.component.ts | |||
@@ -4,6 +4,7 @@ import { Component, OnInit } from '@angular/core' | |||
4 | import { ActivatedRoute, Router } from '@angular/router' | 4 | import { ActivatedRoute, Router } from '@angular/router' |
5 | import { PluginApiService } from '@app/+admin/plugins/shared/plugin-api.service' | 5 | import { PluginApiService } from '@app/+admin/plugins/shared/plugin-api.service' |
6 | import { ComponentPagination, ConfirmService, hasMoreItems, Notifier, PluginService } from '@app/core' | 6 | import { ComponentPagination, ConfirmService, hasMoreItems, Notifier, PluginService } from '@app/core' |
7 | import { logger } from '@root-helpers/logger' | ||
7 | import { PeerTubePluginIndex, PluginType } from '@shared/models' | 8 | import { PeerTubePluginIndex, PluginType } from '@shared/models' |
8 | 9 | ||
9 | @Component({ | 10 | @Component({ |
@@ -94,7 +95,7 @@ export class PluginSearchComponent implements OnInit { | |||
94 | }, | 95 | }, |
95 | 96 | ||
96 | error: err => { | 97 | error: err => { |
97 | console.error(err) | 98 | logger.error(err) |
98 | 99 | ||
99 | const message = $localize`The plugin index is not available. Please retry later.` | 100 | const message = $localize`The plugin index is not available. Please retry later.` |
100 | this.notifier.error(message) | 101 | this.notifier.error(message) |
diff --git a/client/src/app/+admin/system/logs/log-row.model.ts b/client/src/app/+admin/system/logs/log-row.model.ts index 615778210..e83c7b064 100644 --- a/client/src/app/+admin/system/logs/log-row.model.ts +++ b/client/src/app/+admin/system/logs/log-row.model.ts | |||
@@ -1,10 +1,11 @@ | |||
1 | import { LogLevel } from '@shared/models' | ||
2 | import omit from 'lodash-es/omit' | 1 | import omit from 'lodash-es/omit' |
2 | import { logger } from '@root-helpers/logger' | ||
3 | import { ServerLogLevel } from '@shared/models' | ||
3 | 4 | ||
4 | export class LogRow { | 5 | export class LogRow { |
5 | date: Date | 6 | date: Date |
6 | localeDate: string | 7 | localeDate: string |
7 | level: LogLevel | 8 | level: ServerLogLevel |
8 | message: string | 9 | message: string |
9 | meta: string | 10 | meta: string |
10 | 11 | ||
@@ -33,7 +34,7 @@ export class LogRow { | |||
33 | this.meta = JSON.stringify(message, null, 2) | 34 | this.meta = JSON.stringify(message, null, 2) |
34 | this.message = '' | 35 | this.message = '' |
35 | } catch (err) { | 36 | } catch (err) { |
36 | console.error('Cannot parse audit message.', err) | 37 | logger.error('Cannot parse audit message.', err) |
37 | } | 38 | } |
38 | } | 39 | } |
39 | } | 40 | } |
diff --git a/client/src/app/+admin/system/logs/logs.component.ts b/client/src/app/+admin/system/logs/logs.component.ts index 06237522a..939e710d7 100644 --- a/client/src/app/+admin/system/logs/logs.component.ts +++ b/client/src/app/+admin/system/logs/logs.component.ts | |||
@@ -1,6 +1,6 @@ | |||
1 | import { Component, ElementRef, OnInit, ViewChild } from '@angular/core' | 1 | import { Component, ElementRef, OnInit, ViewChild } from '@angular/core' |
2 | import { LocalStorageService, Notifier } from '@app/core' | 2 | import { LocalStorageService, Notifier } from '@app/core' |
3 | import { LogLevel } from '@shared/models' | 3 | import { ServerLogLevel } from '@shared/models' |
4 | import { LogRow } from './log-row.model' | 4 | import { LogRow } from './log-row.model' |
5 | import { LogsService } from './logs.service' | 5 | import { LogsService } from './logs.service' |
6 | 6 | ||
@@ -17,11 +17,11 @@ export class LogsComponent implements OnInit { | |||
17 | 17 | ||
18 | logs: LogRow[] = [] | 18 | logs: LogRow[] = [] |
19 | timeChoices: { id: string, label: string, dateFormat: string }[] = [] | 19 | timeChoices: { id: string, label: string, dateFormat: string }[] = [] |
20 | levelChoices: { id: LogLevel, label: string }[] = [] | 20 | levelChoices: { id: ServerLogLevel, label: string }[] = [] |
21 | logTypeChoices: { id: 'audit' | 'standard', label: string }[] = [] | 21 | logTypeChoices: { id: 'audit' | 'standard', label: string }[] = [] |
22 | 22 | ||
23 | startDate: string | 23 | startDate: string |
24 | level: LogLevel | 24 | level: ServerLogLevel |
25 | logType: 'audit' | 'standard' | 25 | logType: 'audit' | 'standard' |
26 | tagsOneOf: string[] = [] | 26 | tagsOneOf: string[] = [] |
27 | 27 | ||
diff --git a/client/src/app/+admin/system/logs/logs.service.ts b/client/src/app/+admin/system/logs/logs.service.ts index ea7e08b9b..933a074a8 100644 --- a/client/src/app/+admin/system/logs/logs.service.ts +++ b/client/src/app/+admin/system/logs/logs.service.ts | |||
@@ -3,7 +3,7 @@ import { catchError, map } from 'rxjs/operators' | |||
3 | import { HttpClient, HttpParams } from '@angular/common/http' | 3 | import { HttpClient, HttpParams } from '@angular/common/http' |
4 | import { Injectable } from '@angular/core' | 4 | import { Injectable } from '@angular/core' |
5 | import { RestExtractor, RestService } from '@app/core' | 5 | import { RestExtractor, RestService } from '@app/core' |
6 | import { LogLevel } from '@shared/models' | 6 | import { ServerLogLevel } from '@shared/models' |
7 | import { environment } from '../../../../environments/environment' | 7 | import { environment } from '../../../../environments/environment' |
8 | import { LogRow } from './log-row.model' | 8 | import { LogRow } from './log-row.model' |
9 | 9 | ||
@@ -22,7 +22,7 @@ export class LogsService { | |||
22 | isAuditLog: boolean | 22 | isAuditLog: boolean |
23 | startDate: string | 23 | startDate: string |
24 | tagsOneOf?: string[] | 24 | tagsOneOf?: string[] |
25 | level?: LogLevel | 25 | level?: ServerLogLevel |
26 | endDate?: string | 26 | endDate?: string |
27 | }): Observable<any[]> { | 27 | }): Observable<any[]> { |
28 | const { isAuditLog, startDate, endDate, tagsOneOf } = options | 28 | const { isAuditLog, startDate, endDate, tagsOneOf } = options |
diff --git a/client/src/app/+plugin-pages/plugin-pages.component.ts b/client/src/app/+plugin-pages/plugin-pages.component.ts index 973e4d021..9fe4b413e 100644 --- a/client/src/app/+plugin-pages/plugin-pages.component.ts +++ b/client/src/app/+plugin-pages/plugin-pages.component.ts | |||
@@ -1,6 +1,7 @@ | |||
1 | import { AfterViewInit, Component, ElementRef, ViewChild } from '@angular/core' | 1 | import { AfterViewInit, Component, ElementRef, ViewChild } from '@angular/core' |
2 | import { ActivatedRoute, Router } from '@angular/router' | 2 | import { ActivatedRoute, Router } from '@angular/router' |
3 | import { PluginService } from '@app/core' | 3 | import { PluginService } from '@app/core' |
4 | import { logger } from '@root-helpers/logger' | ||
4 | 5 | ||
5 | @Component({ | 6 | @Component({ |
6 | templateUrl: './plugin-pages.component.html' | 7 | templateUrl: './plugin-pages.component.html' |
@@ -26,7 +27,7 @@ export class PluginPagesComponent implements AfterViewInit { | |||
26 | 27 | ||
27 | const registered = this.pluginService.getRegisteredClientRoute(path) | 28 | const registered = this.pluginService.getRegisteredClientRoute(path) |
28 | if (!registered) { | 29 | if (!registered) { |
29 | console.log('Could not find registered route %s.', path, this.pluginService.getAllRegisteredClientRoutes()) | 30 | logger.info(`Could not find registered route ${path}`, this.pluginService.getAllRegisteredClientRoutes()) |
30 | 31 | ||
31 | return this.router.navigate([ '/404' ], { skipLocationChange: true }) | 32 | return this.router.navigate([ '/404' ], { skipLocationChange: true }) |
32 | } | 33 | } |
diff --git a/client/src/app/+search/shared/abstract-lazy-load.resolver.ts b/client/src/app/+search/shared/abstract-lazy-load.resolver.ts index b18a5b64d..7551d977d 100644 --- a/client/src/app/+search/shared/abstract-lazy-load.resolver.ts +++ b/client/src/app/+search/shared/abstract-lazy-load.resolver.ts | |||
@@ -1,6 +1,7 @@ | |||
1 | import { Observable } from 'rxjs' | 1 | import { Observable } from 'rxjs' |
2 | import { map } from 'rxjs/operators' | 2 | import { map } from 'rxjs/operators' |
3 | import { ActivatedRouteSnapshot, Resolve, Router } from '@angular/router' | 3 | import { ActivatedRouteSnapshot, Resolve, Router } from '@angular/router' |
4 | import { logger } from '@root-helpers/logger' | ||
4 | import { ResultList } from '@shared/models' | 5 | import { ResultList } from '@shared/models' |
5 | 6 | ||
6 | export abstract class AbstractLazyLoadResolver <T> implements Resolve<any> { | 7 | export abstract class AbstractLazyLoadResolver <T> implements Resolve<any> { |
@@ -10,7 +11,7 @@ export abstract class AbstractLazyLoadResolver <T> implements Resolve<any> { | |||
10 | const url = route.params.url | 11 | const url = route.params.url |
11 | 12 | ||
12 | if (!url) { | 13 | if (!url) { |
13 | console.error('Could not find url param.', { params: route.params }) | 14 | logger.error('Could not find url param.', { params: route.params }) |
14 | return this.router.navigateByUrl('/404') | 15 | return this.router.navigateByUrl('/404') |
15 | } | 16 | } |
16 | 17 | ||
@@ -18,7 +19,7 @@ export abstract class AbstractLazyLoadResolver <T> implements Resolve<any> { | |||
18 | .pipe( | 19 | .pipe( |
19 | map(result => { | 20 | map(result => { |
20 | if (result.data.length !== 1) { | 21 | if (result.data.length !== 1) { |
21 | console.error('Cannot find result for this URL') | 22 | logger.error('Cannot find result for this URL') |
22 | return this.router.navigateByUrl('/404') | 23 | return this.router.navigateByUrl('/404') |
23 | } | 24 | } |
24 | 25 | ||
diff --git a/client/src/app/+video-studio/edit/video-studio-edit.component.ts b/client/src/app/+video-studio/edit/video-studio-edit.component.ts index 392b65767..bf91c237a 100644 --- a/client/src/app/+video-studio/edit/video-studio-edit.component.ts +++ b/client/src/app/+video-studio/edit/video-studio-edit.component.ts | |||
@@ -4,6 +4,7 @@ import { ConfirmService, Notifier, ServerService } from '@app/core' | |||
4 | import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' | 4 | import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' |
5 | import { VideoDetails } from '@app/shared/shared-main' | 5 | import { VideoDetails } from '@app/shared/shared-main' |
6 | import { LoadingBarService } from '@ngx-loading-bar/core' | 6 | import { LoadingBarService } from '@ngx-loading-bar/core' |
7 | import { logger } from '@root-helpers/logger' | ||
7 | import { secondsToTime } from '@shared/core-utils' | 8 | import { secondsToTime } from '@shared/core-utils' |
8 | import { VideoStudioTask, VideoStudioTaskCut } from '@shared/models' | 9 | import { VideoStudioTask, VideoStudioTaskCut } from '@shared/models' |
9 | import { VideoStudioService } from '../shared' | 10 | import { VideoStudioService } from '../shared' |
@@ -97,7 +98,7 @@ export class VideoStudioEditComponent extends FormReactive implements OnInit { | |||
97 | this.loadingBar.useRef().complete() | 98 | this.loadingBar.useRef().complete() |
98 | this.isRunningEdition = false | 99 | this.isRunningEdition = false |
99 | this.notifier.error(err.message) | 100 | this.notifier.error(err.message) |
100 | console.error(err) | 101 | logger.error(err) |
101 | } | 102 | } |
102 | }) | 103 | }) |
103 | } | 104 | } |
diff --git a/client/src/app/+videos/+video-edit/shared/video-edit.component.ts b/client/src/app/+videos/+video-edit/shared/video-edit.component.ts index c74ef5731..99f8c9034 100644 --- a/client/src/app/+videos/+video-edit/shared/video-edit.component.ts +++ b/client/src/app/+videos/+video-edit/shared/video-edit.component.ts | |||
@@ -38,6 +38,7 @@ import { VideoCaptionAddModalComponent } from './video-caption-add-modal.compone | |||
38 | import { VideoCaptionEditModalComponent } from './video-caption-edit-modal/video-caption-edit-modal.component' | 38 | import { VideoCaptionEditModalComponent } from './video-caption-edit-modal/video-caption-edit-modal.component' |
39 | import { VideoEditType } from './video-edit.type' | 39 | import { VideoEditType } from './video-edit.type' |
40 | import { VideoSource } from '@shared/models/videos/video-source' | 40 | import { VideoSource } from '@shared/models/videos/video-source' |
41 | import { logger } from '@root-helpers/logger' | ||
41 | 42 | ||
42 | type VideoLanguages = VideoConstant<string> & { group?: string } | 43 | type VideoLanguages = VideoConstant<string> & { group?: string } |
43 | type PluginField = { | 44 | type PluginField = { |
@@ -443,7 +444,7 @@ export class VideoEditComponent implements OnInit, OnDestroy { | |||
443 | 444 | ||
444 | const oldChannel = this.userVideoChannels.find(c => c.id === oldChannelId) | 445 | const oldChannel = this.userVideoChannels.find(c => c.id === oldChannelId) |
445 | if (!newChannel || !oldChannel) { | 446 | if (!newChannel || !oldChannel) { |
446 | console.error('Cannot find new or old channel.') | 447 | logger.error('Cannot find new or old channel.') |
447 | return | 448 | return |
448 | } | 449 | } |
449 | 450 | ||
diff --git a/client/src/app/+videos/+video-edit/video-add-components/video-go-live.component.ts b/client/src/app/+videos/+video-edit/video-add-components/video-go-live.component.ts index 80e5a73da..91eb66931 100644 --- a/client/src/app/+videos/+video-edit/video-add-components/video-go-live.component.ts +++ b/client/src/app/+videos/+video-edit/video-add-components/video-go-live.component.ts | |||
@@ -7,6 +7,7 @@ import { FormValidatorService } from '@app/shared/shared-forms' | |||
7 | import { Video, VideoCaptionService, VideoEdit, VideoService } from '@app/shared/shared-main' | 7 | import { Video, VideoCaptionService, VideoEdit, VideoService } from '@app/shared/shared-main' |
8 | import { LiveVideoService } from '@app/shared/shared-video-live' | 8 | import { LiveVideoService } from '@app/shared/shared-video-live' |
9 | import { LoadingBarService } from '@ngx-loading-bar/core' | 9 | import { LoadingBarService } from '@ngx-loading-bar/core' |
10 | import { logger } from '@root-helpers/logger' | ||
10 | import { LiveVideo, LiveVideoCreate, LiveVideoLatencyMode, LiveVideoUpdate, PeerTubeProblemDocument, ServerErrorCode } from '@shared/models' | 11 | import { LiveVideo, LiveVideoCreate, LiveVideoLatencyMode, LiveVideoUpdate, PeerTubeProblemDocument, ServerErrorCode } from '@shared/models' |
11 | import { VideoSend } from './video-send' | 12 | import { VideoSend } from './video-send' |
12 | 13 | ||
@@ -141,7 +142,7 @@ export class VideoGoLiveComponent extends VideoSend implements OnInit, AfterView | |||
141 | error: err => { | 142 | error: err => { |
142 | this.error = err.message | 143 | this.error = err.message |
143 | scrollToTop() | 144 | scrollToTop() |
144 | console.error(err) | 145 | logger.error(err) |
145 | } | 146 | } |
146 | }) | 147 | }) |
147 | } | 148 | } |
diff --git a/client/src/app/+videos/+video-edit/video-add-components/video-import-torrent.component.ts b/client/src/app/+videos/+video-edit/video-add-components/video-import-torrent.component.ts index da4996902..7b9531d27 100644 --- a/client/src/app/+videos/+video-edit/video-add-components/video-import-torrent.component.ts +++ b/client/src/app/+videos/+video-edit/video-add-components/video-import-torrent.component.ts | |||
@@ -6,6 +6,7 @@ import { scrollToTop } from '@app/helpers' | |||
6 | import { FormValidatorService } from '@app/shared/shared-forms' | 6 | import { FormValidatorService } from '@app/shared/shared-forms' |
7 | import { VideoCaptionService, VideoEdit, VideoImportService, VideoService } from '@app/shared/shared-main' | 7 | import { VideoCaptionService, VideoEdit, VideoImportService, VideoService } from '@app/shared/shared-main' |
8 | import { LoadingBarService } from '@ngx-loading-bar/core' | 8 | import { LoadingBarService } from '@ngx-loading-bar/core' |
9 | import { logger } from '@root-helpers/logger' | ||
9 | import { PeerTubeProblemDocument, ServerErrorCode, VideoUpdate } from '@shared/models' | 10 | import { PeerTubeProblemDocument, ServerErrorCode, VideoUpdate } from '@shared/models' |
10 | import { hydrateFormFromVideo } from '../shared/video-edit-utils' | 11 | import { hydrateFormFromVideo } from '../shared/video-edit-utils' |
11 | import { VideoSend } from './video-send' | 12 | import { VideoSend } from './video-send' |
@@ -139,7 +140,7 @@ export class VideoImportTorrentComponent extends VideoSend implements OnInit, Af | |||
139 | error: err => { | 140 | error: err => { |
140 | this.error = err.message | 141 | this.error = err.message |
141 | scrollToTop() | 142 | scrollToTop() |
142 | console.error(err) | 143 | logger.error(err) |
143 | } | 144 | } |
144 | }) | 145 | }) |
145 | } | 146 | } |
diff --git a/client/src/app/+videos/+video-edit/video-add-components/video-import-url.component.ts b/client/src/app/+videos/+video-edit/video-add-components/video-import-url.component.ts index 971a2a070..4ef7d1321 100644 --- a/client/src/app/+videos/+video-edit/video-add-components/video-import-url.component.ts +++ b/client/src/app/+videos/+video-edit/video-add-components/video-import-url.component.ts | |||
@@ -7,6 +7,7 @@ import { scrollToTop } from '@app/helpers' | |||
7 | import { FormValidatorService } from '@app/shared/shared-forms' | 7 | import { FormValidatorService } from '@app/shared/shared-forms' |
8 | import { VideoCaptionService, VideoEdit, VideoImportService, VideoService } from '@app/shared/shared-main' | 8 | import { VideoCaptionService, VideoEdit, VideoImportService, VideoService } from '@app/shared/shared-main' |
9 | import { LoadingBarService } from '@ngx-loading-bar/core' | 9 | import { LoadingBarService } from '@ngx-loading-bar/core' |
10 | import { logger } from '@root-helpers/logger' | ||
10 | import { VideoUpdate } from '@shared/models' | 11 | import { VideoUpdate } from '@shared/models' |
11 | import { hydrateFormFromVideo } from '../shared/video-edit-utils' | 12 | import { hydrateFormFromVideo } from '../shared/video-edit-utils' |
12 | import { VideoSend } from './video-send' | 13 | import { VideoSend } from './video-send' |
@@ -128,7 +129,7 @@ export class VideoImportUrlComponent extends VideoSend implements OnInit, AfterV | |||
128 | error: err => { | 129 | error: err => { |
129 | this.error = err.message | 130 | this.error = err.message |
130 | scrollToTop() | 131 | scrollToTop() |
131 | console.error(err) | 132 | logger.error(err) |
132 | } | 133 | } |
133 | }) | 134 | }) |
134 | } | 135 | } |
diff --git a/client/src/app/+videos/+video-edit/video-add-components/video-upload.component.ts b/client/src/app/+videos/+video-edit/video-add-components/video-upload.component.ts index 663955d27..66a3967c7 100644 --- a/client/src/app/+videos/+video-edit/video-add-components/video-upload.component.ts +++ b/client/src/app/+videos/+video-edit/video-add-components/video-upload.component.ts | |||
@@ -1,6 +1,5 @@ | |||
1 | import { truncate } from 'lodash-es' | 1 | import { truncate } from 'lodash-es' |
2 | import { UploadState, UploadxOptions, UploadxService } from 'ngx-uploadx' | 2 | import { UploadState, UploadxOptions, UploadxService } from 'ngx-uploadx' |
3 | import { isIOS } from '@root-helpers/web-browser' | ||
4 | import { HttpErrorResponse, HttpEventType, HttpHeaders } from '@angular/common/http' | 3 | import { HttpErrorResponse, HttpEventType, HttpHeaders } from '@angular/common/http' |
5 | import { AfterViewInit, Component, ElementRef, EventEmitter, OnDestroy, OnInit, Output, ViewChild } from '@angular/core' | 4 | import { AfterViewInit, Component, ElementRef, EventEmitter, OnDestroy, OnInit, Output, ViewChild } from '@angular/core' |
6 | import { ActivatedRoute, Router } from '@angular/router' | 5 | import { ActivatedRoute, Router } from '@angular/router' |
@@ -9,6 +8,8 @@ import { genericUploadErrorHandler, scrollToTop } from '@app/helpers' | |||
9 | import { FormValidatorService } from '@app/shared/shared-forms' | 8 | import { FormValidatorService } from '@app/shared/shared-forms' |
10 | import { BytesPipe, Video, VideoCaptionService, VideoEdit, VideoService } from '@app/shared/shared-main' | 9 | import { BytesPipe, Video, VideoCaptionService, VideoEdit, VideoService } from '@app/shared/shared-main' |
11 | import { LoadingBarService } from '@ngx-loading-bar/core' | 10 | import { LoadingBarService } from '@ngx-loading-bar/core' |
11 | import { logger } from '@root-helpers/logger' | ||
12 | import { isIOS } from '@root-helpers/web-browser' | ||
12 | import { HttpStatusCode, VideoCreateResult } from '@shared/models' | 13 | import { HttpStatusCode, VideoCreateResult } from '@shared/models' |
13 | import { UploaderXFormData } from './uploaderx-form-data' | 14 | import { UploaderXFormData } from './uploaderx-form-data' |
14 | import { VideoSend } from './video-send' | 15 | import { VideoSend } from './video-send' |
@@ -264,7 +265,7 @@ export class VideoUploadComponent extends VideoSend implements OnInit, OnDestroy | |||
264 | error: err => { | 265 | error: err => { |
265 | this.error = err.message | 266 | this.error = err.message |
266 | scrollToTop() | 267 | scrollToTop() |
267 | console.error(err) | 268 | logger.error(err) |
268 | } | 269 | } |
269 | }) | 270 | }) |
270 | } | 271 | } |
diff --git a/client/src/app/+videos/+video-edit/video-update.component.ts b/client/src/app/+videos/+video-edit/video-update.component.ts index 13e786a8e..ed17dff06 100644 --- a/client/src/app/+videos/+video-edit/video-update.component.ts +++ b/client/src/app/+videos/+video-edit/video-update.component.ts | |||
@@ -8,9 +8,10 @@ import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' | |||
8 | import { Video, VideoCaptionEdit, VideoCaptionService, VideoDetails, VideoEdit, VideoService } from '@app/shared/shared-main' | 8 | import { Video, VideoCaptionEdit, VideoCaptionService, VideoDetails, VideoEdit, VideoService } from '@app/shared/shared-main' |
9 | import { LiveVideoService } from '@app/shared/shared-video-live' | 9 | import { LiveVideoService } from '@app/shared/shared-video-live' |
10 | import { LoadingBarService } from '@ngx-loading-bar/core' | 10 | import { LoadingBarService } from '@ngx-loading-bar/core' |
11 | import { logger } from '@root-helpers/logger' | ||
11 | import { LiveVideo, LiveVideoUpdate, VideoPrivacy } from '@shared/models' | 12 | import { LiveVideo, LiveVideoUpdate, VideoPrivacy } from '@shared/models' |
12 | import { hydrateFormFromVideo } from './shared/video-edit-utils' | ||
13 | import { VideoSource } from '@shared/models/videos/video-source' | 13 | import { VideoSource } from '@shared/models/videos/video-source' |
14 | import { hydrateFormFromVideo } from './shared/video-edit-utils' | ||
14 | 15 | ||
15 | @Component({ | 16 | @Component({ |
16 | selector: 'my-videos-update', | 17 | selector: 'my-videos-update', |
@@ -156,7 +157,7 @@ export class VideoUpdateComponent extends FormReactive implements OnInit { | |||
156 | this.loadingBar.useRef().complete() | 157 | this.loadingBar.useRef().complete() |
157 | this.isUpdatingVideo = false | 158 | this.isUpdatingVideo = false |
158 | this.notifier.error(err.message) | 159 | this.notifier.error(err.message) |
159 | console.error(err) | 160 | logger.error(err) |
160 | } | 161 | } |
161 | }) | 162 | }) |
162 | } | 163 | } |
diff --git a/client/src/app/+videos/+video-watch/shared/metadata/video-description.component.ts b/client/src/app/+videos/+video-watch/shared/metadata/video-description.component.ts index e002b3c22..b5444facb 100644 --- a/client/src/app/+videos/+video-watch/shared/metadata/video-description.component.ts +++ b/client/src/app/+videos/+video-watch/shared/metadata/video-description.component.ts | |||
@@ -1,6 +1,7 @@ | |||
1 | import { Component, EventEmitter, Input, OnChanges, Output } from '@angular/core' | 1 | import { Component, EventEmitter, Input, OnChanges, Output } from '@angular/core' |
2 | import { MarkdownService, Notifier } from '@app/core' | 2 | import { MarkdownService, Notifier } from '@app/core' |
3 | import { VideoDetails, VideoService } from '@app/shared/shared-main' | 3 | import { VideoDetails, VideoService } from '@app/shared/shared-main' |
4 | import { logger } from '@root-helpers/logger' | ||
4 | 5 | ||
5 | @Component({ | 6 | @Component({ |
6 | selector: 'my-video-description', | 7 | selector: 'my-video-description', |
@@ -75,7 +76,7 @@ export class VideoDescriptionComponent implements OnChanges { | |||
75 | private updateVideoDescription (description: string) { | 76 | private updateVideoDescription (description: string) { |
76 | this.video.description = description | 77 | this.video.description = description |
77 | this.setVideoDescriptionHTML() | 78 | this.setVideoDescriptionHTML() |
78 | .catch(err => console.error(err)) | 79 | .catch(err => logger.error(err)) |
79 | } | 80 | } |
80 | 81 | ||
81 | private async setVideoDescriptionHTML () { | 82 | private async setVideoDescriptionHTML () { |
diff --git a/client/src/app/+videos/+video-watch/video-watch.component.ts b/client/src/app/+videos/+video-watch/video-watch.component.ts index 6a3bd1522..292ce6441 100644 --- a/client/src/app/+videos/+video-watch/video-watch.component.ts +++ b/client/src/app/+videos/+video-watch/video-watch.component.ts | |||
@@ -24,6 +24,7 @@ import { Video, VideoCaptionService, VideoDetails, VideoService } from '@app/sha | |||
24 | import { SubscribeButtonComponent } from '@app/shared/shared-user-subscription' | 24 | import { SubscribeButtonComponent } from '@app/shared/shared-user-subscription' |
25 | import { LiveVideoService } from '@app/shared/shared-video-live' | 25 | import { LiveVideoService } from '@app/shared/shared-video-live' |
26 | import { VideoPlaylist, VideoPlaylistService } from '@app/shared/shared-video-playlist' | 26 | import { VideoPlaylist, VideoPlaylistService } from '@app/shared/shared-video-playlist' |
27 | import { logger } from '@root-helpers/logger' | ||
27 | import { isP2PEnabled } from '@root-helpers/video' | 28 | import { isP2PEnabled } from '@root-helpers/video' |
28 | import { timeToInt } from '@shared/core-utils' | 29 | import { timeToInt } from '@shared/core-utils' |
29 | import { | 30 | import { |
@@ -225,7 +226,7 @@ export class VideoWatchComponent implements OnInit, OnDestroy { | |||
225 | : parseInt(positionParam + '', 10) | 226 | : parseInt(positionParam + '', 10) |
226 | 227 | ||
227 | if (isNaN(this.playlistPosition)) { | 228 | if (isNaN(this.playlistPosition)) { |
228 | console.error(`playlistPosition query param '${positionParam}' was parsed as NaN, defaulting to 1.`) | 229 | logger.error(`playlistPosition query param '${positionParam}' was parsed as NaN, defaulting to 1.`) |
229 | this.playlistPosition = 1 | 230 | this.playlistPosition = 1 |
230 | } | 231 | } |
231 | 232 | ||
@@ -378,7 +379,7 @@ export class VideoWatchComponent implements OnInit, OnDestroy { | |||
378 | } | 379 | } |
379 | 380 | ||
380 | this.buildPlayer(urlOptions, loggedInOrAnonymousUser) | 381 | this.buildPlayer(urlOptions, loggedInOrAnonymousUser) |
381 | .catch(err => console.error('Cannot build the player', err)) | 382 | .catch(err => logger.error('Cannot build the player', err)) |
382 | 383 | ||
383 | this.setOpenGraphTags() | 384 | this.setOpenGraphTags() |
384 | 385 | ||
@@ -550,7 +551,7 @@ export class VideoWatchComponent implements OnInit, OnDestroy { | |||
550 | this.player.dispose() | 551 | this.player.dispose() |
551 | this.player = undefined | 552 | this.player = undefined |
552 | } catch (err) { | 553 | } catch (err) { |
553 | console.error('Cannot dispose player.', err) | 554 | logger.error('Cannot dispose player.', err) |
554 | } | 555 | } |
555 | } | 556 | } |
556 | 557 | ||
@@ -717,7 +718,7 @@ export class VideoWatchComponent implements OnInit, OnDestroy { | |||
717 | private handleLiveStateChange (newState: VideoState) { | 718 | private handleLiveStateChange (newState: VideoState) { |
718 | if (newState !== VideoState.PUBLISHED) return | 719 | if (newState !== VideoState.PUBLISHED) return |
719 | 720 | ||
720 | console.log('Loading video after live update.') | 721 | logger.info('Loading video after live update.') |
721 | 722 | ||
722 | const videoUUID = this.video.uuid | 723 | const videoUUID = this.video.uuid |
723 | 724 | ||
@@ -728,11 +729,11 @@ export class VideoWatchComponent implements OnInit, OnDestroy { | |||
728 | 729 | ||
729 | private handleLiveViewsChange (newViewers: number) { | 730 | private handleLiveViewsChange (newViewers: number) { |
730 | if (!this.video) { | 731 | if (!this.video) { |
731 | console.error('Cannot update video live views because video is no defined.') | 732 | logger.error('Cannot update video live views because video is no defined.') |
732 | return | 733 | return |
733 | } | 734 | } |
734 | 735 | ||
735 | console.log('Updating live views.') | 736 | logger.info('Updating live views.') |
736 | 737 | ||
737 | this.video.viewers = newViewers | 738 | this.video.viewers = newViewers |
738 | } | 739 | } |
diff --git a/client/src/app/app.component.ts b/client/src/app/app.component.ts index 8fdab0c40..a2ad4806c 100644 --- a/client/src/app/app.component.ts +++ b/client/src/app/app.component.ts | |||
@@ -1,5 +1,5 @@ | |||
1 | import { Hotkey, HotkeysService } from 'angular2-hotkeys' | 1 | import { Hotkey, HotkeysService } from 'angular2-hotkeys' |
2 | import { forkJoin, delay } from 'rxjs' | 2 | import { delay, forkJoin } from 'rxjs' |
3 | import { filter, first, map } from 'rxjs/operators' | 3 | import { filter, first, map } from 'rxjs/operators' |
4 | import { DOCUMENT, getLocaleDirection, PlatformLocation } from '@angular/common' | 4 | import { DOCUMENT, getLocaleDirection, PlatformLocation } from '@angular/common' |
5 | import { AfterViewInit, Component, Inject, LOCALE_ID, OnInit, ViewChild } from '@angular/core' | 5 | import { AfterViewInit, Component, Inject, LOCALE_ID, OnInit, ViewChild } from '@angular/core' |
@@ -20,18 +20,19 @@ import { | |||
20 | import { HooksService } from '@app/core/plugins/hooks.service' | 20 | import { HooksService } from '@app/core/plugins/hooks.service' |
21 | import { PluginService } from '@app/core/plugins/plugin.service' | 21 | import { PluginService } from '@app/core/plugins/plugin.service' |
22 | import { AccountSetupWarningModalComponent } from '@app/modal/account-setup-warning-modal.component' | 22 | import { AccountSetupWarningModalComponent } from '@app/modal/account-setup-warning-modal.component' |
23 | import { AdminWelcomeModalComponent } from '@app/modal/admin-welcome-modal.component' | ||
23 | import { CustomModalComponent } from '@app/modal/custom-modal.component' | 24 | import { CustomModalComponent } from '@app/modal/custom-modal.component' |
24 | import { InstanceConfigWarningModalComponent } from '@app/modal/instance-config-warning-modal.component' | 25 | import { InstanceConfigWarningModalComponent } from '@app/modal/instance-config-warning-modal.component' |
25 | import { AdminWelcomeModalComponent } from '@app/modal/admin-welcome-modal.component' | ||
26 | import { NgbConfig, NgbModal } from '@ng-bootstrap/ng-bootstrap' | 26 | import { NgbConfig, NgbModal } from '@ng-bootstrap/ng-bootstrap' |
27 | import { LoadingBarService } from '@ngx-loading-bar/core' | 27 | import { LoadingBarService } from '@ngx-loading-bar/core' |
28 | import { logger } from '@root-helpers/logger' | ||
28 | import { peertubeLocalStorage } from '@root-helpers/peertube-web-storage' | 29 | import { peertubeLocalStorage } from '@root-helpers/peertube-web-storage' |
29 | import { getShortLocale } from '@shared/core-utils/i18n' | 30 | import { getShortLocale } from '@shared/core-utils/i18n' |
30 | import { BroadcastMessageLevel, HTMLServerConfig, UserRole } from '@shared/models' | 31 | import { BroadcastMessageLevel, HTMLServerConfig, UserRole } from '@shared/models' |
31 | import { MenuService } from './core/menu/menu.service' | 32 | import { MenuService } from './core/menu/menu.service' |
32 | import { POP_STATE_MODAL_DISMISS } from './helpers' | 33 | import { POP_STATE_MODAL_DISMISS } from './helpers' |
33 | import { InstanceService } from './shared/shared-instance' | ||
34 | import { GlobalIconName } from './shared/shared-icons' | 34 | import { GlobalIconName } from './shared/shared-icons' |
35 | import { InstanceService } from './shared/shared-instance' | ||
35 | 36 | ||
36 | @Component({ | 37 | @Component({ |
37 | selector: 'my-app', | 38 | selector: 'my-app', |
@@ -221,7 +222,7 @@ export class AppComponent implements OnInit, AfterViewInit { | |||
221 | /* eslint-disable no-eval */ | 222 | /* eslint-disable no-eval */ |
222 | eval(this.serverConfig.instance.customizations.javascript) | 223 | eval(this.serverConfig.instance.customizations.javascript) |
223 | } catch (err) { | 224 | } catch (err) { |
224 | console.error('Cannot eval custom JavaScript.', err) | 225 | logger.error('Cannot eval custom JavaScript.', err) |
225 | } | 226 | } |
226 | } | 227 | } |
227 | } | 228 | } |
diff --git a/client/src/app/core/auth/auth.service.ts b/client/src/app/core/auth/auth.service.ts index 2ac88c185..ece6bc5d1 100644 --- a/client/src/app/core/auth/auth.service.ts +++ b/client/src/app/core/auth/auth.service.ts | |||
@@ -5,7 +5,7 @@ import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http' | |||
5 | import { Injectable } from '@angular/core' | 5 | import { Injectable } from '@angular/core' |
6 | import { Router } from '@angular/router' | 6 | import { Router } from '@angular/router' |
7 | import { Notifier } from '@app/core/notification/notifier.service' | 7 | import { Notifier } from '@app/core/notification/notifier.service' |
8 | import { objectToUrlEncoded, peertubeLocalStorage, UserTokens } from '@root-helpers/index' | 8 | import { logger, objectToUrlEncoded, peertubeLocalStorage, UserTokens } from '@root-helpers/index' |
9 | import { HttpStatusCode, MyUser as UserServerModel, OAuthClientLocal, User, UserLogin, UserRefreshToken } from '@shared/models' | 9 | import { HttpStatusCode, MyUser as UserServerModel, OAuthClientLocal, User, UserLogin, UserRefreshToken } from '@shared/models' |
10 | import { environment } from '../../../environments/environment' | 10 | import { environment } from '../../../environments/environment' |
11 | import { RestExtractor } from '../rest/rest-extractor.service' | 11 | import { RestExtractor } from '../rest/rest-extractor.service' |
@@ -90,7 +90,7 @@ export class AuthService { | |||
90 | peertubeLocalStorage.setItem(AuthService.LOCAL_STORAGE_OAUTH_CLIENT_KEYS.CLIENT_ID, this.clientId) | 90 | peertubeLocalStorage.setItem(AuthService.LOCAL_STORAGE_OAUTH_CLIENT_KEYS.CLIENT_ID, this.clientId) |
91 | peertubeLocalStorage.setItem(AuthService.LOCAL_STORAGE_OAUTH_CLIENT_KEYS.CLIENT_SECRET, this.clientSecret) | 91 | peertubeLocalStorage.setItem(AuthService.LOCAL_STORAGE_OAUTH_CLIENT_KEYS.CLIENT_SECRET, this.clientSecret) |
92 | 92 | ||
93 | console.log('Client credentials loaded.') | 93 | logger.info('Client credentials loaded.') |
94 | }, | 94 | }, |
95 | 95 | ||
96 | error: err => { | 96 | error: err => { |
@@ -177,7 +177,7 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular | |||
177 | } | 177 | } |
178 | }, | 178 | }, |
179 | 179 | ||
180 | error: err => console.error(err) | 180 | error: err => logger.error(err) |
181 | }) | 181 | }) |
182 | 182 | ||
183 | this.user = null | 183 | this.user = null |
@@ -190,7 +190,7 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular | |||
190 | refreshAccessToken () { | 190 | refreshAccessToken () { |
191 | if (this.refreshingTokenObservable) return this.refreshingTokenObservable | 191 | if (this.refreshingTokenObservable) return this.refreshingTokenObservable |
192 | 192 | ||
193 | console.log('Refreshing token...') | 193 | logger.info('Refreshing token...') |
194 | 194 | ||
195 | const refreshToken = this.getRefreshToken() | 195 | const refreshToken = this.getRefreshToken() |
196 | 196 | ||
@@ -212,8 +212,8 @@ Ensure you have correctly configured PeerTube (config/ directory), in particular | |||
212 | catchError(err => { | 212 | catchError(err => { |
213 | this.refreshingTokenObservable = null | 213 | this.refreshingTokenObservable = null |
214 | 214 | ||
215 | console.error(err) | 215 | logger.error(err) |
216 | console.log('Cannot refresh token -> logout...') | 216 | logger.info('Cannot refresh token -> logout...') |
217 | this.logout() | 217 | this.logout() |
218 | this.router.navigate([ '/login' ]) | 218 | this.router.navigate([ '/login' ]) |
219 | 219 | ||
diff --git a/client/src/app/core/notification/notifier.service.ts b/client/src/app/core/notification/notifier.service.ts index 165bb0c76..15af5c1b6 100644 --- a/client/src/app/core/notification/notifier.service.ts +++ b/client/src/app/core/notification/notifier.service.ts | |||
@@ -1,5 +1,6 @@ | |||
1 | import { MessageService } from 'primeng/api' | 1 | import { MessageService } from 'primeng/api' |
2 | import { Injectable } from '@angular/core' | 2 | import { Injectable } from '@angular/core' |
3 | import { logger } from '@root-helpers/logger' | ||
3 | 4 | ||
4 | @Injectable() | 5 | @Injectable() |
5 | export class Notifier { | 6 | export class Notifier { |
@@ -10,21 +11,21 @@ export class Notifier { | |||
10 | info (text: string, title?: string, timeout?: number, sticky?: boolean) { | 11 | info (text: string, title?: string, timeout?: number, sticky?: boolean) { |
11 | if (!title) title = $localize`Info` | 12 | if (!title) title = $localize`Info` |
12 | 13 | ||
13 | console.info(`${title}: ${text}`) | 14 | logger.info(`${title}: ${text}`) |
14 | return this.notify('info', text, title, timeout, sticky) | 15 | return this.notify('info', text, title, timeout, sticky) |
15 | } | 16 | } |
16 | 17 | ||
17 | error (text: string, title?: string, timeout?: number, sticky?: boolean) { | 18 | error (text: string, title?: string, timeout?: number, sticky?: boolean) { |
18 | if (!title) title = $localize`Error` | 19 | if (!title) title = $localize`Error` |
19 | 20 | ||
20 | console.error(`${title}: ${text}`) | 21 | logger.error(`${title}: ${text}`) |
21 | return this.notify('error', text, title, timeout, sticky) | 22 | return this.notify('error', text, title, timeout, sticky) |
22 | } | 23 | } |
23 | 24 | ||
24 | success (text: string, title?: string, timeout?: number, sticky?: boolean) { | 25 | success (text: string, title?: string, timeout?: number, sticky?: boolean) { |
25 | if (!title) title = $localize`Success` | 26 | if (!title) title = $localize`Success` |
26 | 27 | ||
27 | console.log(`${title}: ${text}`) | 28 | logger.info(`${title}: ${text}`) |
28 | return this.notify('success', text, title, timeout, sticky) | 29 | return this.notify('success', text, title, timeout, sticky) |
29 | } | 30 | } |
30 | 31 | ||
diff --git a/client/src/app/core/plugins/hooks.service.ts b/client/src/app/core/plugins/hooks.service.ts index 062083fd1..7fd56d92e 100644 --- a/client/src/app/core/plugins/hooks.service.ts +++ b/client/src/app/core/plugins/hooks.service.ts | |||
@@ -2,6 +2,7 @@ import { from, Observable } from 'rxjs' | |||
2 | import { mergeMap, switchMap } from 'rxjs/operators' | 2 | import { mergeMap, switchMap } from 'rxjs/operators' |
3 | import { Injectable } from '@angular/core' | 3 | import { Injectable } from '@angular/core' |
4 | import { PluginService } from '@app/core/plugins/plugin.service' | 4 | import { PluginService } from '@app/core/plugins/plugin.service' |
5 | import { logger } from '@root-helpers/logger' | ||
5 | import { ClientActionHookName, ClientFilterHookName, PluginClientScope } from '@shared/models' | 6 | import { ClientActionHookName, ClientFilterHookName, PluginClientScope } from '@shared/models' |
6 | import { AuthService, AuthStatus } from '../auth' | 7 | import { AuthService, AuthStatus } from '../auth' |
7 | 8 | ||
@@ -50,7 +51,7 @@ export class HooksService { | |||
50 | runAction<T, U extends ClientActionHookName> (hookName: U, scope: PluginClientScope, params?: T) { | 51 | runAction<T, U extends ClientActionHookName> (hookName: U, scope: PluginClientScope, params?: T) { |
51 | this.pluginService.ensurePluginsAreLoaded(scope) | 52 | this.pluginService.ensurePluginsAreLoaded(scope) |
52 | .then(() => this.pluginService.runHook(hookName, undefined, params)) | 53 | .then(() => this.pluginService.runHook(hookName, undefined, params)) |
53 | .catch((err: any) => console.error('Fatal hook error.', { err })) | 54 | .catch((err: any) => logger.error('Fatal hook error.', err)) |
54 | } | 55 | } |
55 | 56 | ||
56 | async wrapObject<T, U extends ClientFilterHookName> (result: T, scope: PluginClientScope, hookName: U) { | 57 | async wrapObject<T, U extends ClientFilterHookName> (result: T, scope: PluginClientScope, hookName: U) { |
diff --git a/client/src/app/core/rest/rest-extractor.service.ts b/client/src/app/core/rest/rest-extractor.service.ts index 86c7484a5..8a2974563 100644 --- a/client/src/app/core/rest/rest-extractor.service.ts +++ b/client/src/app/core/rest/rest-extractor.service.ts | |||
@@ -3,6 +3,7 @@ import { Injectable } from '@angular/core' | |||
3 | import { Router } from '@angular/router' | 3 | import { Router } from '@angular/router' |
4 | import { dateToHuman } from '@app/helpers' | 4 | import { dateToHuman } from '@app/helpers' |
5 | import { HttpStatusCode, ResultList } from '@shared/models' | 5 | import { HttpStatusCode, ResultList } from '@shared/models' |
6 | import { logger } from '@root-helpers/logger' | ||
6 | 7 | ||
7 | @Injectable() | 8 | @Injectable() |
8 | export class RestExtractor { | 9 | export class RestExtractor { |
@@ -64,7 +65,7 @@ export class RestExtractor { | |||
64 | if (err.error instanceof Error) { | 65 | if (err.error instanceof Error) { |
65 | // A client-side or network error occurred. Handle it accordingly. | 66 | // A client-side or network error occurred. Handle it accordingly. |
66 | const errorMessage = err.error.detail || err.error.title | 67 | const errorMessage = err.error.detail || err.error.title |
67 | console.error('An error occurred:', errorMessage) | 68 | logger.error('An error occurred:', errorMessage) |
68 | 69 | ||
69 | return errorMessage | 70 | return errorMessage |
70 | } | 71 | } |
@@ -75,12 +76,12 @@ export class RestExtractor { | |||
75 | 76 | ||
76 | if (err.status !== undefined) { | 77 | if (err.status !== undefined) { |
77 | const errorMessage = this.buildServerErrorMessage(err) | 78 | const errorMessage = this.buildServerErrorMessage(err) |
78 | console.error(`Backend returned code ${err.status}, errorMessage is: ${errorMessage}`) | 79 | logger.error(`Backend returned code ${err.status}, errorMessage is: ${errorMessage}`) |
79 | 80 | ||
80 | return errorMessage | 81 | return errorMessage |
81 | } | 82 | } |
82 | 83 | ||
83 | console.error(err) | 84 | logger.error(err) |
84 | return err | 85 | return err |
85 | } | 86 | } |
86 | 87 | ||
diff --git a/client/src/app/core/rest/rest-table.ts b/client/src/app/core/rest/rest-table.ts index cb5bd0b89..ec5646b5d 100644 --- a/client/src/app/core/rest/rest-table.ts +++ b/client/src/app/core/rest/rest-table.ts | |||
@@ -1,10 +1,11 @@ | |||
1 | import * as debug from 'debug' | 1 | import debug from 'debug' |
2 | import { LazyLoadEvent, SortMeta } from 'primeng/api' | 2 | import { LazyLoadEvent, SortMeta } from 'primeng/api' |
3 | import { ActivatedRoute, Router } from '@angular/router' | 3 | import { ActivatedRoute, Router } from '@angular/router' |
4 | import { logger } from '@root-helpers/logger' | ||
4 | import { peertubeLocalStorage } from '@root-helpers/peertube-web-storage' | 5 | import { peertubeLocalStorage } from '@root-helpers/peertube-web-storage' |
5 | import { RestPagination } from './rest-pagination' | 6 | import { RestPagination } from './rest-pagination' |
6 | 7 | ||
7 | const logger = debug('peertube:tables:RestTable') | 8 | const debugLogger = debug('peertube:tables:RestTable') |
8 | 9 | ||
9 | export abstract class RestTable { | 10 | export abstract class RestTable { |
10 | 11 | ||
@@ -34,7 +35,7 @@ export abstract class RestTable { | |||
34 | try { | 35 | try { |
35 | this.sort = JSON.parse(result) | 36 | this.sort = JSON.parse(result) |
36 | } catch (err) { | 37 | } catch (err) { |
37 | console.error('Cannot load sort of local storage key ' + this.getSortLocalStorageKey(), err) | 38 | logger.error('Cannot load sort of local storage key ' + this.getSortLocalStorageKey(), err) |
38 | } | 39 | } |
39 | } | 40 | } |
40 | } | 41 | } |
@@ -44,7 +45,7 @@ export abstract class RestTable { | |||
44 | } | 45 | } |
45 | 46 | ||
46 | loadLazy (event: LazyLoadEvent) { | 47 | loadLazy (event: LazyLoadEvent) { |
47 | logger('Load lazy %o.', event) | 48 | debugLogger('Load lazy %o.', event) |
48 | 49 | ||
49 | this.sort = { | 50 | this.sort = { |
50 | order: event.sortOrder, | 51 | order: event.sortOrder, |
diff --git a/client/src/app/core/rest/rest.service.ts b/client/src/app/core/rest/rest.service.ts index fc729f0f6..d8b5ffb18 100644 --- a/client/src/app/core/rest/rest.service.ts +++ b/client/src/app/core/rest/rest.service.ts | |||
@@ -5,7 +5,7 @@ import { Injectable } from '@angular/core' | |||
5 | import { ComponentPaginationLight } from './component-pagination.model' | 5 | import { ComponentPaginationLight } from './component-pagination.model' |
6 | import { RestPagination } from './rest-pagination' | 6 | import { RestPagination } from './rest-pagination' |
7 | 7 | ||
8 | const logger = debug('peertube:rest') | 8 | const debugLogger = debug('peertube:rest') |
9 | 9 | ||
10 | interface QueryStringFilterPrefixes { | 10 | interface QueryStringFilterPrefixes { |
11 | [key: string]: { | 11 | [key: string]: { |
@@ -88,7 +88,7 @@ export class RestService { | |||
88 | const prefixeStrings = Object.values(prefixes) | 88 | const prefixeStrings = Object.values(prefixes) |
89 | .map(p => p.prefix) | 89 | .map(p => p.prefix) |
90 | 90 | ||
91 | logger(`Built tokens "${tokens.join(', ')}" for prefixes "${prefixeStrings.join(', ')}"`) | 91 | debugLogger(`Built tokens "${tokens.join(', ')}" for prefixes "${prefixeStrings.join(', ')}"`) |
92 | 92 | ||
93 | // Search is the querystring minus defined filters | 93 | // Search is the querystring minus defined filters |
94 | const searchTokens = tokens.filter(t => { | 94 | const searchTokens = tokens.filter(t => { |
@@ -127,7 +127,7 @@ export class RestService { | |||
127 | 127 | ||
128 | const search = searchTokens.join(' ') || undefined | 128 | const search = searchTokens.join(' ') || undefined |
129 | 129 | ||
130 | logger('Built search: ' + search, additionalFilters) | 130 | debugLogger('Built search: ' + search, additionalFilters) |
131 | 131 | ||
132 | return { | 132 | return { |
133 | search, | 133 | search, |
diff --git a/client/src/app/core/routing/custom-reuse-strategy.ts b/client/src/app/core/routing/custom-reuse-strategy.ts index 5d3ad2e67..269b9d193 100644 --- a/client/src/app/core/routing/custom-reuse-strategy.ts +++ b/client/src/app/core/routing/custom-reuse-strategy.ts | |||
@@ -1,5 +1,6 @@ | |||
1 | import { ComponentRef, Injectable } from '@angular/core' | 1 | import { ComponentRef, Injectable } from '@angular/core' |
2 | import { ActivatedRouteSnapshot, DetachedRouteHandle, RouteReuseStrategy } from '@angular/router' | 2 | import { ActivatedRouteSnapshot, DetachedRouteHandle, RouteReuseStrategy } from '@angular/router' |
3 | import { logger } from '@root-helpers/logger' | ||
3 | import { DisableForReuseHook } from './disable-for-reuse-hook' | 4 | import { DisableForReuseHook } from './disable-for-reuse-hook' |
4 | import { PeerTubeRouterService, RouterSetting } from './peertube-router.service' | 5 | import { PeerTubeRouterService, RouterSetting } from './peertube-router.service' |
5 | 6 | ||
@@ -22,7 +23,7 @@ export class CustomReuseStrategy implements RouteReuseStrategy { | |||
22 | const key = this.generateKey(route) | 23 | const key = this.generateKey(route) |
23 | this.recentlyUsed = key | 24 | this.recentlyUsed = key |
24 | 25 | ||
25 | console.log('Storing component %s to reuse later.', key) | 26 | logger.info(`Storing component ${key} to reuse later.`) |
26 | 27 | ||
27 | const componentRef = (handle as any).componentRef as ComponentRef<DisableForReuseHook> | 28 | const componentRef = (handle as any).componentRef as ComponentRef<DisableForReuseHook> |
28 | componentRef.instance.disableForReuse() | 29 | componentRef.instance.disableForReuse() |
@@ -46,7 +47,7 @@ export class CustomReuseStrategy implements RouteReuseStrategy { | |||
46 | const key = this.generateKey(route) | 47 | const key = this.generateKey(route) |
47 | this.recentlyUsed = key | 48 | this.recentlyUsed = key |
48 | 49 | ||
49 | console.log('Reusing component %s.', key) | 50 | logger.info(`Reusing component ${key}.`) |
50 | 51 | ||
51 | const handle = this.storedRouteHandles.get(key) | 52 | const handle = this.storedRouteHandles.get(key) |
52 | if (!handle) return handle; | 53 | if (!handle) return handle; |
@@ -66,7 +67,7 @@ export class CustomReuseStrategy implements RouteReuseStrategy { | |||
66 | this.storedRouteHandles.forEach((r, key) => { | 67 | this.storedRouteHandles.forEach((r, key) => { |
67 | if (key === this.recentlyUsed) return | 68 | if (key === this.recentlyUsed) return |
68 | 69 | ||
69 | console.log('Removing stored component %s.', key); | 70 | logger.info(`Removing stored component ${key}`); |
70 | 71 | ||
71 | (r as any).componentRef.destroy() | 72 | (r as any).componentRef.destroy() |
72 | this.storedRouteHandles.delete(key) | 73 | this.storedRouteHandles.delete(key) |
diff --git a/client/src/app/core/routing/redirect.service.ts b/client/src/app/core/routing/redirect.service.ts index 567fd432b..575b3b2a1 100644 --- a/client/src/app/core/routing/redirect.service.ts +++ b/client/src/app/core/routing/redirect.service.ts | |||
@@ -1,10 +1,11 @@ | |||
1 | import * as debug from 'debug' | 1 | import * as debug from 'debug' |
2 | import { Injectable } from '@angular/core' | 2 | import { Injectable } from '@angular/core' |
3 | import { NavigationCancel, NavigationEnd, Router } from '@angular/router' | 3 | import { NavigationCancel, NavigationEnd, Router } from '@angular/router' |
4 | import { logger } from '@root-helpers/logger' | ||
4 | import { ServerService } from '../server' | 5 | import { ServerService } from '../server' |
5 | import { SessionStorageService } from '../wrappers/storage.service' | 6 | import { SessionStorageService } from '../wrappers/storage.service' |
6 | 7 | ||
7 | const logger = debug('peertube:router:RedirectService') | 8 | const debugLogger = debug('peertube:router:RedirectService') |
8 | 9 | ||
9 | @Injectable() | 10 | @Injectable() |
10 | export class RedirectService { | 11 | export class RedirectService { |
@@ -40,7 +41,7 @@ export class RedirectService { | |||
40 | this.latestSessionUrl = this.storage.getItem(RedirectService.SESSION_STORAGE_LATEST_SESSION_URL_KEY) | 41 | this.latestSessionUrl = this.storage.getItem(RedirectService.SESSION_STORAGE_LATEST_SESSION_URL_KEY) |
41 | this.storage.removeItem(RedirectService.SESSION_STORAGE_LATEST_SESSION_URL_KEY) | 42 | this.storage.removeItem(RedirectService.SESSION_STORAGE_LATEST_SESSION_URL_KEY) |
42 | 43 | ||
43 | logger('Loaded latest session URL %s', this.latestSessionUrl) | 44 | debugLogger('Loaded latest session URL %s', this.latestSessionUrl) |
44 | 45 | ||
45 | // Track previous url | 46 | // Track previous url |
46 | this.currentUrl = this.router.url | 47 | this.currentUrl = this.router.url |
@@ -51,8 +52,8 @@ export class RedirectService { | |||
51 | this.previousUrl = this.currentUrl | 52 | this.previousUrl = this.currentUrl |
52 | this.currentUrl = event.url | 53 | this.currentUrl = event.url |
53 | 54 | ||
54 | logger('Previous URL is %s, current URL is %s', this.previousUrl, this.currentUrl) | 55 | debugLogger('Previous URL is %s, current URL is %s', this.previousUrl, this.currentUrl) |
55 | logger('Setting %s as latest URL in session storage.', this.currentUrl) | 56 | debugLogger('Setting %s as latest URL in session storage.', this.currentUrl) |
56 | 57 | ||
57 | this.storage.setItem(RedirectService.SESSION_STORAGE_LATEST_SESSION_URL_KEY, this.currentUrl) | 58 | this.storage.setItem(RedirectService.SESSION_STORAGE_LATEST_SESSION_URL_KEY, this.currentUrl) |
58 | } | 59 | } |
@@ -84,18 +85,14 @@ export class RedirectService { | |||
84 | 85 | ||
85 | this.redirectingToHomepage = true | 86 | this.redirectingToHomepage = true |
86 | 87 | ||
87 | console.log('Redirecting to %s...', this.defaultRoute) | 88 | logger.info(`Redirecting to ${this.defaultRoute}...`) |
88 | 89 | ||
89 | this.router.navigateByUrl(this.defaultRoute, { skipLocationChange }) | 90 | this.router.navigateByUrl(this.defaultRoute, { skipLocationChange }) |
90 | .then(() => this.redirectingToHomepage = false) | 91 | .then(() => this.redirectingToHomepage = false) |
91 | .catch(() => { | 92 | .catch(() => { |
92 | this.redirectingToHomepage = false | 93 | this.redirectingToHomepage = false |
93 | 94 | ||
94 | console.error( | 95 | logger.error(`Cannot navigate to ${this.defaultRoute}, resetting default route to ${RedirectService.INIT_DEFAULT_ROUTE}`) |
95 | 'Cannot navigate to %s, resetting default route to %s.', | ||
96 | this.defaultRoute, | ||
97 | RedirectService.INIT_DEFAULT_ROUTE | ||
98 | ) | ||
99 | 96 | ||
100 | this.defaultRoute = RedirectService.INIT_DEFAULT_ROUTE | 97 | this.defaultRoute = RedirectService.INIT_DEFAULT_ROUTE |
101 | return this.router.navigateByUrl(this.defaultRoute, { skipLocationChange }) | 98 | return this.router.navigateByUrl(this.defaultRoute, { skipLocationChange }) |
@@ -104,18 +101,18 @@ export class RedirectService { | |||
104 | } | 101 | } |
105 | 102 | ||
106 | private doRedirect (redirectUrl: string, fallbackRoute?: string) { | 103 | private doRedirect (redirectUrl: string, fallbackRoute?: string) { |
107 | logger('Redirecting on %s', redirectUrl) | 104 | debugLogger('Redirecting on %s', redirectUrl) |
108 | 105 | ||
109 | if (this.isValidRedirection(redirectUrl)) { | 106 | if (this.isValidRedirection(redirectUrl)) { |
110 | return this.router.navigateByUrl(redirectUrl) | 107 | return this.router.navigateByUrl(redirectUrl) |
111 | } | 108 | } |
112 | 109 | ||
113 | logger('%s is not a valid redirection, try fallback route %s', redirectUrl, fallbackRoute) | 110 | debugLogger('%s is not a valid redirection, try fallback route %s', redirectUrl, fallbackRoute) |
114 | if (fallbackRoute) { | 111 | if (fallbackRoute) { |
115 | return this.router.navigateByUrl(fallbackRoute) | 112 | return this.router.navigateByUrl(fallbackRoute) |
116 | } | 113 | } |
117 | 114 | ||
118 | logger('There was no fallback route, redirecting to homepage') | 115 | debugLogger('There was no fallback route, redirecting to homepage') |
119 | return this.redirectToHomepage() | 116 | return this.redirectToHomepage() |
120 | } | 117 | } |
121 | 118 | ||
diff --git a/client/src/app/core/routing/scroll.service.ts b/client/src/app/core/routing/scroll.service.ts index 6d37fde71..0966255b3 100644 --- a/client/src/app/core/routing/scroll.service.ts +++ b/client/src/app/core/routing/scroll.service.ts | |||
@@ -4,8 +4,9 @@ import { ViewportScroller } from '@angular/common' | |||
4 | import { Injectable } from '@angular/core' | 4 | import { Injectable } from '@angular/core' |
5 | import { RouterSetting } from '../' | 5 | import { RouterSetting } from '../' |
6 | import { PeerTubeRouterService } from './peertube-router.service' | 6 | import { PeerTubeRouterService } from './peertube-router.service' |
7 | import { logger } from '@root-helpers/logger' | ||
7 | 8 | ||
8 | const logger = debug('peertube:main:ScrollService') | 9 | const debugLogger = debug('peertube:main:ScrollService') |
9 | 10 | ||
10 | @Injectable() | 11 | @Injectable() |
11 | export class ScrollService { | 12 | export class ScrollService { |
@@ -57,8 +58,8 @@ export class ScrollService { | |||
57 | if (nextSearchParams.toString() !== previousSearchParams.toString()) { | 58 | if (nextSearchParams.toString() !== previousSearchParams.toString()) { |
58 | this.resetScroll = true | 59 | this.resetScroll = true |
59 | } | 60 | } |
60 | } catch (e) { | 61 | } catch (err) { |
61 | console.error('Cannot parse URL to check next scroll.', e) | 62 | logger.error('Cannot parse URL to check next scroll.', err) |
62 | this.resetScroll = true | 63 | this.resetScroll = true |
63 | } | 64 | } |
64 | }) | 65 | }) |
@@ -67,7 +68,7 @@ export class ScrollService { | |||
67 | private consumeScroll () { | 68 | private consumeScroll () { |
68 | // Handle anchors/restore position | 69 | // Handle anchors/restore position |
69 | this.peertubeRouter.getScrollEvents().subscribe(e => { | 70 | this.peertubeRouter.getScrollEvents().subscribe(e => { |
70 | logger('Will schedule scroll after router event %o.', { e, resetScroll: this.resetScroll }) | 71 | debugLogger('Will schedule scroll after router event %o.', { e, resetScroll: this.resetScroll }) |
71 | 72 | ||
72 | // scrollToAnchor first to preserve anchor position when using history navigation | 73 | // scrollToAnchor first to preserve anchor position when using history navigation |
73 | if (e.anchor) { | 74 | if (e.anchor) { |
diff --git a/client/src/app/core/server/server.service.ts b/client/src/app/core/server/server.service.ts index d01942139..9db455cb8 100644 --- a/client/src/app/core/server/server.service.ts +++ b/client/src/app/core/server/server.service.ts | |||
@@ -3,6 +3,7 @@ import { first, map, share, shareReplay, switchMap, tap } from 'rxjs/operators' | |||
3 | import { HttpClient } from '@angular/common/http' | 3 | import { HttpClient } from '@angular/common/http' |
4 | import { Inject, Injectable, LOCALE_ID } from '@angular/core' | 4 | import { Inject, Injectable, LOCALE_ID } from '@angular/core' |
5 | import { getDevLocale, isOnDevLocale, sortBy } from '@app/helpers' | 5 | import { getDevLocale, isOnDevLocale, sortBy } from '@app/helpers' |
6 | import { logger } from '@root-helpers/logger' | ||
6 | import { getCompleteLocale, isDefaultLocale, peertubeTranslate } from '@shared/core-utils/i18n' | 7 | import { getCompleteLocale, isDefaultLocale, peertubeTranslate } from '@shared/core-utils/i18n' |
7 | import { HTMLServerConfig, ServerConfig, ServerStats, VideoConstant } from '@shared/models' | 8 | import { HTMLServerConfig, ServerConfig, ServerStats, VideoConstant } from '@shared/models' |
8 | import { environment } from '../../../environments/environment' | 9 | import { environment } from '../../../environments/environment' |
@@ -43,7 +44,7 @@ export class ServerService { | |||
43 | } catch (err) { | 44 | } catch (err) { |
44 | // Expected in dev mode since we can't inject the config in the HTML | 45 | // Expected in dev mode since we can't inject the config in the HTML |
45 | if (environment.production !== false) { | 46 | if (environment.production !== false) { |
46 | console.error('Cannot load config locally. Fallback to API.') | 47 | logger.error('Cannot load config locally. Fallback to API.') |
47 | } | 48 | } |
48 | 49 | ||
49 | return this.getConfig() | 50 | return this.getConfig() |
diff --git a/client/src/app/core/theme/theme.service.ts b/client/src/app/core/theme/theme.service.ts index 40939ecb8..ead1770ba 100644 --- a/client/src/app/core/theme/theme.service.ts +++ b/client/src/app/core/theme/theme.service.ts | |||
@@ -1,4 +1,5 @@ | |||
1 | import { Injectable } from '@angular/core' | 1 | import { Injectable } from '@angular/core' |
2 | import { logger } from '@root-helpers/logger' | ||
2 | import { capitalizeFirstLetter } from '@root-helpers/string' | 3 | import { capitalizeFirstLetter } from '@root-helpers/string' |
3 | import { UserLocalStorageKeys } from '@root-helpers/users' | 4 | import { UserLocalStorageKeys } from '@root-helpers/users' |
4 | import { HTMLServerConfig, ServerConfigTheme } from '@shared/models' | 5 | import { HTMLServerConfig, ServerConfigTheme } from '@shared/models' |
@@ -57,7 +58,7 @@ export class ThemeService { | |||
57 | private injectThemes (themes: ServerConfigTheme[], fromLocalStorage = false) { | 58 | private injectThemes (themes: ServerConfigTheme[], fromLocalStorage = false) { |
58 | this.themes = themes | 59 | this.themes = themes |
59 | 60 | ||
60 | console.log('Injecting %d themes.', this.themes.length) | 61 | logger.info(`Injecting ${this.themes.length} themes.`) |
61 | 62 | ||
62 | const head = this.getHeadElement() | 63 | const head = this.getHeadElement() |
63 | 64 | ||
@@ -117,13 +118,13 @@ export class ThemeService { | |||
117 | 118 | ||
118 | const currentTheme = this.getCurrentTheme() | 119 | const currentTheme = this.getCurrentTheme() |
119 | 120 | ||
120 | console.log('Enabling %s theme.', currentTheme) | 121 | logger.info(`Enabling ${currentTheme} theme.`) |
121 | 122 | ||
122 | this.loadTheme(currentTheme) | 123 | this.loadTheme(currentTheme) |
123 | 124 | ||
124 | const theme = this.getTheme(currentTheme) | 125 | const theme = this.getTheme(currentTheme) |
125 | if (theme) { | 126 | if (theme) { |
126 | console.log('Adding scripts of theme %s.', currentTheme) | 127 | logger.info(`Adding scripts of theme ${currentTheme}`) |
127 | 128 | ||
128 | this.pluginService.addPlugin(theme, true) | 129 | this.pluginService.addPlugin(theme, true) |
129 | 130 | ||
@@ -165,7 +166,7 @@ export class ThemeService { | |||
165 | this.injectThemes([ lastActiveTheme ], true) | 166 | this.injectThemes([ lastActiveTheme ], true) |
166 | this.updateCurrentTheme() | 167 | this.updateCurrentTheme() |
167 | } catch (err) { | 168 | } catch (err) { |
168 | console.error('Cannot parse last active theme.', err) | 169 | logger.error('Cannot parse last active theme.', err) |
169 | return | 170 | return |
170 | } | 171 | } |
171 | } | 172 | } |
@@ -173,7 +174,7 @@ export class ThemeService { | |||
173 | private removeThemePlugins (themeName: string) { | 174 | private removeThemePlugins (themeName: string) { |
174 | const oldTheme = this.getTheme(themeName) | 175 | const oldTheme = this.getTheme(themeName) |
175 | if (oldTheme) { | 176 | if (oldTheme) { |
176 | console.log('Removing scripts of old theme %s.', themeName) | 177 | logger.info(`Removing scripts of old theme ${themeName}.`) |
177 | this.pluginService.removePlugin(oldTheme) | 178 | this.pluginService.removePlugin(oldTheme) |
178 | } | 179 | } |
179 | } | 180 | } |
diff --git a/client/src/app/core/users/user-local-storage.service.ts b/client/src/app/core/users/user-local-storage.service.ts index d15bf735b..fff649eef 100644 --- a/client/src/app/core/users/user-local-storage.service.ts +++ b/client/src/app/core/users/user-local-storage.service.ts | |||
@@ -2,8 +2,9 @@ | |||
2 | import { filter, throttleTime } from 'rxjs' | 2 | import { filter, throttleTime } from 'rxjs' |
3 | import { Injectable } from '@angular/core' | 3 | import { Injectable } from '@angular/core' |
4 | import { AuthService, AuthStatus } from '@app/core/auth' | 4 | import { AuthService, AuthStatus } from '@app/core/auth' |
5 | import { UserLocalStorageKeys, UserTokens } from '@root-helpers/users' | ||
6 | import { getBoolOrDefault } from '@root-helpers/local-storage-utils' | 5 | import { getBoolOrDefault } from '@root-helpers/local-storage-utils' |
6 | import { logger } from '@root-helpers/logger' | ||
7 | import { UserLocalStorageKeys, UserTokens } from '@root-helpers/users' | ||
7 | import { UserRole, UserUpdateMe } from '@shared/models' | 8 | import { UserRole, UserUpdateMe } from '@shared/models' |
8 | import { NSFWPolicyType } from '@shared/models/videos' | 9 | import { NSFWPolicyType } from '@shared/models/videos' |
9 | import { ServerService } from '../server' | 10 | import { ServerService } from '../server' |
@@ -95,7 +96,7 @@ export class UserLocalStorageService { | |||
95 | : null | 96 | : null |
96 | } catch (err) { | 97 | } catch (err) { |
97 | videoLanguages = null | 98 | videoLanguages = null |
98 | console.error('Cannot parse desired video languages from localStorage.', err) | 99 | logger.error('Cannot parse desired video languages from localStorage.', err) |
99 | } | 100 | } |
100 | 101 | ||
101 | const htmlConfig = this.server.getHTMLConfig() | 102 | const htmlConfig = this.server.getHTMLConfig() |
@@ -142,7 +143,7 @@ export class UserLocalStorageService { | |||
142 | 143 | ||
143 | this.localStorageService.setItem(key, localStorageValue) | 144 | this.localStorageService.setItem(key, localStorageValue) |
144 | } catch (err) { | 145 | } catch (err) { |
145 | console.error(`Cannot set ${key}->${value} in localStorage. Likely due to a value impossible to stringify.`, err) | 146 | logger.error(`Cannot set ${key}->${value} in localStorage. Likely due to a value impossible to stringify.`, err) |
146 | } | 147 | } |
147 | } | 148 | } |
148 | } | 149 | } |
diff --git a/client/src/app/header/search-typeahead.component.ts b/client/src/app/header/search-typeahead.component.ts index 0794ec8f4..d2549315c 100644 --- a/client/src/app/header/search-typeahead.component.ts +++ b/client/src/app/header/search-typeahead.component.ts | |||
@@ -4,6 +4,7 @@ import { ListKeyManager } from '@angular/cdk/a11y' | |||
4 | import { AfterViewChecked, Component, OnDestroy, OnInit, QueryList, ViewChildren } from '@angular/core' | 4 | import { AfterViewChecked, Component, OnDestroy, OnInit, QueryList, ViewChildren } from '@angular/core' |
5 | import { ActivatedRoute, Params, Router } from '@angular/router' | 5 | import { ActivatedRoute, Params, Router } from '@angular/router' |
6 | import { AuthService, ServerService } from '@app/core' | 6 | import { AuthService, ServerService } from '@app/core' |
7 | import { logger } from '@root-helpers/logger' | ||
7 | import { HTMLServerConfig, SearchTargetType } from '@shared/models' | 8 | import { HTMLServerConfig, SearchTargetType } from '@shared/models' |
8 | import { SuggestionComponent, SuggestionPayload, SuggestionPayloadType } from './suggestion.component' | 9 | import { SuggestionComponent, SuggestionPayload, SuggestionPayloadType } from './suggestion.component' |
9 | 10 | ||
@@ -91,7 +92,7 @@ export class SearchTypeaheadComponent implements OnInit, AfterViewChecked, OnDes | |||
91 | 92 | ||
92 | const activeIndex = this.suggestionItems.toArray().findIndex(i => i.result.default === true) | 93 | const activeIndex = this.suggestionItems.toArray().findIndex(i => i.result.default === true) |
93 | if (activeIndex === -1) { | 94 | if (activeIndex === -1) { |
94 | console.error('Cannot find active index.', { suggestionItems: this.suggestionItems }) | 95 | logger.error('Cannot find active index.', { suggestionItems: this.suggestionItems }) |
95 | } | 96 | } |
96 | 97 | ||
97 | this.updateItemsState(activeIndex) | 98 | this.updateItemsState(activeIndex) |
diff --git a/client/src/app/helpers/i18n-utils.ts b/client/src/app/helpers/i18n-utils.ts index 2017a31ea..b7d73d16b 100644 --- a/client/src/app/helpers/i18n-utils.ts +++ b/client/src/app/helpers/i18n-utils.ts | |||
@@ -1,5 +1,6 @@ | |||
1 | import { environment } from '../../environments/environment' | ||
2 | import IntlMessageFormat from 'intl-messageformat' | 1 | import IntlMessageFormat from 'intl-messageformat' |
2 | import { logger } from '@root-helpers/logger' | ||
3 | import { environment } from '../../environments/environment' | ||
3 | 4 | ||
4 | function isOnDevLocale () { | 5 | function isOnDevLocale () { |
5 | return environment.production === false && window.location.search === '?lang=fr' | 6 | return environment.production === false && window.location.search === '?lang=fr' |
@@ -19,14 +20,14 @@ function prepareIcu (icu: string) { | |||
19 | try { | 20 | try { |
20 | return msg.format(context) as string | 21 | return msg.format(context) as string |
21 | } catch (err) { | 22 | } catch (err) { |
22 | if (!alreadyWarned) console.warn('Cannot format ICU %s.', icu, err) | 23 | if (!alreadyWarned) logger.warn(`Cannot format ICU ${icu}.`, err) |
23 | 24 | ||
24 | alreadyWarned = true | 25 | alreadyWarned = true |
25 | return fallback | 26 | return fallback |
26 | } | 27 | } |
27 | } | 28 | } |
28 | } catch (err) { | 29 | } catch (err) { |
29 | console.warn('Cannot build intl message %s.', icu, err) | 30 | logger.warn(`Cannot build intl message ${icu}.`, err) |
30 | 31 | ||
31 | return (_context: unknown, fallback: string) => fallback | 32 | return (_context: unknown, fallback: string) => fallback |
32 | } | 33 | } |
diff --git a/client/src/app/menu/menu.component.ts b/client/src/app/menu/menu.component.ts index 983f0a938..63f01df92 100644 --- a/client/src/app/menu/menu.component.ts +++ b/client/src/app/menu/menu.component.ts | |||
@@ -24,7 +24,7 @@ import { NgbDropdown } from '@ng-bootstrap/ng-bootstrap' | |||
24 | import { PluginsManager } from '@root-helpers/plugins-manager' | 24 | import { PluginsManager } from '@root-helpers/plugins-manager' |
25 | import { HTMLServerConfig, ServerConfig, UserRight, VideoConstant } from '@shared/models' | 25 | import { HTMLServerConfig, ServerConfig, UserRight, VideoConstant } from '@shared/models' |
26 | 26 | ||
27 | const logger = debug('peertube:menu:MenuComponent') | 27 | const debugLogger = debug('peertube:menu:MenuComponent') |
28 | 28 | ||
29 | @Component({ | 29 | @Component({ |
30 | selector: 'my-menu', | 30 | selector: 'my-menu', |
@@ -295,8 +295,8 @@ export class MenuComponent implements OnInit { | |||
295 | .pipe( | 295 | .pipe( |
296 | switchMap(() => this.user.computeCanSeeVideosLink(this.userService.getMyVideoQuotaUsed())) | 296 | switchMap(() => this.user.computeCanSeeVideosLink(this.userService.getMyVideoQuotaUsed())) |
297 | ).subscribe(res => { | 297 | ).subscribe(res => { |
298 | if (res === true) logger('User can see videos link.') | 298 | if (res === true) debugLogger('User can see videos link.') |
299 | else logger('User cannot see videos link.') | 299 | else debugLogger('User cannot see videos link.') |
300 | }) | 300 | }) |
301 | } | 301 | } |
302 | 302 | ||
diff --git a/client/src/app/modal/account-setup-warning-modal.component.ts b/client/src/app/modal/account-setup-warning-modal.component.ts index c4cbf92b6..b999a3407 100644 --- a/client/src/app/modal/account-setup-warning-modal.component.ts +++ b/client/src/app/modal/account-setup-warning-modal.component.ts | |||
@@ -1,6 +1,7 @@ | |||
1 | import { Component, ElementRef, ViewChild } from '@angular/core' | 1 | import { Component, ElementRef, ViewChild } from '@angular/core' |
2 | import { Notifier, ServerService, User, UserService } from '@app/core' | 2 | import { Notifier, ServerService, User, UserService } from '@app/core' |
3 | import { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap' | 3 | import { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap' |
4 | import { logger } from '@root-helpers/logger' | ||
4 | import { peertubeLocalStorage } from '@root-helpers/peertube-web-storage' | 5 | import { peertubeLocalStorage } from '@root-helpers/peertube-web-storage' |
5 | 6 | ||
6 | @Component({ | 7 | @Component({ |
@@ -71,7 +72,7 @@ export class AccountSetupWarningModalComponent { | |||
71 | 72 | ||
72 | this.userService.updateMyProfile({ noAccountSetupWarningModal: true }) | 73 | this.userService.updateMyProfile({ noAccountSetupWarningModal: true }) |
73 | .subscribe({ | 74 | .subscribe({ |
74 | next: () => console.log('We will not open the account setup modal again.'), | 75 | next: () => logger.info('We will not open the account setup modal again.'), |
75 | 76 | ||
76 | error: err => this.notifier.error(err.message) | 77 | error: err => this.notifier.error(err.message) |
77 | }) | 78 | }) |
diff --git a/client/src/app/modal/admin-welcome-modal.component.ts b/client/src/app/modal/admin-welcome-modal.component.ts index 3679f0847..7a9b89d3d 100644 --- a/client/src/app/modal/admin-welcome-modal.component.ts +++ b/client/src/app/modal/admin-welcome-modal.component.ts | |||
@@ -1,6 +1,7 @@ | |||
1 | import { Component, ElementRef, ViewChild } from '@angular/core' | 1 | import { Component, ElementRef, ViewChild } from '@angular/core' |
2 | import { Notifier, User, UserService } from '@app/core' | 2 | import { Notifier, User, UserService } from '@app/core' |
3 | import { NgbModal } from '@ng-bootstrap/ng-bootstrap' | 3 | import { NgbModal } from '@ng-bootstrap/ng-bootstrap' |
4 | import { logger } from '@root-helpers/logger' | ||
4 | import { peertubeLocalStorage } from '@root-helpers/peertube-web-storage' | 5 | import { peertubeLocalStorage } from '@root-helpers/peertube-web-storage' |
5 | 6 | ||
6 | @Component({ | 7 | @Component({ |
@@ -42,7 +43,7 @@ export class AdminWelcomeModalComponent { | |||
42 | 43 | ||
43 | this.userService.updateMyProfile({ noWelcomeModal: true }) | 44 | this.userService.updateMyProfile({ noWelcomeModal: true }) |
44 | .subscribe({ | 45 | .subscribe({ |
45 | next: () => console.log('We will not open the welcome modal again.'), | 46 | next: () => logger.info('We will not open the welcome modal again.'), |
46 | 47 | ||
47 | error: err => this.notifier.error(err.message) | 48 | error: err => this.notifier.error(err.message) |
48 | }) | 49 | }) |
diff --git a/client/src/app/modal/custom-modal.component.ts b/client/src/app/modal/custom-modal.component.ts index 559230e04..49343ae71 100644 --- a/client/src/app/modal/custom-modal.component.ts +++ b/client/src/app/modal/custom-modal.component.ts | |||
@@ -1,5 +1,6 @@ | |||
1 | import { Component, ElementRef, ViewChild, Input } from '@angular/core' | 1 | import { Component, ElementRef, Input, ViewChild } from '@angular/core' |
2 | import { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap' | 2 | import { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap' |
3 | import { logger } from '@root-helpers/logger' | ||
3 | 4 | ||
4 | @Component({ | 5 | @Component({ |
5 | selector: 'my-custom-modal', | 6 | selector: 'my-custom-modal', |
@@ -29,7 +30,7 @@ export class CustomModalComponent { | |||
29 | confirm?: { value: string, action?: () => void } | 30 | confirm?: { value: string, action?: () => void } |
30 | }) { | 31 | }) { |
31 | if (this.modalRef instanceof NgbModalRef && this.modalService.hasOpenModals()) { | 32 | if (this.modalRef instanceof NgbModalRef && this.modalService.hasOpenModals()) { |
32 | console.error('Cannot open another custom modal, one is already opened.') | 33 | logger.error('Cannot open another custom modal, one is already opened.') |
33 | return | 34 | return |
34 | } | 35 | } |
35 | 36 | ||
diff --git a/client/src/app/modal/instance-config-warning-modal.component.ts b/client/src/app/modal/instance-config-warning-modal.component.ts index 300738a41..23c2c777e 100644 --- a/client/src/app/modal/instance-config-warning-modal.component.ts +++ b/client/src/app/modal/instance-config-warning-modal.component.ts | |||
@@ -2,6 +2,7 @@ import { Location } from '@angular/common' | |||
2 | import { Component, ElementRef, ViewChild } from '@angular/core' | 2 | import { Component, ElementRef, ViewChild } from '@angular/core' |
3 | import { Notifier, User, UserService } from '@app/core' | 3 | import { Notifier, User, UserService } from '@app/core' |
4 | import { NgbModal } from '@ng-bootstrap/ng-bootstrap' | 4 | import { NgbModal } from '@ng-bootstrap/ng-bootstrap' |
5 | import { logger } from '@root-helpers/logger' | ||
5 | import { peertubeLocalStorage } from '@root-helpers/peertube-web-storage' | 6 | import { peertubeLocalStorage } from '@root-helpers/peertube-web-storage' |
6 | import { About, ServerConfig } from '@shared/models/server' | 7 | import { About, ServerConfig } from '@shared/models/server' |
7 | 8 | ||
@@ -64,7 +65,7 @@ export class InstanceConfigWarningModalComponent { | |||
64 | 65 | ||
65 | this.userService.updateMyProfile({ noInstanceConfigWarningModal: true }) | 66 | this.userService.updateMyProfile({ noInstanceConfigWarningModal: true }) |
66 | .subscribe({ | 67 | .subscribe({ |
67 | next: () => console.log('We will not open the instance config warning modal again.'), | 68 | next: () => logger.info('We will not open the instance config warning modal again.'), |
68 | 69 | ||
69 | error: err => this.notifier.error(err.message) | 70 | error: err => this.notifier.error(err.message) |
70 | }) | 71 | }) |
diff --git a/client/src/app/shared/shared-abuse-list/abuse-list-table.component.ts b/client/src/app/shared/shared-abuse-list/abuse-list-table.component.ts index 8781c16f5..32d3b0093 100644 --- a/client/src/app/shared/shared-abuse-list/abuse-list-table.component.ts +++ b/client/src/app/shared/shared-abuse-list/abuse-list-table.component.ts | |||
@@ -8,13 +8,14 @@ import { ConfirmService, MarkdownService, Notifier, RestPagination, RestTable } | |||
8 | import { Account, Actor, DropdownAction, Video, VideoService } from '@app/shared/shared-main' | 8 | import { Account, Actor, DropdownAction, Video, VideoService } from '@app/shared/shared-main' |
9 | import { AbuseService, BlocklistService, VideoBlockService } from '@app/shared/shared-moderation' | 9 | import { AbuseService, BlocklistService, VideoBlockService } from '@app/shared/shared-moderation' |
10 | import { VideoCommentService } from '@app/shared/shared-video-comment' | 10 | import { VideoCommentService } from '@app/shared/shared-video-comment' |
11 | import { logger } from '@root-helpers/logger' | ||
11 | import { AbuseState, AdminAbuse } from '@shared/models' | 12 | import { AbuseState, AdminAbuse } from '@shared/models' |
12 | import { AdvancedInputFilter } from '../shared-forms' | 13 | import { AdvancedInputFilter } from '../shared-forms' |
13 | import { AbuseMessageModalComponent } from './abuse-message-modal.component' | 14 | import { AbuseMessageModalComponent } from './abuse-message-modal.component' |
14 | import { ModerationCommentModalComponent } from './moderation-comment-modal.component' | 15 | import { ModerationCommentModalComponent } from './moderation-comment-modal.component' |
15 | import { ProcessedAbuse } from './processed-abuse.model' | 16 | import { ProcessedAbuse } from './processed-abuse.model' |
16 | 17 | ||
17 | const logger = debug('peertube:moderation:AbuseListTableComponent') | 18 | const debugLogger = debug('peertube:moderation:AbuseListTableComponent') |
18 | 19 | ||
19 | @Component({ | 20 | @Component({ |
20 | selector: 'my-abuse-list-table', | 21 | selector: 'my-abuse-list-table', |
@@ -158,7 +159,7 @@ export class AbuseListTableComponent extends RestTable implements OnInit { | |||
158 | const abuse = this.abuses.find(a => a.id === event.abuseId) | 159 | const abuse = this.abuses.find(a => a.id === event.abuseId) |
159 | 160 | ||
160 | if (!abuse) { | 161 | if (!abuse) { |
161 | console.error('Cannot find abuse %d.', event.abuseId) | 162 | logger.error(`Cannot find abuse ${event.abuseId}`) |
162 | return | 163 | return |
163 | } | 164 | } |
164 | 165 | ||
@@ -177,7 +178,7 @@ export class AbuseListTableComponent extends RestTable implements OnInit { | |||
177 | } | 178 | } |
178 | 179 | ||
179 | protected reloadData () { | 180 | protected reloadData () { |
180 | logger('Loading data.') | 181 | debugLogger('Loading data.') |
181 | 182 | ||
182 | const options = { | 183 | const options = { |
183 | pagination: this.pagination, | 184 | pagination: this.pagination, |
diff --git a/client/src/app/shared/shared-abuse-list/abuse-message-modal.component.ts b/client/src/app/shared/shared-abuse-list/abuse-message-modal.component.ts index 6c8dc6d35..d24a5d58d 100644 --- a/client/src/app/shared/shared-abuse-list/abuse-message-modal.component.ts +++ b/client/src/app/shared/shared-abuse-list/abuse-message-modal.component.ts | |||
@@ -3,6 +3,7 @@ import { AuthService, HtmlRendererService, Notifier } from '@app/core' | |||
3 | import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' | 3 | import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' |
4 | import { NgbModal } from '@ng-bootstrap/ng-bootstrap' | 4 | import { NgbModal } from '@ng-bootstrap/ng-bootstrap' |
5 | import { NgbModalRef } from '@ng-bootstrap/ng-bootstrap/modal/modal-ref' | 5 | import { NgbModalRef } from '@ng-bootstrap/ng-bootstrap/modal/modal-ref' |
6 | import { logger } from '@root-helpers/logger' | ||
6 | import { AbuseMessage, UserAbuse } from '@shared/models' | 7 | import { AbuseMessage, UserAbuse } from '@shared/models' |
7 | import { ABUSE_MESSAGE_VALIDATOR } from '../form-validators/abuse-validators' | 8 | import { ABUSE_MESSAGE_VALIDATOR } from '../form-validators/abuse-validators' |
8 | import { AbuseService } from '../shared-moderation' | 9 | import { AbuseService } from '../shared-moderation' |
@@ -72,7 +73,7 @@ export class AbuseMessageModalComponent extends FormReactive implements OnInit { | |||
72 | 73 | ||
73 | error: err => { | 74 | error: err => { |
74 | this.sendingMessage = false | 75 | this.sendingMessage = false |
75 | console.error(err) | 76 | logger.error(err) |
76 | this.notifier.error('Sorry but you cannot send this message. Please retry later') | 77 | this.notifier.error('Sorry but you cannot send this message. Please retry later') |
77 | } | 78 | } |
78 | }) | 79 | }) |
diff --git a/client/src/app/shared/shared-custom-markup/custom-markup.service.ts b/client/src/app/shared/shared-custom-markup/custom-markup.service.ts index a959b336d..d738a644e 100644 --- a/client/src/app/shared/shared-custom-markup/custom-markup.service.ts +++ b/client/src/app/shared/shared-custom-markup/custom-markup.service.ts | |||
@@ -20,6 +20,7 @@ import { | |||
20 | VideosListMarkupComponent | 20 | VideosListMarkupComponent |
21 | } from './peertube-custom-tags' | 21 | } from './peertube-custom-tags' |
22 | import { CustomMarkupComponent } from './peertube-custom-tags/shared' | 22 | import { CustomMarkupComponent } from './peertube-custom-tags/shared' |
23 | import { logger } from '@root-helpers/logger' | ||
23 | 24 | ||
24 | type AngularBuilderFunction = (el: HTMLElement) => ComponentRef<CustomMarkupComponent> | 25 | type AngularBuilderFunction = (el: HTMLElement) => ComponentRef<CustomMarkupComponent> |
25 | type HTMLBuilderFunction = (el: HTMLElement) => HTMLElement | 26 | type HTMLBuilderFunction = (el: HTMLElement) => HTMLElement |
@@ -70,7 +71,7 @@ export class CustomMarkupService { | |||
70 | // Insert as first child | 71 | // Insert as first child |
71 | e.insertBefore(element, e.firstChild) | 72 | e.insertBefore(element, e.firstChild) |
72 | } catch (err) { | 73 | } catch (err) { |
73 | console.error('Cannot inject component %s.', selector, err) | 74 | logger.error(`Cannot inject component ${selector}`, err) |
74 | } | 75 | } |
75 | }) | 76 | }) |
76 | } | 77 | } |
@@ -90,7 +91,7 @@ export class CustomMarkupService { | |||
90 | 91 | ||
91 | this.dynamicElementService.injectElement(e, component) | 92 | this.dynamicElementService.injectElement(e, component) |
92 | } catch (err) { | 93 | } catch (err) { |
93 | console.error('Cannot inject component %s.', selector, err) | 94 | logger.error(`Cannot inject component ${selector}`, err) |
94 | } | 95 | } |
95 | }) | 96 | }) |
96 | } | 97 | } |
diff --git a/client/src/app/shared/shared-forms/advanced-input-filter.component.ts b/client/src/app/shared/shared-forms/advanced-input-filter.component.ts index d8aeaa0fa..929438749 100644 --- a/client/src/app/shared/shared-forms/advanced-input-filter.component.ts +++ b/client/src/app/shared/shared-forms/advanced-input-filter.component.ts | |||
@@ -16,7 +16,7 @@ export type AdvancedInputFilterChild = { | |||
16 | value: string | 16 | value: string |
17 | } | 17 | } |
18 | 18 | ||
19 | const logger = debug('peertube:AdvancedInputFilterComponent') | 19 | const debugLogger = debug('peertube:AdvancedInputFilterComponent') |
20 | 20 | ||
21 | @Component({ | 21 | @Component({ |
22 | selector: 'my-advanced-input-filter', | 22 | selector: 'my-advanced-input-filter', |
@@ -98,7 +98,7 @@ export class AdvancedInputFilterComponent implements OnInit, AfterViewInit { | |||
98 | .subscribe(params => { | 98 | .subscribe(params => { |
99 | const search = params.search || '' | 99 | const search = params.search || '' |
100 | 100 | ||
101 | logger('On route search change "%s".', search) | 101 | debugLogger('On route search change "%s".', search) |
102 | 102 | ||
103 | if (this.searchValue === search) return | 103 | if (this.searchValue === search) return |
104 | 104 | ||
@@ -132,7 +132,7 @@ export class AdvancedInputFilterComponent implements OnInit, AfterViewInit { | |||
132 | return | 132 | return |
133 | } | 133 | } |
134 | 134 | ||
135 | logger('On search "%s".', this.searchValue) | 135 | debugLogger('On search "%s".', this.searchValue) |
136 | 136 | ||
137 | this.search.emit(this.searchValue) | 137 | this.search.emit(this.searchValue) |
138 | } | 138 | } |
diff --git a/client/src/app/shared/shared-main/angular/defer-loading.directive.ts b/client/src/app/shared/shared-main/angular/defer-loading.directive.ts index 9a10e90e3..53d6e70ba 100644 --- a/client/src/app/shared/shared-main/angular/defer-loading.directive.ts +++ b/client/src/app/shared/shared-main/angular/defer-loading.directive.ts | |||
@@ -13,7 +13,7 @@ import { | |||
13 | ViewContainerRef | 13 | ViewContainerRef |
14 | } from '@angular/core' | 14 | } from '@angular/core' |
15 | 15 | ||
16 | const logger = debug('peertube:main:DeferLoadingDirective') | 16 | const debugLogger = debug('peertube:main:DeferLoadingDirective') |
17 | 17 | ||
18 | @Directive({ | 18 | @Directive({ |
19 | selector: '[myDeferLoading]' | 19 | selector: '[myDeferLoading]' |
@@ -52,7 +52,7 @@ export class DeferLoadingDirective implements AfterViewInit, OnDestroy { | |||
52 | load () { | 52 | load () { |
53 | if (this.isLoaded()) return | 53 | if (this.isLoaded()) return |
54 | 54 | ||
55 | logger('Loading component') | 55 | debugLogger('Loading component') |
56 | 56 | ||
57 | this.viewContainer.clear() | 57 | this.viewContainer.clear() |
58 | this.view = this.viewContainer.createEmbeddedView(this.template, {}, 0) | 58 | this.view = this.viewContainer.createEmbeddedView(this.template, {}, 0) |
diff --git a/client/src/app/shared/shared-main/misc/list-overflow.component.ts b/client/src/app/shared/shared-main/misc/list-overflow.component.ts index 541991f74..7e4e1b1d1 100644 --- a/client/src/app/shared/shared-main/misc/list-overflow.component.ts +++ b/client/src/app/shared/shared-main/misc/list-overflow.component.ts | |||
@@ -17,7 +17,7 @@ import { ScreenService } from '@app/core' | |||
17 | import { NgbDropdown, NgbModal } from '@ng-bootstrap/ng-bootstrap' | 17 | import { NgbDropdown, NgbModal } from '@ng-bootstrap/ng-bootstrap' |
18 | import * as debug from 'debug' | 18 | import * as debug from 'debug' |
19 | 19 | ||
20 | const logger = debug('peertube:main:ListOverflowItem') | 20 | const debugLogger = debug('peertube:main:ListOverflowItem') |
21 | 21 | ||
22 | export interface ListOverflowItem { | 22 | export interface ListOverflowItem { |
23 | label: string | 23 | label: string |
@@ -66,7 +66,7 @@ export class ListOverflowComponent<T extends ListOverflowItem> implements AfterV | |||
66 | let showItemsUntilIndexExcluded: number | 66 | let showItemsUntilIndexExcluded: number |
67 | let accWidth = 0 | 67 | let accWidth = 0 |
68 | 68 | ||
69 | logger('Parent width is %d', parentWidth) | 69 | debugLogger('Parent width is %d', parentWidth) |
70 | 70 | ||
71 | for (const [ index, el ] of this.itemsRendered.toArray().entries()) { | 71 | for (const [ index, el ] of this.itemsRendered.toArray().entries()) { |
72 | accWidth += el.nativeElement.getBoundingClientRect().width | 72 | accWidth += el.nativeElement.getBoundingClientRect().width |
@@ -79,7 +79,7 @@ export class ListOverflowComponent<T extends ListOverflowItem> implements AfterV | |||
79 | e.style.visibility = shouldBeVisible ? 'inherit' : 'hidden' | 79 | e.style.visibility = shouldBeVisible ? 'inherit' : 'hidden' |
80 | } | 80 | } |
81 | 81 | ||
82 | logger('Accumulated children width is %d so exclude index is %d', accWidth, showItemsUntilIndexExcluded) | 82 | debugLogger('Accumulated children width is %d so exclude index is %d', accWidth, showItemsUntilIndexExcluded) |
83 | 83 | ||
84 | this.showItemsUntilIndexExcluded = showItemsUntilIndexExcluded | 84 | this.showItemsUntilIndexExcluded = showItemsUntilIndexExcluded |
85 | this.cdr.markForCheck() | 85 | this.cdr.markForCheck() |
diff --git a/client/src/app/shared/shared-main/users/user-notification.model.ts b/client/src/app/shared/shared-main/users/user-notification.model.ts index a2367166e..bf8870a79 100644 --- a/client/src/app/shared/shared-main/users/user-notification.model.ts +++ b/client/src/app/shared/shared-main/users/user-notification.model.ts | |||
@@ -2,6 +2,7 @@ import { AuthUser } from '@app/core' | |||
2 | import { Account } from '@app/shared/shared-main/account/account.model' | 2 | import { Account } from '@app/shared/shared-main/account/account.model' |
3 | import { Actor } from '@app/shared/shared-main/account/actor.model' | 3 | import { Actor } from '@app/shared/shared-main/account/actor.model' |
4 | import { VideoChannel } from '@app/shared/shared-main/video-channel/video-channel.model' | 4 | import { VideoChannel } from '@app/shared/shared-main/video-channel/video-channel.model' |
5 | import { logger } from '@root-helpers/logger' | ||
5 | import { | 6 | import { |
6 | AbuseState, | 7 | AbuseState, |
7 | ActorInfo, | 8 | ActorInfo, |
@@ -234,7 +235,7 @@ export class UserNotification implements UserNotificationServer { | |||
234 | } | 235 | } |
235 | } catch (err) { | 236 | } catch (err) { |
236 | this.type = null | 237 | this.type = null |
237 | console.error(err) | 238 | logger.error(err) |
238 | } | 239 | } |
239 | } | 240 | } |
240 | 241 | ||
diff --git a/client/src/app/shared/shared-search/find-in-bulk.service.ts b/client/src/app/shared/shared-search/find-in-bulk.service.ts index 117685cc6..d2f8c3213 100644 --- a/client/src/app/shared/shared-search/find-in-bulk.service.ts +++ b/client/src/app/shared/shared-search/find-in-bulk.service.ts | |||
@@ -9,7 +9,7 @@ import { VideoPlaylist } from '../shared-video-playlist' | |||
9 | import { SearchService } from './search.service' | 9 | import { SearchService } from './search.service' |
10 | import { AdvancedSearch } from './advanced-search.model' | 10 | import { AdvancedSearch } from './advanced-search.model' |
11 | 11 | ||
12 | const logger = debug('peertube:search:FindInBulkService') | 12 | const debugLogger = debug('peertube:search:FindInBulkService') |
13 | 13 | ||
14 | type BulkObservables <P extends number | string, R> = { | 14 | type BulkObservables <P extends number | string, R> = { |
15 | notifier: Subject<P> | 15 | notifier: Subject<P> |
@@ -36,7 +36,7 @@ export class FindInBulkService { | |||
36 | } | 36 | } |
37 | 37 | ||
38 | getVideo (uuid: string): Observable<Video> { | 38 | getVideo (uuid: string): Observable<Video> { |
39 | logger('Schedule video fetch for uuid %s.', uuid) | 39 | debugLogger('Schedule video fetch for uuid %s.', uuid) |
40 | 40 | ||
41 | return this.getData({ | 41 | return this.getData({ |
42 | observableObject: this.getVideoInBulk, | 42 | observableObject: this.getVideoInBulk, |
@@ -46,7 +46,7 @@ export class FindInBulkService { | |||
46 | } | 46 | } |
47 | 47 | ||
48 | getChannel (handle: string): Observable<VideoChannel> { | 48 | getChannel (handle: string): Observable<VideoChannel> { |
49 | logger('Schedule channel fetch for handle %s.', handle) | 49 | debugLogger('Schedule channel fetch for handle %s.', handle) |
50 | 50 | ||
51 | return this.getData({ | 51 | return this.getData({ |
52 | observableObject: this.getChannelInBulk, | 52 | observableObject: this.getChannelInBulk, |
@@ -56,7 +56,7 @@ export class FindInBulkService { | |||
56 | } | 56 | } |
57 | 57 | ||
58 | getPlaylist (uuid: string): Observable<VideoPlaylist> { | 58 | getPlaylist (uuid: string): Observable<VideoPlaylist> { |
59 | logger('Schedule playlist fetch for uuid %s.', uuid) | 59 | debugLogger('Schedule playlist fetch for uuid %s.', uuid) |
60 | 60 | ||
61 | return this.getData({ | 61 | return this.getData({ |
62 | observableObject: this.getPlaylistInBulk, | 62 | observableObject: this.getPlaylistInBulk, |
@@ -94,7 +94,7 @@ export class FindInBulkService { | |||
94 | } | 94 | } |
95 | 95 | ||
96 | private getVideosInBulk (uuids: string[]) { | 96 | private getVideosInBulk (uuids: string[]) { |
97 | logger('Fetching videos %s.', uuids.join(', ')) | 97 | debugLogger('Fetching videos %s.', uuids.join(', ')) |
98 | 98 | ||
99 | return this.searchService.searchVideos({ | 99 | return this.searchService.searchVideos({ |
100 | uuids, | 100 | uuids, |
@@ -104,7 +104,7 @@ export class FindInBulkService { | |||
104 | } | 104 | } |
105 | 105 | ||
106 | private getChannelsInBulk (handles: string[]) { | 106 | private getChannelsInBulk (handles: string[]) { |
107 | logger('Fetching channels %s.', handles.join(', ')) | 107 | debugLogger('Fetching channels %s.', handles.join(', ')) |
108 | 108 | ||
109 | return this.searchService.searchVideoChannels({ | 109 | return this.searchService.searchVideoChannels({ |
110 | handles, | 110 | handles, |
@@ -114,7 +114,7 @@ export class FindInBulkService { | |||
114 | } | 114 | } |
115 | 115 | ||
116 | private getPlaylistsInBulk (uuids: string[]) { | 116 | private getPlaylistsInBulk (uuids: string[]) { |
117 | logger('Fetching playlists %s.', uuids.join(', ')) | 117 | debugLogger('Fetching playlists %s.', uuids.join(', ')) |
118 | 118 | ||
119 | return this.searchService.searchVideoPlaylists({ | 119 | return this.searchService.searchVideoPlaylists({ |
120 | uuids, | 120 | uuids, |
diff --git a/client/src/app/shared/shared-user-subscription/remote-subscribe.component.ts b/client/src/app/shared/shared-user-subscription/remote-subscribe.component.ts index 369692715..7bcfdd8aa 100644 --- a/client/src/app/shared/shared-user-subscription/remote-subscribe.component.ts +++ b/client/src/app/shared/shared-user-subscription/remote-subscribe.component.ts | |||
@@ -1,6 +1,7 @@ | |||
1 | import { Component, Input, OnInit } from '@angular/core' | 1 | import { Component, Input, OnInit } from '@angular/core' |
2 | import { Notifier } from '@app/core' | 2 | import { Notifier } from '@app/core' |
3 | import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' | 3 | import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' |
4 | import { logger } from '@root-helpers/logger' | ||
4 | import { USER_HANDLE_VALIDATOR } from '../form-validators/user-validators' | 5 | import { USER_HANDLE_VALIDATOR } from '../form-validators/user-validators' |
5 | 6 | ||
6 | @Component({ | 7 | @Component({ |
@@ -59,7 +60,7 @@ export class RemoteSubscribeComponent extends FormReactive implements OnInit { | |||
59 | }) | 60 | }) |
60 | .then(window.open) | 61 | .then(window.open) |
61 | .catch(err => { | 62 | .catch(err => { |
62 | console.error(err) | 63 | logger.error(err) |
63 | 64 | ||
64 | this.notifier.error($localize`Cannot fetch information of this remote account`) | 65 | this.notifier.error($localize`Cannot fetch information of this remote account`) |
65 | }) | 66 | }) |
diff --git a/client/src/app/shared/shared-user-subscription/user-subscription.service.ts b/client/src/app/shared/shared-user-subscription/user-subscription.service.ts index 33a2d04fd..9cf6b4d16 100644 --- a/client/src/app/shared/shared-user-subscription/user-subscription.service.ts +++ b/client/src/app/shared/shared-user-subscription/user-subscription.service.ts | |||
@@ -9,7 +9,7 @@ import { Video, VideoChannel, VideoChannelService, VideoService } from '@app/sha | |||
9 | import { ActorFollow, ResultList, VideoChannel as VideoChannelServer, VideoSortField } from '@shared/models' | 9 | import { ActorFollow, ResultList, VideoChannel as VideoChannelServer, VideoSortField } from '@shared/models' |
10 | import { environment } from '../../../environments/environment' | 10 | import { environment } from '../../../environments/environment' |
11 | 11 | ||
12 | const logger = debug('peertube:subscriptions:UserSubscriptionService') | 12 | const debugLogger = debug('peertube:subscriptions:UserSubscriptionService') |
13 | 13 | ||
14 | type SubscriptionExistResult = { [ uri: string ]: boolean } | 14 | type SubscriptionExistResult = { [ uri: string ]: boolean } |
15 | type SubscriptionExistResultObservable = { [ uri: string ]: Observable<boolean> } | 15 | type SubscriptionExistResultObservable = { [ uri: string ]: Observable<boolean> } |
@@ -176,17 +176,17 @@ export class UserSubscriptionService { | |||
176 | } | 176 | } |
177 | 177 | ||
178 | doesSubscriptionExist (nameWithHost: string) { | 178 | doesSubscriptionExist (nameWithHost: string) { |
179 | logger('Running subscription check for %d.', nameWithHost) | 179 | debugLogger('Running subscription check for %d.', nameWithHost) |
180 | 180 | ||
181 | if (nameWithHost in this.myAccountSubscriptionCache) { | 181 | if (nameWithHost in this.myAccountSubscriptionCache) { |
182 | logger('Found cache for %d.', nameWithHost) | 182 | debugLogger('Found cache for %d.', nameWithHost) |
183 | 183 | ||
184 | return of(this.myAccountSubscriptionCache[nameWithHost]) | 184 | return of(this.myAccountSubscriptionCache[nameWithHost]) |
185 | } | 185 | } |
186 | 186 | ||
187 | this.existsSubject.next(nameWithHost) | 187 | this.existsSubject.next(nameWithHost) |
188 | 188 | ||
189 | logger('Fetching from network for %d.', nameWithHost) | 189 | debugLogger('Fetching from network for %d.', nameWithHost) |
190 | return this.existsObservable.pipe( | 190 | return this.existsObservable.pipe( |
191 | filter(existsResult => existsResult[nameWithHost] !== undefined), | 191 | filter(existsResult => existsResult[nameWithHost] !== undefined), |
192 | map(existsResult => existsResult[nameWithHost]), | 192 | map(existsResult => existsResult[nameWithHost]), |
diff --git a/client/src/app/shared/shared-video-miniature/video-download.component.ts b/client/src/app/shared/shared-video-miniature/video-download.component.ts index bbda39c2d..47482caaa 100644 --- a/client/src/app/shared/shared-video-miniature/video-download.component.ts +++ b/client/src/app/shared/shared-video-miniature/video-download.component.ts | |||
@@ -4,6 +4,7 @@ import { tap } from 'rxjs/operators' | |||
4 | import { Component, ElementRef, Inject, LOCALE_ID, ViewChild } from '@angular/core' | 4 | import { Component, ElementRef, Inject, LOCALE_ID, ViewChild } from '@angular/core' |
5 | import { AuthService, HooksService, Notifier } from '@app/core' | 5 | import { AuthService, HooksService, Notifier } from '@app/core' |
6 | import { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap' | 6 | import { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap' |
7 | import { logger } from '@root-helpers/logger' | ||
7 | import { VideoCaption, VideoFile, VideoPrivacy } from '@shared/models' | 8 | import { VideoCaption, VideoFile, VideoPrivacy } from '@shared/models' |
8 | import { BytesPipe, NumberFormatterPipe, VideoDetails, VideoService } from '../shared-main' | 9 | import { BytesPipe, NumberFormatterPipe, VideoDetails, VideoService } from '../shared-main' |
9 | 10 | ||
@@ -142,7 +143,7 @@ export class VideoDownloadComponent { | |||
142 | .find(f => f.resolution.id === this.resolutionId) | 143 | .find(f => f.resolution.id === this.resolutionId) |
143 | 144 | ||
144 | if (!file) { | 145 | if (!file) { |
145 | console.error('Could not find file with resolution %d.', this.resolutionId) | 146 | logger.error(`Could not find file with resolution ${this.resolutionId}`) |
146 | return undefined | 147 | return undefined |
147 | } | 148 | } |
148 | 149 | ||
@@ -175,7 +176,7 @@ export class VideoDownloadComponent { | |||
175 | .find(c => c.language.id === this.subtitleLanguageId) | 176 | .find(c => c.language.id === this.subtitleLanguageId) |
176 | 177 | ||
177 | if (!caption) { | 178 | if (!caption) { |
178 | console.error('Cannot find caption %s.', this.subtitleLanguageId) | 179 | logger.error(`Cannot find caption ${this.subtitleLanguageId}`) |
179 | return undefined | 180 | return undefined |
180 | } | 181 | } |
181 | 182 | ||
diff --git a/client/src/app/shared/shared-video-miniature/video-filters-header.component.ts b/client/src/app/shared/shared-video-miniature/video-filters-header.component.ts index 7b806248b..a5da9ebf3 100644 --- a/client/src/app/shared/shared-video-miniature/video-filters-header.component.ts +++ b/client/src/app/shared/shared-video-miniature/video-filters-header.component.ts | |||
@@ -8,7 +8,7 @@ import { UserRight } from '@shared/models' | |||
8 | import { PeertubeModalService } from '../shared-main' | 8 | import { PeertubeModalService } from '../shared-main' |
9 | import { VideoFilters } from './video-filters.model' | 9 | import { VideoFilters } from './video-filters.model' |
10 | 10 | ||
11 | const logger = debug('peertube:videos:VideoFiltersHeaderComponent') | 11 | const debugLogger = debug('peertube:videos:VideoFiltersHeaderComponent') |
12 | 12 | ||
13 | @Component({ | 13 | @Component({ |
14 | selector: 'my-video-filters-header', | 14 | selector: 'my-video-filters-header', |
@@ -54,7 +54,7 @@ export class VideoFiltersHeaderComponent implements OnInit, OnDestroy { | |||
54 | }) | 54 | }) |
55 | 55 | ||
56 | this.form.valueChanges.subscribe(values => { | 56 | this.form.valueChanges.subscribe(values => { |
57 | logger('Loading values from form: %O', values) | 57 | debugLogger('Loading values from form: %O', values) |
58 | 58 | ||
59 | this.filters.load(values) | 59 | this.filters.load(values) |
60 | this.filtersChanged.emit() | 60 | this.filtersChanged.emit() |
@@ -105,6 +105,6 @@ export class VideoFiltersHeaderComponent implements OnInit, OnDestroy { | |||
105 | const defaultValues = this.filters.toFormObject() | 105 | const defaultValues = this.filters.toFormObject() |
106 | this.form.patchValue(defaultValues, { emitEvent }) | 106 | this.form.patchValue(defaultValues, { emitEvent }) |
107 | 107 | ||
108 | logger('Patched form: %O', defaultValues) | 108 | debugLogger('Patched form: %O', defaultValues) |
109 | } | 109 | } |
110 | } | 110 | } |
diff --git a/client/src/app/shared/shared-video-miniature/videos-list.component.ts b/client/src/app/shared/shared-video-miniature/videos-list.component.ts index 38a80b973..508a189fd 100644 --- a/client/src/app/shared/shared-video-miniature/videos-list.component.ts +++ b/client/src/app/shared/shared-video-miniature/videos-list.component.ts | |||
@@ -14,13 +14,14 @@ import { | |||
14 | UserService | 14 | UserService |
15 | } from '@app/core' | 15 | } from '@app/core' |
16 | import { GlobalIconName } from '@app/shared/shared-icons' | 16 | import { GlobalIconName } from '@app/shared/shared-icons' |
17 | import { logger } from '@root-helpers/logger' | ||
17 | import { isLastMonth, isLastWeek, isThisMonth, isToday, isYesterday } from '@shared/core-utils' | 18 | import { isLastMonth, isLastWeek, isThisMonth, isToday, isYesterday } from '@shared/core-utils' |
18 | import { ResultList, UserRight, VideoSortField } from '@shared/models' | 19 | import { ResultList, UserRight, VideoSortField } from '@shared/models' |
19 | import { Syndication, Video } from '../shared-main' | 20 | import { Syndication, Video } from '../shared-main' |
20 | import { VideoFilters, VideoFilterScope } from './video-filters.model' | 21 | import { VideoFilters, VideoFilterScope } from './video-filters.model' |
21 | import { MiniatureDisplayOptions } from './video-miniature.component' | 22 | import { MiniatureDisplayOptions } from './video-miniature.component' |
22 | 23 | ||
23 | const logger = debug('peertube:videos:VideosListComponent') | 24 | const debugLogger = debug('peertube:videos:VideosListComponent') |
24 | 25 | ||
25 | export type HeaderAction = { | 26 | export type HeaderAction = { |
26 | iconName: GlobalIconName | 27 | iconName: GlobalIconName |
@@ -245,7 +246,7 @@ export class VideosListComponent implements OnInit, OnChanges, OnDestroy { | |||
245 | error: err => { | 246 | error: err => { |
246 | const message = $localize`Cannot load more videos. Try again later.` | 247 | const message = $localize`Cannot load more videos. Try again later.` |
247 | 248 | ||
248 | console.error(message, { err }) | 249 | logger.error(message, err) |
249 | this.notifier.error(message) | 250 | this.notifier.error(message) |
250 | } | 251 | } |
251 | }) | 252 | }) |
@@ -323,7 +324,7 @@ export class VideosListComponent implements OnInit, OnChanges, OnDestroy { | |||
323 | } | 324 | } |
324 | 325 | ||
325 | onFiltersChanged (customizedByUser: boolean) { | 326 | onFiltersChanged (customizedByUser: boolean) { |
326 | logger('Running on filters changed') | 327 | debugLogger('Running on filters changed') |
327 | 328 | ||
328 | this.updateUrl(customizedByUser) | 329 | this.updateUrl(customizedByUser) |
329 | 330 | ||
@@ -364,7 +365,7 @@ export class VideosListComponent implements OnInit, OnChanges, OnDestroy { | |||
364 | if (!items || items.length === 0) this.syndicationItems = undefined | 365 | if (!items || items.length === 0) this.syndicationItems = undefined |
365 | else this.syndicationItems = items | 366 | else this.syndicationItems = items |
366 | }) | 367 | }) |
367 | .catch(err => console.error('Cannot get syndication items.', err)) | 368 | .catch(err => logger.error('Cannot get syndication items.', err)) |
368 | } | 369 | } |
369 | 370 | ||
370 | private updateUrl (customizedByUser: boolean) { | 371 | private updateUrl (customizedByUser: boolean) { |
@@ -375,7 +376,7 @@ export class VideosListComponent implements OnInit, OnChanges, OnDestroy { | |||
375 | ? { ...baseQuery, c: customizedByUser } | 376 | ? { ...baseQuery, c: customizedByUser } |
376 | : baseQuery | 377 | : baseQuery |
377 | 378 | ||
378 | logger('Will inject %O in URL query', queryParams) | 379 | debugLogger('Will inject %O in URL query', queryParams) |
379 | 380 | ||
380 | const baseRoute = this.baseRouteBuilderFunction | 381 | const baseRoute = this.baseRouteBuilderFunction |
381 | ? this.baseRouteBuilderFunction(this.filters) | 382 | ? this.baseRouteBuilderFunction(this.filters) |
diff --git a/client/src/app/shared/shared-video-miniature/videos-selection.component.ts b/client/src/app/shared/shared-video-miniature/videos-selection.component.ts index bac828fba..fa3c79bbb 100644 --- a/client/src/app/shared/shared-video-miniature/videos-selection.component.ts +++ b/client/src/app/shared/shared-video-miniature/videos-selection.component.ts | |||
@@ -1,6 +1,7 @@ | |||
1 | import { Observable, Subject } from 'rxjs' | 1 | import { Observable, Subject } from 'rxjs' |
2 | import { AfterContentInit, Component, ContentChildren, EventEmitter, Input, Output, QueryList, TemplateRef } from '@angular/core' | 2 | import { AfterContentInit, Component, ContentChildren, EventEmitter, Input, Output, QueryList, TemplateRef } from '@angular/core' |
3 | import { ComponentPagination, Notifier, User } from '@app/core' | 3 | import { ComponentPagination, Notifier, User } from '@app/core' |
4 | import { logger } from '@root-helpers/logger' | ||
4 | import { ResultList, VideoSortField } from '@shared/models' | 5 | import { ResultList, VideoSortField } from '@shared/models' |
5 | import { PeerTubeTemplateDirective, Video } from '../shared-main' | 6 | import { PeerTubeTemplateDirective, Video } from '../shared-main' |
6 | import { MiniatureDisplayOptions } from './video-miniature.component' | 7 | import { MiniatureDisplayOptions } from './video-miniature.component' |
@@ -128,7 +129,7 @@ export class VideosSelectionComponent implements AfterContentInit { | |||
128 | error: err => { | 129 | error: err => { |
129 | const message = $localize`Cannot load more videos. Try again later.` | 130 | const message = $localize`Cannot load more videos. Try again later.` |
130 | 131 | ||
131 | console.error(message, { err }) | 132 | logger.error(message, err) |
132 | this.notifier.error(message) | 133 | this.notifier.error(message) |
133 | } | 134 | } |
134 | }) | 135 | }) |
diff --git a/client/src/app/shared/shared-video-playlist/video-add-to-playlist.component.ts b/client/src/app/shared/shared-video-playlist/video-add-to-playlist.component.ts index e4972ec10..e019fdd26 100644 --- a/client/src/app/shared/shared-video-playlist/video-add-to-playlist.component.ts +++ b/client/src/app/shared/shared-video-playlist/video-add-to-playlist.component.ts | |||
@@ -16,7 +16,7 @@ import { | |||
16 | import { VIDEO_PLAYLIST_DISPLAY_NAME_VALIDATOR } from '../form-validators/video-playlist-validators' | 16 | import { VIDEO_PLAYLIST_DISPLAY_NAME_VALIDATOR } from '../form-validators/video-playlist-validators' |
17 | import { CachedPlaylist, VideoPlaylistService } from './video-playlist.service' | 17 | import { CachedPlaylist, VideoPlaylistService } from './video-playlist.service' |
18 | 18 | ||
19 | const logger = debug('peertube:playlists:VideoAddToPlaylistComponent') | 19 | const debugLogger = debug('peertube:playlists:VideoAddToPlaylistComponent') |
20 | 20 | ||
21 | type PlaylistElement = { | 21 | type PlaylistElement = { |
22 | enabled: boolean | 22 | enabled: boolean |
@@ -110,7 +110,7 @@ export class VideoAddToPlaylistComponent extends FormReactive implements OnInit, | |||
110 | } | 110 | } |
111 | 111 | ||
112 | reload () { | 112 | reload () { |
113 | logger('Reloading component') | 113 | debugLogger('Reloading component') |
114 | 114 | ||
115 | this.videoPlaylists = [] | 115 | this.videoPlaylists = [] |
116 | this.videoPlaylistSearch = undefined | 116 | this.videoPlaylistSearch = undefined |
@@ -121,7 +121,7 @@ export class VideoAddToPlaylistComponent extends FormReactive implements OnInit, | |||
121 | } | 121 | } |
122 | 122 | ||
123 | load () { | 123 | load () { |
124 | logger('Loading component') | 124 | debugLogger('Loading component') |
125 | 125 | ||
126 | this.listenToVideoPlaylistChange() | 126 | this.listenToVideoPlaylistChange() |
127 | 127 | ||
@@ -331,7 +331,7 @@ export class VideoAddToPlaylistComponent extends FormReactive implements OnInit, | |||
331 | } | 331 | } |
332 | 332 | ||
333 | private rebuildPlaylists (existResult: VideoExistInPlaylist[]) { | 333 | private rebuildPlaylists (existResult: VideoExistInPlaylist[]) { |
334 | logger('Got existing results for %d.', this.video.id, existResult) | 334 | debugLogger('Got existing results for %d.', this.video.id, existResult) |
335 | 335 | ||
336 | const oldPlaylists = this.videoPlaylists | 336 | const oldPlaylists = this.videoPlaylists |
337 | 337 | ||
@@ -359,7 +359,7 @@ export class VideoAddToPlaylistComponent extends FormReactive implements OnInit, | |||
359 | this.videoPlaylists.push(playlistSummary) | 359 | this.videoPlaylists.push(playlistSummary) |
360 | } | 360 | } |
361 | 361 | ||
362 | logger('Rebuilt playlist state for video %d.', this.video.id, this.videoPlaylists) | 362 | debugLogger('Rebuilt playlist state for video %d.', this.video.id, this.videoPlaylists) |
363 | 363 | ||
364 | this.cd.markForCheck() | 364 | this.cd.markForCheck() |
365 | } | 365 | } |
diff --git a/client/src/app/shared/shared-video-playlist/video-playlist.service.ts b/client/src/app/shared/shared-video-playlist/video-playlist.service.ts index db9f78a7a..81ae0f292 100644 --- a/client/src/app/shared/shared-video-playlist/video-playlist.service.ts +++ b/client/src/app/shared/shared-video-playlist/video-playlist.service.ts | |||
@@ -23,7 +23,7 @@ import { environment } from '../../../environments/environment' | |||
23 | import { VideoPlaylistElement } from './video-playlist-element.model' | 23 | import { VideoPlaylistElement } from './video-playlist-element.model' |
24 | import { VideoPlaylist } from './video-playlist.model' | 24 | import { VideoPlaylist } from './video-playlist.model' |
25 | 25 | ||
26 | const logger = debug('peertube:playlists:VideoPlaylistService') | 26 | const debugLogger = debug('peertube:playlists:VideoPlaylistService') |
27 | 27 | ||
28 | export type CachedPlaylist = VideoPlaylist | { id: number, displayName: string } | 28 | export type CachedPlaylist = VideoPlaylist | { id: number, displayName: string } |
29 | 29 | ||
@@ -287,15 +287,15 @@ export class VideoPlaylistService { | |||
287 | } | 287 | } |
288 | 288 | ||
289 | runPlaylistCheck (videoId: number) { | 289 | runPlaylistCheck (videoId: number) { |
290 | logger('Running playlist check.') | 290 | debugLogger('Running playlist check.') |
291 | 291 | ||
292 | if (this.videoExistsCache[videoId]) { | 292 | if (this.videoExistsCache[videoId]) { |
293 | logger('Found cache for %d.', videoId) | 293 | debugLogger('Found cache for %d.', videoId) |
294 | 294 | ||
295 | return this.videoExistsInPlaylistCacheSubject.next({ [videoId]: this.videoExistsCache[videoId] }) | 295 | return this.videoExistsInPlaylistCacheSubject.next({ [videoId]: this.videoExistsCache[videoId] }) |
296 | } | 296 | } |
297 | 297 | ||
298 | logger('Fetching from network for %d.', videoId) | 298 | debugLogger('Fetching from network for %d.', videoId) |
299 | return this.videoExistsInPlaylistNotifier.next(videoId) | 299 | return this.videoExistsInPlaylistNotifier.next(videoId) |
300 | } | 300 | } |
301 | 301 | ||