X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2F%2Bvideos%2Fvideo-list%2Fvideo-user-subscriptions.component.ts;h=03881c295745d9aab8675656e300c18aa672dc21;hb=5beb89f223539f1e415a976ff104f772526b4d20;hp=41ad9b27791d082012ae1fedef72cbc74d42c4ce;hpb=1942f11d5ee6926ad93dc1b79fae18325ba5de18;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/+videos/video-list/video-user-subscriptions.component.ts b/client/src/app/+videos/video-list/video-user-subscriptions.component.ts index 41ad9b277..03881c295 100644 --- a/client/src/app/+videos/video-list/video-user-subscriptions.component.ts +++ b/client/src/app/+videos/video-list/video-user-subscriptions.component.ts @@ -1,13 +1,15 @@ import { Component, OnDestroy, OnInit } from '@angular/core' import { ActivatedRoute, Router } from '@angular/router' -import { AuthService, LocalStorageService, Notifier, ScreenService, ServerService, UserService } from '@app/core' +import { AuthService, LocalStorageService, Notifier, ScopedTokensService, ScreenService, ServerService, UserService } from '@app/core' import { HooksService } from '@app/core/plugins/hooks.service' import { immutableAssign } from '@app/helpers' import { VideoService } from '@app/shared/shared-main' import { UserSubscriptionService } from '@app/shared/shared-user-subscription' import { AbstractVideoList, OwnerDisplayType } from '@app/shared/shared-video-miniature' -import { I18n } from '@ngx-translate/i18n-polyfill' -import { VideoSortField } from '@shared/models' +import { VideoSortField, FeedFormat } from '@shared/models' +import { copyToClipboard } from '../../../root-helpers/utils' +import { environment } from '../../../environments/environment' +import { forkJoin } from 'rxjs' @Component({ selector: 'my-videos-user-subscriptions', @@ -21,7 +23,6 @@ export class VideoUserSubscriptionsComponent extends AbstractVideoList implement groupByDate = true constructor ( - protected i18n: I18n, protected router: Router, protected serverService: ServerService, protected route: ActivatedRoute, @@ -31,21 +32,47 @@ export class VideoUserSubscriptionsComponent extends AbstractVideoList implement protected screenService: ScreenService, protected storageService: LocalStorageService, private userSubscription: UserSubscriptionService, + private hooks: HooksService, private videoService: VideoService, - private hooks: HooksService + private scopedTokensService: ScopedTokensService ) { super() - this.titlePage = i18n('Videos from your subscriptions') + this.titlePage = $localize`Videos from your subscriptions` + this.actions.push({ - routerLink: '/my-account/subscriptions', - label: i18n('Subscriptions'), + routerLink: '/my-library/subscriptions', + label: $localize`Subscriptions`, iconName: 'cog' }) } ngOnInit () { super.ngOnInit() + + const user = this.authService.getUser() + let feedUrl = environment.originServerUrl + + this.scopedTokensService.getScopedTokens().subscribe( + tokens => { + const feeds = this.videoService.getVideoSubscriptionFeedUrls(user.account.id, tokens.feedToken) + feedUrl = feedUrl + feeds.find((f: any) => f.format === FeedFormat.RSS).url + }, + + err => { + this.notifier.error(err.message) + } + ) + + this.actions.unshift({ + label: $localize`Feed`, + iconName: 'syndication', + justIcon: true, + click: () => { + copyToClipboard(feedUrl) + this.activateCopiedMessage() + } + }) } ngOnDestroy () { @@ -72,4 +99,8 @@ export class VideoUserSubscriptionsComponent extends AbstractVideoList implement generateSyndicationList () { // not implemented yet } + + activateCopiedMessage () { + this.notifier.success($localize`Feed URL copied`) + } }