From 118626c8752bee7b05c4e0b668852e1aba2416f1 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 21 Apr 2023 15:04:52 +0200 Subject: Implement runner in client side --- client/src/app/+admin/admin.component.ts | 39 +++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) (limited to 'client/src/app/+admin/admin.component.ts') diff --git a/client/src/app/+admin/admin.component.ts b/client/src/app/+admin/admin.component.ts index 630bfe253..d4d912c40 100644 --- a/client/src/app/+admin/admin.component.ts +++ b/client/src/app/+admin/admin.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit } from '@angular/core' -import { AuthService, ScreenService } from '@app/core' +import { AuthService, ScreenService, ServerService } from '@app/core' import { ListOverflowItem } from '@app/shared/shared-main' import { TopMenuDropdownParam } from '@app/shared/shared-main/misc/top-menu-dropdown.component' import { UserRight } from '@shared/models' @@ -14,7 +14,8 @@ export class AdminComponent implements OnInit { constructor ( private auth: AuthService, - private screen: ScreenService + private screen: ScreenService, + private server: ServerService ) { } get isBroadcastMessageDisplayed () { @@ -22,6 +23,14 @@ export class AdminComponent implements OnInit { } ngOnInit () { + this.server.configReloaded.subscribe(() => this.buildMenu()) + + this.buildMenu() + } + + private buildMenu () { + this.menuEntries = [] + this.buildOverviewItems() this.buildFederationItems() this.buildModerationItems() @@ -157,9 +166,23 @@ export class AdminComponent implements OnInit { children: [] } + if (this.isRemoteRunnersEnabled() && this.hasRunnersRight()) { + systemItems.children.push({ + label: $localize`Remote runners`, + iconName: 'codesandbox', + routerLink: '/admin/system/runners/runners-list' + }) + + systemItems.children.push({ + label: $localize`Runner jobs`, + iconName: 'globe', + routerLink: '/admin/system/runners/jobs-list' + }) + } + if (this.hasJobsRight()) { systemItems.children.push({ - label: $localize`Jobs`, + label: $localize`Local jobs`, iconName: 'circle-tick', routerLink: '/admin/system/jobs' }) @@ -226,6 +249,10 @@ export class AdminComponent implements OnInit { return this.auth.getUser().hasRight(UserRight.MANAGE_JOBS) } + private hasRunnersRight () { + return this.auth.getUser().hasRight(UserRight.MANAGE_RUNNERS) + } + private hasDebugRight () { return this.auth.getUser().hasRight(UserRight.MANAGE_DEBUG) } @@ -241,4 +268,10 @@ export class AdminComponent implements OnInit { private hasRegistrationsRight () { return this.auth.getUser().hasRight(UserRight.MANAGE_REGISTRATIONS) } + + private isRemoteRunnersEnabled () { + const config = this.server.getHTMLConfig() + + return config.transcoding.remoteRunners.enabled || config.live.transcoding.remoteRunners.enabled + } } -- cgit v1.2.3