import { Component, ElementRef, Input, ViewChild } from '@angular/core'
-import { NotificationsService } from 'angular2-notifications'
+import { Notifier } from '@app/core'
import { VideoDetails } from '../../../shared/video/video-details.model'
-import { buildVideoEmbed } from '../../../../assets/player/utils'
+import { buildVideoEmbed, buildVideoLink } from '../../../../assets/player/utils'
import { I18n } from '@ngx-translate/i18n-polyfill'
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
+import { durationToString } from '@app/shared/misc/utils'
@Component({
selector: 'my-video-share',
styleUrls: [ './video-share.component.scss' ]
})
export class VideoShareComponent {
+ @ViewChild('modal') modal: ElementRef
+
@Input() video: VideoDetails = null
- @ViewChild('modal') modal: ElementRef
+ startAtCheckbox = false
+ currentVideoTimestampString: string
+
+ private currentVideoTimestamp: number
constructor (
private modalService: NgbModal,
- private notificationsService: NotificationsService,
+ private notifier: Notifier,
private i18n: I18n
- ) {
- // empty
- }
+ ) { }
+
+ show (currentVideoTimestamp?: number) {
+ this.currentVideoTimestamp = Math.floor(currentVideoTimestamp)
+ this.currentVideoTimestampString = durationToString(this.currentVideoTimestamp)
- show () {
this.modalService.open(this.modal)
}
getVideoIframeCode () {
- return buildVideoEmbed(this.video.embedUrl)
+ const embedUrl = buildVideoLink(this.getVideoTimestampIfEnabled(), this.video.embedUrl)
+
+ return buildVideoEmbed(embedUrl)
}
getVideoUrl () {
- return window.location.href
+ return buildVideoLink(this.getVideoTimestampIfEnabled())
}
notSecure () {
}
activateCopiedMessage () {
- this.notificationsService.success(this.i18n('Success'), this.i18n('Copied'))
+ this.notifier.success(this.i18n('Copied'))
+ }
+
+ getStartCheckboxLabel () {
+ return this.i18n('Start at {{timestamp}}', { timestamp: this.currentVideoTimestampString })
+ }
+
+ private getVideoTimestampIfEnabled () {
+ if (this.startAtCheckbox === true) return this.currentVideoTimestamp
+
+ return undefined
}
}