X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2F%2Bmy-account%2Fmy-account-settings%2Fmy-account-settings.component.ts;h=f73f3aa1e09de556fc9812d803dfe0c0df596f6d;hb=64e0f8cf12c804a7a2fa582fd954f686cea9a45b;hp=164a46a4813ac276d4e9dc1fe4209178493d7bc3;hpb=52d9f792b3fee5acce80f948295b59e3ad2073eb;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 164a46a48..f73f3aa1e 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,27 +1,35 @@ -import { Component, OnInit, ViewChild } from '@angular/core' -import { NotificationsService } from 'angular2-notifications' +import { Component, OnInit, AfterViewChecked } from '@angular/core' +import { Notifier } from '@app/core' 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' @Component({ selector: 'my-account-settings', templateUrl: './my-account-settings.component.html', styleUrls: [ './my-account-settings.component.scss' ] }) -export class MyAccountSettingsComponent implements OnInit { +export class MyAccountSettingsComponent implements OnInit, AfterViewChecked { user: User = null + userVideoQuota = '0' userVideoQuotaUsed = 0 + userVideoQuotaPercentage = 15 + + userVideoQuotaDaily = '0' + userVideoQuotaUsedDaily = 0 + userVideoQuotaDailyPercentage = 15 + + private lastScrollHash: string constructor ( + private viewportScroller: ViewportScroller, private userService: UserService, private authService: AuthService, - private serverService: ServerService, - private notificationsService: NotificationsService, + private notifier: Notifier, private i18n: I18n ) {} @@ -36,26 +44,49 @@ export class MyAccountSettingsComponent implements OnInit { () => { if (this.user.videoQuota !== -1) { this.userVideoQuota = new BytesPipe().transform(this.user.videoQuota, 0).toString() + this.userVideoQuotaPercentage = this.user.videoQuota * 100 / this.userVideoQuotaUsed } else { this.userVideoQuota = this.i18n('Unlimited') } + + if (this.user.videoQuotaDaily !== -1) { + this.userVideoQuotaDaily = new BytesPipe().transform(this.user.videoQuotaDaily, 0).toString() + this.userVideoQuotaDailyPercentage = this.user.videoQuotaDaily * 100 / this.userVideoQuotaUsedDaily + } else { + this.userVideoQuotaDaily = this.i18n('Unlimited') + } } ) this.userService.getMyVideoQuotaUsed() - .subscribe(data => this.userVideoQuotaUsed = data.videoQuotaUsed) + .subscribe(data => { + this.userVideoQuotaUsed = data.videoQuotaUsed + this.userVideoQuotaUsedDaily = data.videoQuotaUsedDaily + }) + } + + ngAfterViewChecked () { + if (window.location.hash && window.location.hash !== this.lastScrollHash) { + this.viewportScroller.scrollToAnchor(window.location.hash.replace('#', '')) + + 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(this.i18n('Avatar changed.')) this.user.updateAccountAvatar(data.avatar) }, - err => this.notificationsService.error(this.i18n('Error'), err.message) + err => this.notifier.error(err.message) ) } + + hasDailyQuota () { + return this.user.videoQuotaDaily !== -1 + } }