From 1ebddadd0704812a4600c39cabe2268321e88331 Mon Sep 17 00:00:00 2001 From: Rigel Kent Date: Mon, 22 Jun 2020 13:00:39 +0200 Subject: predefined report reasons & improved reporter UI (#2842) - added `startAt` and `endAt` optional timestamps to help pin down reported sections of a video - added predefined report reasons - added video player with report modal --- .../videos/abuse/video-abuse-create.model.ts | 5 ++++ .../videos/abuse/video-abuse-reason.model.ts | 33 ++++++++++++++++++++++ shared/models/videos/abuse/video-abuse.model.ts | 5 ++++ shared/models/videos/index.ts | 1 + 4 files changed, 44 insertions(+) create mode 100644 shared/models/videos/abuse/video-abuse-reason.model.ts (limited to 'shared/models/videos') diff --git a/shared/models/videos/abuse/video-abuse-create.model.ts b/shared/models/videos/abuse/video-abuse-create.model.ts index db6458275..c93cb8b2c 100644 --- a/shared/models/videos/abuse/video-abuse-create.model.ts +++ b/shared/models/videos/abuse/video-abuse-create.model.ts @@ -1,3 +1,8 @@ +import { VideoAbusePredefinedReasonsString } from './video-abuse-reason.model' + export interface VideoAbuseCreate { reason: string + predefinedReasons?: VideoAbusePredefinedReasonsString[] + startAt?: number + endAt?: number } diff --git a/shared/models/videos/abuse/video-abuse-reason.model.ts b/shared/models/videos/abuse/video-abuse-reason.model.ts new file mode 100644 index 000000000..9064f0c1a --- /dev/null +++ b/shared/models/videos/abuse/video-abuse-reason.model.ts @@ -0,0 +1,33 @@ +export enum VideoAbusePredefinedReasons { + VIOLENT_OR_REPULSIVE = 1, + HATEFUL_OR_ABUSIVE, + SPAM_OR_MISLEADING, + PRIVACY, + RIGHTS, + SERVER_RULES, + THUMBNAILS, + CAPTIONS +} + +export type VideoAbusePredefinedReasonsString = + 'violentOrRepulsive' | + 'hatefulOrAbusive' | + 'spamOrMisleading' | + 'privacy' | + 'rights' | + 'serverRules' | + 'thumbnails' | + 'captions' + +export const videoAbusePredefinedReasonsMap: { + [key in VideoAbusePredefinedReasonsString]: VideoAbusePredefinedReasons +} = { + violentOrRepulsive: VideoAbusePredefinedReasons.VIOLENT_OR_REPULSIVE, + hatefulOrAbusive: VideoAbusePredefinedReasons.HATEFUL_OR_ABUSIVE, + spamOrMisleading: VideoAbusePredefinedReasons.SPAM_OR_MISLEADING, + privacy: VideoAbusePredefinedReasons.PRIVACY, + rights: VideoAbusePredefinedReasons.RIGHTS, + serverRules: VideoAbusePredefinedReasons.SERVER_RULES, + thumbnails: VideoAbusePredefinedReasons.THUMBNAILS, + captions: VideoAbusePredefinedReasons.CAPTIONS +} diff --git a/shared/models/videos/abuse/video-abuse.model.ts b/shared/models/videos/abuse/video-abuse.model.ts index f2c2cdc41..38605dcac 100644 --- a/shared/models/videos/abuse/video-abuse.model.ts +++ b/shared/models/videos/abuse/video-abuse.model.ts @@ -2,10 +2,12 @@ import { Account } from '../../actors/index' import { VideoConstant } from '../video-constant.model' import { VideoAbuseState } from './video-abuse-state.model' import { VideoChannel } from '../channel/video-channel.model' +import { VideoAbusePredefinedReasonsString } from './video-abuse-reason.model' export interface VideoAbuse { id: number reason: string + predefinedReasons?: VideoAbusePredefinedReasonsString[] reporterAccount: Account state: VideoConstant @@ -25,6 +27,9 @@ export interface VideoAbuse { createdAt: Date updatedAt: Date + startAt: number + endAt: number + count?: number nth?: number diff --git a/shared/models/videos/index.ts b/shared/models/videos/index.ts index 51ccb9fbd..58bd1ebd7 100644 --- a/shared/models/videos/index.ts +++ b/shared/models/videos/index.ts @@ -4,6 +4,7 @@ export * from './rate/account-video-rate.model' export * from './rate/user-video-rate.type' export * from './abuse/video-abuse-state.model' export * from './abuse/video-abuse-create.model' +export * from './abuse/video-abuse-reason.model' export * from './abuse/video-abuse.model' export * from './abuse/video-abuse-update.model' export * from './blacklist/video-blacklist.model' -- cgit v1.2.3