Fix loading spinner in player
authorChocobozzz <florian.bigard@gmail.com>
Mon, 11 Dec 2017 09:02:17 +0000 (10:02 +0100)
committerChocobozzz <florian.bigard@gmail.com>
Mon, 11 Dec 2017 09:02:17 +0000 (10:02 +0100)
client/src/app/header/header.component.scss
client/src/app/videos/+video-watch/video-watch.component.html
client/src/app/videos/+video-watch/video-watch.component.scss
client/src/sass/application.scss
client/src/sass/video-js-custom.scss

index 5f64ede981afd88c8657a99eadd719755b137445..fba70dd2f1f70be07abe5654bd2037a8cbc894e3 100644 (file)
@@ -7,7 +7,7 @@
     color: #000;
   }
 
-  @media screen and (max-width: 800px) {
+  @media screen and (max-width: 600px) {
     width: calc(100% - 150px);
   }
 
index 43b175accce2520cc87be3e5f02dbe1358ef5811..f99e84caf7af96e579ab2aa94cd9510f6a61435e 100644 (file)
   </div>
 
   <div *ngIf="videoNotFound" id="video-not-found">Video not found :'(</div>
-</div>
-
-<!-- Video information -->
-<div *ngIf="video" class="margin-content video-bottom">
-  <div class="video-info">
-    <div class="video-info-name-actions">
-      <div class="video-info-name">{{ video.name }}</div>
 
-      <div class="video-info-actions">
-        <div *ngIf="isUserLoggedIn()" [ngClass]="{ 'activated': userRating === 'like' }" class="action-button">
-          <span class="icon icon-like" title="Like this video" (click)="setLike()"></span>
-        </div>
+  <!-- Video information -->
+  <div *ngIf="video" class="margin-content video-bottom">
+    <div class="video-info">
+      <div class="video-info-name-actions">
+        <div class="video-info-name">{{ video.name }}</div>
 
-        <div *ngIf="isUserLoggedIn()" [ngClass]="{ 'activated': userRating === 'dislike' }" class="action-button">
-          <span class="icon icon-dislike" title="Dislike this video" (click)="setDislike()"></span>
-        </div>
+        <div class="video-info-actions">
+          <div *ngIf="isUserLoggedIn()" [ngClass]="{ 'activated': userRating === 'like' }" class="action-button">
+            <span class="icon icon-like" title="Like this video" (click)="setLike()"></span>
+          </div>
 
-        <div (click)="showShareModal()" class="action-button">
-          <span class="icon icon-share"></span>
-          Share
-        </div>
+          <div *ngIf="isUserLoggedIn()" [ngClass]="{ 'activated': userRating === 'dislike' }" class="action-button">
+            <span class="icon icon-dislike" title="Dislike this video" (click)="setDislike()"></span>
+          </div>
 
-        <div class="action-more" dropdown dropup="true" placement="right">
-          <div class="action-button" dropdownToggle>
-            <span class="icon icon-more"></span>
+          <div (click)="showShareModal()" class="action-button">
+            <span class="icon icon-share"></span>
+            Share
           </div>
 
-          <ul *dropdownMenu class="dropdown-menu" id="more-menu" role="menu" aria-labelledby="single-button">
-            <li role="menuitem">
-              <a class="dropdown-item" title="Download the video" href="#" (click)="showDownloadModal($event)">
-                <span class="icon icon-download"></span> Download
-              </a>
-            </li>
-
-            <li *ngIf="isUserLoggedIn()" role="menuitem">
-              <a class="dropdown-item" title="Report this video" href="#" (click)="showReportModal($event)">
-                <span class="icon icon-alert"></span> Report
-              </a>
-            </li>
-
-            <li *ngIf="isVideoBlacklistable()" role="menuitem">
-              <a class="dropdown-item" title="Blacklist this video" href="#" (click)="blacklistVideo($event)">
-                <span class="icon icon-blacklist"></span> Blacklist
-              </a>
-            </li>
-          </ul>
+          <div class="action-more" dropdown dropup="true" placement="right">
+            <div class="action-button" dropdownToggle>
+              <span class="icon icon-more"></span>
+            </div>
+
+            <ul *dropdownMenu class="dropdown-menu" id="more-menu" role="menu" aria-labelledby="single-button">
+              <li role="menuitem">
+                <a class="dropdown-item" title="Download the video" href="#" (click)="showDownloadModal($event)">
+                  <span class="icon icon-download"></span> Download
+                </a>
+              </li>
+
+              <li *ngIf="isUserLoggedIn()" role="menuitem">
+                <a class="dropdown-item" title="Report this video" href="#" (click)="showReportModal($event)">
+                  <span class="icon icon-alert"></span> Report
+                </a>
+              </li>
+
+              <li *ngIf="isVideoBlacklistable()" role="menuitem">
+                <a class="dropdown-item" title="Blacklist this video" href="#" (click)="blacklistVideo($event)">
+                  <span class="icon icon-blacklist"></span> Blacklist
+                </a>
+              </li>
+            </ul>
+          </div>
         </div>
       </div>
-    </div>
 
-    <div class="video-info-date-views-bar">
-      <div class="video-info-date-views">
-        {{ video.createdAt | myFromNow }} - {{ video.views | myNumberFormatter }} views
-      </div>
+      <div class="video-info-date-views-bar">
+        <div class="video-info-date-views">
+          {{ video.createdAt | myFromNow }} - {{ video.views | myNumberFormatter }} views
+        </div>
 
-      <div *ngIf="video.likes !== 0 || video.dislikes !== 0" class="video-info-likes-dislikes-bar">
-        <div class="likes-bar" [ngStyle]="{ 'width.%': video.likesPercent }"></div>
+        <div *ngIf="video.likes !== 0 || video.dislikes !== 0" class="video-info-likes-dislikes-bar">
+          <div class="likes-bar" [ngStyle]="{ 'width.%': video.likesPercent }"></div>
+        </div>
       </div>
-    </div>
 
-    <div class="video-info-channel">
-      {{ video.channel.name }}
-      <!-- Here will be the subscribe button -->
-    </div>
+      <div class="video-info-channel">
+        {{ video.channel.name }}
+        <!-- Here will be the subscribe button -->
+      </div>
 
-    <div class="video-info-by">
-      By {{ video.by }}
-      <img [src]="getAvatarPath()" alt="Account avatar" />
-    </div>
+      <div class="video-info-by">
+        By {{ video.by }}
+        <img [src]="getAvatarPath()" alt="Account avatar" />
+      </div>
 
-    <div class="video-info-description">
-      <div class="video-info-description-html" [innerHTML]="videoHTMLDescription"></div>
+      <div class="video-info-description">
+        <div class="video-info-description-html" [innerHTML]="videoHTMLDescription"></div>
 
-      <div class="video-info-description-more" *ngIf="completeDescriptionShown === false && video.description?.length === 250" (click)="showMoreDescription()">
-        Show more
-        <span *ngIf="descriptionLoading === false" class="glyphicon glyphicon-menu-down"></span>
-        <my-loader class="description-loading" [loading]="descriptionLoading"></my-loader>
-      </div>
+        <div class="video-info-description-more" *ngIf="completeDescriptionShown === false && video.description?.length === 250" (click)="showMoreDescription()">
+          Show more
+          <span *ngIf="descriptionLoading === false" class="glyphicon glyphicon-menu-down"></span>
+          <my-loader class="description-loading" [loading]="descriptionLoading"></my-loader>
+        </div>
 
-      <div *ngIf="completeDescriptionShown === true" (click)="showLessDescription()" class="video-info-description-more">
-        Show less
-        <span *ngIf="descriptionLoading === false" class="glyphicon glyphicon-menu-up"></span>
+        <div *ngIf="completeDescriptionShown === true" (click)="showLessDescription()" class="video-info-description-more">
+          Show less
+          <span *ngIf="descriptionLoading === false" class="glyphicon glyphicon-menu-up"></span>
+        </div>
       </div>
-    </div>
 
-    <div class="video-attributes">
-      <div class="video-attribute">
-        <span class="video-attribute-label">
-          Privacy
-        </span>
-        <span class="video-attribute-value">
-          {{ video.privacyLabel }}
-        </span>
-      </div>
+      <div class="video-attributes">
+        <div class="video-attribute">
+          <span class="video-attribute-label">
+            Privacy
+          </span>
+          <span class="video-attribute-value">
+            {{ video.privacyLabel }}
+          </span>
+        </div>
 
-      <div class="video-attribute">
-        <span class="video-attribute-label">
-          Category
-        </span>
-        <span class="video-attribute-value">
-          {{ video.categoryLabel }}
-        </span>
-      </div>
+        <div class="video-attribute">
+          <span class="video-attribute-label">
+            Category
+          </span>
+          <span class="video-attribute-value">
+            {{ video.categoryLabel }}
+          </span>
+        </div>
 
-      <div class="video-attribute">
-        <span class="video-attribute-label">
-          Licence
-        </span>
-        <span class="video-attribute-value">
-          {{ video.licenceLabel }}
-        </span>
-      </div>
+        <div class="video-attribute">
+          <span class="video-attribute-label">
+            Licence
+          </span>
+          <span class="video-attribute-value">
+            {{ video.licenceLabel }}
+          </span>
+        </div>
 
-      <div class="video-attribute">
-        <span class="video-attribute-label">
-          Language
-        </span>
-        <span class="video-attribute-value">
-          {{ video.languageLabel }}
-        </span>
-      </div>
+        <div class="video-attribute">
+          <span class="video-attribute-label">
+            Language
+          </span>
+          <span class="video-attribute-value">
+            {{ video.languageLabel }}
+          </span>
+        </div>
 
-      <div class="video-attribute">
-        <span class="video-attribute-label">
-          Tags
-        </span>
+        <div class="video-attribute">
+          <span class="video-attribute-label">
+            Tags
+          </span>
 
-        <span class="video-attribute-value">
-          {{ getVideoTags() }}
-        </span>
+          <span class="video-attribute-value">
+            {{ getVideoTags() }}
+          </span>
+        </div>
       </div>
-    </div>
 
-  </div>
-
-  <div class="other-videos">
-    <div class="title-page title-page-single">
-      Other videos
     </div>
 
-    <div *ngFor="let video of otherVideos">
-      <my-video-miniature [video]="video" [user]="user"></my-video-miniature>
+    <div class="other-videos">
+      <div class="title-page title-page-single">
+        Other videos
+      </div>
+
+      <div *ngFor="let video of otherVideos">
+        <my-video-miniature [video]="video" [user]="user"></my-video-miniature>
+      </div>
     </div>
   </div>
 </div>
index 83a7cc41db9dc081b480805fcb8830eb270df170..9daa757b4afc16e16bb24c83e5c291c4b3632e61 100644 (file)
 }
 
 
