diff options
9 files changed, 37 insertions, 24 deletions
diff --git a/client/src/app/+videos/+video-watch/video-watch.component.ts b/client/src/app/+videos/+video-watch/video-watch.component.ts index d05f08a5f..6a3bd1522 100644 --- a/client/src/app/+videos/+video-watch/video-watch.component.ts +++ b/client/src/app/+videos/+video-watch/video-watch.component.ts | |||
@@ -627,6 +627,7 @@ export class VideoWatchComponent implements OnInit, OnDestroy { | |||
627 | 627 | ||
628 | embedUrl: video.embedUrl, | 628 | embedUrl: video.embedUrl, |
629 | embedTitle: video.name, | 629 | embedTitle: video.name, |
630 | instanceName: this.serverConfig.instance.name, | ||
630 | 631 | ||
631 | isLive: video.isLive, | 632 | isLive: video.isLive, |
632 | liveOptions, | 633 | liveOptions, |
diff --git a/client/src/assets/player/shared/control-bar/peertube-link-button.ts b/client/src/assets/player/shared/control-bar/peertube-link-button.ts index 6d83263cc..4687525a9 100644 --- a/client/src/assets/player/shared/control-bar/peertube-link-button.ts +++ b/client/src/assets/player/shared/control-bar/peertube-link-button.ts | |||
@@ -5,6 +5,8 @@ import { PeerTubeLinkButtonOptions } from '../../types' | |||
5 | const Button = videojs.getComponent('Button') | 5 | const Button = videojs.getComponent('Button') |
6 | class PeerTubeLinkButton extends Button { | 6 | class PeerTubeLinkButton extends Button { |
7 | 7 | ||
8 | private instanceName: string | ||
9 | |||
8 | constructor (player: videojs.Player, options?: PeerTubeLinkButtonOptions) { | 10 | constructor (player: videojs.Player, options?: PeerTubeLinkButtonOptions) { |
9 | super(player, options as any) | 11 | super(player, options as any) |
10 | } | 12 | } |
@@ -24,7 +26,7 @@ class PeerTubeLinkButton extends Button { | |||
24 | private buildElement () { | 26 | private buildElement () { |
25 | const el = videojs.dom.createEl('a', { | 27 | const el = videojs.dom.createEl('a', { |
26 | href: this.buildLink(), | 28 | href: this.buildLink(), |
27 | innerHTML: 'PeerTube', | 29 | innerHTML: (this.options_ as PeerTubeLinkButtonOptions).instanceName, |
28 | title: this.player().localize('Video page (new window)'), | 30 | title: this.player().localize('Video page (new window)'), |
29 | className: 'vjs-peertube-link', | 31 | className: 'vjs-peertube-link', |
30 | target: '_blank' | 32 | target: '_blank' |
diff --git a/client/src/assets/player/shared/manager-options/control-bar-options-builder.ts b/client/src/assets/player/shared/manager-options/control-bar-options-builder.ts index 72a10eb26..27f366732 100644 --- a/client/src/assets/player/shared/manager-options/control-bar-options-builder.ts +++ b/client/src/assets/player/shared/manager-options/control-bar-options-builder.ts | |||
@@ -51,7 +51,10 @@ export class ControlBarOptionsBuilder { | |||
51 | 51 | ||
52 | if (this.options.peertubeLink === true) { | 52 | if (this.options.peertubeLink === true) { |
53 | Object.assign(children, { | 53 | Object.assign(children, { |
54 | peerTubeLinkButton: { shortUUID: this.options.videoShortUUID } as PeerTubeLinkButtonOptions | 54 | peerTubeLinkButton: { |
55 | shortUUID: this.options.videoShortUUID, | ||
56 | instanceName: this.options.instanceName | ||
57 | } as PeerTubeLinkButtonOptions | ||
55 | }) | 58 | }) |
56 | } | 59 | } |
57 | 60 | ||
diff --git a/client/src/assets/player/types/manager-options.ts b/client/src/assets/player/types/manager-options.ts index a6f00876f..cadce739d 100644 --- a/client/src/assets/player/types/manager-options.ts +++ b/client/src/assets/player/types/manager-options.ts | |||
@@ -51,6 +51,8 @@ export interface CommonOptions extends CustomizationOptions { | |||
51 | inactivityTimeout: number | 51 | inactivityTimeout: number |
52 | poster: string | 52 | poster: string |
53 | 53 | ||
54 | instanceName: string | ||
55 | |||
54 | theaterButton: boolean | 56 | theaterButton: boolean |
55 | captions: boolean | 57 | captions: boolean |
56 | 58 | ||
diff --git a/client/src/assets/player/types/peertube-videojs-typings.ts b/client/src/assets/player/types/peertube-videojs-typings.ts index ad284a671..115afb614 100644 --- a/client/src/assets/player/types/peertube-videojs-typings.ts +++ b/client/src/assets/player/types/peertube-videojs-typings.ts | |||
@@ -127,6 +127,7 @@ type NextPreviousVideoButtonOptions = { | |||
127 | 127 | ||
128 | type PeerTubeLinkButtonOptions = { | 128 | type PeerTubeLinkButtonOptions = { |
129 | shortUUID: string | 129 | shortUUID: string |
130 | instanceName: string | ||
130 | } | 131 | } |
131 | 132 | ||
132 | type PeerTubeP2PInfoButtonOptions = { | 133 | type PeerTubeP2PInfoButtonOptions = { |
diff --git a/client/src/sass/player/control-bar.scss b/client/src/sass/player/control-bar.scss index 6271523af..34470f3b1 100644 --- a/client/src/sass/player/control-bar.scss +++ b/client/src/sass/player/control-bar.scss | |||
@@ -160,8 +160,8 @@ | |||
160 | 160 | ||
161 | .vjs-peertube { | 161 | .vjs-peertube { |
162 | @include margin-right(6px); | 162 | @include margin-right(6px); |
163 | @include margin-left(auto); | ||
163 | 164 | ||
164 | width: 100%; | ||
165 | line-height: $control-bar-height; | 165 | line-height: $control-bar-height; |
166 | text-align: end; | 166 | text-align: end; |
167 | overflow: hidden; | 167 | overflow: hidden; |
@@ -358,11 +358,13 @@ | |||
358 | .vjs-peertube-link { | 358 | .vjs-peertube-link { |
359 | @include disable-outline; | 359 | @include disable-outline; |
360 | @include disable-default-a-behaviour; | 360 | @include disable-default-a-behaviour; |
361 | @include ellipsis; | ||
361 | 362 | ||
362 | text-decoration: none; | 363 | text-decoration: none; |
363 | line-height: $control-bar-height; | 364 | line-height: $control-bar-height; |
364 | font-weight: $font-semibold; | 365 | font-weight: $font-semibold; |
365 | padding: 0 5px; | 366 | padding: 0 5px; |
367 | max-width: 150px; | ||
366 | } | 368 | } |
367 | 369 | ||
368 | .vjs-theater-control { | 370 | .vjs-theater-control { |
@@ -420,6 +422,10 @@ | |||
420 | } | 422 | } |
421 | 423 | ||
422 | @media screen and (max-width: $screen-width-570) { | 424 | @media screen and (max-width: $screen-width-570) { |
425 | .vjs-volume-control { | ||
426 | display: none; | ||
427 | } | ||
428 | |||
423 | .vjs-peertube { | 429 | .vjs-peertube { |
424 | padding: 0 !important; | 430 | padding: 0 !important; |
425 | 431 | ||
@@ -428,6 +434,10 @@ | |||
428 | } | 434 | } |
429 | } | 435 | } |
430 | 436 | ||
437 | .vjs-peertube-link { | ||
438 | max-width: 100px; | ||
439 | } | ||
440 | |||
431 | &.vjs-live { | 441 | &.vjs-live { |
432 | .vjs-duration { | 442 | .vjs-duration { |
433 | display: none !important; | 443 | display: none !important; |
@@ -440,7 +450,6 @@ | |||
440 | } | 450 | } |
441 | 451 | ||
442 | @media screen and (max-width: $screen-width-350) { | 452 | @media screen and (max-width: $screen-width-350) { |
443 | .vjs-volume-control, | ||
444 | .vjs-next-video, | 453 | .vjs-next-video, |
445 | .vjs-previous-video { | 454 | .vjs-previous-video { |
446 | display: none !important; | 455 | display: none !important; |
@@ -458,6 +467,12 @@ | |||
458 | @include margin-right($first-control-bar-element-margin-left-small-width); | 467 | @include margin-right($first-control-bar-element-margin-left-small-width); |
459 | } | 468 | } |
460 | 469 | ||
470 | .vjs-play-control { | ||
471 | @include margin-left(0); | ||
472 | |||
473 | width: 30px; | ||
474 | } | ||
475 | |||
461 | &.vjs-live { | 476 | &.vjs-live { |
462 | .vjs-current-time { | 477 | .vjs-current-time { |
463 | display: none !important; | 478 | display: none !important; |
diff --git a/client/src/standalone/videos/embed.scss b/client/src/standalone/videos/embed.scss index 8c20bae79..3631ea7e6 100644 --- a/client/src/standalone/videos/embed.scss +++ b/client/src/standalone/videos/embed.scss | |||
@@ -40,25 +40,6 @@ body { | |||
40 | .vjs-poster { | 40 | .vjs-poster { |
41 | background-size: 100% auto; | 41 | background-size: 100% auto; |
42 | } | 42 | } |
43 | |||
44 | @media screen and (max-width: 350px) { | ||
45 | .vjs-play-control { | ||
46 | padding: 0 5px !important; | ||
47 | width: 25px !important; | ||
48 | } | ||
49 | |||
50 | .vjs-volume-control { | ||
51 | display: none !important; | ||
52 | } | ||
53 | |||
54 | .vjs-volume-panel { | ||
55 | width: 26px !important; | ||
56 | } | ||
57 | |||
58 | .vjs-peertube-link { | ||
59 | padding: 0; | ||
60 | } | ||
61 | } | ||
62 | } | 43 | } |
63 | 44 | ||
64 | #error-block { | 45 | #error-block { |
diff --git a/client/src/standalone/videos/embed.ts b/client/src/standalone/videos/embed.ts index 0a2b0ccbd..c15d4db17 100644 --- a/client/src/standalone/videos/embed.ts +++ b/client/src/standalone/videos/embed.ts | |||
@@ -196,6 +196,8 @@ export class PeerTubeEmbed { | |||
196 | captionsResponse, | 196 | captionsResponse, |
197 | alreadyHadPlayer, | 197 | alreadyHadPlayer, |
198 | translations, | 198 | translations, |
199 | serverConfig: this.config, | ||
200 | |||
199 | onVideoUpdate: (uuid: string) => this.loadVideoAndBuildPlayer(uuid), | 201 | onVideoUpdate: (uuid: string) => this.loadVideoAndBuildPlayer(uuid), |
200 | 202 | ||
201 | playlistTracker: this.playlistTracker, | 203 | playlistTracker: this.playlistTracker, |
diff --git a/client/src/standalone/videos/shared/player-manager-options.ts b/client/src/standalone/videos/shared/player-manager-options.ts index 144d74319..f3bd46a69 100644 --- a/client/src/standalone/videos/shared/player-manager-options.ts +++ b/client/src/standalone/videos/shared/player-manager-options.ts | |||
@@ -148,6 +148,8 @@ export class PlayerManagerOptions { | |||
148 | captionsResponse: Response | 148 | captionsResponse: Response |
149 | live?: LiveVideo | 149 | live?: LiveVideo |
150 | 150 | ||
151 | serverConfig: HTMLServerConfig | ||
152 | |||
151 | alreadyHadPlayer: boolean | 153 | alreadyHadPlayer: boolean |
152 | 154 | ||
153 | translations: Translations | 155 | translations: Translations |
@@ -163,7 +165,8 @@ export class PlayerManagerOptions { | |||
163 | alreadyHadPlayer, | 165 | alreadyHadPlayer, |
164 | translations, | 166 | translations, |
165 | playlistTracker, | 167 | playlistTracker, |
166 | live | 168 | live, |
169 | serverConfig | ||
167 | } = options | 170 | } = options |
168 | 171 | ||
169 | const videoCaptions = await this.buildCaptions(captionsResponse, translations) | 172 | const videoCaptions = await this.buildCaptions(captionsResponse, translations) |
@@ -205,7 +208,10 @@ export class PlayerManagerOptions { | |||
205 | 208 | ||
206 | videoDuration: video.duration, | 209 | videoDuration: video.duration, |
207 | enableHotkeys: true, | 210 | enableHotkeys: true, |
211 | |||
208 | peertubeLink: this.peertubeLink, | 212 | peertubeLink: this.peertubeLink, |
213 | instanceName: serverConfig.instance.name, | ||
214 | |||
209 | poster: window.location.origin + video.previewPath, | 215 | poster: window.location.origin + video.previewPath, |
210 | theaterButton: false, | 216 | theaterButton: false, |
211 | 217 | ||