]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/commitdiff
Move admin stuff in +admin
authorChocobozzz <me@florianbigard.com>
Tue, 2 Nov 2021 13:14:26 +0000 (14:14 +0100)
committerChocobozzz <me@florianbigard.com>
Tue, 2 Nov 2021 13:14:26 +0000 (14:14 +0100)
client/src/app/+admin/admin.module.ts
client/src/app/+admin/overview/videos/index.ts
client/src/app/+admin/overview/videos/video-admin.service.ts [new file with mode: 0644]
client/src/app/+admin/overview/videos/video-list.component.ts
client/src/app/shared/shared-main/video/video.service.ts

index 0cb4d10565fa57b9279c1bb6a385f867954ff824..3606fc6eaf8417fb1ed13c519c85be2306b64197 100644 (file)
@@ -33,7 +33,7 @@ import { VideoRedundancyInformationComponent } from './follows/video-redundancie
 import { AbuseListComponent, VideoBlockListComponent } from './moderation'
 import { InstanceAccountBlocklistComponent, InstanceServerBlocklistComponent } from './moderation/instance-blocklist'
 import { VideoCommentListComponent } from './moderation/video-comment-list'
 import { AbuseListComponent, VideoBlockListComponent } from './moderation'
 import { InstanceAccountBlocklistComponent, InstanceServerBlocklistComponent } from './moderation/instance-blocklist'
 import { VideoCommentListComponent } from './moderation/video-comment-list'
-import { UserCreateComponent, UserListComponent, UserPasswordComponent, UserUpdateComponent, VideoListComponent } from './overview'
+import { UserCreateComponent, UserListComponent, UserPasswordComponent, UserUpdateComponent, VideoAdminService, VideoListComponent } from './overview'
 import { PluginListInstalledComponent } from './plugins/plugin-list-installed/plugin-list-installed.component'
 import { PluginSearchComponent } from './plugins/plugin-search/plugin-search.component'
 import { PluginShowInstalledComponent } from './plugins/plugin-show-installed/plugin-show-installed.component'
 import { PluginListInstalledComponent } from './plugins/plugin-list-installed/plugin-list-installed.component'
 import { PluginSearchComponent } from './plugins/plugin-search/plugin-search.component'
 import { PluginShowInstalledComponent } from './plugins/plugin-show-installed/plugin-show-installed.component'
@@ -116,7 +116,8 @@ import { JobsComponent } from './system/jobs/jobs.component'
     DebugService,
     ConfigService,
     PluginApiService,
     DebugService,
     ConfigService,
     PluginApiService,
-    EditConfigurationService
+    EditConfigurationService,
+    VideoAdminService
   ]
 })
 export class AdminModule { }
   ]
 })
 export class AdminModule { }
index 40c2ffe7264be50778a0f309881009fb1b7a7d16..7398b16635c7f60b20981dae52219a788cdc284b 100644 (file)
@@ -1,2 +1,3 @@
+export * from './video-admin.service'
 export * from './video-list.component'
 export * from './video.routes'
 export * from './video-list.component'
 export * from './video.routes'
