aboutsummaryrefslogtreecommitdiffhomepage
path: root/client
diff options
context:
space:
mode:
Diffstat (limited to 'client')
-rw-r--r--client/src/app/menu/menu.component.html2
-rw-r--r--client/src/app/videos/+video-watch/video-watch.component.html26
-rw-r--r--client/src/app/videos/+video-watch/video-watch.component.scss11
-rw-r--r--client/src/app/videos/+video-watch/video-watch.component.ts12
4 files changed, 35 insertions, 16 deletions
diff --git a/client/src/app/menu/menu.component.html b/client/src/app/menu/menu.component.html
index b62329052..3f406586e 100644
--- a/client/src/app/menu/menu.component.html
+++ b/client/src/app/menu/menu.component.html
@@ -9,7 +9,7 @@
9 <div class="logged-in-username">{{ user.username }}</div> 9 <div class="logged-in-username">{{ user.username }}</div>
10 </div> 10 </div>
11 11
12 <div class="logged-in-more" ngbDropdown placement="bottom-right"> 12 <div class="logged-in-more" ngbDropdown placement="bottom-right auto">
13 <my-global-icon iconName="more-vertical" ngbDropdownToggle role="button"></my-global-icon> 13 <my-global-icon iconName="more-vertical" ngbDropdownToggle role="button"></my-global-icon>
14 14
15 <div ngbDropdownMenu> 15 <div ngbDropdownMenu>
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 97f3a336e..a700907ea 100644
--- a/client/src/app/videos/+video-watch/video-watch.component.html
+++ b/client/src/app/videos/+video-watch/video-watch.component.html
@@ -62,7 +62,8 @@
62 <div 62 <div
63 [ngbPopover]="getRatePopoverText()" [ngClass]="{ 'activated': userRating === 'like' }" (click)="setLike()" 63 [ngbPopover]="getRatePopoverText()" [ngClass]="{ 'activated': userRating === 'like' }" (click)="setLike()"
64 class="action-button action-button-like" role="button" [attr.aria-pressed]="userRating === 'like'" 64 class="action-button action-button-like" role="button" [attr.aria-pressed]="userRating === 'like'"
65 i18n-title title="Like this video" 65 [ngbTooltip]="tooltipLike"
66 placement="bottom auto"
66 > 67 >
67 <my-global-icon iconName="like"></my-global-icon> 68 <my-global-icon iconName="like"></my-global-icon>
68 <span *ngIf="video.likes" class="count">{{ video.likes }}</span> 69 <span *ngIf="video.likes" class="count">{{ video.likes }}</span>
@@ -71,13 +72,17 @@
71 <div 72 <div
72 [ngbPopover]="getRatePopoverText()" [ngClass]="{ 'activated': userRating === 'dislike' }" (click)="setDislike()" 73 [ngbPopover]="getRatePopoverText()" [ngClass]="{ 'activated': userRating === 'dislike' }" (click)="setDislike()"
73 class="action-button action-button-dislike" role="button" [attr.aria-pressed]="userRating === 'dislike'" 74 class="action-button action-button-dislike" role="button" [attr.aria-pressed]="userRating === 'dislike'"
74 i18n-title title="Dislike this video" 75 [ngbTooltip]="tooltipDislike"
76 placement="bottom auto"
75 > 77 >
76 <my-global-icon iconName="dislike"></my-global-icon> 78 <my-global-icon iconName="dislike"></my-global-icon>
77 <span *ngIf="video.dislikes" class="count">{{ video.dislikes }}</span> 79 <span *ngIf="video.dislikes" class="count">{{ video.dislikes }}</span>
78 </div> 80 </div>
79 81
80 <div *ngIf="video.support" (click)="showSupportModal()" class="action-button"> 82 <div *ngIf="video.support" (click)="showSupportModal()" class="action-button"
83 [ngbTooltip]="tooltipSupport"
84 placement="bottom auto"
85 >
81 <my-global-icon iconName="heart"></my-global-icon> 86 <my-global-icon iconName="heart"></my-global-icon>
82 <span class="icon-text" i18n>Support</span> 87 <span class="icon-text" i18n>Support</span>
83 </div> 88 </div>
@@ -90,6 +95,8 @@
90 <div 95 <div
91 class="action-dropdown" ngbDropdown placement="top" role="button" autoClose="outside" 96 class="action-dropdown" ngbDropdown placement="top" role="button" autoClose="outside"
92 *ngIf="isUserLoggedIn()" (openChange)="addContent.openChange($event)" 97 *ngIf="isUserLoggedIn()" (openChange)="addContent.openChange($event)"
98 [ngbTooltip]="tooltipSaveToPlaylist"
99 placement="bottom auto"
93 > 100 >
94 <div class="action-button action-button-save" ngbDropdownToggle role="button"> 101 <div class="action-button action-button-save" ngbDropdownToggle role="button">
95 <my-global-icon iconName="playlist-add"></my-global-icon> 102 <my-global-icon iconName="playlist-add"></my-global-icon>
@@ -102,7 +109,7 @@
102 </div> 109 </div>
103 110
104 <my-video-actions-dropdown 111 <my-video-actions-dropdown
105 placement="top" buttonDirection="horizontal" [buttonStyled]="true" [video]="video" 112 placement="top auto" buttonDirection="horizontal" [buttonStyled]="true" [video]="video"
106 (videoRemoved)="onVideoRemoved()" (modalOpened)="onModalOpened()" 113 (videoRemoved)="onVideoRemoved()" (modalOpened)="onModalOpened()"
107 ></my-video-actions-dropdown> 114 ></my-video-actions-dropdown>
108 </div> 115 </div>
@@ -131,9 +138,8 @@
131 138
132 <div class="pt-3 border-top video-info-channel"> 139 <div class="pt-3 border-top video-info-channel">
133 <a [routerLink]="[ '/video-channels', video.byVideoChannel ]" i18n-title title="Go the channel page"> 140 <a [routerLink]="[ '/video-channels', video.byVideoChannel ]" i18n-title title="Go the channel page">
134 {{ video.channel.displayName }}
135
136 <img [src]="video.videoChannelAvatarUrl" alt="Video channel avatar" /> 141 <img [src]="video.videoChannelAvatarUrl" alt="Video channel avatar" />
142 {{ video.channel.displayName }}
137 </a> 143 </a>
138 144
139 <my-subscribe-button #subscribeButton [videoChannel]="video.channel" size="small"></my-subscribe-button> 145 <my-subscribe-button #subscribeButton [videoChannel]="video.channel" size="small"></my-subscribe-button>
@@ -141,15 +147,15 @@
141 147
142 <div class="video-info-by"> 148 <div class="video-info-by">
143 <a [routerLink]="[ '/accounts', video.byAccount ]" i18n-title title="Go to the account page"> 149 <a [routerLink]="[ '/accounts', video.byAccount ]" i18n-title title="Go to the account page">
144 <span i18n>By {{ video.byAccount }}</span>
145 <img [src]="video.accountAvatarUrl" alt="Account avatar" /> 150 <img [src]="video.accountAvatarUrl" alt="Account avatar" />
151 <span i18n>By {{ video.byAccount }}</span>
146 </a> 152 </a>
147 </div> 153 </div>
148 </div> 154 </div>
149 155
150 </div> 156 </div>
151 157
152 <div class="video-info-description"> 158 <div class="video-info-description ml-4">
153 <div class="video-info-description-html" [innerHTML]="videoHTMLDescription"></div> 159 <div class="video-info-description-html" [innerHTML]="videoHTMLDescription"></div>
154 160
155 <div class="video-info-description-more" *ngIf="completeDescriptionShown === false && video.description?.length >= 250" (click)="showMoreDescription()"> 161 <div class="video-info-description-more" *ngIf="completeDescriptionShown === false && video.description?.length >= 250" (click)="showMoreDescription()">
@@ -164,7 +170,7 @@
164 </div> 170 </div>
165 </div> 171 </div>
166 172
167 <div class="video-attributes"> 173 <div class="video-attributes mb-3 ml-4">
168 <div class="video-attribute"> 174 <div class="video-attribute">
169 <span i18n class="video-attribute-label">Privacy</span> 175 <span i18n class="video-attribute-label">Privacy</span>
170 <span class="video-attribute-value">{{ video.privacy.label }}</span> 176 <span class="video-attribute-value">{{ video.privacy.label }}</span>
@@ -211,7 +217,7 @@
211 </div> 217 </div>
212 </div> 218 </div>
213 219
214 <my-video-comments [video]="video" [user]="user"></my-video-comments> 220 <my-video-comments class="border-top" [video]="video" [user]="user"></my-video-comments>
215 </div> 221 </div>
216 222
217 <my-recommended-videos 223 <my-recommended-videos
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 7b134a4dc..314f9849d 100644
--- a/client/src/app/videos/+video-watch/video-watch.component.scss
+++ b/client/src/app/videos/+video-watch/video-watch.component.scss
@@ -176,7 +176,7 @@ $player-factor: 1.7; // 16/9
176 img { 176 img {
177 @include avatar(18px); 177 @include avatar(18px);
178 178
179 margin: -2px 2px 0 5px; 179 margin: -2px 5px 0 0;
180 } 180 }
181 } 181 }
182 182
@@ -199,11 +199,14 @@ $player-factor: 1.7; // 16/9
199 opacity: 0.8; 199 opacity: 0.8;
200 } 200 }
201 201
202 span {
203 margin-left: 2px;
204 }
205
202 img { 206 img {
203 @include avatar(18px); 207 @include avatar(18px);
204 208
205 margin-top: -2px; 209 margin: -2px 5px 0 0;
206 margin-left: 7px;
207 } 210 }
208 } 211 }
209 212
@@ -397,7 +400,7 @@ $player-factor: 1.7; // 16/9
397 400
398 .video-miniature { 401 .video-miniature {
399 display: flex; 402 display: flex;
400 width: $other-videos-width; 403 width: max-content;
401 height: 100%; 404 height: 100%;
402 margin-bottom: 20px; 405 margin-bottom: 20px;
403 flex-wrap: wrap; 406 flex-wrap: wrap;
diff --git a/client/src/app/videos/+video-watch/video-watch.component.ts b/client/src/app/videos/+video-watch/video-watch.component.ts
index 890b7996f..8378e83b8 100644
--- a/client/src/app/videos/+video-watch/video-watch.component.ts
+++ b/client/src/app/videos/+video-watch/video-watch.component.ts
@@ -72,6 +72,11 @@ export class VideoWatchComponent implements OnInit, OnDestroy {
72 remoteServerDown = false 72 remoteServerDown = false
73 hotkeys: Hotkey[] = [] 73 hotkeys: Hotkey[] = []
74 74
75 tooltipLike = ''
76 tooltipDislike = ''
77 tooltipSupport = ''
78 tooltipSaveToPlaylist = ''
79
75 private nextVideoUuid = '' 80 private nextVideoUuid = ''
76 private currentTime: number 81 private currentTime: number
77 private paramsSub: Subscription 82 private paramsSub: Subscription
@@ -102,7 +107,12 @@ export class VideoWatchComponent implements OnInit, OnDestroy {
102 private hooks: HooksService, 107 private hooks: HooksService,
103 private location: PlatformLocation, 108 private location: PlatformLocation,
104 @Inject(LOCALE_ID) private localeId: string 109 @Inject(LOCALE_ID) private localeId: string
105 ) {} 110 ) {
111 this.tooltipLike = this.i18n('Like this video')
112 this.tooltipDislike = this.i18n('Dislike this video')
113 this.tooltipSupport = this.i18n('Support options for this video')
114 this.tooltipSaveToPlaylist = this.i18n('Save to playlist')
115 }
106 116
107 get user () { 117 get user () {
108 return this.authService.getUser() 118 return this.authService.getUser()