X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2Fshared%2Fshared-abuse-list%2Fabuse-list-table.component.ts;h=07b9dddba01335b3958322bc7014b3de348959f7;hb=8cbc40b2fe9d36ef0505b9441276ca561342e9e9;hp=807665b9c4a4da633afc8c790b7d28d18e0ce294;hpb=5beb89f223539f1e415a976ff104f772526b4d20;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/shared/shared-abuse-list/abuse-list-table.component.ts b/client/src/app/shared/shared-abuse-list/abuse-list-table.component.ts index 807665b9c..07b9dddba 100644 --- a/client/src/app/shared/shared-abuse-list/abuse-list-table.component.ts +++ b/client/src/app/shared/shared-abuse-list/abuse-list-table.component.ts @@ -3,7 +3,7 @@ import truncate from 'lodash-es/truncate' import { SortMeta } from 'primeng/api' import { buildVideoLink, buildVideoOrPlaylistEmbed } from 'src/assets/player/utils' import { environment } from 'src/environments/environment' -import { AfterViewInit, Component, Input, OnInit, ViewChild } from '@angular/core' +import { Component, Input, OnInit, ViewChild } from '@angular/core' import { DomSanitizer } from '@angular/platform-browser' import { ActivatedRoute, Router } from '@angular/router' import { ConfirmService, MarkdownService, Notifier, RestPagination, RestTable } from '@app/core' @@ -11,6 +11,7 @@ import { Account, Actor, DropdownAction, Video, VideoService } from '@app/shared import { AbuseService, BlocklistService, VideoBlockService } from '@app/shared/shared-moderation' import { VideoCommentService } from '@app/shared/shared-video-comment' import { AbuseState, AdminAbuse } from '@shared/models' +import { AdvancedInputFilter } from '../shared-forms' import { AbuseMessageModalComponent } from './abuse-message-modal.component' import { ModerationCommentModalComponent } from './moderation-comment-modal.component' import { ProcessedAbuse } from './processed-abuse.model' @@ -22,9 +23,8 @@ const logger = debug('peertube:moderation:AbuseListTableComponent') templateUrl: './abuse-list-table.component.html', styleUrls: [ '../shared-moderation/moderation.scss', './abuse-list-table.component.scss' ] }) -export class AbuseListTableComponent extends RestTable implements OnInit, AfterViewInit { +export class AbuseListTableComponent extends RestTable implements OnInit { @Input() viewType: 'admin' | 'user' - @Input() baseRoute: string @ViewChild('abuseMessagesModal', { static: true }) abuseMessagesModal: AbuseMessageModalComponent @ViewChild('moderationCommentModal', { static: true }) moderationCommentModal: ModerationCommentModalComponent @@ -36,6 +36,29 @@ export class AbuseListTableComponent extends RestTable implements OnInit, AfterV abuseActions: DropdownAction[][] = [] + inputFilters: AdvancedInputFilter[] = [ + { + queryParams: { 'search': 'state:pending' }, + label: $localize`Unsolved reports` + }, + { + queryParams: { 'search': 'state:accepted' }, + label: $localize`Accepted reports` + }, + { + queryParams: { 'search': 'state:rejected' }, + label: $localize`Refused reports` + }, + { + queryParams: { 'search': 'videoIs:blacklisted' }, + label: $localize`Reports with blocked videos` + }, + { + queryParams: { 'search': 'videoIs:deleted' }, + label: $localize`Reports with deleted videos` + } + ] + constructor ( protected route: ActivatedRoute, protected router: Router, @@ -66,11 +89,6 @@ export class AbuseListTableComponent extends RestTable implements OnInit, AfterV ] this.initialize() - this.listenToSearchChange() - } - - ngAfterViewInit () { - if (this.search) this.setTableFilter(this.search) } isAdminView () { @@ -86,7 +104,7 @@ export class AbuseListTableComponent extends RestTable implements OnInit, AfterV } onModerationCommentUpdated () { - this.loadData() + this.reloadData() } isAbuseAccepted (abuse: AdminAbuse) { @@ -106,7 +124,7 @@ export class AbuseListTableComponent extends RestTable implements OnInit, AfterV } getAccountUrl (abuse: ProcessedAbuse) { - return '/accounts/' + abuse.flaggedAccount.nameWithHost + return '/a/' + abuse.flaggedAccount.nameWithHost } getVideoEmbed (abuse: AdminAbuse) { @@ -117,14 +135,11 @@ export class AbuseListTableComponent extends RestTable implements OnInit, AfterV warningTitle: false, startTime: abuse.video.startAt, stopTime: abuse.video.endAt - }) + }), + abuse.video.name ) } - switchToDefaultAvatar ($event: Event) { - ($event.target as HTMLImageElement).src = Actor.GET_DEFAULT_AVATAR_URL() - } - async removeAbuse (abuse: AdminAbuse) { const res = await this.confirmService.confirm($localize`Do you really want to delete this abuse report?`, $localize`Delete`) if (res === false) return @@ -132,7 +147,7 @@ export class AbuseListTableComponent extends RestTable implements OnInit, AfterV this.abuseService.removeAbuse(abuse).subscribe( () => { this.notifier.success($localize`Abuse deleted.`) - this.loadData() + this.reloadData() }, err => this.notifier.error(err.message) @@ -142,7 +157,7 @@ export class AbuseListTableComponent extends RestTable implements OnInit, AfterV updateAbuseState (abuse: AdminAbuse, state: AbuseState) { this.abuseService.updateAbuse(abuse, { state }) .subscribe( - () => this.loadData(), + () => this.reloadData(), err => this.notifier.error(err.message) ) @@ -169,7 +184,7 @@ export class AbuseListTableComponent extends RestTable implements OnInit, AfterV return Actor.IS_LOCAL(abuse.reporterAccount.host) } - protected loadData () { + protected reloadData () { logger('Loading data.') const options = {