X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2Fshared%2Fuser-subscription%2Fsubscribe-button.component.ts;h=b04e230f0b3173ec25eb101b5347b9d48f180287;hb=405ec98b916df9afb114ad20e847221d4eb94eea;hp=e3c758942703c91bd5c316e570949d065edfc3de;hpb=660d11e91e1643927028d2d6870a911f569b34d8;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/shared/user-subscription/subscribe-button.component.ts b/client/src/app/shared/user-subscription/subscribe-button.component.ts index e3c758942..b04e230f0 100644 --- a/client/src/app/shared/user-subscription/subscribe-button.component.ts +++ b/client/src/app/shared/user-subscription/subscribe-button.component.ts @@ -1,10 +1,11 @@ import { Component, Input, OnInit } from '@angular/core' import { Router } from '@angular/router' -import { AuthService } from '@app/core' +import { AuthService, Notifier } from '@app/core' import { UserSubscriptionService } from '@app/shared/user-subscription/user-subscription.service' import { VideoChannel } from '@app/shared/video-channel/video-channel.model' -import { NotificationsService } from 'angular2-notifications' import { I18n } from '@ngx-translate/i18n-polyfill' +import { VideoService } from '@app/shared/video/video.service' +import { FeedFormat } from '../../../../../shared/models/feeds' @Component({ selector: 'my-subscribe-button', @@ -21,51 +22,60 @@ export class SubscribeButtonComponent implements OnInit { constructor ( private authService: AuthService, private router: Router, - private notificationsService: NotificationsService, + private notifier: Notifier, private userSubscriptionService: UserSubscriptionService, - private i18n: I18n + private i18n: I18n, + private videoService: VideoService ) { } - get uri () { + get channelHandle () { return this.videoChannel.name + '@' + this.videoChannel.host } - get uriAccount () { - return this.videoChannel.ownerAccount.name + '@' + this.videoChannel.host + get channelUri () { + return this.videoChannel.url + } + + get rssUri () { + const rssFeed = this.videoService + .getVideoChannelFeedUrls(this.videoChannel.id) + .find(i => i.format === FeedFormat.RSS) + + return rssFeed.url } ngOnInit () { if (this.isUserLoggedIn()) { - this.userSubscriptionService.isSubscriptionExists(this.uri) + this.userSubscriptionService.doesSubscriptionExist(this.channelHandle) .subscribe( - res => this.subscribed = res[this.uri], + res => this.subscribed = res[this.channelHandle], - err => this.notificationsService.error(this.i18n('Error'), err.message) + err => this.notifier.error(err.message) ) } } subscribe () { if (this.isUserLoggedIn()) { - this.localSubscribe() - } else { - this.gotoLogin() + return this.localSubscribe() } + + return this.gotoLogin() } localSubscribe () { - this.userSubscriptionService.addSubscription(this.uri) + this.userSubscriptionService.addSubscription(this.channelHandle) .subscribe( () => { this.subscribed = true - this.notificationsService.success( - this.i18n('Subscribed'), - this.i18n('Subscribed to {{nameWithHost}}', { nameWithHost: this.videoChannel.displayName }) + this.notifier.success( + this.i18n('Subscribed to {{nameWithHost}}', { nameWithHost: this.videoChannel.displayName }), + this.i18n('Subscribed') ) }, - err => this.notificationsService.error(this.i18n('Error'), err.message) + err => this.notifier.error(err.message) ) } @@ -76,18 +86,18 @@ export class SubscribeButtonComponent implements OnInit { } localUnsubscribe () { - this.userSubscriptionService.deleteSubscription(this.uri) + this.userSubscriptionService.deleteSubscription(this.channelHandle) .subscribe( () => { this.subscribed = false - this.notificationsService.success( - this.i18n('Unsubscribed'), - this.i18n('Unsubscribed from {{nameWithHost}}', { nameWithHost: this.videoChannel.displayName }) + this.notifier.success( + this.i18n('Unsubscribed from {{nameWithHost}}', { nameWithHost: this.videoChannel.displayName }), + this.i18n('Unsubscribed') ) }, - err => this.notificationsService.error(this.i18n('Error'), err.message) + err => this.notifier.error(err.message) ) } @@ -98,8 +108,4 @@ export class SubscribeButtonComponent implements OnInit { gotoLogin () { this.router.navigate([ '/login' ]) } - - rssOpen () { - window.open('') - } }