Fix dropdown on video miniature for unlogged users

pull/2302/head
Chocobozzz 2019-12-06 11:07:30 +01:00
parent 941c5eac17
commit 3d216ea0f7
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
4 changed files with 35 additions and 21 deletions

View File

@ -18,6 +18,11 @@
</p>
</div>
<div class="documentation">
</div>
<div class="privacy-contributors">
<my-about-peertube-contributors></my-about-peertube-contributors>

View File

@ -1,4 +1,4 @@
<div class="dropdown-root" ngbDropdown [placement]="placement">
<div class="dropdown-root" ngbDropdown [placement]="placement" *ngIf="areActionsDisplayed(actions, entry)">
<div
class="action-button" [ngClass]="{ small: buttonSize === 'small', grey: theme === 'grey', orange: theme === 'orange', 'button-styled': buttonStyled }"
ngbDropdownToggle role="button"

View File

@ -38,7 +38,11 @@ export class ActionDropdownComponent<T> {
return [ this.actions ]
}
areActionsDisplayed (actions: DropdownAction<T>[], entry: T) {
return actions.some(a => a.isDisplayed === undefined || a.isDisplayed(entry))
areActionsDisplayed (actions: Array<DropdownAction<T> | DropdownAction<T>[]>, entry: T): boolean {
return actions.some(a => {
if (Array.isArray(a)) return this.areActionsDisplayed(a, entry)
return a.isDisplayed === undefined || a.isDisplayed(entry)
})
}
}

View File

@ -69,7 +69,7 @@ export class VideoWatchComponent implements OnInit, OnDestroy {
likesBarTooltipText = ''
hasAlreadyAcceptedPrivacyConcern = false
remoteServerDown = false
hotkeys: Hotkey[]
hotkeys: Hotkey[] = []
private nextVideoUuid = ''
private currentTime: number
@ -147,7 +147,7 @@ export class VideoWatchComponent implements OnInit, OnDestroy {
if (this.queryParamsSub) this.queryParamsSub.unsubscribe()
// Unbind hotkeys
if (this.isUserLoggedIn()) this.hotkeysService.remove(this.hotkeys)
this.hotkeysService.remove(this.hotkeys)
}
setLike () {
@ -650,21 +650,6 @@ export class VideoWatchComponent implements OnInit, OnDestroy {
private initHotkeys () {
this.hotkeys = [
new Hotkey('shift+l', () => {
this.setLike()
return false
}, undefined, this.i18n('Like the video')),
new Hotkey('shift+d', () => {
this.setDislike()
return false
}, undefined, this.i18n('Dislike the video')),
new Hotkey('shift+s', () => {
this.subscribeButton.subscribed ? this.subscribeButton.unsubscribe() : this.subscribeButton.subscribe()
return false
}, undefined, this.i18n('Subscribe to the account')),
// These hotkeys are managed by the player
new Hotkey('f', e => e, undefined, this.i18n('Enter/exit fullscreen (requires player focus)')),
new Hotkey('space', e => e, undefined, this.i18n('Play/Pause the video (requires player focus)')),
@ -683,6 +668,26 @@ export class VideoWatchComponent implements OnInit, OnDestroy {
new Hotkey('.', e => e, undefined, this.i18n('Navigate in the video frame by frame (requires player focus)'))
]
if (this.isUserLoggedIn()) this.hotkeysService.add(this.hotkeys)
if (this.isUserLoggedIn()) {
this.hotkeys = this.hotkeys.concat([
new Hotkey('shift+l', () => {
this.setLike()
return false
}, undefined, this.i18n('Like the video')),
new Hotkey('shift+d', () => {
this.setDislike()
return false
}, undefined, this.i18n('Dislike the video')),
new Hotkey('shift+s', () => {
this.subscribeButton.subscribed ? this.subscribeButton.unsubscribe() : this.subscribeButton.subscribe()
return false
}, undefined, this.i18n('Subscribe to the account'))
])
}
this.hotkeysService.add(this.hotkeys)
}
}