feat(plugins): add filter:admin-user-list.bulk-actions.create.result

This commit is contained in:
kontrollanten 2024-03-14 06:50:09 +01:00
parent f4339cfb72
commit c1a8904154
4 changed files with 17 additions and 7 deletions

View File

@ -2,7 +2,7 @@ import { DatePipe, NgClass, NgIf } from '@angular/common'
import { Component, OnInit, ViewChild } from '@angular/core' import { Component, OnInit, ViewChild } from '@angular/core'
import { FormsModule } from '@angular/forms' import { FormsModule } from '@angular/forms'
import { ActivatedRoute, Router, RouterLink } from '@angular/router' import { ActivatedRoute, Router, RouterLink } from '@angular/router'
import { AuthService, ConfirmService, LocalStorageService, Notifier, RestPagination, RestTable } from '@app/core' import { AuthService, ConfirmService, HooksService, LocalStorageService, Notifier, PluginService, RestPagination, RestTable } from '@app/core'
import { formatICU, getAPIHost } from '@app/helpers' import { formatICU, getAPIHost } from '@app/helpers'
import { Actor } from '@app/shared/shared-main/account/actor.model' import { Actor } from '@app/shared/shared-main/account/actor.model'
import { BlocklistService } from '@app/shared/shared-moderation/blocklist.service' import { BlocklistService } from '@app/shared/shared-moderation/blocklist.service'
@ -114,7 +114,9 @@ export class UserListComponent extends RestTable <User> implements OnInit {
private auth: AuthService, private auth: AuthService,
private blocklist: BlocklistService, private blocklist: BlocklistService,
private userAdminService: UserAdminService, private userAdminService: UserAdminService,
private peertubeLocalStorage: LocalStorageService private peertubeLocalStorage: LocalStorageService,
private hooks: HooksService,
private pluginService: PluginService
) { ) {
super() super()
} }
@ -133,10 +135,11 @@ export class UserListComponent extends RestTable <User> implements OnInit {
this.saveSelectedColumns() this.saveSelectedColumns()
} }
ngOnInit () { async ngOnInit () {
this.initialize() this.initialize()
await this.pluginService.ensurePluginsAreLoaded('admin-users')
this.bulkActions = [ const bulkActions: DropdownAction<User[]>[][] = [
[ [
{ {
label: $localize`Delete`, label: $localize`Delete`,
@ -167,6 +170,8 @@ export class UserListComponent extends RestTable <User> implements OnInit {
] ]
] ]
this.bulkActions = await this.hooks.wrapObject(bulkActions, 'admin-users', 'filter:admin-user-list.bulk-actions.create.result')
this.columns = [ this.columns = [
{ id: 'username', label: $localize`Username` }, { id: 'username', label: $localize`Username` },
{ id: 'role', label: $localize`Role` }, { id: 'role', label: $localize`Role` },

View File

@ -71,7 +71,8 @@ class PluginsManager {
'embed': new ReplaySubject<boolean>(1), 'embed': new ReplaySubject<boolean>(1),
'my-library': new ReplaySubject<boolean>(1), 'my-library': new ReplaySubject<boolean>(1),
'video-channel': new ReplaySubject<boolean>(1), 'video-channel': new ReplaySubject<boolean>(1),
'my-account': new ReplaySubject<boolean>(1) 'my-account': new ReplaySubject<boolean>(1),
'admin-users': new ReplaySubject<boolean>(1)
} }
private readonly peertubeHelpersFactory: PeertubeHelpersFactory private readonly peertubeHelpersFactory: PeertubeHelpersFactory

View File

@ -97,7 +97,10 @@ export const clientFilterHookObject = {
'filter:internal.player.videojs.options.result': true, 'filter:internal.player.videojs.options.result': true,
// Filter p2p media loader options built for PeerTube player // Filter p2p media loader options built for PeerTube player
'filter:internal.player.p2p-media-loader.options.result': true 'filter:internal.player.p2p-media-loader.options.result': true,
// Filter bulk actions in user list
'filter:admin-user-list.bulk-actions.create.result': true
} }
export type ClientFilterHookName = keyof typeof clientFilterHookObject export type ClientFilterHookName = keyof typeof clientFilterHookObject

View File

@ -9,4 +9,5 @@ export type PluginClientScope =
'admin-plugin' | 'admin-plugin' |
'my-library' | 'my-library' |
'video-channel' | 'video-channel' |
'my-account' 'my-account' |
'admin-users'