]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/commitdiff
Fix titles on upload page (#4904)
authorkontrollanten <6680299+kontrollanten@users.noreply.github.com>
Fri, 8 Apr 2022 09:14:12 +0000 (11:14 +0200)
committerGitHub <noreply@github.com>
Fri, 8 Apr 2022 09:14:12 +0000 (11:14 +0200)
* client/video-add: fix route titles

* client/video-add: show progress in page title

* Styling

Co-authored-by: Chocobozzz <me@florianbigard.com>
client/src/app/+videos/+video-edit/video-add-components/video-upload.component.ts
client/src/app/+videos/+video-edit/video-add.module.ts
client/src/app/+videos/+video-edit/video-update.module.ts
client/src/app/app-routing.module.ts

index ec858c8a84e87200dc151478ac95f2fa6a5eaaea..0a83215b900019749f67300902d7f1cf68013869 100644 (file)
@@ -3,8 +3,8 @@ import { UploadState, UploadxOptions, UploadxService } from 'ngx-uploadx'
 import { isIOS } from '@root-helpers/web-browser'
 import { HttpErrorResponse, HttpEventType, HttpHeaders } from '@angular/common/http'
 import { AfterViewInit, Component, ElementRef, EventEmitter, OnDestroy, OnInit, Output, ViewChild } from '@angular/core'
-import { Router } from '@angular/router'
-import { AuthService, CanComponentDeactivate, HooksService, Notifier, ServerService, UserService } from '@app/core'
+import { ActivatedRoute, Router } from '@angular/router'
+import { AuthService, CanComponentDeactivate, HooksService, MetaService, Notifier, ServerService, UserService } from '@app/core'
 import { genericUploadErrorHandler, scrollToTop } from '@app/helpers'
 import { FormValidatorService } from '@app/shared/shared-forms'
 import { BytesPipe, Video, VideoCaptionService, VideoEdit, VideoService } from '@app/shared/shared-main'
@@ -66,7 +66,9 @@ export class VideoUploadComponent extends VideoSend implements OnInit, OnDestroy
     private userService: UserService,
     private router: Router,
     private hooks: HooksService,
-    private resumableUploadService: UploadxService
+    private resumableUploadService: UploadxService,
+    private metaService: MetaService,
+    private route: ActivatedRoute
   ) {
     super()
   }
@@ -113,6 +115,18 @@ export class VideoUploadComponent extends VideoSend implements OnInit, OnDestroy
     }
   }
 
+  updateTitle () {
+    const videoName = this.form.get('name').value
+
+    if (this.videoUploaded) {
+      this.metaService.setTitle($localize`Upload ${videoName}`)
+    } else if (this.isUploadingAudioFile || this.isUploadingVideo) {
+      this.metaService.setTitle(`${this.videoUploadPercents}% - ${videoName}`)
+    } else {
+      this.metaService.update(this.route.snapshot.data['meta'])
+    }
+  }
+
   onUploadVideoOngoing (state: UploadState) {
     switch (state.status) {
       case 'error': {
@@ -153,7 +167,8 @@ export class VideoUploadComponent extends VideoSend implements OnInit, OnDestroy
         break
 
       case 'uploading':
-        this.videoUploadPercents = state.progress
+        // TODO: remove || 0 when // https://github.com/kukhariev/ngx-uploadx/pull/368 is released
+        this.videoUploadPercents = state.progress || 0
         break
 
       case 'paused':
@@ -167,6 +182,8 @@ export class VideoUploadComponent extends VideoSend implements OnInit, OnDestroy
         this.videoUploadedIds = state?.response.video
         break
     }
+
+    this.updateTitle()
   }
 
   onFileDropped (files: FileList) {
@@ -305,6 +322,7 @@ export class VideoUploadComponent extends VideoSend implements OnInit, OnDestroy
     })
 
     this.firstStepDone.emit(name)
+    this.updateTitle()
   }
 
   private checkGlobalUserQuota (videofile: File) {
index e836cf81e2264d631cda2e7855b88a03e40ef2d1..f5bfc925afcc4c1f471dd46ca760b9889ff335db 100644 (file)
@@ -1,11 +1,10 @@
-import { NgModule } from '@angular/core'
-import { CanDeactivateGuard } from '@app/core'
 import { UploadxModule } from 'ngx-uploadx'
+import { NgModule } from '@angular/core'
 import { VideoEditModule } from './shared/video-edit.module'
 import { DragDropDirective } from './video-add-components/drag-drop.directive'
+import { VideoGoLiveComponent } from './video-add-components/video-go-live.component'
 import { VideoImportTorrentComponent } from './video-add-components/video-import-torrent.component'
 import { VideoImportUrlComponent } from './video-add-components/video-import-url.component'
-import { VideoGoLiveComponent } from './video-add-components/video-go-live.component'
 import { VideoUploadComponent } from './video-add-components/video-upload.component'
 import { VideoAddRoutingModule } from './video-add-routing.module'
 import { VideoAddComponent } from './video-add.component'
@@ -30,8 +29,6 @@ import { VideoAddComponent } from './video-add.component'
 
   exports: [ ],
 
-  providers: [
-    CanDeactivateGuard
-  ]
+  providers: []
 })
 export class VideoAddModule { }
index 99cd8bea14e122164b02f73dfc9fedaf46ae51f8..92d32ffc8bade14b0c8ec626d61aac0ed28eb336 100644 (file)
@@ -1,5 +1,4 @@
 import { NgModule } from '@angular/core'
-import { CanDeactivateGuard } from '@app/core'
 import { VideoEditModule } from './shared/video-edit.module'
 import { VideoUpdateRoutingModule } from './video-update-routing.module'
 import { VideoUpdateComponent } from './video-update.component'
@@ -19,8 +18,7 @@ import { VideoUpdateResolver } from './video-update.resolver'
   exports: [ ],
 
   providers: [
-    VideoUpdateResolver,
-    CanDeactivateGuard
+    VideoUpdateResolver
   ]
 })
 export class VideoUpdateModule { }
index a831da0999304f536ea11b2a2a6e87b543a8edd1..db48b2eea7aa2f7625a98297784dada00ca193fe 100644 (file)
@@ -96,6 +96,7 @@ const routes: Routes = [
   {
     path: 'videos/upload',
     loadChildren: () => import('@app/+videos/+video-edit/video-add.module').then(m => m.VideoAddModule),
+    canActivateChild: [ MetaGuard ],
     data: {
       meta: {
         title: $localize`Upload a video`
@@ -105,6 +106,7 @@ const routes: Routes = [
   {
     path: 'videos/update/:uuid',
     loadChildren: () => import('@app/+videos/+video-edit/video-update.module').then(m => m.VideoUpdateModule),
+    canActivateChild: [ MetaGuard ],
     data: {
       meta: {
         title: $localize`Edit a video`