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 { FormsModule } from '@angular/forms'
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 { Actor } from '@app/shared/shared-main/account/actor.model'
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 blocklist: BlocklistService,
private userAdminService: UserAdminService,
private peertubeLocalStorage: LocalStorageService
private peertubeLocalStorage: LocalStorageService,
private hooks: HooksService,
private pluginService: PluginService
) {
super()
}
@ -133,10 +135,11 @@ export class UserListComponent extends RestTable <User> implements OnInit {
this.saveSelectedColumns()
}
ngOnInit () {
async ngOnInit () {
this.initialize()
await this.pluginService.ensurePluginsAreLoaded('admin-users')
this.bulkActions = [
const bulkActions: DropdownAction<User[]>[][] = [
[
{
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 = [
{ id: 'username', label: $localize`Username` },
{ id: 'role', label: $localize`Role` },

View File

@ -71,7 +71,8 @@ class PluginsManager {
'embed': new ReplaySubject<boolean>(1),
'my-library': 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

View File

@ -97,7 +97,10 @@ export const clientFilterHookObject = {
'filter:internal.player.videojs.options.result': true,
// 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

View File

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