Merge pull request #1365 from GNS3/enhancement/1355

Enhancement/1355
This commit is contained in:
Jeremy Grossmann 2022-07-26 23:50:17 +02:00 committed by GitHub
commit f75e7e0e10
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
33 changed files with 540 additions and 230 deletions

View File

@ -215,7 +215,7 @@ const routes: Routes = [
}, },
{ path: 'controller/:controller_id/preferences/docker/addtemplate', component: AddDockerTemplateComponent, canActivate: [LoginGuard] }, { path: 'controller/:controller_id/preferences/docker/addtemplate', component: AddDockerTemplateComponent, canActivate: [LoginGuard] },
{ path: 'controller/:controller_id/preferences/iou/templates', component: IouTemplatesComponent, canActivate: [LoginGuard] }, { path: 'controller/:controller_id/preferences/iou/templates', component: IouTemplatesComponent, canActivate: [LoginGuard] },
{ path: 'controller/:controller_id//preferences/iou/templates/:template_id', component: IouTemplateDetailsComponent, canActivate: [LoginGuard] }, { path: 'controller/:controller_id/preferences/iou/templates/:template_id', component: IouTemplateDetailsComponent, canActivate: [LoginGuard] },
{ {
path: 'controller/:controller_id/preferences/iou/templates/:template_id/copy', path: 'controller/:controller_id/preferences/iou/templates/:template_id/copy',
component: CopyIouTemplateComponent, component: CopyIouTemplateComponent,

View File

@ -1,22 +1,26 @@
<div class="content"> <div class="content">
<div class="default-header"> <div class="default-header">
<div class="row"> <div class="row">
<h1 class="col">Built-in preferences</h1> <div class=" col col-md-1">
<button class="top-button" class="cancel-button" routerLink="/controller/{{ controllerId }}/preferences" mat-button> <button class="top-button" class="cancel-button" routerLink="/controller/{{ controllerId }}/preferences" mat-button>
Back <mat-icon>arrow_back</mat-icon>
</button> </button>
</div> </div>
<div class="col-md-11">
<h1 class="col">Built-in templates</h1>
</div>
</div>
</div> </div>
<div class="default-content"> <div class="default-content">
<div class="listcontainer mat-elevation-z8"> <div class="listcontainer mat-elevation-z8">
<mat-nav-list> <mat-nav-list>
<mat-list-item routerLink="/controller/{{ controllerId }}/preferences/builtin/ethernet-hubs"> <mat-list-item routerLink="/controller/{{ controllerId }}/preferences/builtin/ethernet-hubs">
Ethernet hubs Ethernet hub templates
</mat-list-item> </mat-list-item>
<mat-list-item routerLink="/controller/{{ controllerId }}/preferences/builtin/ethernet-switches"> <mat-list-item routerLink="/controller/{{ controllerId }}/preferences/builtin/ethernet-switches">
Ethernet switches Ethernet switch templates
</mat-list-item> </mat-list-item>
<mat-list-item routerLink="/controller/{{ controllerId }}/preferences/builtin/cloud-nodes"> Cloud nodes </mat-list-item> <mat-list-item routerLink="/controller/{{ controllerId }}/preferences/builtin/cloud-nodes"> Cloud node templates </mat-list-item>
</mat-nav-list> </mat-nav-list>
</div> </div>
</div> </div>

View File

@ -1,9 +1,16 @@
<div class="content"> <div class="content">
<div class="default-header"> <div class="default-header">
<div class="row"> <div class="row">
<div class="col col-md-1">
<button *ngIf="controller" class="top-button" class="cancel-button col" (click)="goBack()" mat-button>
<mat-icon>arrow_back</mat-icon>
</button>
</div>
<div class="col-md-11">
<h1 class="col">New cloud node template</h1> <h1 class="col">New cloud node template</h1>
</div> </div>
</div> </div>
</div>
<div class="default-content"> <div class="default-content">
<mat-card class="matCard"> <mat-card class="matCard">
<mat-radio-group class="radio-group"> <mat-radio-group class="radio-group">

View File

@ -1,7 +1,7 @@
<div class="content"> <div class="content">
<div class="default-header"> <div class="default-header">
<div class="row"> <div class="row">
<h1 class="col">Cloud nodes templates</h1> <div class="col-md-1">
<button <button
*ngIf="controller" *ngIf="controller"
class="top-button" class="top-button"
@ -9,18 +9,26 @@
routerLink="/controller/{{ controller.id }}/preferences/builtin" routerLink="/controller/{{ controller.id }}/preferences/builtin"
mat-button mat-button
> >
Back <mat-icon>arrow_back</mat-icon>
</button>
<button
*ngIf="controller"
class="top-button"
routerLink="/controller/{{ controller.id }}/preferences/builtin/cloud-nodes/addtemplate"
mat-raised-button
color="primary"
>
Add cloud node template
</button> </button>
</div> </div>
<div class="col-md-10">
<h1 class="col">Cloud nodes templates</h1>
</div>
<div class="col-md-1">
<button
*ngIf="controller"
class="top-button cancel-button"
matTooltip=" Add cloud node template"
matTooltipClass="custom-tooltip"
routerLink="/controller/{{ controller.id }}/preferences/builtin/cloud-nodes/addtemplate"
mat-button
>
<mat-icon>add_circle_outline</mat-icon>
</button>
</div>
</div>
</div> </div>
<app-empty-templates-list *ngIf="!cloudNodesTemplates.length"></app-empty-templates-list> <app-empty-templates-list *ngIf="!cloudNodesTemplates.length"></app-empty-templates-list>
<div class="default-content" *ngIf="cloudNodesTemplates.length"> <div class="default-content" *ngIf="cloudNodesTemplates.length">
@ -37,6 +45,9 @@
<button mat-menu-item (click)="deleteTemplate(template)"> <button mat-menu-item (click)="deleteTemplate(template)">
<mat-icon>delete</mat-icon><span>Delete</span> <mat-icon>delete</mat-icon><span>Delete</span>
</button> </button>
<button mat-menu-item routerLink="{{ template.template_id }}">
<mat-icon>edit</mat-icon><span>Edit</span>
</button>
</mat-menu> </mat-menu>
</div> </div>
</mat-nav-list> </mat-nav-list>

View File

@ -1,7 +1,21 @@
<div class="content"> <div class="content">
<div class="default-header"> <div class="default-header">
<div class="row"> <div class="row">
<div class="col-md-1">
<button
*ngIf="controller"
class="top-button"
class="cancel-button"
(click)="goBack()"
mat-button
>
<mat-icon>arrow_back</mat-icon>
</button>
</div>
<div class="col-md-11">
<h1 class="col">New Ethernet hub template</h1> <h1 class="col">New Ethernet hub template</h1>
</div>
</div> </div>
</div> </div>
<div class="default-content"> <div class="default-content">

View File

@ -1,9 +1,22 @@
<div class="content" [ngClass]="{ shadowed: isSymbolSelectionOpened }"> <div class="content" [ngClass]="{ shadowed: isSymbolSelectionOpened }">
<div class="default-header"> <div class="default-header">
<div class="row"> <div class="row">
<div class="col-md-1">
<button
*ngIf="controller"
class="top-button"
class="cancel-button"
(click)="goBack()"
mat-button
>
<mat-icon>arrow_back</mat-icon>
</button>
</div>
<div class="col-md-11">
<h1 class="col">Ethernet hub settings</h1> <h1 class="col">Ethernet hub settings</h1>
</div> </div>
</div> </div>
</div>
<div class="default-content" *ngIf="ethernetHubTemplate"> <div class="default-content" *ngIf="ethernetHubTemplate">
<mat-card> <mat-card>
<form [formGroup]="inputForm"> <form [formGroup]="inputForm">

View File

@ -1,7 +1,7 @@
<div class="content"> <div class="content">
<div class="default-header"> <div class="default-header">
<div class="row"> <div class="row">
<h1 class="col">Ethernet hubs templates</h1> <div class="col-md-1">
<button <button
*ngIf="controller" *ngIf="controller"
class="top-button" class="top-button"
@ -9,19 +9,26 @@
routerLink="/controller/{{ controller.id }}/preferences/builtin" routerLink="/controller/{{ controller.id }}/preferences/builtin"
mat-button mat-button
> >
Back <mat-icon>arrow_back</mat-icon>
</button> </button>
</div>
<div class="col-md-10">
<h1 class="col">Ethernet hubs templates</h1>
</div>
<div class="col-md-1">
<button <button
*ngIf="controller" *ngIf="controller"
class="top-button" class="top-button cancel-button"
matTooltip="Add Ethernet hub template"
matTooltipClass="custom-tooltip"
routerLink="/controller/{{ controller.id }}/preferences/builtin/ethernet-hubs/addtemplate" routerLink="/controller/{{ controller.id }}/preferences/builtin/ethernet-hubs/addtemplate"
mat-raised-button mat-button
color="primary"
> >
Add Ethernet hub template <mat-icon>add_circle_outline</mat-icon>
</button> </button>
</div> </div>
</div> </div>
</div>
<app-empty-templates-list *ngIf="!ethernetHubsTemplates.length"></app-empty-templates-list> <app-empty-templates-list *ngIf="!ethernetHubsTemplates.length"></app-empty-templates-list>
<div class="default-content" *ngIf="ethernetHubsTemplates.length"> <div class="default-content" *ngIf="ethernetHubsTemplates.length">
<div class="listcontainer mat-elevation-z8"> <div class="listcontainer mat-elevation-z8">
@ -37,6 +44,9 @@
<button mat-menu-item (click)="deleteTemplate(template)"> <button mat-menu-item (click)="deleteTemplate(template)">
<mat-icon>delete</mat-icon><span>Delete</span> <mat-icon>delete</mat-icon><span>Delete</span>
</button> </button>
<button mat-menu-item routerLink="{{ template.template_id }}">
<mat-icon>edit</mat-icon><span>Edit</span>
</button>
</mat-menu> </mat-menu>
</div> </div>
</mat-nav-list> </mat-nav-list>

View File

@ -1,9 +1,22 @@
<div class="content"> <div class="content">
<div class="default-header"> <div class="default-header">
<div class="row"> <div class="row">
<div class="col col-md-1">
<button
*ngIf="controller"
class="top-button"
class="cancel-button col"
(click)="goBack()"
mat-button
>
<mat-icon>arrow_back</mat-icon>
</button>
</div>
<div class="col-md-11">
<h1 class="col">New Ethernet switch template</h1> <h1 class="col">New Ethernet switch template</h1>
</div> </div>
</div> </div>
</div>
<div class="default-content"> <div class="default-content">
<mat-card class="matCard"> <mat-card class="matCard">
<mat-radio-group class="radio-group"> <mat-radio-group class="radio-group">

View File

@ -1,9 +1,16 @@
<div class="content" [ngClass]="{ shadowed: isSymbolSelectionOpened }"> <div class="content" [ngClass]="{ shadowed: isSymbolSelectionOpened }">
<div class="default-header"> <div class="default-header">
<div class="row"> <div class="row">
<div class="col col-md-1">
<button *ngIf="controller" class="top-button" class="cancel-button col" (click)="goBack()" mat-button>
<mat-icon>arrow_back</mat-icon>
</button>
</div>
<div class="col-md-11">
<h1 class="col">Ethernet switch configuration</h1> <h1 class="col">Ethernet switch configuration</h1>
</div> </div>
</div> </div>
</div>
<div class="default-content" *ngIf="ethernetSwitchTemplate"> <div class="default-content" *ngIf="ethernetSwitchTemplate">
<mat-accordion> <mat-accordion>
<mat-expansion-panel> <mat-expansion-panel>

View File

@ -1,7 +1,7 @@
<div class="content"> <div class="content">
<div class="default-header"> <div class="default-header">
<div class="row"> <div class="row">
<h1 class="col">Ethernet switches templates</h1> <div class="col-md-1">
<button <button
*ngIf="controller" *ngIf="controller"
class="top-button" class="top-button"
@ -9,18 +9,26 @@
routerLink="/controller/{{ controller.id }}/preferences/builtin" routerLink="/controller/{{ controller.id }}/preferences/builtin"
mat-button mat-button
> >
Back <mat-icon>arrow_back</mat-icon>
</button>
<button
*ngIf="controller"
class="top-button"
routerLink="/controller/{{ controller.id }}/preferences/builtin/ethernet-switches/addtemplate"
mat-raised-button
color="primary"
>
Add Ethernet switch template
</button> </button>
</div> </div>
<div class="col-md-10">
<h1 class="col">Ethernet switches templates</h1>
</div>
<div class="col-md-1">
<button
*ngIf="controller"
class="top-button cancel-button"
matTooltip="Add Ethernet switch template"
matTooltipClass="custom-tooltip"
routerLink="/controller/{{ controller.id }}/preferences/builtin/ethernet-switches/addtemplate"
mat-button
>
<mat-icon>add_circle_outline</mat-icon>
</button>
</div>
</div>
</div> </div>
<app-empty-templates-list *ngIf="!ethernetSwitchesTemplates.length"></app-empty-templates-list> <app-empty-templates-list *ngIf="!ethernetSwitchesTemplates.length"></app-empty-templates-list>
<div class="default-content" *ngIf="ethernetSwitchesTemplates.length"> <div class="default-content" *ngIf="ethernetSwitchesTemplates.length">
@ -37,6 +45,9 @@
<button mat-menu-item (click)="deleteTemplate(template)"> <button mat-menu-item (click)="deleteTemplate(template)">
<mat-icon>delete</mat-icon><span>Delete</span> <mat-icon>delete</mat-icon><span>Delete</span>
</button> </button>
<button mat-menu-item routerLink="{{ template.template_id }}">
<mat-icon>edit</mat-icon><span>Edit</span>
</button>
</mat-menu> </mat-menu>
</div> </div>
</mat-nav-list> </mat-nav-list>

View File

@ -1,9 +1,16 @@
<div class="content"> <div class="content">
<div class="default-header"> <div class="default-header">
<div class="row"> <div class="row">
<div class="col col-md-1">
<button class="top-button" *ngIf="controller" class="cancel-button" (click)="goBack()" mat-button>
<mat-icon>arrow_back</mat-icon>
</button>
</div>
<div class="col col-md-11">
<h1 class="col">Copy Docker container template</h1> <h1 class="col">Copy Docker container template</h1>
</div> </div>
</div> </div>
</div>
<div class="default-content"> <div class="default-content">
<div class="container mat-elevation-z8"> <div class="container mat-elevation-z8">
<form [formGroup]="templateNameForm"> <form [formGroup]="templateNameForm">

View File

@ -1,9 +1,16 @@
<div class="content" [ngClass]="{ shadowed: isSymbolSelectionOpened }"> <div class="content" [ngClass]="{ shadowed: isSymbolSelectionOpened }">
<div class="default-header"> <div class="default-header">
<div class="row"> <div class="row">
<div class="col col-md-1">
<button class="top-button" *ngIf="controller" class="cancel-button" (click)="goBack()" mat-button>
<mat-icon>arrow_back</mat-icon>
</button>
</div>
<div class="col col-md-11">
<h1 class="col">Docker image configuration</h1> <h1 class="col">Docker image configuration</h1>
</div> </div>
</div> </div>
</div>
<div class="default-content" *ngIf="dockerTemplate"> <div class="default-content" *ngIf="dockerTemplate">
<mat-accordion> <mat-accordion>
<mat-expansion-panel> <mat-expansion-panel>

View File

@ -1,26 +1,34 @@
<div class="content"> <div class="content">
<div class="default-header"> <div class="default-header">
<div class="row"> <div class="row">
<h1 class="col">Docker container templates</h1> <div class="col col-md-1">
<button <button
*ngIf="controller"
class="top-button" class="top-button"
*ngIf="controller"
class="cancel-button" class="cancel-button"
routerLink="/controller/{{ controller.id }}/preferences"
mat-button mat-button
routerLink="/controller/{{ controller.id }}/preferences"
> >
Back <mat-icon>arrow_back</mat-icon>
</button>
<button
*ngIf="controller"
class="top-button"
routerLink="/controller/{{ controller.id }}/preferences/docker/addtemplate"
mat-raised-button
color="primary"
>
Add Docker container template
</button> </button>
</div> </div>
<div class="col col-md-10">
<h1 class="col">Docker container templates</h1>
</div>
<div class="col col-md-1">
<button
*ngIf="controller"
class="top-button cancel-button"
matTooltip="Add Docker container template"
matTooltipClass="custom-tooltip"
routerLink="/controller/{{ controller.id }}/preferences/docker/addtemplate"
mat-button
>
<mat-icon>add_circle_outline</mat-icon>
</button>
</div>
</div>
</div> </div>
<app-empty-templates-list *ngIf="!dockerTemplates.length"></app-empty-templates-list> <app-empty-templates-list *ngIf="!dockerTemplates.length"></app-empty-templates-list>
<div class="default-content" *ngIf="dockerTemplates.length"> <div class="default-content" *ngIf="dockerTemplates.length">
@ -34,12 +42,15 @@
<mat-icon>more_vert</mat-icon> <mat-icon>more_vert</mat-icon>
</button> </button>
<mat-menu #menu="matMenu"> <mat-menu #menu="matMenu">
<button mat-menu-item (click)="deleteTemplate(template)"> <button mat-menu-item routerLink="{{ template.template_id }}">
<mat-icon>delete</mat-icon><span>Delete</span> <mat-icon>edit</mat-icon><span>Edit</span>
</button> </button>
<button mat-menu-item (click)="copyTemplate(template)"> <button mat-menu-item (click)="copyTemplate(template)">
<mat-icon>content_copy</mat-icon><span>Copy</span> <mat-icon>content_copy</mat-icon><span>Copy</span>
</button> </button>
<button mat-menu-item (click)="deleteTemplate(template)">
<mat-icon>delete</mat-icon><span>Delete</span>
</button>
</mat-menu> </mat-menu>
</div> </div>
</mat-nav-list> </mat-nav-list>

View File

@ -1,9 +1,22 @@
<div class="content"> <div class="content">
<div class="default-header"> <div class="default-header">
<div class="row"> <div class="row">
<div class="col col-md-1">
<button
class="top-button"
*ngIf="controller"
class="cancel-button"
mat-button
(click)="goBack()"
>
<mat-icon>arrow_back</mat-icon>
</button>
</div>
<div class="col col-md-11">
<h1 class="col">New IOS router template</h1> <h1 class="col">New IOS router template</h1>
</div> </div>
</div> </div>
</div>
<div class="default-content" *ngIf="iosTemplate"> <div class="default-content" *ngIf="iosTemplate">
<div class="container mat-elevation-z8"> <div class="container mat-elevation-z8">
<mat-vertical-stepper [linear]="true"> <mat-vertical-stepper [linear]="true">

View File

@ -1,9 +1,16 @@
<div class="content"> <div class="content">
<div class="default-header"> <div class="default-header">
<div class="row"> <div class="row">
<div class="col col-md-1">
<button class="top-button" *ngIf="controller" class="cancel-button" mat-button (click)="goBack()">
<mat-icon>arrow_back</mat-icon>
</button>
</div>
<div class="col col-md-11">
<h1 class="col">Copy IOS router template</h1> <h1 class="col">Copy IOS router template</h1>
</div> </div>
</div> </div>
</div>
<div class="default-content"> <div class="default-content">
<mat-card class="matCard"> <mat-card class="matCard">
<form [formGroup]="formGroup"> <form [formGroup]="formGroup">

View File

@ -1,27 +1,34 @@
<div class="content"> <div class="content">
<div class="default-header"> <div class="default-header">
<div class="row"> <div class="row">
<div class="col col-md-1">
<button
class="top-button"
*ngIf="controller"
class="cancel-button"
mat-button
routerLink="/controller/{{ controller.id }}/preferences"
>
<mat-icon>arrow_back</mat-icon>
</button>
</div>
<div class="col col-md-10">
<h1 class="col">IOS router templates</h1> <h1 class="col">IOS router templates</h1>
</div>
<div class="col col-md-1">
<button <button
*ngIf="controller" *ngIf="controller"
class="top-button" class="top-button cancel-button"
class="cancel-button" matTooltip="Add IOS router template"
routerLink="/controller/{{ controller.id }}/preferences" matTooltipClass="custom-tooltip"
routerLink="/controller/{{ controller.id }}/preferences/dynamips/templates/addtemplate"
mat-button mat-button
> >
Back <mat-icon>add_circle_outline</mat-icon>
</button>
<button
*ngIf="controller"
class="top-button"
routerLink="/controller/{{ controller.id }}/preferences/dynamips/templates/addtemplate"
mat-raised-button
color="primary"
>
Add IOS router template
</button> </button>
</div> </div>
</div> </div>
</div>
<app-empty-templates-list *ngIf="!iosTemplates.length"></app-empty-templates-list> <app-empty-templates-list *ngIf="!iosTemplates.length"></app-empty-templates-list>
<div class="default-content" *ngIf="iosTemplates.length"> <div class="default-content" *ngIf="iosTemplates.length">
<div class="listcontainer mat-elevation-z8"> <div class="listcontainer mat-elevation-z8">
@ -40,6 +47,9 @@
<button mat-menu-item (click)="copyTemplate(template)"> <button mat-menu-item (click)="copyTemplate(template)">
<mat-icon>content_copy</mat-icon><span>Copy</span> <mat-icon>content_copy</mat-icon><span>Copy</span>
</button> </button>
<button mat-menu-item routerLink="{{ template.template_id }}">
<mat-icon>edit</mat-icon><span>Edit</span>
</button>
</mat-menu> </mat-menu>
</div> </div>
</mat-nav-list> </mat-nav-list>

View File

@ -1,9 +1,22 @@
<div class="content"> <div class="content">
<div class="default-header"> <div class="default-header">
<div class="row"> <div class="row">
<div class="col col-md-1">
<button
class="top-button"
*ngIf="controller"
class="cancel-button"
mat-button
(click)="goBack()"
>
<mat-icon>arrow_back</mat-icon>
</button>
</div>
<div class="col col-md-11">
<h1 class="col">New IOU device template</h1> <h1 class="col">New IOU device template</h1>
</div> </div>
</div> </div>
</div>
<div class="default-content"> <div class="default-content">
<div class="container mat-elevation-z8"> <div class="container mat-elevation-z8">
<mat-vertical-stepper [linear]="true"> <mat-vertical-stepper [linear]="true">

View File

@ -1,9 +1,22 @@
<div class="content"> <div class="content">
<div class="default-header"> <div class="default-header">
<div class="row"> <div class="row">
<div class="col col-md-1">
<button
class="top-button"
*ngIf="controller"
class="cancel-button"
mat-button
(click)="goBack()"
>
<mat-icon>arrow_back</mat-icon>
</button>
</div>
<div class="col col-md-11">
<h1 class="col">Copy IOU device template</h1> <h1 class="col">Copy IOU device template</h1>
</div> </div>
</div> </div>
</div>
<div class="default-content"> <div class="default-content">
<mat-card class="matCard"> <mat-card class="matCard">
<form [formGroup]="templateNameForm"> <form [formGroup]="templateNameForm">

View File

@ -1,9 +1,18 @@
<div class="content" [ngClass]="{ shadowed: isSymbolSelectionOpened }"> <div class="content" [ngClass]="{ shadowed: isSymbolSelectionOpened }">
<div class="default-header"> <div class="default-header">
<div class="form-field"> <div class="form-field">
<div class="row">
<div class="col col-md-1">
<button *ngIf="controller" class="top-button" class="cancel-button" mat-button (click)="goBack()">
<mat-icon>arrow_back</mat-icon>
</button>
</div>
<div class="col col-md-11">
<h1 class="col">IOU device configuration</h1> <h1 class="col">IOU device configuration</h1>
</div> </div>
</div> </div>
</div>
</div>
<div class="default-content" *ngIf="iouTemplate"> <div class="default-content" *ngIf="iouTemplate">
<mat-accordion> <mat-accordion>
<mat-expansion-panel> <mat-expansion-panel>

View File

@ -1,27 +1,33 @@
<div class="content"> <div class="content">
<div class="default-header"> <div class="default-header">
<div class="row"> <div class="row">
<h1 class="col">IOU device templates</h1> <div class="col col-md-1">
<button <button
*ngIf="controller"
class="top-button" class="top-button"
class="cancel-button" class="cancel-button"
routerLink="/controller/{{ controller.id }}/preferences" routerLink="/controller/{{ controller?.id }}/preferences"
mat-button mat-button
> >
Back <mat-icon>arrow_back</mat-icon>
</button> </button>
</div>
<div class="col col-md-10">
<h1 class="col">IOU device templates</h1>
</div>
<div class="col col-md-1">
<button <button
*ngIf="controller" *ngIf="controller"
class="top-button" class="top-button cancel-button"
routerLink="/controller/{{ controller.id }}/preferences/iou/addtemplate" matTooltip="Add IOU device template"
mat-raised-button matTooltipClass="custom-tooltip"
color="primary" routerLink="/controller/{{ controller?.id }}/preferences/iou/addtemplate"
mat-button
> >
Add IOU device template <mat-icon>add_circle_outline</mat-icon>
</button> </button>
</div> </div>
</div> </div>
</div>
<app-empty-templates-list *ngIf="!iouTemplates.length"></app-empty-templates-list> <app-empty-templates-list *ngIf="!iouTemplates.length"></app-empty-templates-list>
<div class="default-content" *ngIf="iouTemplates.length"> <div class="default-content" *ngIf="iouTemplates.length">
<div class="listcontainer mat-elevation-z8"> <div class="listcontainer mat-elevation-z8">
@ -40,6 +46,9 @@
<button mat-menu-item (click)="copyTemplate(template)"> <button mat-menu-item (click)="copyTemplate(template)">
<mat-icon>content_copy</mat-icon><span>Copy</span> <mat-icon>content_copy</mat-icon><span>Copy</span>
</button> </button>
<button mat-menu-item routerLink="{{ template.template_id }}">
<mat-icon>edit</mat-icon><span>Edit</span>
</button>
</mat-menu> </mat-menu>
</div> </div>
</mat-nav-list> </mat-nav-list>

View File

@ -1,18 +1,36 @@
<div class="content"> <div class="content">
<div class="default-header"> <div class="default-header">
<div class="row"> <div class="row">
<h1 class="col">Preferences</h1> <div class="col-md-1">
<button
class="top-button"
class="cancel-button"
routerLink="/controller/{{ controllerId }}/projects"
mat-button
>
<mat-icon>arrow_back</mat-icon>
</button>
</div>
<div class="col-md-11">
<h1 class="col">Template preferences</h1>
</div>
</div> </div>
</div> </div>
<div class="default-content"> <div class="default-content">
<div class="listcontainer mat-elevation-z8"> <div class="listcontainer mat-elevation-z8">
<mat-nav-list> <mat-nav-list>
<mat-list-item routerLink="/controller/{{ controllerId }}/preferences/builtin"> Built-in </mat-list-item> <mat-list-item routerLink="/controller/{{ controllerId }}/preferences/builtin"> Built-in </mat-list-item>
<mat-list-item routerLink="/controller/{{ controllerId }}/preferences/dynamips/templates"> Dynamips </mat-list-item> <mat-list-item routerLink="/controller/{{ controllerId }}/preferences/dynamips/templates">
<mat-list-item routerLink="/controller/{{ controllerId }}/preferences/iou/templates"> IOS on Unix </mat-list-item> Dynamips
</mat-list-item>
<mat-list-item routerLink="/controller/{{ controllerId }}/preferences/iou/templates">
IOS on Unix
</mat-list-item>
<mat-list-item routerLink="/controller/{{ controllerId }}/preferences/vpcs/templates"> VPCS </mat-list-item> <mat-list-item routerLink="/controller/{{ controllerId }}/preferences/vpcs/templates"> VPCS </mat-list-item>
<mat-list-item routerLink="/controller/{{ controllerId }}/preferences/qemu/templates"> QEMU </mat-list-item> <mat-list-item routerLink="/controller/{{ controllerId }}/preferences/qemu/templates"> QEMU </mat-list-item>
<mat-list-item routerLink="/controller/{{ controllerId }}/preferences/virtualbox/templates"> VirtualBox </mat-list-item> <mat-list-item routerLink="/controller/{{ controllerId }}/preferences/virtualbox/templates">
VirtualBox
</mat-list-item>
<mat-list-item routerLink="/controller/{{ controllerId }}/preferences/vmware/templates"> VMware </mat-list-item> <mat-list-item routerLink="/controller/{{ controllerId }}/preferences/vmware/templates"> VMware </mat-list-item>
<mat-list-item routerLink="/controller/{{ controllerId }}/preferences/docker/templates"> Docker </mat-list-item> <mat-list-item routerLink="/controller/{{ controllerId }}/preferences/docker/templates"> Docker </mat-list-item>
</mat-nav-list> </mat-nav-list>

View File

@ -1,9 +1,16 @@
<div class="content"> <div class="content">
<div class="default-header"> <div class="default-header">
<div class="row"> <div class="row">
<div class="col col-md-1">
<button class="top-button" *ngIf="controller" class="cancel-button" mat-button (click)="goBack()">
<mat-icon>arrow_back</mat-icon>
</button>
</div>
<div class="col col-md-11">
<h1 class="col">New QEMU VM template</h1> <h1 class="col">New QEMU VM template</h1>
</div> </div>
</div> </div>
</div>
<div class="default-content"> <div class="default-content">
<div class="container mat-elevation-z8"> <div class="container mat-elevation-z8">
<mat-vertical-stepper [linear]="true"> <mat-vertical-stepper [linear]="true">
@ -32,11 +39,7 @@
<mat-step label="Platform and memory" [completed]="memoryForm.get('ramMemory').value && selectedPlatform"> <mat-step label="Platform and memory" [completed]="memoryForm.get('ramMemory').value && selectedPlatform">
<form [formGroup]="memoryForm"> <form [formGroup]="memoryForm">
<mat-form-field class="form-field"> <mat-form-field class="form-field">
<mat-select <mat-select placeholder="Platform" [(ngModel)]="selectedPlatform" [ngModelOptions]="{ standalone: true }">
placeholder="Platform"
[(ngModel)]="selectedPlatform"
[ngModelOptions]="{ standalone: true }"
>
<mat-option *ngFor="let platform of selectPlatform" [value]="platform"> <mat-option *ngFor="let platform of selectPlatform" [value]="platform">
{{ platform }} {{ platform }}
</mat-option> </mat-option>

View File

@ -1,9 +1,16 @@
<div class="content"> <div class="content">
<div class="default-header"> <div class="default-header">
<div class="row"> <div class="row">
<div class="col col-md-1">
<button class="top-button" *ngIf="controller" class="cancel-button" mat-button (click)="goBack()">
<mat-icon>arrow_back</mat-icon>
</button>
</div>
<div class="col col-md-11">
<h1 class="col">Copy QEMU VM template</h1> <h1 class="col">Copy QEMU VM template</h1>
</div> </div>
</div> </div>
</div>
<div class="default-content"> <div class="default-content">
<mat-card class="matCard"> <mat-card class="matCard">
<form [formGroup]="nameForm"> <form [formGroup]="nameForm">

View File

@ -1,9 +1,16 @@
<div class="content" [ngClass]="{ shadowed: isConfiguratorOpened || isSymbolSelectionOpened }"> <div class="content" [ngClass]="{ shadowed: isConfiguratorOpened || isSymbolSelectionOpened }">
<div class="default-header"> <div class="default-header">
<div class="row"> <div class="row">
<div class="col col-md-1">
<button class="top-button" *ngIf="controller" class="cancel-button" mat-button (click)="goBack()">
<mat-icon>arrow_back</mat-icon>
</button>
</div>
<div class="col col-md-11">
<h1 class="col">QEMU VM configuration</h1> <h1 class="col">QEMU VM configuration</h1>
</div> </div>
</div> </div>
</div>
<div class="default-content" *ngIf="qemuTemplate"> <div class="default-content" *ngIf="qemuTemplate">
<mat-accordion> <mat-accordion>
<mat-expansion-panel> <mat-expansion-panel>

View File

@ -1,27 +1,35 @@
<div class="content"> <div class="content">
<div class="default-header"> <div class="default-header">
<div class="row"> <div class="row">
<div class="col col-md-1">
<button
class="top-button"
*ngIf="controller"
class="cancel-button"
mat-button
routerLink="/controller/{{ controller.id }}/preferences"
>
<mat-icon>arrow_back</mat-icon>
</button>
</div>
<div class="col col-md-10">
<h1 class="col">QEMU VM templates</h1> <h1 class="col">QEMU VM templates</h1>
</div>
<div class="col col-md-1">
<button <button
*ngIf="controller" *ngIf="controller"
class="top-button" class="top-button cancel-button"
class="cancel-button" matTooltip="Add QEMU VM template"
routerLink="/controller/{{ controller.id }}/preferences" matTooltipClass="custom-tooltip"
routerLink="/controller/{{ controller.id }}/preferences/qemu/addtemplate"
mat-button mat-button
> >
Back <mat-icon>add_circle_outline</mat-icon>
</button>
<button
*ngIf="controller"
class="top-button"
routerLink="/controller/{{ controller.id }}/preferences/qemu/addtemplate"
mat-raised-button
color="primary"
>
Add QEMU VM template
</button> </button>
</div> </div>
</div> </div>
</div>
<app-empty-templates-list *ngIf="!qemuTemplates.length"></app-empty-templates-list> <app-empty-templates-list *ngIf="!qemuTemplates.length"></app-empty-templates-list>
<div class="default-content" *ngIf="qemuTemplates.length"> <div class="default-content" *ngIf="qemuTemplates.length">
<div class="listcontainer mat-elevation-z8"> <div class="listcontainer mat-elevation-z8">
@ -34,12 +42,16 @@
<mat-icon>more_vert</mat-icon> <mat-icon>more_vert</mat-icon>
</button> </button>
<mat-menu #menu="matMenu"> <mat-menu #menu="matMenu">
<button mat-menu-item (click)="deleteTemplate(template)"> <button mat-menu-item routerLink="{{ template.template_id }}">
<mat-icon>delete</mat-icon><span>Delete</span> <mat-icon>edit</mat-icon><span>Edit</span>
</button> </button>
<button mat-menu-item (click)="copyTemplate(template)"> <button mat-menu-item (click)="copyTemplate(template)">
<mat-icon>content_copy</mat-icon><span>Copy</span> <mat-icon>content_copy</mat-icon><span>Copy</span>
</button> </button>
<button mat-menu-item (click)="deleteTemplate(template)">
<mat-icon>delete</mat-icon><span>Delete</span>
</button>
</mat-menu> </mat-menu>
</div> </div>
</mat-nav-list> </mat-nav-list>

View File

@ -1,9 +1,22 @@
<div class="content"> <div class="content">
<div class="default-header"> <div class="default-header">
<div class="row"> <div class="row">
<div class="col col-md-1">
<button
class="top-button"
*ngIf="controller"
class="cancel-button"
mat-button
(click)="goBack()"
>
<mat-icon>arrow_back</mat-icon>
</button>
</div>
<div class="col col-md-11">
<h1 class="col">New VirtualBox VM template</h1> <h1 class="col">New VirtualBox VM template</h1>
</div> </div>
</div> </div>
</div>
<div class="default-content" *ngIf="virtualBoxTemplate"> <div class="default-content" *ngIf="virtualBoxTemplate">
<mat-card class="matCard"> <mat-card class="matCard">
<form [formGroup]="vmForm"> <form [formGroup]="vmForm">

View File

@ -1,9 +1,16 @@
<div class="content" [ngClass]="{ shadowed: isConfiguratorOpened || isSymbolSelectionOpened }"> <div class="content" [ngClass]="{ shadowed: isConfiguratorOpened || isSymbolSelectionOpened }">
<div class="default-header"> <div class="default-header">
<div class="row"> <div class="row">
<div class="col col-md-1">
<button class="top-button" *ngIf="controller" class="cancel-button" mat-button (click)="goBack()">
<mat-icon>arrow_back</mat-icon>
</button>
</div>
<div class="col col-md-11">
<h1 class="col">VirtualBox VM configuration</h1> <h1 class="col">VirtualBox VM configuration</h1>
</div> </div>
</div> </div>
</div>
<div class="default-content" *ngIf="virtualBoxTemplate"> <div class="default-content" *ngIf="virtualBoxTemplate">
<mat-accordion> <mat-accordion>
<mat-expansion-panel> <mat-expansion-panel>

View File

@ -1,26 +1,34 @@
<div class="content"> <div class="content">
<div class="default-header"> <div class="default-header">
<div class="row"> <div class="row">
<h1 class="col">VirtualBox VM templates</h1> <div class="col col-md-1">
<button <button
*ngIf="controller"
class="top-button" class="top-button"
*ngIf="controller"
class="cancel-button" class="cancel-button"
routerLink="/controller/{{ controller.id }}/preferences"
mat-button mat-button
routerLink="/controller/{{ controller.id }}/preferences"
> >
Back <mat-icon>arrow_back</mat-icon>
</button>
<button
*ngIf="controller"
class="top-button"
routerLink="/controller/{{ controller.id }}/preferences/virtualbox/addtemplate"
mat-raised-button
color="primary"
>
Add Virtual Box VM template
</button> </button>
</div> </div>
<div class="col col-md-10">
<h1 class="col">VirtualBox VM templates</h1>
</div>
<div class="col col-md-1">
<button
*ngIf="controller"
class="top-button cancel-button"
matTooltip="Add Virtual Box VM template"
matTooltipClass="custom-tooltip"
routerLink="/controller/{{ controller.id }}/preferences/virtualbox/addtemplate"
mat-button
>
<mat-icon>add_circle_outline</mat-icon>
</button>
</div>
</div>
</div> </div>
<app-empty-templates-list *ngIf="!virtualBoxTemplates.length"></app-empty-templates-list> <app-empty-templates-list *ngIf="!virtualBoxTemplates.length"></app-empty-templates-list>
<div class="default-content" *ngIf="virtualBoxTemplates.length"> <div class="default-content" *ngIf="virtualBoxTemplates.length">

View File

@ -1,9 +1,16 @@
<div class="content"> <div class="content">
<div class="default-header"> <div class="default-header">
<div class="row"> <div class="row">
<div class="col col-md-1">
<button class="top-button" *ngIf="controller" class="cancel-button" mat-button (click)="goBack()">
<mat-icon>arrow_back</mat-icon>
</button>
</div>
<div class="col col-md-11">
<h1 class="col">New VMware VM template</h1> <h1 class="col">New VMware VM template</h1>
</div> </div>
</div> </div>
</div>
<div class="default-content" *ngIf="vmwareTemplate"> <div class="default-content" *ngIf="vmwareTemplate">
<mat-card class="matCard"> <mat-card class="matCard">
<form [formGroup]="templateNameForm"> <form [formGroup]="templateNameForm">

View File

@ -1,9 +1,16 @@
<div class="content" [ngClass]="{ shadowed: isSymbolSelectionOpened || isConfiguratorOpened }"> <div class="content" [ngClass]="{ shadowed: isSymbolSelectionOpened || isConfiguratorOpened }">
<div class="default-header"> <div class="default-header">
<div class="row"> <div class="row">
<div class="col col-md-1">
<button class="top-button" *ngIf="controller" class="cancel-button" mat-button (click)="goBack()">
<mat-icon>arrow_back</mat-icon>
</button>
</div>
<div class="col col-md-11">
<h1 class="col">VMware VM configuration</h1> <h1 class="col">VMware VM configuration</h1>
</div> </div>
</div> </div>
</div>
<div class="default-content" *ngIf="vmwareTemplate"> <div class="default-content" *ngIf="vmwareTemplate">
<mat-accordion> <mat-accordion>
<mat-expansion-panel> <mat-expansion-panel>

View File

@ -1,27 +1,35 @@
<div class="content"> <div class="content">
<div class="default-header"> <div class="default-header">
<div class="row"> <div class="row">
<div class="col col-md-1">
<button
class="top-button"
*ngIf="controller"
class="cancel-button"
mat-button
routerLink="/controller/{{ controller.id }}/preferences"
>
<mat-icon>arrow_back</mat-icon>
</button>
</div>
<div class="col col-md-10">
<h1 class="col">VMware VM templates</h1> <h1 class="col">VMware VM templates</h1>
</div>
<div class="col col-md-1">
<button <button
*ngIf="controller" *ngIf="controller"
class="top-button" class="top-button cancel-button"
class="cancel-button" matTooltip="Add VMware template"
routerLink="/controller/{{ controller.id }}/preferences" matTooltipClass="custom-tooltip"
routerLink="/controller/{{ controller.id }}/preferences/vmware/addtemplate"
mat-button mat-button
> >
Back <mat-icon>add_circle_outline</mat-icon>
</button>
<button
*ngIf="controller"
class="top-button"
routerLink="/controller/{{ controller.id }}/preferences/vmware/addtemplate"
mat-raised-button
color="primary"
>
Add VMware template
</button> </button>
</div> </div>
</div> </div>
</div>
<app-empty-templates-list *ngIf="!vmwareTemplates.length"></app-empty-templates-list> <app-empty-templates-list *ngIf="!vmwareTemplates.length"></app-empty-templates-list>
<div class="default-content" *ngIf="vmwareTemplates.length"> <div class="default-content" *ngIf="vmwareTemplates.length">
<div class="listcontainer mat-elevation-z8"> <div class="listcontainer mat-elevation-z8">

View File

@ -1,9 +1,22 @@
<div class="content"> <div class="content">
<div class="default-header"> <div class="default-header">
<div class="row"> <div class="row">
<div class="col col-md-1">
<button
class="top-button"
*ngIf="controller"
class="cancel-button"
mat-button
(click)="goBack()"
>
<mat-icon>arrow_back</mat-icon>
</button>
</div>
<div class="col col-md-11">
<h1 class="col">New VPCS node template</h1> <h1 class="col">New VPCS node template</h1>
</div> </div>
</div> </div>
</div>
<div class="default-content"> <div class="default-content">
<mat-card class="matCard"> <mat-card class="matCard">
<mat-radio-group class="radio-group"> <mat-radio-group class="radio-group">

View File

@ -1,26 +1,34 @@
<div class="content"> <div class="content">
<div class="default-header"> <div class="default-header">
<div class="row"> <div class="row">
<h1 class="col">VPCS node templates</h1> <div class="col col-md-1">
<button <button
*ngIf="controller"
class="top-button" class="top-button"
*ngIf="controller"
class="cancel-button" class="cancel-button"
routerLink="/controller/{{ controller.id }}/preferences"
mat-button mat-button
routerLink="/controller/{{ controller.id }}/preferences"
> >
Back <mat-icon>arrow_back</mat-icon>
</button>
<button
*ngIf="controller"
class="top-button"
routerLink="/controller/{{ controller.id }}/preferences/vpcs/addtemplate"
mat-raised-button
color="primary"
>
Add VPCS template
</button> </button>
</div> </div>
<div class="col col-md-10">
<h1 class="col">VPCS node templates</h1>
</div>
<div class="col col-md-1">
<button
*ngIf="controller"
class="top-button cancel-button"
matTooltip="Add VPCS template"
matTooltipClass="custom-tooltip"
routerLink="/controller/{{ controller.id }}/preferences/vpcs/addtemplate"
mat-button
>
<mat-icon>add_circle_outline</mat-icon>
</button>
</div>
</div>
</div> </div>
<app-empty-templates-list *ngIf="!vpcsTemplates.length"></app-empty-templates-list> <app-empty-templates-list *ngIf="!vpcsTemplates.length"></app-empty-templates-list>
<div class="default-content" *ngIf="vpcsTemplates.length"> <div class="default-content" *ngIf="vpcsTemplates.length">
@ -34,6 +42,9 @@
<mat-icon>more_vert</mat-icon> <mat-icon>more_vert</mat-icon>
</button> </button>
<mat-menu #menu="matMenu"> <mat-menu #menu="matMenu">
<button mat-menu-item routerLink="{{ template.template_id }}">
<mat-icon>edit</mat-icon><span>Edit</span>
</button>
<button mat-menu-item (click)="deleteTemplate(template)"> <button mat-menu-item (click)="deleteTemplate(template)">
<mat-icon>delete</mat-icon><span>Delete</span> <mat-icon>delete</mat-icon><span>Delete</span>
</button> </button>