mirror of
https://github.com/GNS3/gns3-web-ui.git
synced 2024-12-20 05:27:56 +00:00
Merge branch 'master' into dependabot/npm_and_yarn/jszip-3.10.1
This commit is contained in:
commit
d06a3efd2c
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "gns3-web-ui",
|
"name": "gns3-web-ui",
|
||||||
"version": "2.2.38.dev1",
|
"version": "2.2.38",
|
||||||
"author": {
|
"author": {
|
||||||
"name": "GNS3 Technology Inc.",
|
"name": "GNS3 Technology Inc.",
|
||||||
"email": "developers@gns3.com"
|
"email": "developers@gns3.com"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
setuptools==65.5.1
|
setuptools==65.5.1
|
||||||
cx_Freeze==5.1.1
|
cx_Freeze==5.1.1
|
||||||
requests==2.25.1
|
requests==2.31.0
|
||||||
packaging==20.9
|
packaging==20.9
|
||||||
appdirs==1.4.4
|
appdirs==1.4.4
|
||||||
psutil==5.8.0
|
psutil==5.8.0
|
||||||
|
@ -77,7 +77,7 @@
|
|||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<!-- <ng-container matColumnDef="expandedDetail">
|
<!-- <ng-container matColumnDef="expandedDetail">
|
||||||
<mat-cell *matCellDef="let detail">
|
<mat-cell *matCellDef="let detail">
|
||||||
The symbol for {{detail.element}}
|
The symbol for {{detail.element}}
|
||||||
</mat-cell>
|
</mat-cell>
|
||||||
</ng-container> -->
|
</ng-container> -->
|
||||||
@ -85,14 +85,14 @@
|
|||||||
<mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row>
|
<mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row>
|
||||||
<mat-row *matRowDef="let row; columns: displayedColumns"></mat-row>
|
<mat-row *matRowDef="let row; columns: displayedColumns"></mat-row>
|
||||||
|
|
||||||
<!-- <mat-row
|
<!-- <mat-row
|
||||||
*matRowDef="let row; columns: displayedColumns;"
|
*matRowDef="let row; columns: displayedColumns;"
|
||||||
matRipple
|
matRipple
|
||||||
class="element-row"
|
class="element-row"
|
||||||
[class.expanded]="expandedElement == row"
|
[class.expanded]="expandedElement == row"
|
||||||
(click)="expandedElement = row">
|
(click)="expandedElement = row">
|
||||||
</mat-row>
|
</mat-row>
|
||||||
<mat-row
|
<mat-row
|
||||||
*matRowDef="let row; columns: ['expandedDetail']; when: isExpansionDetailRow"
|
*matRowDef="let row; columns: ['expandedDetail']; when: isExpansionDetailRow"
|
||||||
[@detailExpand]="row.element == expandedElement ? 'expanded' : 'collapsed'"
|
[@detailExpand]="row.element == expandedElement ? 'expanded' : 'collapsed'"
|
||||||
style="overflow: hidden">
|
style="overflow: hidden">
|
||||||
@ -292,6 +292,70 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="list-item-inside" *ngIf="version.images.hdc_disk_image">
|
||||||
|
<span>
|
||||||
|
{{ version.images.hdb_disk_image }}
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<span *ngIf="checkImageFromVersion(version.images.hdc_disk_image)"
|
||||||
|
><mat-icon matTooltip="Ready to install" matTooltipClass="custom-tooltip">check</mat-icon></span
|
||||||
|
>
|
||||||
|
<span *ngIf="!checkImageFromVersion(version.images.hdc_disk_image)"
|
||||||
|
><mat-icon matTooltip="Missing" matTooltipClass="custom-tooltip">close</mat-icon></span
|
||||||
|
>
|
||||||
|
|
||||||
|
<input
|
||||||
|
type="file"
|
||||||
|
class="non-visible"
|
||||||
|
#file4
|
||||||
|
(change)="importImage($event, version.images.hdc_disk_image)"
|
||||||
|
ng2FileSelect
|
||||||
|
[uploader]="uploaderImage"
|
||||||
|
/>
|
||||||
|
<button class="button" mat-raised-button (click)="file4.click()">Import</button>
|
||||||
|
<button
|
||||||
|
class="button"
|
||||||
|
mat-raised-button
|
||||||
|
(click)="downloadImageFromVersion(version.images.hdc_disk_image)"
|
||||||
|
>
|
||||||
|
Download
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="list-item-inside" *ngIf="version.images.hdd_disk_image">
|
||||||
|
<span>
|
||||||
|
{{ version.images.hdd_disk_image }}
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<span *ngIf="checkImageFromVersion(version.images.hdd_disk_image)"
|
||||||
|
><mat-icon matTooltip="Ready to install" matTooltipClass="custom-tooltip">check</mat-icon></span
|
||||||
|
>
|
||||||
|
<span *ngIf="!checkImageFromVersion(version.images.hdd_disk_image)"
|
||||||
|
><mat-icon matTooltip="Missing" matTooltipClass="custom-tooltip">close</mat-icon></span
|
||||||
|
>
|
||||||
|
|
||||||
|
<input
|
||||||
|
type="file"
|
||||||
|
class="non-visible"
|
||||||
|
#file5
|
||||||
|
(change)="importImage($event, version.images.hdd_disk_image)"
|
||||||
|
ng2FileSelect
|
||||||
|
[uploader]="uploaderImage"
|
||||||
|
/>
|
||||||
|
<button class="button" mat-raised-button (click)="file5.click()">Import</button>
|
||||||
|
<button
|
||||||
|
class="button"
|
||||||
|
mat-raised-button
|
||||||
|
(click)="downloadImageFromVersion(version.images.hdd_disk_image)"
|
||||||
|
>
|
||||||
|
Download
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="list-item-inside" *ngIf="version.images.cdrom_image">
|
<div class="list-item-inside" *ngIf="version.images.cdrom_image">
|
||||||
<span>
|
<span>
|
||||||
{{ version.images.cdrom_image}}
|
{{ version.images.cdrom_image}}
|
||||||
@ -308,12 +372,12 @@
|
|||||||
<input
|
<input
|
||||||
type="file"
|
type="file"
|
||||||
class="non-visible"
|
class="non-visible"
|
||||||
#file4
|
#file6
|
||||||
(change)="importImage($event, version.images.cdrom_image)"
|
(change)="importImage($event, version.images.cdrom_image)"
|
||||||
ng2FileSelect
|
ng2FileSelect
|
||||||
[uploader]="uploaderImage"
|
[uploader]="uploaderImage"
|
||||||
/>
|
/>
|
||||||
<button class="button" mat-raised-button (click)="file4.click()">Import</button>
|
<button class="button" mat-raised-button (click)="file6.click()">Import</button>
|
||||||
<button
|
<button
|
||||||
class="button"
|
class="button"
|
||||||
mat-raised-button
|
mat-raised-button
|
||||||
|
@ -320,17 +320,17 @@ export class NewTemplateDialogComponent implements OnInit {
|
|||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
if (this.qemuBinaries.length) {
|
if (this.qemuBinaries.length) {
|
||||||
if (this.applianceToInstall.qemu.arch === 'x86_64') {
|
if (this.applianceToInstall.qemu.arch === 'x86_64') {
|
||||||
let filtered_binaries = this.qemuBinaries.filter((n) => n.path.includes('qemu-system-x86_64'));
|
let filtered_binaries = this.qemuBinaries.filter((n) => n.path.endsWith('qemu-system-x86_64'));
|
||||||
if (filtered_binaries.length) {
|
if (filtered_binaries.length) {
|
||||||
this.selectedBinary = filtered_binaries[0];
|
this.selectedBinary = filtered_binaries[0];
|
||||||
}
|
}
|
||||||
} else if (this.applianceToInstall.qemu.arch === 'i386') {
|
} else if (this.applianceToInstall.qemu.arch === 'i386') {
|
||||||
let filtered_binaries = this.qemuBinaries.filter((n) => n.path.includes('qemu-system-i386'));
|
let filtered_binaries = this.qemuBinaries.filter((n) => n.path.endsWith('qemu-system-i386'));
|
||||||
if (filtered_binaries.length) {
|
if (filtered_binaries.length) {
|
||||||
this.selectedBinary = filtered_binaries[0];
|
this.selectedBinary = filtered_binaries[0];
|
||||||
}
|
}
|
||||||
} else if (this.applianceToInstall.qemu.arch === 'x86_64') {
|
} else if (this.applianceToInstall.qemu.arch === 'arm') {
|
||||||
let filtered_binaries = this.qemuBinaries.filter((n) => n.path.includes('qemu-system-arm'));
|
let filtered_binaries = this.qemuBinaries.filter((n) => n.path.endsWith('qemu-system-arm'));
|
||||||
if (filtered_binaries.length) {
|
if (filtered_binaries.length) {
|
||||||
this.selectedBinary = filtered_binaries[0];
|
this.selectedBinary = filtered_binaries[0];
|
||||||
}
|
}
|
||||||
@ -364,7 +364,7 @@ export class NewTemplateDialogComponent implements OnInit {
|
|||||||
autoFocus: false,
|
autoFocus: false,
|
||||||
disableClose: true,
|
disableClose: true,
|
||||||
});
|
});
|
||||||
dialogRef.componentInstance.confirmationMessage = `This is not the correct file.
|
dialogRef.componentInstance.confirmationMessage = `This is not the correct file.
|
||||||
The MD5 sum is ${output} and should be ${imageToInstall.md5sum}. Do you want to accept it at your own risks?`;
|
The MD5 sum is ${output} and should be ${imageToInstall.md5sum}. Do you want to accept it at your own risks?`;
|
||||||
dialogRef.afterClosed().subscribe((answer: boolean) => {
|
dialogRef.afterClosed().subscribe((answer: boolean) => {
|
||||||
if (answer) {
|
if (answer) {
|
||||||
@ -485,7 +485,7 @@ export class NewTemplateDialogComponent implements OnInit {
|
|||||||
iouTemplate.startup_config = this.applianceToInstall.iou.startup_config;
|
iouTemplate.startup_config = this.applianceToInstall.iou.startup_config;
|
||||||
iouTemplate.builtin = this.applianceToInstall.builtin;
|
iouTemplate.builtin = this.applianceToInstall.builtin;
|
||||||
iouTemplate.category = this.getCategory();
|
iouTemplate.category = this.getCategory();
|
||||||
iouTemplate.default_name_format = this.applianceToInstall.port_name_format;
|
iouTemplate.default_name_format = this.applianceToInstall.default_name_format;
|
||||||
iouTemplate.symbol = this.applianceToInstall.symbol;
|
iouTemplate.symbol = this.applianceToInstall.symbol;
|
||||||
iouTemplate.compute_id = this.isGns3VmChosen ? 'vm' : 'local';
|
iouTemplate.compute_id = this.isGns3VmChosen ? 'vm' : 'local';
|
||||||
iouTemplate.template_id = uuid();
|
iouTemplate.template_id = uuid();
|
||||||
@ -534,7 +534,7 @@ export class NewTemplateDialogComponent implements OnInit {
|
|||||||
iosTemplate.slot7 = this.applianceToInstall.dynamips.slot7;
|
iosTemplate.slot7 = this.applianceToInstall.dynamips.slot7;
|
||||||
iosTemplate.builtin = this.applianceToInstall.builtin;
|
iosTemplate.builtin = this.applianceToInstall.builtin;
|
||||||
iosTemplate.category = this.getCategory();
|
iosTemplate.category = this.getCategory();
|
||||||
iosTemplate.default_name_format = this.applianceToInstall.port_name_format;
|
iosTemplate.default_name_format = this.applianceToInstall.default_name_format;
|
||||||
iosTemplate.symbol = this.applianceToInstall.symbol;
|
iosTemplate.symbol = this.applianceToInstall.symbol;
|
||||||
iosTemplate.compute_id = this.isGns3VmChosen ? 'vm' : 'local';
|
iosTemplate.compute_id = this.isGns3VmChosen ? 'vm' : 'local';
|
||||||
iosTemplate.template_id = uuid();
|
iosTemplate.template_id = uuid();
|
||||||
@ -572,7 +572,7 @@ export class NewTemplateDialogComponent implements OnInit {
|
|||||||
dockerTemplate.console_type = this.applianceToInstall.docker.console_type;
|
dockerTemplate.console_type = this.applianceToInstall.docker.console_type;
|
||||||
dockerTemplate.builtin = this.applianceToInstall.builtin;
|
dockerTemplate.builtin = this.applianceToInstall.builtin;
|
||||||
dockerTemplate.category = this.getCategory();
|
dockerTemplate.category = this.getCategory();
|
||||||
dockerTemplate.default_name_format = this.applianceToInstall.port_name_format;
|
dockerTemplate.default_name_format = this.applianceToInstall.default_name_format;
|
||||||
dockerTemplate.symbol = this.applianceToInstall.symbol;
|
dockerTemplate.symbol = this.applianceToInstall.symbol;
|
||||||
dockerTemplate.compute_id = this.isGns3VmChosen ? 'vm' : 'local';
|
dockerTemplate.compute_id = this.isGns3VmChosen ? 'vm' : 'local';
|
||||||
dockerTemplate.template_id = uuid();
|
dockerTemplate.template_id = uuid();
|
||||||
@ -629,12 +629,17 @@ export class NewTemplateDialogComponent implements OnInit {
|
|||||||
qemuTemplate.category = this.getCategory();
|
qemuTemplate.category = this.getCategory();
|
||||||
qemuTemplate.first_port_name = this.applianceToInstall.first_port_name;
|
qemuTemplate.first_port_name = this.applianceToInstall.first_port_name;
|
||||||
qemuTemplate.port_name_format = this.applianceToInstall.port_name_format;
|
qemuTemplate.port_name_format = this.applianceToInstall.port_name_format;
|
||||||
|
qemuTemplate.port_segment_size = this.applianceToInstall.port_segment_size;
|
||||||
|
qemuTemplate.default_name_format = this.applianceToInstall.default_name_format
|
||||||
qemuTemplate.symbol = this.applianceToInstall.symbol;
|
qemuTemplate.symbol = this.applianceToInstall.symbol;
|
||||||
qemuTemplate.qemu_path = this.selectedBinary.path;
|
qemuTemplate.qemu_path = this.selectedBinary.path;
|
||||||
qemuTemplate.compute_id = this.isGns3VmChosen ? 'vm' : 'local';
|
qemuTemplate.compute_id = this.isGns3VmChosen ? 'vm' : 'local';
|
||||||
qemuTemplate.template_id = uuid();
|
qemuTemplate.template_id = uuid();
|
||||||
qemuTemplate.hda_disk_image = version.images.hda_disk_image;
|
qemuTemplate.hda_disk_image = version.images.hda_disk_image;
|
||||||
qemuTemplate.hdb_disk_image = version.images.hdb_disk_image;
|
qemuTemplate.hdb_disk_image = version.images.hdb_disk_image;
|
||||||
|
qemuTemplate.hdc_disk_image = version.images.hdc_disk_image;
|
||||||
|
qemuTemplate.hdd_disk_image = version.images.hdd_disk_image;
|
||||||
|
qemuTemplate.cdrom_image = version.images.cdrom_image;
|
||||||
qemuTemplate.template_type = 'qemu';
|
qemuTemplate.template_type = 'qemu';
|
||||||
qemuTemplate.usage = this.applianceToInstall.usage;
|
qemuTemplate.usage = this.applianceToInstall.usage;
|
||||||
|
|
||||||
|
@ -55,6 +55,9 @@ export interface Iou {
|
|||||||
export interface Images {
|
export interface Images {
|
||||||
hda_disk_image: string;
|
hda_disk_image: string;
|
||||||
hdb_disk_image: string;
|
hdb_disk_image: string;
|
||||||
|
hdc_disk_image: string;
|
||||||
|
hdd_disk_image: string;
|
||||||
|
cdrom_image: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface Version {
|
export interface Version {
|
||||||
@ -74,11 +77,13 @@ export interface Appliance {
|
|||||||
maintainer_email: string;
|
maintainer_email: string;
|
||||||
name: string;
|
name: string;
|
||||||
port_name_format: string;
|
port_name_format: string;
|
||||||
|
port_segment_size: number;
|
||||||
product_name: string;
|
product_name: string;
|
||||||
product_url: string;
|
product_url: string;
|
||||||
registry_version: number;
|
registry_version: number;
|
||||||
status: string;
|
status: string;
|
||||||
symbol: string;
|
symbol: string;
|
||||||
|
default_name_format: string;
|
||||||
usage: string;
|
usage: string;
|
||||||
vendor_name: string;
|
vendor_name: string;
|
||||||
vendor_url: string;
|
vendor_url: string;
|
||||||
|
Loading…
Reference in New Issue
Block a user