diff options
Diffstat (limited to 'client/src/app/+videos')
25 files changed, 112 insertions, 105 deletions
diff --git a/client/src/app/+videos/+video-edit/shared/video-caption-add-modal.component.scss b/client/src/app/+videos/+video-edit/shared/video-caption-add-modal.component.scss index 0958b5f80..a85cf444c 100644 --- a/client/src/app/+videos/+video-edit/shared/video-caption-add-modal.component.scss +++ b/client/src/app/+videos/+video-edit/shared/video-caption-add-modal.component.scss | |||
@@ -16,6 +16,6 @@ label { | |||
16 | } | 16 | } |
17 | 17 | ||
18 | .warning-replace-caption { | 18 | .warning-replace-caption { |
19 | color: red; | 19 | color: #ff0000; |
20 | margin-top: 10px; | 20 | margin-top: 10px; |
21 | } \ No newline at end of file | 21 | } |
diff --git a/client/src/app/+videos/+video-edit/shared/video-edit.component.html b/client/src/app/+videos/+video-edit/shared/video-edit.component.html index 6fe52af67..094b4d3b3 100644 --- a/client/src/app/+videos/+video-edit/shared/video-edit.component.html +++ b/client/src/app/+videos/+video-edit/shared/video-edit.component.html | |||
@@ -132,7 +132,7 @@ | |||
132 | </ng-template> | 132 | </ng-template> |
133 | 133 | ||
134 | <ng-template ptTemplate="help"> | 134 | <ng-template ptTemplate="help"> |
135 | <ng-container i18n>Some instances do not list videos containing mature or explicit content by default.</ng-container> | 135 | <ng-container i18n>Some instances hide videos containing mature or explicit content by default.</ng-container> |
136 | </ng-template> | 136 | </ng-template> |
137 | </my-peertube-checkbox> | 137 | </my-peertube-checkbox> |
138 | 138 | ||
diff --git a/client/src/app/+videos/+video-edit/shared/video-edit.component.scss b/client/src/app/+videos/+video-edit/shared/video-edit.component.scss index 0b70b0270..bc32d7964 100644 --- a/client/src/app/+videos/+video-edit/shared/video-edit.component.scss +++ b/client/src/app/+videos/+video-edit/shared/video-edit.component.scss | |||
@@ -150,7 +150,7 @@ p-calendar { | |||
150 | @include media-breakpoint-up(md) { | 150 | @include media-breakpoint-up(md) { |
151 | @include make-col(7); | 151 | @include make-col(7); |
152 | 152 | ||
153 | & + .col-video-edit { | 153 | + .col-video-edit { |
154 | @include make-col(5); | 154 | @include make-col(5); |
155 | } | 155 | } |
156 | } | 156 | } |
@@ -158,7 +158,7 @@ p-calendar { | |||
158 | @include media-breakpoint-up(xl) { | 158 | @include media-breakpoint-up(xl) { |
159 | @include make-col(8); | 159 | @include make-col(8); |
160 | 160 | ||
161 | & + .col-video-edit { | 161 | + .col-video-edit { |
162 | @include make-col(4); | 162 | @include make-col(4); |
163 | } | 163 | } |
164 | } | 164 | } |
@@ -169,7 +169,7 @@ p-calendar { | |||
169 | @include media-breakpoint-up(md) { | 169 | @include media-breakpoint-up(md) { |
170 | @include make-col(8); | 170 | @include make-col(8); |
171 | 171 | ||
172 | & + .col-video-edit { | 172 | + .col-video-edit { |
173 | @include make-col(4); | 173 | @include make-col(4); |
174 | } | 174 | } |
175 | } | 175 | } |
diff --git a/client/src/app/+videos/+video-edit/video-add-components/video-send.scss b/client/src/app/+videos/+video-edit/video-add-components/video-send.scss index 17c5f63e9..dc9153b2b 100644 --- a/client/src/app/+videos/+video-edit/video-add-components/video-send.scss +++ b/client/src/app/+videos/+video-edit/video-add-components/video-send.scss | |||
@@ -6,7 +6,7 @@ $width-size: 190px; | |||
6 | .alert.alert-danger { | 6 | .alert.alert-danger { |
7 | text-align: center; | 7 | text-align: center; |
8 | 8 | ||
9 | & > div { | 9 | > div { |
10 | font-weight: $font-semibold; | 10 | font-weight: $font-semibold; |
11 | } | 11 | } |
12 | } | 12 | } |
@@ -17,10 +17,10 @@ $width-size: 190px; | |||
17 | align-items: center; | 17 | align-items: center; |
18 | 18 | ||
19 | .upload-icon { | 19 | .upload-icon { |
20 | @include apply-svg-color(#C6C6C6); | ||
21 | |||
20 | width: 90px; | 22 | width: 90px; |
21 | margin-bottom: 25px; | 23 | margin-bottom: 25px; |
22 | |||
23 | @include apply-svg-color(#C6C6C6); | ||
24 | } | 24 | } |
25 | 25 | ||
26 | .peertube-select-container { | 26 | .peertube-select-container { |
diff --git a/client/src/app/+videos/+video-edit/video-add.component.scss b/client/src/app/+videos/+video-edit/video-add.component.scss index 1ebee946b..35bca24d0 100644 --- a/client/src/app/+videos/+video-edit/video-add.component.scss +++ b/client/src/app/+videos/+video-edit/video-add.component.scss | |||
@@ -44,7 +44,7 @@ $nav-link-height: 40px; | |||
44 | 44 | ||
45 | ::ng-deep .video-add-nav { | 45 | ::ng-deep .video-add-nav { |
46 | border-bottom: $border-width $border-type $border-color; | 46 | border-bottom: $border-width $border-type $border-color; |
47 | margin: 20px 0 0 0 !important; | 47 | margin: 20px 0 0 !important; |
48 | 48 | ||
49 | &.hide-nav { | 49 | &.hide-nav { |
50 | display: none !important; | 50 | display: none !important; |
diff --git a/client/src/app/+videos/+video-watch/comment/video-comment-add.component.html b/client/src/app/+videos/+video-watch/comment/video-comment-add.component.html index 7bd9b7c90..42adfed8d 100644 --- a/client/src/app/+videos/+video-watch/comment/video-comment-add.component.html +++ b/client/src/app/+videos/+video-watch/comment/video-comment-add.component.html | |||
@@ -1,6 +1,6 @@ | |||
1 | <form novalidate [formGroup]="form" (ngSubmit)="formValidated()"> | 1 | <form novalidate [formGroup]="form" (ngSubmit)="formValidated()"> |
2 | <div class="avatar-and-textarea"> | 2 | <div class="avatar-and-textarea"> |
3 | <my-account-avatar [account]="user?.account" size="25"></my-account-avatar> | 3 | <my-actor-avatar [account]="user?.account" size="25"></my-actor-avatar> |
4 | 4 | ||
5 | <div class="form-group"> | 5 | <div class="form-group"> |
6 | <textarea i18n-placeholder placeholder="Add comment..." myAutoResize | 6 | <textarea i18n-placeholder placeholder="Add comment..." myAutoResize |
diff --git a/client/src/app/+videos/+video-watch/comment/video-comment-add.component.scss b/client/src/app/+videos/+video-watch/comment/video-comment-add.component.scss index 1aa9255c2..7743bd41d 100644 --- a/client/src/app/+videos/+video-watch/comment/video-comment-add.component.scss +++ b/client/src/app/+videos/+video-watch/comment/video-comment-add.component.scss | |||
@@ -13,8 +13,7 @@ form { | |||
13 | display: flex; | 13 | display: flex; |
14 | margin-bottom: 10px; | 14 | margin-bottom: 10px; |
15 | 15 | ||
16 | my-account-avatar { | 16 | my-actor-avatar { |
17 | vertical-align: top; | ||
18 | margin-right: 10px; | 17 | margin-right: 10px; |
19 | } | 18 | } |
20 | 19 | ||
@@ -32,7 +31,7 @@ form { | |||
32 | padding-right: $markdown-icon-width + 15px !important; | 31 | padding-right: $markdown-icon-width + 15px !important; |
33 | 32 | ||
34 | @media screen and (max-width: 600px) { | 33 | @media screen and (max-width: 600px) { |
35 | padding-right: $markdown-icon-width + 19px !important; | 34 | padding-right: $markdown-icon-width + 19px !important; |
36 | } | 35 | } |
37 | 36 | ||
38 | &:focus::placeholder { | 37 | &:focus::placeholder { |
@@ -58,7 +57,9 @@ form { | |||
58 | } | 57 | } |
59 | } | 58 | } |
60 | 59 | ||
61 | &:focus, &:active, &:hover { | 60 | &:focus, |
61 | &:active, | ||
62 | &:hover { | ||
62 | my-global-icon svg { | 63 | my-global-icon svg { |
63 | background-color: #C6C6C6; | 64 | background-color: #C6C6C6; |
64 | color: pvar(--mainBackgroundColor); | 65 | color: pvar(--mainBackgroundColor); |
diff --git a/client/src/app/+videos/+video-watch/comment/video-comment.component.html b/client/src/app/+videos/+video-watch/comment/video-comment.component.html index 2b0739261..d7ba40ef6 100644 --- a/client/src/app/+videos/+video-watch/comment/video-comment.component.html +++ b/client/src/app/+videos/+video-watch/comment/video-comment.component.html | |||
@@ -1,12 +1,10 @@ | |||
1 | <div *ngIf="isCommentDisplayed()" class="root-comment"> | 1 | <div *ngIf="isCommentDisplayed()" class="root-comment" [ngClass]="{ 'is-child': isChild() }"> |
2 | <div class="left"> | 2 | <div class="left"> |
3 | <my-account-avatar *ngIf="!comment.isDeleted" [href]="comment.account.url" [account]="comment.account"></my-account-avatar> | 3 | <my-actor-avatar *ngIf="!comment.isDeleted" [href]="comment.account.url" [account]="comment.account"></my-actor-avatar> |
4 | <div class="vertical-border"></div> | 4 | <div class="vertical-border"></div> |
5 | </div> | 5 | </div> |
6 | 6 | ||
7 | <div class="right" [ngClass]="{ 'mb-3': firstInThread }"> | 7 | <div class="right" [ngClass]="{ 'mb-3': firstInThread }"> |
8 | <span *ngIf="comment.isDeleted" class="comment-avatar"></span> | ||
9 | |||
10 | <div class="comment"> | 8 | <div class="comment"> |
11 | <ng-container *ngIf="!comment.isDeleted"> | 9 | <ng-container *ngIf="!comment.isDeleted"> |
12 | <div *ngIf="highlightedComment === true" class="highlighted-comment" i18n>Highlighted comment</div> | 10 | <div *ngIf="highlightedComment === true" class="highlighted-comment" i18n>Highlighted comment</div> |
@@ -68,7 +66,7 @@ | |||
68 | [textValue]="redraftValue" | 66 | [textValue]="redraftValue" |
69 | ></my-video-comment-add> | 67 | ></my-video-comment-add> |
70 | 68 | ||
71 | <div *ngIf="commentTree" class="children"> | 69 | <div *ngIf="commentTree"> |
72 | <div *ngFor="let commentChild of commentTree.children"> | 70 | <div *ngFor="let commentChild of commentTree.children"> |
73 | <my-video-comment | 71 | <my-video-comment |
74 | [comment]="commentChild.comment" | 72 | [comment]="commentChild.comment" |
diff --git a/client/src/app/+videos/+video-watch/comment/video-comment.component.scss b/client/src/app/+videos/+video-watch/comment/video-comment.component.scss index cf33a5b0e..a4d2e237c 100644 --- a/client/src/app/+videos/+video-watch/comment/video-comment.component.scss +++ b/client/src/app/+videos/+video-watch/comment/video-comment.component.scss | |||
@@ -24,6 +24,10 @@ | |||
24 | } | 24 | } |
25 | } | 25 | } |
26 | 26 | ||
27 | my-actor-avatar { | ||
28 | @include actor-avatar-size(36px); | ||
29 | } | ||
30 | |||
27 | .comment { | 31 | .comment { |
28 | flex-grow: 1; | 32 | flex-grow: 1; |
29 | // Fix word-wrap with flex | 33 | // Fix word-wrap with flex |
@@ -58,7 +62,7 @@ | |||
58 | display: inline-flex; | 62 | display: inline-flex; |
59 | padding-right: 6px; | 63 | padding-right: 6px; |
60 | padding-left: 6px; | 64 | padding-left: 6px; |
61 | color: white !important; | 65 | color: #fff !important; |
62 | } | 66 | } |
63 | 67 | ||
64 | .comment-account { | 68 | .comment-account { |
@@ -129,7 +133,10 @@ | |||
129 | cursor: pointer; | 133 | cursor: pointer; |
130 | margin-right: 10px; | 134 | margin-right: 10px; |
131 | 135 | ||
132 | &:hover, &:active, &:focus, &:focus-visible { | 136 | &:hover, |
137 | &:active, | ||
138 | &:focus, | ||
139 | &:focus-visible { | ||
133 | color: pvar(--mainForegroundColor); | 140 | color: pvar(--mainForegroundColor); |
134 | } | 141 | } |
135 | } | 142 | } |
@@ -148,10 +155,10 @@ my-video-comment-add { | |||
148 | } | 155 | } |
149 | } | 156 | } |
150 | 157 | ||
151 | .children { | 158 | .is-child { |
152 | // Reduce avatars size for replies | 159 | // Reduce avatars size for replies |
153 | .comment-avatar { | 160 | my-actor-avatar { |
154 | @include avatar(25px); | 161 | @include actor-avatar-size(25px); |
155 | } | 162 | } |
156 | 163 | ||
157 | .left { | 164 | .left { |
diff --git a/client/src/app/+videos/+video-watch/comment/video-comment.component.ts b/client/src/app/+videos/+video-watch/comment/video-comment.component.ts index dd3db0c65..fd379e80e 100644 --- a/client/src/app/+videos/+video-watch/comment/video-comment.component.ts +++ b/client/src/app/+videos/+video-watch/comment/video-comment.component.ts | |||
@@ -138,6 +138,10 @@ export class VideoCommentComponent implements OnInit, OnChanges { | |||
138 | (this.commentTree?.hasDisplayedChildren) // Or this is a reply that have other replies | 138 | (this.commentTree?.hasDisplayedChildren) // Or this is a reply that have other replies |
139 | } | 139 | } |
140 | 140 | ||
141 | isChild () { | ||
142 | return this.parentComments.length !== 0 | ||
143 | } | ||
144 | |||
141 | private getUserIfNeeded (account: Account) { | 145 | private getUserIfNeeded (account: Account) { |
142 | if (!account.userId) return | 146 | if (!account.userId) return |
143 | if (!this.authService.isLoggedIn()) return | 147 | if (!this.authService.isLoggedIn()) return |
diff --git a/client/src/app/+videos/+video-watch/comment/video-comments.component.scss b/client/src/app/+videos/+video-watch/comment/video-comments.component.scss index e6778e1a9..a7e858069 100644 --- a/client/src/app/+videos/+video-watch/comment/video-comments.component.scss +++ b/client/src/app/+videos/+video-watch/comment/video-comments.component.scss | |||
@@ -11,7 +11,8 @@ | |||
11 | cursor: pointer; | 11 | cursor: pointer; |
12 | } | 12 | } |
13 | 13 | ||
14 | .glyphicon, .comment-thread-loading { | 14 | .glyphicon, |
15 | .comment-thread-loading { | ||
15 | margin-right: 5px; | 16 | margin-right: 5px; |
16 | display: inline-block; | 17 | display: inline-block; |
17 | font-size: 13px; | 18 | font-size: 13px; |
@@ -40,7 +41,7 @@ | |||
40 | #dropdown-sort-comments { | 41 | #dropdown-sort-comments { |
41 | font-weight: 600; | 42 | font-weight: 600; |
42 | text-transform: uppercase; | 43 | text-transform: uppercase; |
43 | border: none; | 44 | border: 0; |
44 | transform: translateY(-7%); | 45 | transform: translateY(-7%); |
45 | } | 46 | } |
46 | 47 | ||
diff --git a/client/src/app/+videos/+video-watch/recommendations/recommended-videos.component.html b/client/src/app/+videos/+video-watch/recommendations/recommended-videos.component.html index e0e9f92e7..e1040fead 100644 --- a/client/src/app/+videos/+video-watch/recommendations/recommended-videos.component.html +++ b/client/src/app/+videos/+video-watch/recommendations/recommended-videos.component.html | |||
@@ -15,7 +15,9 @@ | |||
15 | <ng-container *ngFor="let video of (videos$ | async); let i = index; let length = count"> | 15 | <ng-container *ngFor="let video of (videos$ | async); let i = index; let length = count"> |
16 | <my-video-miniature | 16 | <my-video-miniature |
17 | [displayOptions]="displayOptions" [video]="video" [user]="userMiniature" [displayAsRow]="displayAsRow" | 17 | [displayOptions]="displayOptions" [video]="video" [user]="userMiniature" [displayAsRow]="displayAsRow" |
18 | (videoBlocked)="onVideoRemoved()" (videoRemoved)="onVideoRemoved()" (videoAccountMuted)="onVideoRemoved()"> | 18 | (videoBlocked)="onVideoRemoved()" (videoRemoved)="onVideoRemoved()" (videoAccountMuted)="onVideoRemoved()" |
19 | actorImageSize="32" | ||
20 | > | ||
19 | </my-video-miniature> | 21 | </my-video-miniature> |
20 | 22 | ||
21 | <hr *ngIf="!playlist && i == 0 && length > 1" /> | 23 | <hr *ngIf="!playlist && i == 0 && length > 1" /> |
diff --git a/client/src/app/+videos/+video-watch/recommendations/recommended-videos.component.scss b/client/src/app/+videos/+video-watch/recommendations/recommended-videos.component.scss index c9fae6f27..5e0373afc 100644 --- a/client/src/app/+videos/+video-watch/recommendations/recommended-videos.component.scss +++ b/client/src/app/+videos/+video-watch/recommendations/recommended-videos.component.scss | |||
@@ -8,7 +8,8 @@ | |||
8 | margin-bottom: 25px; | 8 | margin-bottom: 25px; |
9 | flex-wrap: wrap-reverse; | 9 | flex-wrap: wrap-reverse; |
10 | 10 | ||
11 | .title-page.active, .title-page.title-page-single { | 11 | .title-page.active, |
12 | .title-page.title-page-single { | ||
12 | margin-bottom: unset; | 13 | margin-bottom: unset; |
13 | margin-right: .5rem !important; | 14 | margin-right: .5rem !important; |
14 | } | 15 | } |
diff --git a/client/src/app/+videos/+video-watch/video-avatar-channel.component.html b/client/src/app/+videos/+video-watch/video-avatar-channel.component.html index a02373f2d..5f149cbd1 100644 --- a/client/src/app/+videos/+video-watch/video-avatar-channel.component.html +++ b/client/src/app/+videos/+video-watch/video-avatar-channel.component.html | |||
@@ -1,21 +1,11 @@ | |||
1 | <div class="wrapper" [ngClass]="'avatar-' + size"> | 1 | <div class="wrapper" [ngClass]="{ 'generic-channel': genericChannel }"> |
2 | <ng-container *ngIf="!isChannelAvatarNull() && !genericChannel"> | 2 | <my-actor-avatar |
3 | <a [routerLink]="[ '/video-channels', video.byVideoChannel ]" [title]="channelLinkTitle"> | 3 | class="channel" [channel]="video.channel" |
4 | <img [src]="video.videoChannelAvatarUrl" i18n-alt alt="Channel avatar" class="channel-avatar" /> | 4 | [internalHref]="[ '/video-channels', video.byVideoChannel ]" [title]="channelLinkTitle" |
5 | </a> | 5 | ></my-actor-avatar> |
6 | 6 | ||
7 | <my-account-avatar [account]="video.account" [title]="accountLinkTitle" [internalHref]="[ '/accounts', video.byAccount ]"></my-account-avatar> | 7 | <my-actor-avatar |
8 | </ng-container> | 8 | class="account" [account]="video.account" |
9 | 9 | [internalHref]="[ '/accounts', video.byAccount ]" [title]="accountLinkTitle"> | |
10 | <ng-container *ngIf="!isChannelAvatarNull() && genericChannel"> | 10 | </my-actor-avatar> |
11 | <my-account-avatar [account]="video.account" [title]="accountLinkTitle" [internalHref]="[ '/accounts', video.byAccount ]"></my-account-avatar> | ||
12 | |||
13 | <a [routerLink]="[ '/video-channels', video.byVideoChannel ]" [title]="channelLinkTitle"> | ||
14 | <img [src]="video.videoChannelAvatarUrl" i18n-alt alt="Channel avatar" class="channel-avatar" /> | ||
15 | </a> | ||
16 | </ng-container> | ||
17 | |||
18 | <ng-container *ngIf="isChannelAvatarNull()"> | ||
19 | <my-account-avatar [account]="video.account" [title]="accountLinkTitle" [internalHref]="[ '/accounts', video.byAccount ]"></my-account-avatar> | ||
20 | </ng-container> | ||
21 | </div> | 11 | </div> |
diff --git a/client/src/app/+videos/+video-watch/video-avatar-channel.component.scss b/client/src/app/+videos/+video-watch/video-avatar-channel.component.scss index 4998e85fa..20e32240c 100644 --- a/client/src/app/+videos/+video-watch/video-avatar-channel.component.scss +++ b/client/src/app/+videos/+video-watch/video-avatar-channel.component.scss | |||
@@ -1,44 +1,42 @@ | |||
1 | @import '_mixins'; | 1 | @import '_mixins'; |
2 | 2 | ||
3 | @mixin main { | ||
4 | @include actor-avatar-size(35px); | ||
5 | } | ||
6 | |||
7 | @mixin secondary { | ||
8 | height: 60%; | ||
9 | width: 60%; | ||
10 | position: absolute; | ||
11 | bottom: -5px; | ||
12 | right: -5px; | ||
13 | background-color: rgba(0, 0, 0, 0); | ||
14 | } | ||
15 | |||
3 | .wrapper { | 16 | .wrapper { |
4 | $avatar-size: 35px; | 17 | @include actor-avatar-size(35px); |
5 | 18 | ||
6 | width: $avatar-size; | ||
7 | height: $avatar-size; | ||
8 | position: relative; | 19 | position: relative; |
9 | margin-right: 5px; | 20 | margin-right: 5px; |
10 | margin-bottom: 5px; | 21 | margin-bottom: 5px; |
11 | 22 | ||
12 | &.avatar-sm { | 23 | &.generic-channel { |
13 | width: 28px; | 24 | .account { |
14 | height: 28px; | 25 | @include main(); |
15 | margin-bottom: 3px; | 26 | } |
16 | } | ||
17 | 27 | ||
18 | a { | 28 | .channel { |
19 | @include disable-outline; | 29 | display: none !important; |
30 | } | ||
20 | } | 31 | } |
21 | 32 | ||
22 | a img { | 33 | &:not(.generic-channel) { |
23 | height: 100%; | 34 | .account { |
24 | object-fit: cover; | 35 | @include secondary(); |
25 | position: absolute; | ||
26 | top:50%; | ||
27 | left:50%; | ||
28 | transform: translate(-50%,-50%); | ||
29 | border-radius: 5px; | ||
30 | |||
31 | &:not(.channel-avatar) { | ||
32 | border-radius: 50%; | ||
33 | } | 36 | } |
34 | } | ||
35 | 37 | ||
36 | a:nth-of-type(2) img { | 38 | .channel { |
37 | height: 60%; | 39 | @include main(); |
38 | width: 60%; | 40 | } |
39 | border: 2px solid pvar(--mainBackgroundColor); | ||
40 | transform: translateX(15%); | ||
41 | position: relative; | ||
42 | background-color: pvar(--mainBackgroundColor); | ||
43 | } | 41 | } |
44 | } | 42 | } |
diff --git a/client/src/app/+videos/+video-watch/video-avatar-channel.component.ts b/client/src/app/+videos/+video-watch/video-avatar-channel.component.ts index 0b6e796df..63edd7bad 100644 --- a/client/src/app/+videos/+video-watch/video-avatar-channel.component.ts +++ b/client/src/app/+videos/+video-watch/video-avatar-channel.component.ts | |||
@@ -10,7 +10,6 @@ export class VideoAvatarChannelComponent implements OnInit { | |||
10 | @Input() video: Video | 10 | @Input() video: Video |
11 | @Input() byAccount: string | 11 | @Input() byAccount: string |
12 | 12 | ||
13 | @Input() size: 'md' | 'sm' = 'md' | ||
14 | @Input() genericChannel: boolean | 13 | @Input() genericChannel: boolean |
15 | 14 | ||
16 | channelLinkTitle = '' | 15 | channelLinkTitle = '' |
diff --git a/client/src/app/+videos/+video-watch/video-watch-playlist.component.scss b/client/src/app/+videos/+video-watch/video-watch-playlist.component.scss index 0b0a2a899..b3f93b83c 100644 --- a/client/src/app/+videos/+video-watch/video-watch-playlist.component.scss +++ b/client/src/app/+videos/+video-watch/video-watch-playlist.component.scss | |||
@@ -45,7 +45,7 @@ | |||
45 | 45 | ||
46 | my-global-icon { | 46 | my-global-icon { |
47 | &:not(.active) { | 47 | &:not(.active) { |
48 | opacity: .5 | 48 | opacity: .5; |
49 | } | 49 | } |
50 | 50 | ||
51 | ::ng-deep { | 51 | ::ng-deep { |
diff --git a/client/src/app/+videos/+video-watch/video-watch.component.html b/client/src/app/+videos/+video-watch/video-watch.component.html index eadb2148a..4779602d2 100644 --- a/client/src/app/+videos/+video-watch/video-watch.component.html +++ b/client/src/app/+videos/+video-watch/video-watch.component.html | |||
@@ -79,7 +79,7 @@ | |||
79 | <span [innerHTML]="getRatePopoverText()"></span> | 79 | <span [innerHTML]="getRatePopoverText()"></span> |
80 | </ng-template> | 80 | </ng-template> |
81 | 81 | ||
82 | <div class="video-actions fullWidth justify-content-end"> | 82 | <div class="video-actions full-width justify-content-end"> |
83 | <button | 83 | <button |
84 | [ngbPopover]="getRatePopoverText() && ratePopoverText" [ngClass]="{ 'activated': userRating === 'like' }" (click)="setLike()" (keyup.enter)="setLike()" | 84 | [ngbPopover]="getRatePopoverText() && ratePopoverText" [ngClass]="{ 'activated': userRating === 'like' }" (click)="setLike()" (keyup.enter)="setLike()" |
85 | class="action-button action-button-like" [attr.aria-pressed]="userRating === 'like'" [attr.aria-label]="tooltipLike" | 85 | class="action-button action-button-like" [attr.aria-pressed]="userRating === 'like'" [attr.aria-label]="tooltipLike" |
diff --git a/client/src/app/+videos/+video-watch/video-watch.component.scss b/client/src/app/+videos/+video-watch/video-watch.component.scss index e8ad10a11..301762695 100644 --- a/client/src/app/+videos/+video-watch/video-watch.component.scss +++ b/client/src/app/+videos/+video-watch/video-watch.component.scss | |||
@@ -6,12 +6,12 @@ | |||
6 | $player-factor: 16/9; | 6 | $player-factor: 16/9; |
7 | $video-info-margin-left: 44px; | 7 | $video-info-margin-left: 44px; |
8 | 8 | ||
9 | @function getPlayerHeight($width){ | 9 | @function getPlayerHeight ($width) { |
10 | @return calc(#{$width} / #{$player-factor}) | 10 | @return calc(#{$width} / #{$player-factor}); |
11 | } | 11 | } |
12 | 12 | ||
13 | @function getPlayerWidth($height){ | 13 | @function getPlayerWidth ($height) { |
14 | @return calc(#{$height} * #{$player-factor}) | 14 | @return calc(#{$height} * #{$player-factor}); |
15 | } | 15 | } |
16 | 16 | ||
17 | @mixin playlist-below-player { | 17 | @mixin playlist-below-player { |
@@ -24,11 +24,11 @@ $video-info-margin-left: 44px; | |||
24 | 24 | ||
25 | .root { | 25 | .root { |
26 | &.theater-enabled #video-wrapper { | 26 | &.theater-enabled #video-wrapper { |
27 | $height: calc(100vh - #{$header-height} - #{$theater-bottom-space}); | ||
28 | |||
27 | flex-direction: column; | 29 | flex-direction: column; |
28 | justify-content: center; | 30 | justify-content: center; |
29 | 31 | ||
30 | $height: calc(100vh - #{$header-height} - #{$theater-bottom-space}); | ||
31 | |||
32 | #videojs-wrapper { | 32 | #videojs-wrapper { |
33 | width: 100%; | 33 | width: 100%; |
34 | height: $height; | 34 | height: $height; |
@@ -141,7 +141,7 @@ $video-info-margin-left: 44px; | |||
141 | .video-info-first-row { | 141 | .video-info-first-row { |
142 | display: flex; | 142 | display: flex; |
143 | 143 | ||
144 | & > div:first-child { | 144 | > div:first-child { |
145 | flex-grow: 1; | 145 | flex-grow: 1; |
146 | } | 146 | } |
147 | 147 | ||
@@ -207,7 +207,7 @@ $video-info-margin-left: 44px; | |||
207 | } | 207 | } |
208 | 208 | ||
209 | .video-actions-rates { | 209 | .video-actions-rates { |
210 | margin: 0 0 10px 0; | 210 | margin: 0 0 10px; |
211 | align-items: start; | 211 | align-items: start; |
212 | width: max-content; | 212 | width: max-content; |
213 | margin-left: auto; | 213 | margin-left: auto; |
@@ -231,7 +231,7 @@ $video-info-margin-left: 44px; | |||
231 | font-size: 100%; | 231 | font-size: 100%; |
232 | font-weight: $font-semibold; | 232 | font-weight: $font-semibold; |
233 | display: inline-block; | 233 | display: inline-block; |
234 | padding: 0 10px 0 10px; | 234 | padding: 0 10px; |
235 | white-space: nowrap; | 235 | white-space: nowrap; |
236 | background-color: transparent !important; | 236 | background-color: transparent !important; |
237 | color: pvar(--actionButtonColor); | 237 | color: pvar(--actionButtonColor); |
@@ -346,7 +346,8 @@ $video-info-margin-left: 44px; | |||
346 | } | 346 | } |
347 | } | 347 | } |
348 | 348 | ||
349 | .glyphicon, .description-loading { | 349 | .glyphicon, |
350 | .description-loading { | ||
350 | margin-left: 3px; | 351 | margin-left: 3px; |
351 | } | 352 | } |
352 | 353 | ||
@@ -396,7 +397,7 @@ $video-info-margin-left: 44px; | |||
396 | &.video-attribute-tags { | 397 | &.video-attribute-tags { |
397 | .video-attribute-value:not(:nth-child(2)) { | 398 | .video-attribute-value:not(:nth-child(2)) { |
398 | &::before { | 399 | &::before { |
399 | content: ', ' | 400 | content: ', '; |
400 | } | 401 | } |
401 | } | 402 | } |
402 | } | 403 | } |
diff --git a/client/src/app/+videos/+video-watch/video-watch.module.ts b/client/src/app/+videos/+video-watch/video-watch.module.ts index cf6afd852..62ce7be2d 100644 --- a/client/src/app/+videos/+video-watch/video-watch.module.ts +++ b/client/src/app/+videos/+video-watch/video-watch.module.ts | |||
@@ -20,7 +20,7 @@ import { TimestampRouteTransformerDirective } from './timestamp-route-transforme | |||
20 | import { VideoWatchPlaylistComponent } from './video-watch-playlist.component' | 20 | import { VideoWatchPlaylistComponent } from './video-watch-playlist.component' |
21 | import { VideoWatchRoutingModule } from './video-watch-routing.module' | 21 | import { VideoWatchRoutingModule } from './video-watch-routing.module' |
22 | import { VideoWatchComponent } from './video-watch.component' | 22 | import { VideoWatchComponent } from './video-watch.component' |
23 | import { SharedAccountAvatarModule } from '../../shared/shared-account-avatar/shared-account-avatar.module' | 23 | import { SharedActorImageModule } from '../../shared/shared-actor-image/shared-actor-image.module' |
24 | import { VideoAvatarChannelComponent } from './video-avatar-channel.component' | 24 | import { VideoAvatarChannelComponent } from './video-avatar-channel.component' |
25 | 25 | ||
26 | @NgModule({ | 26 | @NgModule({ |
@@ -39,7 +39,7 @@ import { VideoAvatarChannelComponent } from './video-avatar-channel.component' | |||
39 | SharedShareModal, | 39 | SharedShareModal, |
40 | SharedVideoModule, | 40 | SharedVideoModule, |
41 | SharedSupportModal, | 41 | SharedSupportModal, |
42 | SharedAccountAvatarModule | 42 | SharedActorImageModule |
43 | ], | 43 | ], |
44 | 44 | ||
45 | declarations: [ | 45 | declarations: [ |
diff --git a/client/src/app/+videos/video-list/overview/video-overview.component.html b/client/src/app/+videos/video-list/overview/video-overview.component.html index 639a96c43..e21bffb6c 100644 --- a/client/src/app/+videos/video-list/overview/video-overview.component.html +++ b/client/src/app/+videos/video-list/overview/video-overview.component.html | |||
@@ -33,7 +33,7 @@ | |||
33 | <div class="section channel videos" *ngFor="let object of overview.channels"> | 33 | <div class="section channel videos" *ngFor="let object of overview.channels"> |
34 | <div class="section-title"> | 34 | <div class="section-title"> |
35 | <a [routerLink]="[ '/video-channels', buildVideoChannelBy(object) ]"> | 35 | <a [routerLink]="[ '/video-channels', buildVideoChannelBy(object) ]"> |
36 | <img [src]="buildVideoChannelAvatarUrl(object)" alt="Avatar" /> | 36 | <my-actor-avatar [channel]="buildVideoChannel(object)"></my-actor-avatar> |
37 | 37 | ||
38 | <h2 class="section-title">{{ object.channel.displayName }}</h2> | 38 | <h2 class="section-title">{{ object.channel.displayName }}</h2> |
39 | </a> | 39 | </a> |
diff --git a/client/src/app/+videos/video-list/overview/video-overview.component.scss b/client/src/app/+videos/video-list/overview/video-overview.component.scss index ec73c628c..8fbac1b46 100644 --- a/client/src/app/+videos/video-list/overview/video-overview.component.scss +++ b/client/src/app/+videos/video-list/overview/video-overview.component.scss | |||
@@ -16,7 +16,7 @@ | |||
16 | padding-top: 30px; | 16 | padding-top: 30px; |
17 | 17 | ||
18 | .section-title { | 18 | .section-title { |
19 | border-top: none !important; | 19 | border-top: 0 !important; |
20 | } | 20 | } |
21 | } | 21 | } |
22 | 22 | ||
@@ -33,12 +33,14 @@ | |||
33 | } | 33 | } |
34 | 34 | ||
35 | a { | 35 | a { |
36 | &:hover, &:focus:not(.focus-visible), &:active { | 36 | color: pvar(--mainForegroundColor); |
37 | |||
38 | &:hover, | ||
39 | &:focus:not(.focus-visible), | ||
40 | &:active { | ||
37 | text-decoration: none; | 41 | text-decoration: none; |
38 | outline: none; | 42 | outline: none; |
39 | } | 43 | } |
40 | |||
41 | color: pvar(--mainForegroundColor); | ||
42 | } | 44 | } |
43 | } | 45 | } |
44 | 46 | ||
@@ -49,9 +51,10 @@ | |||
49 | width: fit-content; | 51 | width: fit-content; |
50 | align-items: center; | 52 | align-items: center; |
51 | 53 | ||
52 | img { | 54 | my-actor-avatar { |
53 | @include channel-avatar(28px); | 55 | @include actor-avatar-size(28px); |
54 | 56 | ||
57 | font-size: initial; | ||
55 | margin-right: 8px; | 58 | margin-right: 8px; |
56 | } | 59 | } |
57 | } | 60 | } |
diff --git a/client/src/app/+videos/video-list/overview/video-overview.component.ts b/client/src/app/+videos/video-list/overview/video-overview.component.ts index b3be1d7b5..14532ca1e 100644 --- a/client/src/app/+videos/video-list/overview/video-overview.component.ts +++ b/client/src/app/+videos/video-list/overview/video-overview.component.ts | |||
@@ -45,8 +45,8 @@ export class VideoOverviewComponent implements OnInit { | |||
45 | return object.videos[0].byVideoChannel | 45 | return object.videos[0].byVideoChannel |
46 | } | 46 | } |
47 | 47 | ||
48 | buildVideoChannelAvatarUrl (object: { videos: Video[] }) { | 48 | buildVideoChannel (object: { videos: Video[] }) { |
49 | return object.videos[0].videoChannelAvatarUrl | 49 | return object.videos[0].channel |
50 | } | 50 | } |
51 | 51 | ||
52 | buildVideos (videos: Video[]) { | 52 | buildVideos (videos: Video[]) { |
diff --git a/client/src/app/+videos/video-list/trending/video-trending-header.component.scss b/client/src/app/+videos/video-list/trending/video-trending-header.component.scss index 923a1d67a..6daacc78e 100644 --- a/client/src/app/+videos/video-list/trending/video-trending-header.component.scss +++ b/client/src/app/+videos/video-list/trending/video-trending-header.component.scss | |||
@@ -14,4 +14,4 @@ | |||
14 | height: 1rem; | 14 | height: 1rem; |
15 | margin-right: .1rem; | 15 | margin-right: .1rem; |
16 | } | 16 | } |
17 | } \ No newline at end of file | 17 | } |
diff --git a/client/src/app/+videos/videos.module.ts b/client/src/app/+videos/videos.module.ts index 61d012d63..8a35015d6 100644 --- a/client/src/app/+videos/videos.module.ts +++ b/client/src/app/+videos/videos.module.ts | |||
@@ -1,4 +1,5 @@ | |||
1 | import { NgModule } from '@angular/core' | 1 | import { NgModule } from '@angular/core' |
2 | import { SharedActorImageModule } from '@app/shared/shared-actor-image/shared-actor-image.module' | ||
2 | import { SharedFormModule } from '@app/shared/shared-forms' | 3 | import { SharedFormModule } from '@app/shared/shared-forms' |
3 | import { SharedGlobalIconModule } from '@app/shared/shared-icons' | 4 | import { SharedGlobalIconModule } from '@app/shared/shared-icons' |
4 | import { SharedMainModule } from '@app/shared/shared-main' | 5 | import { SharedMainModule } from '@app/shared/shared-main' |
@@ -21,7 +22,8 @@ import { VideosComponent } from './videos.component' | |||
21 | SharedFormModule, | 22 | SharedFormModule, |
22 | SharedVideoMiniatureModule, | 23 | SharedVideoMiniatureModule, |
23 | SharedUserSubscriptionModule, | 24 | SharedUserSubscriptionModule, |
24 | SharedGlobalIconModule | 25 | SharedGlobalIconModule, |
26 | SharedActorImageModule | ||
25 | ], | 27 | ], |
26 | 28 | ||
27 | declarations: [ | 29 | declarations: [ |