Fix loading spinner in player

This commit is contained in:
Chocobozzz 2017-12-11 10:02:17 +01:00
parent 9b7d1c723d
commit 20206dfb0b
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
5 changed files with 166 additions and 174 deletions

View File

@ -7,7 +7,7 @@
color: #000;
}
@media screen and (max-width: 800px) {
@media screen and (max-width: 600px) {
width: calc(100% - 150px);
}

View File

@ -5,149 +5,149 @@
</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>
<!-- 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>
<div *ngIf="isUserLoggedIn()" [ngClass]="{ 'activated': userRating === 'dislike' }" class="action-button">
<span class="icon icon-dislike" title="Dislike this video" (click)="setDislike()"></span>
</div>
<div (click)="showShareModal()" class="action-button">
<span class="icon icon-share"></span>
Share
</div>
<div class="action-more" dropdown dropup="true" placement="right">
<div class="action-button" dropdownToggle>
<span class="icon icon-more"></span>
<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>
<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>
<div *ngIf="isUserLoggedIn()" [ngClass]="{ 'activated': userRating === 'dislike' }" class="action-button">
<span class="icon icon-dislike" title="Dislike this video" (click)="setDislike()"></span>
</div>
<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>
<div (click)="showShareModal()" class="action-button">
<span class="icon icon-share"></span>
Share
</div>
<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 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>
</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-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 *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 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">
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">
Tags
</span>
<span class="video-attribute-value">
{{ getVideoTags() }}
</span>
</div>
</div>
</div>
<div class="video-info-date-views-bar">
<div class="video-info-date-views">
{{ video.createdAt | myFromNow }} - {{ video.views | myNumberFormatter }} views
<div class="other-videos">
<div class="title-page title-page-single">
Other videos
</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 *ngFor="let video of otherVideos">
<my-video-miniature [video]="video" [user]="user"></my-video-miniature>
</div>
</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-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 *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 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">
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">
Tags
</span>
<span class="video-attribute-value">
{{ getVideoTags() }}
</span>
</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>
</div>
</div>

View File

@ -216,14 +216,18 @@
}
@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;

View 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;
}
}
}
}

View 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;