]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/account/account-settings/account-settings.component.ts
Update dependencies
[github/Chocobozzz/PeerTube.git] / client / src / app / account / account-settings / account-settings.component.ts
index cba2510009b0d5a4803b7a9ec9d4a2c61c19f7e9..52460781716d45867681425590ace0b36f03e376 100644 (file)
@@ -1,6 +1,10 @@
-import { Component, OnInit } from '@angular/core'
-import { User } from '../../shared'
+import { Component, OnInit, ViewChild } from '@angular/core'
+import { NotificationsService } from 'angular2-notifications'
+import { BytesPipe } from 'ngx-pipes'
 import { AuthService } from '../../core'
+import { ServerService } from '../../core/server'
+import { User } from '../../shared'
+import { UserService } from '../../shared/users'
 
 @Component({
   selector: 'my-account-settings',
@@ -8,15 +12,63 @@ import { AuthService } from '../../core'
   styleUrls: [ './account-settings.component.scss' ]
 })
 export class AccountSettingsComponent implements OnInit {
+  @ViewChild('avatarfileInput') avatarfileInput
+
   user: User = null
+  userVideoQuota = '0'
+  userVideoQuotaUsed = 0
 
-  constructor (private authService: AuthService) {}
+  constructor (
+    private userService: UserService,
+    private authService: AuthService,
+    private serverService: ServerService,
+    private notificationsService: NotificationsService
+  ) {}
 
   ngOnInit () {
     this.user = this.authService.getUser()
+
+    this.authService.userInformationLoaded.subscribe(
+      () => {
+        if (this.user.videoQuota !== -1) {
+          this.userVideoQuota = new BytesPipe().transform(this.user.videoQuota, 0).toString()
+        } else {
+          this.userVideoQuota = 'Unlimited'
+        }
+      }
+    )
+
+    this.userService.getMyVideoQuotaUsed()
+      .subscribe(data => this.userVideoQuotaUsed = data.videoQuotaUsed)
+  }
+
+  getAvatarUrl () {
+    return this.user.getAvatarUrl()
+  }
+
+  changeAvatar () {
+    const avatarfile = this.avatarfileInput.nativeElement.files[ 0 ]
+
+    const formData = new FormData()
+    formData.append('avatarfile', avatarfile)
+
+    this.userService.changeAvatar(formData)
+      .subscribe(
+        data => {
+          this.notificationsService.success('Success', 'Avatar changed.')
+
+          this.user.account.avatar = data.avatar
+        },
+
+        err => this.notificationsService.error('Error', err.message)
+      )
+  }
+
+  get maxAvatarSize () {
+    return this.serverService.getConfig().avatar.file.size.max
   }
 
-  getAvatarPath () {
-    return this.user.getAvatarPath()
+  get avatarExtensions () {
+    return this.serverService.getConfig().avatar.file.extensions.join(',')
   }
 }