video description/account alignment, watch view basic tooltips
authorRigel Kent <sendmemail@rigelk.eu>
Thu, 12 Dec 2019 18:42:37 +0000 (19:42 +0100)
committerChocobozzz <chocobozzz@cpy.re>
Fri, 13 Dec 2019 08:13:43 +0000 (09:13 +0100)
client/src/app/menu/menu.component.html
client/src/app/videos/+video-watch/video-watch.component.html
client/src/app/videos/+video-watch/video-watch.component.scss
client/src/app/videos/+video-watch/video-watch.component.ts

index b62329052a13253baeb2678f869f7c4eb8630e80..3f406586e411edcfb8daa206e042670a04bdf793 100644 (file)
@@ -9,7 +9,7 @@
           <div class="logged-in-username">{{ user.username }}</div>
         </div>
 
-        <div class="logged-in-more" ngbDropdown placement="bottom-right">
+        <div class="logged-in-more" ngbDropdown placement="bottom-right auto">
           <my-global-icon iconName="more-vertical" ngbDropdownToggle role="button"></my-global-icon>
 
           <div ngbDropdownMenu>
index 97f3a336e308f30ef3e91aa3c1f1095d80902470..a700907eaa3f43677b1ed50ea4ee9a3ae9dd9c66 100644 (file)
@@ -62,7 +62,8 @@
                   <div
                     [ngbPopover]="getRatePopoverText()" [ngClass]="{ 'activated': userRating === 'like' }" (click)="setLike()"
                     class="action-button action-button-like" role="button" [attr.aria-pressed]="userRating === 'like'"
-                    i18n-title title="Like this video"
+                    [ngbTooltip]="tooltipLike"
+                    placement="bottom auto"
                   >
                     <my-global-icon iconName="like"></my-global-icon>
                     <span *ngIf="video.likes" class="count">{{ video.likes }}</span>
                   <div
                     [ngbPopover]="getRatePopoverText()" [ngClass]="{ 'activated': userRating === 'dislike' }" (click)="setDislike()"
                     class="action-button action-button-dislike" role="button" [attr.aria-pressed]="userRating === 'dislike'"
-                    i18n-title title="Dislike this video"
+                    [ngbTooltip]="tooltipDislike"
+                    placement="bottom auto"
                   >
                     <my-global-icon iconName="dislike"></my-global-icon>
                     <span *ngIf="video.dislikes" class="count">{{ video.dislikes }}</span>
                   </div>
   
-                  <div *ngIf="video.support" (click)="showSupportModal()" class="action-button">
+                  <div *ngIf="video.support" (click)="showSupportModal()" class="action-button"
+                    [ngbTooltip]="tooltipSupport"
+                    placement="bottom auto"
+                  >
                     <my-global-icon iconName="heart"></my-global-icon>
                     <span class="icon-text" i18n>Support</span>
                   </div>
@@ -90,6 +95,8 @@
                   <div
                     class="action-dropdown" ngbDropdown placement="top" role="button" autoClose="outside"
                      *ngIf="isUserLoggedIn()" (openChange)="addContent.openChange($event)"
+                     [ngbTooltip]="tooltipSaveToPlaylist"
+                     placement="bottom auto"
                   >
                     <div class="action-button action-button-save" ngbDropdownToggle role="button">
                       <my-global-icon iconName="playlist-add"></my-global-icon>
                   </div>
   
                   <my-video-actions-dropdown
-                    placement="top" buttonDirection="horizontal" [buttonStyled]="true" [video]="video"
+                    placement="top auto" buttonDirection="horizontal" [buttonStyled]="true" [video]="video"
                     (videoRemoved)="onVideoRemoved()" (modalOpened)="onModalOpened()"
                   ></my-video-actions-dropdown>
                 </div>
 
           <div class="pt-3 border-top video-info-channel">
             <a [routerLink]="[ '/video-channels', video.byVideoChannel ]" i18n-title title="Go the channel page">
-              {{ video.channel.displayName }}
-
               <img [src]="video.videoChannelAvatarUrl" alt="Video channel avatar" />
+              {{ video.channel.displayName }}
             </a>
 
             <my-subscribe-button #subscribeButton [videoChannel]="video.channel" size="small"></my-subscribe-button>
 
           <div class="video-info-by">
             <a [routerLink]="[ '/accounts', video.byAccount ]" i18n-title title="Go to the account page">
-              <span i18n>By {{ video.byAccount }}</span>
               <img [src]="video.accountAvatarUrl" alt="Account avatar" />
+              <span i18n>By {{ video.byAccount }}</span>
             </a>
           </div>
         </div>
 
       </div>
 
-      <div class="video-info-description">
+      <div class="video-info-description ml-4">
         <div class="video-info-description-html" [innerHTML]="videoHTMLDescription"></div>
 
         <div class="video-info-description-more" *ngIf="completeDescriptionShown === false && video.description?.length >= 250" (click)="showMoreDescription()">
         </div>
       </div>
 
-      <div class="video-attributes">
+      <div class="video-attributes mb-3 ml-4">
         <div class="video-attribute">
           <span i18n class="video-attribute-label">Privacy</span>
           <span class="video-attribute-value">{{ video.privacy.label }}</span>
         </div>
       </div>
 
-      <my-video-comments [video]="video" [user]="user"></my-video-comments>
+      <my-video-comments class="border-top" [video]="video" [user]="user"></my-video-comments>
     </div>
 
     <my-recommended-videos
index 7b134a4dce661bb2a969b85ba2e5557cfb3d1558..314f9849d2e633e95376247c141e3b1e71241173 100644 (file)
@@ -176,7 +176,7 @@ $player-factor: 1.7; // 16/9
           img {
             @include avatar(18px);
 
-            margin: -2px 2px 0 5px;
+            margin: -2px 5px 0 0;
           }
         }
 
@@ -199,11 +199,14 @@ $player-factor: 1.7; // 16/9
             opacity: 0.8;
           }
 
+          span {
+            margin-left: 2px;
+          }
+
           img {
             @include avatar(18px);
 
-            margin-top: -2px;
-            margin-left: 7px;
+            margin: -2px 5px 0 0;
           }
         }
 
@@ -397,7 +400,7 @@ $player-factor: 1.7; // 16/9
 
     .video-miniature {
       display: flex;
-      width: $other-videos-width;
+      width: max-content;
       height: 100%;
       margin-bottom: 20px;
       flex-wrap: wrap;
index 890b7996f7779abba839bf1946b76032303407ce..8378e83b8289123aa21472f6b75e9bcb0fff9d2a 100644 (file)
@@ -72,6 +72,11 @@ export class VideoWatchComponent implements OnInit, OnDestroy {
   remoteServerDown = false
   hotkeys: Hotkey[] = []
 
+  tooltipLike = ''
+  tooltipDislike = ''
+  tooltipSupport = ''
+  tooltipSaveToPlaylist = ''
+
   private nextVideoUuid = ''
   private currentTime: number
   private paramsSub: Subscription
@@ -102,7 +107,12 @@ export class VideoWatchComponent implements OnInit, OnDestroy {
     private hooks: HooksService,
     private location: PlatformLocation,
     @Inject(LOCALE_ID) private localeId: string
-  ) {}
+  ) {
+    this.tooltipLike = this.i18n('Like this video')
+    this.tooltipDislike = this.i18n('Dislike this video')
+    this.tooltipSupport = this.i18n('Support options for this video')
+    this.tooltipSaveToPlaylist = this.i18n('Save to playlist')
+  }
 
   get user () {
     return this.authService.getUser()