<my-user-moderation-dropdown
buttonSize="small" [account]="account" [user]="user" placement="bottom-right auto"
(userChanged)="onUserChanged()" (userDeleted)="onUserDeleted()"
- >
- </my-user-moderation-dropdown>
+ ></my-user-moderation-dropdown>
</div>
<div class="actor-followers" i18n-title [title]="subscribersDisplayFor(account.followersCount) + ' to the account actor'">
{{ subscribersDisplayFor(naiveAggregatedSubscribers) }}
</div>
</div>
- <my-subscribe-button *ngIf="videoChannels" [account]="account" [videoChannels]="videoChannels"></my-subscribe-button>
+ <div class="right-buttons">
+ <a *ngIf="isManageable" routerLink="/my-account" class="btn btn-outline-tertiary mr-2" i18n>Manage</a>
+ <my-subscribe-button *ngIf="videoChannels" [account]="account" [videoChannels]="videoChannels"></my-subscribe-button>
+ </div>
</div>
<div class="links">
}
}
-my-subscribe-button {
+.right-buttons {
+ display: flex;
height: max-content;
margin-left: auto;
margin-top: 20px;
+
+ a {
+ @include peertube-button-outline;
+ height: auto;
+ line-height: 32px;
+ }
+
+ my-subscribe-button {
+ height: min-content;
+ }
}
my-user-moderation-dropdown,
)
}
+ get isManageable () {
+ if (!this.authService.isLoggedIn()) return false
+ return this.user.id === this.authService.getUser().id
+ }
+
onUserChanged () {
this.getUserIfNeeded(this.account)
}
+<div>
+ <h4 i18n>Playlists <span class="badge badge-secondary">{{ pagination.totalItems }}</span></h4>
+</div>
+
<div class="video-playlists-header">
<input type="text" placeholder="Search your playlists" i18n-placeholder [(ngModel)]="videoPlaylistsSearch" (ngModelChange)="onVideoPlaylistSearchChanged()" />
+<div>
+ <h4 i18n>Videos <span class="badge badge-secondary">{{ pagination.totalItems }}</span></h4>
+</div>
+
<div class="videos-header">
<input type="text" placeholder="Search your videos" i18n-placeholder [(ngModel)]="videosSearch" (ngModelChange)="onVideosSearchChanged()" />
</div>
const newPagination = immutableAssign(this.pagination, { currentPage: page })
return this.videoService.getMyVideos(newPagination, sort, this.videosSearch)
+ .pipe(
+ tap(res => this.pagination.totalItems = res.total)
+ )
}
async deleteSelectedVideos () {
</button>
</div>
- <my-subscribe-button #subscribeButton [videoChannels]="[videoChannel]"></my-subscribe-button>
+ <div class="right-buttons">
+ <a *ngIf="isManageable" [routerLink]="[ '/my-account/video-channels/update', videoChannel.nameWithHost ]" class="btn btn-outline-tertiary mr-2" i18n>Manage</a>
+ <my-subscribe-button #subscribeButton [videoChannels]="[videoChannel]"></my-subscribe-button>
+ </div>
</div>
<div i18n class="actor-followers">{{ videoChannel.followersCount }} subscribers</div>
margin-top: -2px;
}
}
+}
+
+.right-buttons {
+ display: flex;
+ height: max-content;
+ margin-left: auto;
+ margin-top: 20px;
+
+ a {
+ @include peertube-button-outline;
+ line-height: 1.8;
+ }
+
+ my-subscribe-button {
+ height: min-content;
+ }
}
\ No newline at end of file
return this.authService.isLoggedIn()
}
+ get isManageable () {
+ if (!this.isUserLoggedIn()) return false
+ return this.videoChannel.ownerAccount.userId === this.authService.getUser().id
+ }
+
activateCopiedMessage () {
this.notifier.success(this.i18n('Username copied'))
}
--mainHoverColor: #{$orange-hover-color};
--mainBackgroundColor: #{$bg-color};
--mainForegroundColor: #{$fg-color};
+ --secondaryColor: #{$cyan-color};
--menuBackgroundColor: #{$menu-background};
--menuForegroundColor: #{$menu-color};
ngb-modal-backdrop {
z-index: 10000 !important;
}
+
+.btn-outline-tertiary {
+ color: var(--secondaryColor);
+ border-color: var(--secondaryColor);
+
+ &:hover {
+ color: var(--mainBackgroundColor);
+ background-color: var(--secondaryColor);
+ }
+}
@include peertube-button;
}
+@mixin peertube-button-outline {
+ display: inline-block;
+
+ @include disable-default-a-behaviour;
+ @include peertube-button;
+
+ border: 1px solid;
+}
+
@mixin button-with-icon($width: 20px, $margin-right: 3px, $top: -1px) {
my-global-icon {
position: relative;
}
@mixin sub-menu-with-actor {
- height: 160px;
+ height: max-content;
display: flex;
flex-direction: column;
align-items: flex-start;
$orange-color: #F1680D;
$orange-hover-color: #F97D46;
+$cyan-color: hsl(187, 77%, 34%);
+
$support-button: inherit;
$support-button-heart: #e83e8c;
--mainHoverColor: var(--mainHoverColor),
--mainBackgroundColor: var(--mainBackgroundColor),
--mainForegroundColor: var(--mainForegroundColor),
+ --secondaryColor: var(--secondaryColor),
--menuBackgroundColor: var(--menuBackgroundColor),
--menuForegroundColor: var(--menuForegroundColor),