hide missing components in ui

This commit is contained in:
Michele Artini 2023-11-21 15:03:09 +01:00
parent 53529ac22e
commit b8e0c369a5
4 changed files with 46 additions and 15 deletions

View File

@ -0,0 +1,18 @@
import { Injectable } from '@angular/core';
import { Service } from './is.model';
@Injectable({ providedIn: 'root' })
export class SharedInfoService {
private runningServiceTypes = new Set<string>();
constructor() { }
getRunningServiceTypes() {
return this.runningServiceTypes;
}
addRunningServiceType(serviceType: string) {
this.runningServiceTypes.add(serviceType);
}
}

View File

@ -5,6 +5,7 @@ import { ActivatedRoute } from '@angular/router';
import { MatDialog, MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
import { Module, Service } from '../common/is.model';
import { InfoClient } from './info.client';
import { SharedInfoService } from '../common/shared-info.service';
export interface KeyValueDatasource {
name: string;
@ -24,7 +25,7 @@ export class InfoComponent {
@ViewChild(MatSort) sort: MatSort | undefined
constructor(public client: InfoClient, public route: ActivatedRoute, public dialog: MatDialog) {
constructor(public client: InfoClient, public sharedInfo: SharedInfoService, public route: ActivatedRoute, public dialog: MatDialog) {
}
ngOnInit() {
@ -37,7 +38,10 @@ export class InfoComponent {
reload() {
this.client.availableServices((data: Service[]) => {
data.forEach(service => service.status = 0);
data.forEach(service => {
this.sharedInfo.addRunningServiceType(service.type);
service.status = 0;
});
this.servicesDatasource.data = data;
});
}

View File

@ -10,7 +10,7 @@
</mat-expansion-panel-header>
<a class="menu-item" routerLink="">Home</a>
</mat-expansion-panel>
<mat-expansion-panel>
<mat-expansion-panel *ngIf="sharedInfo.getRunningServiceTypes().has('datasource_manager')">
<mat-expansion-panel-header>
<mat-panel-title>Datasources</mat-panel-title>
</mat-expansion-panel-header>
@ -19,7 +19,7 @@
</div>
</mat-expansion-panel>
<mat-expansion-panel>
<mat-expansion-panel *ngIf="sharedInfo.getRunningServiceTypes().has('resource_manager')">
<mat-expansion-panel-header>
<mat-panel-title>Simple Resources</mat-panel-title>
</mat-expansion-panel-header>
@ -38,15 +38,20 @@
<mat-panel-title>Advanced Resources</mat-panel-title>
</mat-expansion-panel-header>
<div>
<a class="menu-item" [routerLink]="['contexts']">Contexts</a>
<a class="menu-item" [routerLink]="['protocols']">Protocols</a>
<a class="menu-item" [routerLink]="['vocabularies']">Vocabularies</a>
<a class="menu-item" [routerLink]="['index']">Index Configurations</a>
<a class="menu-item" [routerLink]="['oai']">Oai Configuration</a>
<a class="menu-item" [routerLink]="['contexts']"
*ngIf="sharedInfo.getRunningServiceTypes().has('context_manager')">Contexts</a>
<a class="menu-item" [routerLink]="['protocols']"
*ngIf="sharedInfo.getRunningServiceTypes().has('datasource_manager')">Protocols</a>
<a class="menu-item" [routerLink]="['vocabularies']"
*ngIf="sharedInfo.getRunningServiceTypes().has('vocabulary_manager')">Vocabularies</a>
<a class="menu-item" [routerLink]="['index']"
*ngIf="sharedInfo.getRunningServiceTypes().has('index_manager')">Index Configurations</a>
<a class="menu-item" [routerLink]="['oai']" *ngIf="sharedInfo.getRunningServiceTypes().has('oai_manager')">Oai
Configuration</a>
</div>
</mat-expansion-panel>
<mat-expansion-panel>
<mat-expansion-panel *ngIf="sharedInfo.getRunningServiceTypes().has('wf_manager')">
<mat-expansion-panel-header>
<mat-panel-title>Workflows</mat-panel-title>
</mat-expansion-panel-header>
@ -62,12 +67,14 @@
<mat-panel-title>Tools</mat-panel-title>
</mat-expansion-panel-header>
<div>
<a class="menu-item" routerLink="mdstores">MDStore Inspector</a>
<a class="menu-item" routerLink="cleaner">Cleaner Tester</a>
<a class="menu-item" routerLink="mdstores"
*ngIf="sharedInfo.getRunningServiceTypes().has('mdstore_manager')">MDStore Inspector</a>
<a class="menu-item" routerLink="cleaner" *ngIf="sharedInfo.getRunningServiceTypes().has('wf_manager')">Cleaner
Tester</a>
</div>
</mat-expansion-panel>
<mat-expansion-panel>
<mat-expansion-panel *ngIf="sharedInfo.getRunningServiceTypes().has('wf_manager')">
<mat-expansion-panel-header>
<mat-panel-title>Logs</mat-panel-title>
</mat-expansion-panel-header>
@ -81,7 +88,8 @@
<mat-panel-title>Info</mat-panel-title>
</mat-expansion-panel-header>
<div>
<a class="menu-item" routerLink="info">Container Info</a>
<a class="menu-item" routerLink="info" *ngIf="sharedInfo.getRunningServiceTypes().has('is_manager')">Container
Info</a>
</div>
</mat-expansion-panel>
</mat-accordion>

View File

@ -2,6 +2,7 @@ import { Component, ViewChild } from '@angular/core';
import { KeyValue, ResourceType, WfSection } from '../common/is.model';
import { MatAccordion } from '@angular/material/expansion';
import { MainMenuPanelsClient } from './main-menu-panels.client';
import { SharedInfoService } from '../common/shared-info.service';
@Component({
@ -17,7 +18,7 @@ export class MainMenuPanelsComponent {
resTypes: ResourceType[] = [];
wfSections: WfSection[] = [];
constructor(public client: MainMenuPanelsClient) {
constructor(public client: MainMenuPanelsClient, public sharedInfo: SharedInfoService) {
client.loadResourceTypes((data: ResourceType[]) => this.resTypes = data);
client.loadWfSections((data: WfSection[]) => this.wfSections = data);
}