diff --git a/client/src/app/+admin/overview/videos/video-admin.service.ts b/client/src/app/+admin/overview/videos/video-admin.service.ts
new file mode 100644 (file)
index 0000000..696609c
--- /dev/null
@@ -0,0 +1,97 @@
+import { Observable } from 'rxjs'
+import { catchError, switchMap } from 'rxjs/operators'
+import { HttpClient, HttpParams } from '@angular/common/http'
+import { Injectable } from '@angular/core'
+import { RestExtractor, RestPagination, RestService } from '@app/core'
+import { AdvancedInputFilter } from '@app/shared/shared-forms'
+import { CommonVideoParams, Video, VideoService } from '@app/shared/shared-main'
+import { ResultList, VideoInclude } from '@shared/models'
+
+@Injectable()
+export class VideoAdminService {
+
+  constructor (
+    private videoService: VideoService,
+    private authHttp: HttpClient,
+    private restExtractor: RestExtractor,
+    private restService: RestService
+  ) {}
+
+  getAdminVideos (
+    options: CommonVideoParams & { pagination: RestPagination, search?: string }
+  ): Observable<ResultList<Video>> {
+    const { pagination, search } = options
+
+    let params = new HttpParams()
+    params = this.videoService.buildCommonVideosParams({ params, ...options })
+
+    params = params.set('start', pagination.start.toString())
+                   .set('count', pagination.count.toString())
+
+    params = this.buildAdminParamsFromSearch(search, params)
+
+    return this.authHttp
+               .get<ResultList<Video>>(VideoService.BASE_VIDEO_URL, { params })
+               .pipe(
+                 switchMap(res => this.videoService.extractVideos(res)),
+                 catchError(err => this.restExtractor.handleError(err))
+               )
+  }
+
+  buildAdminInputFilter (): AdvancedInputFilter[] {
+    return [
+      {
+        title: $localize`Videos scope`,
+        children: [
+          {
+            queryParams: { search: 'isLocal:false' },
+            label: $localize`Remote videos`
+          },
+          {
+            queryParams: { search: 'isLocal:true' },
+            label: $localize`Local videos`
+          }
+        ]
+      },
+
+      {
+        title: $localize`Include/Exclude`,
+        children: [
+          {
+            queryParams: { search: 'excludeMuted' },
+            label: $localize`Exclude muted accounts`
+          }
+        ]
+      }
+    ]
+  }
+
+  private buildAdminParamsFromSearch (search: string, params: HttpParams) {
+    let include = VideoInclude.BLACKLISTED |
+      VideoInclude.BLOCKED_OWNER |
+      VideoInclude.HIDDEN_PRIVACY |
+      VideoInclude.NOT_PUBLISHED_STATE |
+      VideoInclude.FILES
+
+    if (!search) return this.restService.addObjectParams(params, { include })
+
+    const filters = this.restService.parseQueryStringFilter(search, {
+      isLocal: {
+        prefix: 'isLocal:',
+        isBoolean: true
+      },
+      excludeMuted: {
+        prefix: 'excludeMuted',
+        handler: () => true
+      }
+    })
+
+    if (filters.excludeMuted) {
+      include &= ~VideoInclude.BLOCKED_OWNER
+
+      filters.excludeMuted = undefined
+    }
+
+    return this.restService.addObjectParams(params, { ...filters, include })
+  }
+}
index 31bf1707b6cb1196a867e8da1392782b6520dfb0..b0e476569b0cd98bbd55c4f5eb39606d5adcb2aa 100644 (file)
@@ -7,6 +7,7 @@ import { AdvancedInputFilter } from '@app/shared/shared-forms'
 import { DropdownAction, Video, VideoService } from '@app/shared/shared-main'
 import { VideoActionsDisplayType } from '@app/shared/shared-video-miniature'
 import { UserRight, VideoPrivacy, VideoState, VideoStreamingPlaylistType } from '@shared/models'
 import { DropdownAction, Video, VideoService } from '@app/shared/shared-main'
 import { VideoActionsDisplayType } from '@app/shared/shared-video-miniature'
 import { UserRight, VideoPrivacy, VideoState, VideoStreamingPlaylistType } from '@shared/models'
