Skip to content

Commit

Permalink
Fix player progress bar
Browse files Browse the repository at this point in the history
  • Loading branch information
Chocobozzz committed May 31, 2018
1 parent 0bf1f26 commit 77728ef
Show file tree
Hide file tree
Showing 4 changed files with 82 additions and 34 deletions.
36 changes: 36 additions & 0 deletions client/src/assets/player/peertube-load-progress-bar.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
import * as Bitfield from 'bitfield'
import { VideoJSComponentInterface, videojsUntyped } from './peertube-videojs-typings'

const Component: VideoJSComponentInterface = videojsUntyped.getComponent('Component')

class PeerTubeLoadProgressBar extends Component {

constructor (player, options) {
super(player, options)
this.partEls_ = []
this.on(player, 'progress', this.update)
}

createEl () {
return super.createEl('div', {
className: 'vjs-load-progress',
innerHTML: `<span class="vjs-control-text"><span>${this.localize('Loaded')}</span>: 0%</span>`
})
}

dispose () {
this.partEls_ = null

super.dispose()
}

update () {
const torrent = this.player().peertube().getTorrent()
if (!torrent) return

this.el_.style.width = (torrent.progress * 100) + '%'
}

}

Component.registerComponent('PeerTubeLoadProgressBar', PeerTubeLoadProgressBar)
12 changes: 11 additions & 1 deletion client/src/assets/player/peertube-player.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import './resolution-menu-button'
import './settings-menu-button'
import './webtorrent-info-button'
import './peertube-videojs-plugin'
import './peertube-load-progress-bar'
import { videojsUntyped } from './peertube-videojs-typings'
import { buildVideoEmbed, buildVideoLink, copyToClipboard } from './utils'

Expand Down Expand Up @@ -94,7 +95,16 @@ function getControlBarChildren (options: {
'liveDisplay': {},

'flexibleWidthSpacer': {},
'progressControl': {},
'progressControl': {
children: {
'seekBar': {
children: {
'peerTubeLoadProgressBar': {},
'playProgressBar': {}
}
}
}
},

'webTorrentButton': {},

Expand Down
4 changes: 4 additions & 0 deletions client/src/assets/player/peertube-videojs-plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -272,6 +272,10 @@ class PeerTubePlugin extends Plugin {
return this.currentVideoFile
}

getTorrent () {
return this.torrent
}

private tryToPlay (done?: Function) {
if (!done) done = function () { /* empty */ }

Expand Down
64 changes: 31 additions & 33 deletions client/src/sass/video-js-custom.scss
Original file line number Diff line number Diff line change
Expand Up @@ -130,39 +130,6 @@ $context-menu-width: 350px;
background-color: rgba($primary-background-color, 0.5);
}

.vjs-slider {
background-color: rgba(255, 255, 255, .3);
border-radius: 2px;
height: 5px;

.vjs-slider-bar {
background: $primary-foreground-color;
}
}

.vjs-play-progress {

&::before {
top: -0.3em;

&:hover {
top: -0.372em;
}
}

.vjs-time-tooltip {
display: none;
}
}

.vjs-load-progress {
background: rgba($slider-bg-color, 0.5);

div {
background: rgba($slider-bg-color, 0.75);
}
}

.vjs-poster {
outline: none; /* Remove Blue Outline on Click*/
outline: 0;
Expand Down Expand Up @@ -197,6 +164,37 @@ $context-menu-width: 350px;
opacity: $primary-foreground-opacity;
}

.vjs-slider {
background-color: rgba(255, 255, 255, .2);
border-radius: 2px;
height: 5px;

.vjs-slider-bar {
background: $primary-foreground-color;
}
}

.vjs-play-progress {

&::before {
top: -0.3em;

&:hover {
top: -0.372em;
}
}

.vjs-time-tooltip {
display: none;
}
}

.vjs-load-progress {
&, & div {
background: rgba(255, 255, 255, .2);
}
}

.vjs-progress-control {
bottom: 34px;
width: 100%;
Expand Down

0 comments on commit 77728ef

Please sign in to comment.