1 <div class=
"root" *
ngIf=
"videoChannel">
2 <div class=
"banner" *
ngIf=
"videoChannel.bannerUrl">
3 <img [src]=
"videoChannel.bannerUrl" alt=
"Channel banner">
6 <div class=
"channel-info">
8 <ng-template #buttonsTemplate
>
9 <a *
ngIf=
"isManageable()" [routerLink]=
"[ '/manage/update', videoChannel.nameWithHost ]" class=
"peertube-button-link orange-button" i18n
>
13 <my-subscribe-button *
ngIf=
"!isOwner()" #subscribeButton [videoChannels]=
"[videoChannel]"></my-subscribe-button>
15 <button *
ngIf=
"videoChannel.support" (click)=
"showSupportModal()" class=
"support-button peertube-button orange-button-inverted">
16 <my-global-icon iconName=
"support" aria-hidden=
"true"></my-global-icon>
17 <span class=
"icon-text" i18n
>Support
</span>
21 <ng-template #ownerTemplate
>
22 <div class=
"owner-block">
23 <div class=
"section-label" i18n
>OWNER ACCOUNT
</div>
25 <div class=
"avatar-row">
26 <my-actor-avatar class=
"account-avatar" [account]=
"ownerAccount" [internalHref]=
"getAccountUrl()"></my-actor-avatar>
28 <div class=
"actor-info">
30 <a [routerLink]=
"getAccountUrl()" title=
"View account" i18n-title
>{{ ownerAccount.displayName }}
</a>
33 <div class=
"actor-handle">@{{ videoChannel.ownerBy }}
</div>
35 <my-account-block-badges [account]=
"ownerAccount"></my-account-block-badges>
39 <div class=
"owner-description">
40 <div class=
"description-html" [innerHTML]=
"ownerDescriptionHTML"></div>
43 <a class=
"view-account short" [routerLink]=
"getAccountUrl()" i18n
>
47 <a class=
"view-account complete" [routerLink]=
"getAccountUrl()" i18n
>
53 <div class=
"channel-avatar-row">
54 <my-actor-avatar class=
"main-avatar" [channel]=
"videoChannel"></my-actor-avatar>
57 <div class=
"section-label" i18n
>VIDEO CHANNEL
</div>
59 <div class=
"actor-info">
61 <div class=
"actor-display-name">
62 <h1 i18n-title [title]=
"'Channel created on ' + (videoChannel.createdAt | date)">{{ videoChannel.displayName }}
</h1>
65 <div class=
"actor-handle">
66 <span>@{{ videoChannel.nameWithHost }}
</span>
67 <button [cdkCopyToClipboard]=
"videoChannel.nameWithHostForced" (click)=
"activateCopiedMessage()"
68 class=
"btn btn-outline-secondary btn-sm copy-button" title=
"Copy channel handle" i18n-title
70 <span class=
"glyphicon glyphicon-duplicate"></span>
74 <div class=
"actor-counters">
75 <span i18n
>{videoChannel.followersCount, plural, =
1 {
1 subscriber} other {{{ videoChannel.followersCount }} subscribers}}
</span>
77 <span class=
"videos-count" *
ngIf=
"channelVideosCount !== undefined" i18n
>
78 {channelVideosCount, plural, =
1 {
1 videos} other {{{ channelVideosCount }} videos}}
83 <div class=
"channel-buttons right">
84 <ng-template *
ngTemplateOutlet=
"buttonsTemplate"></ng-template>
90 <div class=
"channel-description" [ngClass]=
"{ expanded: channelDescriptionExpanded }">
91 <div class=
"description-html" [innerHTML]=
"channelDescriptionHTML"></div>
94 <div *
ngIf=
"hasShowMoreDescription()" class=
"show-more" role=
"button"
95 (click)=
"channelDescriptionExpanded = !channelDescriptionExpanded"
96 title=
"Show the complete description" i18n-title i18n
101 <div class=
"channel-buttons bottom">
102 <ng-template *
ngTemplateOutlet=
"buttonsTemplate"></ng-template>
105 <div class=
"owner-card">
106 <ng-template *
ngTemplateOutlet=
"ownerTemplate"></ng-template>
110 <div class=
"bottom-owner">
111 <ng-template *
ngTemplateOutlet=
"ownerTemplate"></ng-template>
115 <ng-template #linkTemplate
let-item=
"item">
116 <a [routerLink]=
"item.routerLink" routerLinkActive=
"active" class=
"title-page">{{ item.label }}
</a>
119 <my-list-overflow [items]=
"links" [itemTemplate]=
"linkTemplate"></my-list-overflow>
122 <router-outlet></router-outlet>
125 <my-support-modal #supportModal [videoChannel]=
"videoChannel"></my-support-modal>