mirror of
https://github.com/jwetzell/showbridge-webui.git
synced 2026-08-18 12:43:57 +00:00
relayout folders
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
import { Component, inject, input, model } from '@angular/core';
|
||||
import { MatSnackBar } from '@angular/material/snack-bar';
|
||||
import { ModuleConfiguration, RouteConfiguration } from '../../models/config.models';
|
||||
import { SchemaService } from '../../services/schema.service';
|
||||
import { RouteComponent } from '../route/route.component';
|
||||
import { MatButtonModule } from '@angular/material/button';
|
||||
import { MatIconModule } from '@angular/material/icon';
|
||||
import { MatMenuModule } from '@angular/material/menu';
|
||||
import { MatTooltipModule } from '@angular/material/tooltip';
|
||||
|
||||
@Component({
|
||||
selector: 'app-route-list',
|
||||
imports: [
|
||||
RouteComponent,
|
||||
MatMenuModule,
|
||||
MatIconModule,
|
||||
MatButtonModule,
|
||||
MatTooltipModule,
|
||||
],
|
||||
templateUrl: './route-list.component.html',
|
||||
styleUrl: './route-list.component.css',
|
||||
})
|
||||
export class RouteListComponent {
|
||||
|
||||
routes = model<RouteConfiguration[]>();
|
||||
moduleIds = input<string[]>();
|
||||
public schemaService = inject(SchemaService);
|
||||
|
||||
private snackBar = inject(MatSnackBar);
|
||||
|
||||
deleteRoute(index: number) {
|
||||
this.routes.update((routes) => {
|
||||
if (routes) {
|
||||
routes?.splice(index, 1);
|
||||
return [...routes];
|
||||
}
|
||||
return routes;
|
||||
});
|
||||
this.snackBar.open('Route Removed', 'Dismiss', {
|
||||
duration: 3000,
|
||||
});
|
||||
}
|
||||
|
||||
routeUpdated(index: number, route: RouteConfiguration | undefined) {
|
||||
if (route === undefined) {
|
||||
console.error('route is undefined, not updating');
|
||||
return;
|
||||
}
|
||||
this.routes.update((routes) => {
|
||||
if (routes) {
|
||||
routes[index].input = route.input;
|
||||
routes[index].output = route.output;
|
||||
return [...routes];
|
||||
}
|
||||
return routes;
|
||||
});
|
||||
}
|
||||
|
||||
addRoute() {
|
||||
const routeTemplate = this.schemaService.getSkeletonForRoute();
|
||||
this.routes.update((routes) => {
|
||||
if (!routes) {
|
||||
routes = [];
|
||||
}
|
||||
routes?.push(routeTemplate);
|
||||
return [...routes];
|
||||
});
|
||||
this.snackBar.open('Route Added', 'Dismiss', {
|
||||
duration: 3000,
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user