Fix dropdown on video miniature for unlogged users
This commit is contained in:
parent
941c5eac17
commit
3d216ea0f7
|
@ -18,6 +18,11 @@
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="documentation">
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="privacy-contributors">
|
<div class="privacy-contributors">
|
||||||
<my-about-peertube-contributors></my-about-peertube-contributors>
|
<my-about-peertube-contributors></my-about-peertube-contributors>
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<div class="dropdown-root" ngbDropdown [placement]="placement">
|
<div class="dropdown-root" ngbDropdown [placement]="placement" *ngIf="areActionsDisplayed(actions, entry)">
|
||||||
<div
|
<div
|
||||||
class="action-button" [ngClass]="{ small: buttonSize === 'small', grey: theme === 'grey', orange: theme === 'orange', 'button-styled': buttonStyled }"
|
class="action-button" [ngClass]="{ small: buttonSize === 'small', grey: theme === 'grey', orange: theme === 'orange', 'button-styled': buttonStyled }"
|
||||||
ngbDropdownToggle role="button"
|
ngbDropdownToggle role="button"
|
||||||
|
|
|
@ -38,7 +38,11 @@ export class ActionDropdownComponent<T> {
|
||||||
return [ this.actions ]
|
return [ this.actions ]
|
||||||
}
|
}
|
||||||
|
|
||||||
areActionsDisplayed (actions: DropdownAction<T>[], entry: T) {
|
areActionsDisplayed (actions: Array<DropdownAction<T> | DropdownAction<T>[]>, entry: T): boolean {
|
||||||
return actions.some(a => a.isDisplayed === undefined || a.isDisplayed(entry))
|
return actions.some(a => {
|
||||||
|
if (Array.isArray(a)) return this.areActionsDisplayed(a, entry)
|
||||||
|
|
||||||
|
return a.isDisplayed === undefined || a.isDisplayed(entry)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -69,7 +69,7 @@ export class VideoWatchComponent implements OnInit, OnDestroy {
|
||||||
likesBarTooltipText = ''
|
likesBarTooltipText = ''
|
||||||
hasAlreadyAcceptedPrivacyConcern = false
|
hasAlreadyAcceptedPrivacyConcern = false
|
||||||
remoteServerDown = false
|
remoteServerDown = false
|
||||||
hotkeys: Hotkey[]
|
hotkeys: Hotkey[] = []
|
||||||
|
|
||||||
private nextVideoUuid = ''
|
private nextVideoUuid = ''
|
||||||
private currentTime: number
|
private currentTime: number
|
||||||
|
@ -147,7 +147,7 @@ export class VideoWatchComponent implements OnInit, OnDestroy {
|
||||||
if (this.queryParamsSub) this.queryParamsSub.unsubscribe()
|
if (this.queryParamsSub) this.queryParamsSub.unsubscribe()
|
||||||
|
|
||||||
// Unbind hotkeys
|
// Unbind hotkeys
|
||||||
if (this.isUserLoggedIn()) this.hotkeysService.remove(this.hotkeys)
|
this.hotkeysService.remove(this.hotkeys)
|
||||||
}
|
}
|
||||||
|
|
||||||
setLike () {
|
setLike () {
|
||||||
|
@ -650,21 +650,6 @@ export class VideoWatchComponent implements OnInit, OnDestroy {
|
||||||
|
|
||||||
private initHotkeys () {
|
private initHotkeys () {
|
||||||
this.hotkeys = [
|
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
|
// These hotkeys are managed by the player
|
||||||
new Hotkey('f', e => e, undefined, this.i18n('Enter/exit fullscreen (requires player focus)')),
|
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)')),
|
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)'))
|
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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user