X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;ds=sidebyside;f=client%2Fsrc%2Fapp%2Faccount%2Faccount-settings%2Faccount-settings.component.ts;h=52460781716d45867681425590ace0b36f03e376;hb=234b535dacdeacfacd7ac5601e53b6b7d923ca00;hp=cba2510009b0d5a4803b7a9ec9d4a2c61c19f7e9;hpb=fada8d75550dc7365f7e18ee1569b9406251d660;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/account/account-settings/account-settings.component.ts b/client/src/app/account/account-settings/account-settings.component.ts index cba251000..524607817 100644 --- a/client/src/app/account/account-settings/account-settings.component.ts +++ b/client/src/app/account/account-settings/account-settings.component.ts @@ -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(',') } }