mirror of https://github.com/Chocobozzz/PeerTube
48 lines
1.4 KiB
TypeScript
48 lines
1.4 KiB
TypeScript
import { Component, Input, OnInit } from '@angular/core'
|
|
import { durationToString } from '@app/helpers'
|
|
import { AbusePredefinedReasonsString } from '@shared/models'
|
|
import { ProcessedAbuse } from './processed-abuse.model'
|
|
|
|
@Component({
|
|
selector: 'my-abuse-details',
|
|
templateUrl: './abuse-details.component.html',
|
|
styleUrls: [ '../shared-moderation/moderation.scss', './abuse-details.component.scss' ]
|
|
})
|
|
export class AbuseDetailsComponent implements OnInit {
|
|
@Input() abuse: ProcessedAbuse
|
|
@Input() isAdminView: boolean
|
|
|
|
predefinedReasons: { id: string, label: string }[]
|
|
private predefinedReasonsTranslations: { [key in AbusePredefinedReasonsString]: string }
|
|
|
|
constructor () {
|
|
this.predefinedReasonsTranslations = {
|
|
violentOrRepulsive: $localize`Violent or Repulsive`,
|
|
hatefulOrAbusive: $localize`Hateful or Abusive`,
|
|
spamOrMisleading: $localize`Spam or Misleading`,
|
|
privacy: $localize`Privacy`,
|
|
rights: $localize`Copyright`,
|
|
serverRules: $localize`Server rules`,
|
|
thumbnails: $localize`Thumbnails`,
|
|
captions: $localize`Captions`
|
|
}
|
|
}
|
|
|
|
ngOnInit (): void {
|
|
if (!this.abuse.predefinedReasons) return
|
|
|
|
this.predefinedReasons = this.abuse.predefinedReasons.map(r => ({
|
|
id: r,
|
|
label: this.predefinedReasonsTranslations[r]
|
|
}))
|
|
}
|
|
|
|
get startAt () {
|
|
return durationToString(this.abuse.video.startAt)
|
|
}
|
|
|
|
get endAt () {
|
|
return durationToString(this.abuse.video.endAt)
|
|
}
|
|
}
|