+import { VideoAdminService } from './video-admin.service'
 
 @Component({
   selector: 'my-video-list',
 
 @Component({
   selector: 'my-video-list',
@@ -46,7 +47,8 @@ export class VideoListComponent extends RestTable implements OnInit {
     private confirmService: ConfirmService,
     private auth: AuthService,
     private notifier: Notifier,
     private confirmService: ConfirmService,
     private auth: AuthService,
     private notifier: Notifier,
-    private videoService: VideoService
+    private videoService: VideoService,
+    private videoAdminService: VideoAdminService
   ) {
     super()
   }
   ) {
     super()
   }
@@ -58,7 +60,7 @@ export class VideoListComponent extends RestTable implements OnInit {
   ngOnInit () {
     this.initialize()
 
   ngOnInit () {
     this.initialize()
 
-    this.inputFilters = this.videoService.buildAdminInputFilter()
+    this.inputFilters = this.videoAdminService.buildAdminInputFilter()
 
     this.bulkVideoActions = [
       [
 
     this.bulkVideoActions = [
       [
@@ -128,7 +130,7 @@ export class VideoListComponent extends RestTable implements OnInit {
 
     this.loading = true
 
 
     this.loading = true
 
-    this.videoService.getAdminVideos({
+    this.videoAdminService.getAdminVideos({
       pagination: this.pagination,
       sort: this.sort,
       search: this.search
       pagination: this.pagination,
       sort: this.sort,
       search: this.search
index b7c563dca3552f0d7b2faf3ece514a78662f0a8f..6edcc3fe05cd2afb649975b8a05c6bbd415e6031 100644 (file)
@@ -3,9 +3,8 @@ import { from, Observable } from 'rxjs'
 import { catchError, concatMap, map, switchMap, toArray } from 'rxjs/operators'
 import { HttpClient, HttpParams, HttpRequest } from '@angular/common/http'
 import { Injectable } from '@angular/core'
 import { catchError, concatMap, map, switchMap, toArray } from 'rxjs/operators'
 import { HttpClient, HttpParams, HttpRequest } from '@angular/common/http'
 import { Injectable } from '@angular/core'
-import { ComponentPaginationLight, RestExtractor, RestPagination, RestService, ServerService, UserService } from '@app/core'
+import { ComponentPaginationLight, RestExtractor, RestService, ServerService, UserService } from '@app/core'
 import { objectToFormData } from '@app/helpers'
 import { objectToFormData } from '@app/helpers'
-import { AdvancedInputFilter } from '@app/shared/shared-forms'
 import {
   BooleanBothQuery,
   FeedFormat,
 import {
   BooleanBothQuery,
   FeedFormat,
@@ -204,27 +203,6 @@ export class VideoService {
                )
   }
 
                )
   }
 
-  getAdminVideos (
-    options: CommonVideoParams & { pagination: RestPagination, search?: string }
-  ): Observable<ResultList<Video>> {
-    const { pagination, search } = options
-
-    let params = new HttpParams()
-    params = this.buildCommonVideosParams({ params, ...options })
-
-    params = params.set('start', pagination.start.toString())
-                   .set('count', pagination.count.toString())
-
-    params = this.buildAdminParamsFromSearch(search, params)
-
-    return this.authHttp
-               .get<ResultList<Video>>(VideoService.BASE_VIDEO_URL, { params })
-               .pipe(
-                 switchMap(res => this.extractVideos(res)),
-                 catchError(err => this.restExtractor.handleError(err))
-               )
-  }
-
   getVideos (parameters: CommonVideoParams): Observable<ResultList<Video>> {
     let params = new HttpParams()
     params = this.buildCommonVideosParams({ params, ...parameters })
   getVideos (parameters: CommonVideoParams): Observable<ResultList<Video>> {
     let params = new HttpParams()
     params = this.buildCommonVideosParams({ params, ...parameters })
@@ -405,21 +383,7 @@ export class VideoService {
       : 'both'
   }
 
       : 'both'
   }
 
-  private setVideoRate (id: number, rateType: UserVideoRateType) {
-    const url = `${VideoService.BASE_VIDEO_URL}/${id}/rate`
-    const body: UserVideoRateUpdate = {
-      rating: rateType
-    }
-
-    return this.authHttp
-               .put(url, body)
-               .pipe(
-                 map(this.restExtractor.extractDataBool),
-                 catchError(err => this.restExtractor.handleError(err))
-               )
-  }
-
-  private buildCommonVideosParams (options: CommonVideoParams & { params: HttpParams }) {
+  buildCommonVideosParams (options: CommonVideoParams & { params: HttpParams }) {
     const {
       params,
       videoPagination,
     const {
       params,
       videoPagination,
@@ -453,60 +417,17 @@ export class VideoService {
     return newParams
   }
 
     return newParams
   }
 
-  buildAdminInputFilter (): AdvancedInputFilter[] {
-    return [
-      {
-        title: $localize`Videos scope`,
-        children: [
-          {
-            queryParams: { search: 'isLocal:false' },
-            label: $localize`Remote videos`
-          },
-          {
-            queryParams: { search: 'isLocal:true' },
-            label: $localize`Local videos`
-          }
-        ]
-      },
-
-      {
-        title: $localize`Include/Exclude`,
-        children: [
-          {
-            queryParams: { search: 'excludeMuted' },
-            label: $localize`Exclude muted accounts`
-          }
-        ]
-      }
-    ]
-  }
-
-  private buildAdminParamsFromSearch (search: string, params: HttpParams) {
-    let include = VideoInclude.BLACKLISTED |
-      VideoInclude.BLOCKED_OWNER |
-      VideoInclude.HIDDEN_PRIVACY |
-      VideoInclude.NOT_PUBLISHED_STATE |
-      VideoInclude.FILES
-
-    if (!search) return this.restService.addObjectParams(params, { include })
-
-    const filters = this.restService.parseQueryStringFilter(search, {
-      isLocal: {
-        prefix: 'isLocal:',
-        isBoolean: true
-      },
-      excludeMuted: {
-        prefix: 'excludeMuted',
-        handler: () => true
-      }
-    })
-
-    if (filters.excludeMuted) {
-      include &= ~VideoInclude.BLOCKED_OWNER
-
-      filters.excludeMuted = undefined
+  private setVideoRate (id: number, rateType: UserVideoRateType) {
+    const url = `${VideoService.BASE_VIDEO_URL}/${id}/rate`
+    const body: UserVideoRateUpdate = {
+      rating: rateType
     }
 
     }
 
-    return this.restService.addObjectParams(params, { ...filters, include })
+    return this.authHttp
+               .put(url, body)
+               .pipe(
+                 map(this.restExtractor.extractDataBool),
+                 catchError(err => this.restExtractor.handleError(err))
+               )
   }
 }
   }
 }