-@media screen and (max-width: 800px) {
+@media screen and (max-width: 1000px) {
   .other-videos {
     display: none;
   }
+}
 
+@media screen and (max-width: 800px) {
   .video-bottom {
+    margin: 20px 0 0 0;
+
     .video-info {
-      margin-right: 10px;
+      margin-right: 0;
 
       .video-info-name-actions {
         align-items: left;
index 6352dd4fbd6b3d97f96c614d0b36ad3180471a4e..9a93411e916788c5e2c5d038402aa07603edaae6 100644 (file)
@@ -107,35 +107,6 @@ label {
   font-weight: bold;
 }
 
-// On small screen, menu is absolute
-@media screen and (max-width: 800px) {
-  .title-menu-left {
-    width: 150px !important;
-    position: absolute !important;
-    z-index: 10000;
-  }
-
-  .main-col {
-    margin-left: 0;
-
-    &, &.expanded {
-      .margin-content {
-        margin-left: 10px;
-        margin-right: 10px;
-      }
-
-      .sub-menu {
-        padding-left: 10px;
-        margin-bottom: 10px;
-      }
-
-      input[type=text], input[type=password] {
-        width: 100% !important;
-      }
-    }
-  }
-}
-
 // Thanks https://gist.github.com/alexandrevicenzi/680147013e902a4eaa5d
 .glyphicon-refresh-animate {
   -animation: spin .7s infinite linear;
@@ -330,3 +301,32 @@ p-datatable {
   @include peertube-button-link;
   @include grey-button;
 }
+
+// On small screen, menu is absolute
+@media screen and (max-width: 800px) {
+  .title-menu-left {
+    width: 150px !important;
+    position: absolute !important;
+    z-index: 10000;
+  }
+
+  .main-col {
+    margin-left: 0;
+
+    &, &.expanded {
+      .margin-content {
+        margin-left: 10px;
+        margin-right: 10px;
+      }
+
+      .sub-menu {
+        padding-left: 10px;
+        margin-bottom: 10px;
+      }
+
+      input[type=text], input[type=password] {
+        width: 100% !important;
+      }
+    }
+  }
+}
index 2fcfc6203dd057f1ba7ba7d13f367296e9076797..fe9495e777c7907a9ccc59d38811146d8a822cd0 100644 (file)
@@ -28,10 +28,6 @@ $control-bar-height: 34px;
     $big-play-width: 3em;
     $big-play-height: 1.5em;
 
-    line-height: $big-play-height;
-    height: $big-play-height;
-    width: $big-play-width;
-
     border: 0;
     border-radius: 0.3em;
 
@@ -39,10 +35,7 @@ $control-bar-height: 34px;
     top: 50%;
     margin-left: -($big-play-width / 2);
     margin-top: -($big-play-height / 2);
-  }
-
-  &:hover .vjs-big-play-button {
-    background-color: transparent;
+    background-color: transparent !important;
   }
 
   .vjs-control-bar,
@@ -321,13 +314,8 @@ $control-bar-height: 34px;
 
 // Thanks: https://projects.lukehaas.me/css-loaders/
 .vjs-loading-spinner {
-  margin: 0 !important;
-  //position: absolute;
-  // 15px is the nav bar height
-  top: calc(50% - 15px);
   left: 50%;
   font-size: 10px;
-  position: relative;
   text-indent: -9999em;
   border: 0.7em solid rgba(255, 255, 255, 0.2);
   border-left-color: #ffffff;