X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;ds=sidebyside;f=client%2Fsrc%2Fapp%2F%2Bmy-account%2Fmy-account-settings%2Fmy-account-settings.component.ts;h=a0f2f28f89d1e4ab22e365354e64f5d6fccdd7b3;hb=8cbc40b2fe9d36ef0505b9441276ca561342e9e9;hp=15f977e586477aa74303c185c64a8efb186df324;hpb=d18d64787b3ea174f7dc2740c8c8c9555625047e;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/+my-account/my-account-settings/my-account-settings.component.ts b/client/src/app/+my-account/my-account-settings/my-account-settings.component.ts index 15f977e58..a0f2f28f8 100644 --- a/client/src/app/+my-account/my-account-settings/my-account-settings.component.ts +++ b/client/src/app/+my-account/my-account-settings/my-account-settings.component.ts @@ -1,31 +1,25 @@ -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' -import { I18n } from '@ngx-translate/i18n-polyfill' +import { ViewportScroller } from '@angular/common' +import { HttpErrorResponse } from '@angular/common/http' +import { AfterViewChecked, Component, OnInit } from '@angular/core' +import { AuthService, Notifier, User, UserService } from '@app/core' +import { genericUploadErrorHandler } from '@app/helpers' @Component({ selector: 'my-account-settings', templateUrl: './my-account-settings.component.html', styleUrls: [ './my-account-settings.component.scss' ] }) -export class MyAccountSettingsComponent implements OnInit { - @ViewChild('avatarfileInput') avatarfileInput - +export class MyAccountSettingsComponent implements OnInit, AfterViewChecked { user: User = null - userVideoQuota = '0' - userVideoQuotaUsed = 0 + + private lastScrollHash: string constructor ( + private viewportScroller: ViewportScroller, private userService: UserService, private authService: AuthService, - private serverService: ServerService, - private notificationsService: NotificationsService, - private i18n: I18n - ) {} + private notifier: Notifier + ) {} get userInformationLoaded () { return this.authService.userInformationLoaded @@ -33,44 +27,43 @@ export class MyAccountSettingsComponent implements OnInit { 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 = this.i18n('Unlimited') - } - } - ) - - this.userService.getMyVideoQuotaUsed() - .subscribe(data => this.userVideoQuotaUsed = data.videoQuotaUsed) } - changeAvatar () { - const avatarfile = this.avatarfileInput.nativeElement.files[ 0 ] + ngAfterViewChecked () { + if (window.location.hash && window.location.hash !== this.lastScrollHash) { + this.viewportScroller.scrollToAnchor(window.location.hash.replace('#', '')) - const formData = new FormData() - formData.append('avatarfile', avatarfile) + this.lastScrollHash = window.location.hash + } + } + onAvatarChange (formData: FormData) { this.userService.changeAvatar(formData) .subscribe( data => { - this.notificationsService.success(this.i18n('Success'), this.i18n('Avatar changed.')) + this.notifier.success($localize`Avatar changed.`) - this.user.account.avatar = data.avatar + this.user.updateAccountAvatar(data.avatar) }, - err => this.notificationsService.error(this.i18n('Error'), err.message) + (err: HttpErrorResponse) => genericUploadErrorHandler({ + err, + name: $localize`avatar`, + notifier: this.notifier + }) ) } - get maxAvatarSize () { - return this.serverService.getConfig().avatar.file.size.max - } + onAvatarDelete () { + this.userService.deleteAvatar() + .subscribe( + data => { + this.notifier.success($localize`Avatar deleted.`) - get avatarExtensions () { - return this.serverService.getConfig().avatar.file.extensions.join(',') + this.user.updateAccountAvatar() + }, + + (err: HttpErrorResponse) => this.notifier.error(err.message) + ) } }