mirror of https://github.com/Chocobozzz/PeerTube
Fix loading spinner in player
parent
9b7d1c723d
commit
20206dfb0b
|
@ -7,7 +7,7 @@
|
|||
color: #000;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 800px) {
|
||||
@media screen and (max-width: 600px) {
|
||||
width: calc(100% - 150px);
|
||||
}
|
||||
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue