]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/videos/+video-watch/video-watch.component.html
Slightly more personal support modal
[github/Chocobozzz/PeerTube.git] / client / src / app / videos / +video-watch / video-watch.component.html
index 97f3a336e308f30ef3e91aa3c1f1095d80902470..ea258711ef1297aaf0a397c0a314dbecd794f487 100644 (file)
@@ -43,7 +43,7 @@
             <h1 class="video-info-name">{{ video.name }}</h1>
 
             <div i18n class="video-info-date-views">
-              Published <my-date-toggle [date]="video.publishedAt"></my-date-toggle> <span class="views"> - {{ video.views | myNumberFormatter }} views</span>
+              Published <my-date-toggle [date]="video.publishedAt"></my-date-toggle> <span class="views">  {{ video.views | myNumberFormatter }} views</span>
             </div>
           </div>
 
@@ -54,7 +54,7 @@
 
             <div class="video-info-first-row-bottom">
               <div i18n class="d-none d-md-block video-info-date-views">
-                Published <my-date-toggle [date]="video.publishedAt"></my-date-toggle> <span class="views"> - {{ video.views | myNumberFormatter }} views</span>
+                Published <my-date-toggle [date]="video.publishedAt"></my-date-toggle> <span class="views">  {{ video.views | myNumberFormatter }} views</span>
               </div>
 
               <div class="video-actions-rates">
@@ -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">
-                    <my-global-icon iconName="heart"></my-global-icon>
+
+                  <div *ngIf="video.support" (click)="showSupportModal()" class="action-button action-button-support"
+                    [ngbTooltip]="tooltipSupport"
+                    placement="bottom auto"
+                  >
+                    <my-global-icon iconName="support"></my-global-icon>
                     <span class="icon-text" i18n>Support</span>
                   </div>
-  
+
                   <div (click)="showShareModal()" class="action-button" role="button">
                     <my-global-icon iconName="share"></my-global-icon>
                     <span class="icon-text" i18n>Share</span>
                   </div>
-  
+
                   <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>
                       <span class="icon-text" i18n>Save</span>
                     </div>
-  
+
                     <div ngbDropdownMenu>
                       <my-video-add-to-playlist #addContent [video]="video"></my-video-add-to-playlist>
                     </div>
                   </div>
-  
+
                   <my-video-actions-dropdown
-                    placement="top" buttonDirection="horizontal" [buttonStyled]="true" [video]="video"
+                    placement="bottom auto" buttonDirection="horizontal" [buttonStyled]="true" [video]="video"
                     (videoRemoved)="onVideoRemoved()" (modalOpened)="onModalOpened()"
                   ></my-video-actions-dropdown>
                 </div>
-  
-                <div
-                  class="video-info-likes-dislikes-bar"
-                  *ngIf="video.likes !== 0 || video.dislikes !== 0"
-                  [ngbTooltip]="likesBarTooltipText"
-                  placement="bottom"
-                >
-                  <div class="likes-bar" [ngStyle]="{ 'width.%': video.likesPercent }"></div>
+
+                <div class="video-info-likes-dislikes-bar-outer-container">
+                  <div
+                    class="video-info-likes-dislikes-bar-inner-container"
+                    *ngIf="video.likes !== 0 || video.dislikes !== 0"
+                    [ngbTooltip]="likesBarTooltipText"
+                    placement="bottom"
+                  >
+                    <div
+                      class="video-info-likes-dislikes-bar"
+                    >
+                      <div class="likes-bar" [ngClass]="{ 'liked': userRating !== 'none' }" [ngStyle]="{ 'width.%': video.likesPercent }"></div>
+                    </div>
+                  </div>
                 </div>
               </div>
 
           </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" />
-            </a>
+          <div class="pt-3 border-top video-info-channel d-flex">
+            <div class="video-info-channel-left d-flex">
+              <avatar-channel [video]="video"></avatar-channel>
+              <div class="video-info-channel-left-links ml-1">
+                <a [routerLink]="[ '/video-channels', video.byVideoChannel ]" i18n-title title="Go the channel page">
+                  {{ video.channel.displayName }}
+                </a>
+                <a [routerLink]="[ '/accounts', video.byAccount ]" i18n-title title="Go to the account page">
+                  <span i18n>By {{ video.byAccount }}</span>
+                </a>
+              </div>
+            </div>
 
             <my-subscribe-button #subscribeButton [videoChannel]="video.channel" size="small"></my-subscribe-button>
           </div>
-
-          <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" />
-            </a>
-          </div>
         </div>
 
       </div>
 
       <div class="video-info-description">
-        <div class="video-info-description-html" [innerHTML]="videoHTMLDescription"></div>
+        <div
+          class="video-info-description-html"
+          [innerHTML]="videoHTMLDescription"
+          (timestampClicked)="handleTimestampClicked($event)"
+          timestampRouteTransformer
+        ></div>
 
         <div class="video-info-description-more" *ngIf="completeDescriptionShown === false && video.description?.length >= 250" (click)="showMoreDescription()">
           <ng-container i18n>Show more</ng-container>
         </div>
       </div>
 
-      <div class="video-attributes">
+      <div class="video-attributes mb-3">
         <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"
+        (timestampClicked)="handleTimestampClicked($event)"
+      ></my-video-comments>
     </div>
 
     <my-recommended-videos
 </div>
 
 <ng-container *ngIf="video !== null">
-  <my-video-support #videoSupportModal [video]="video"></my-video-support>
+  <my-video-support #videoSupportModal [video]="video" [user]="user"></my-video-support>
   <my-video-share #videoShareModal [video]="video" [videoCaptions]="videoCaptions" [playlist]="playlist"></my-video-share>
 </ng-container>