TRIX-28 creating machine with same specs no longer works
This commit is contained in:
parent
bffce99fb0
commit
4fa77a0932
@ -47,7 +47,7 @@ export class PackagesComponent implements OnInit, OnDestroy, OnChanges
|
||||
{
|
||||
this._selectedPackage = value;
|
||||
|
||||
this.select.next(value);
|
||||
this.select.emit(value);
|
||||
}
|
||||
get selectedPackage(): CatalogPackage
|
||||
{
|
||||
@ -72,8 +72,10 @@ export class PackagesComponent implements OnInit, OnDestroy, OnChanges
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------------------------------------------
|
||||
private setPackagesByImageType()
|
||||
private setPackagesByImageType(raiseEvent = false)
|
||||
{
|
||||
if (!this.imageType) return;
|
||||
|
||||
this._selectedPackage = null;
|
||||
|
||||
this.packages = this._packages.filter(x =>
|
||||
@ -100,12 +102,17 @@ export class PackagesComponent implements OnInit, OnDestroy, OnChanges
|
||||
});
|
||||
|
||||
if (this._selectedPackage)
|
||||
{
|
||||
if (raiseEvent)
|
||||
this.select.emit(this._selectedPackage);
|
||||
|
||||
setTimeout(() =>
|
||||
{
|
||||
this.elementRef.nativeElement.querySelector(`#package-${this._selectedPackage.id}`)
|
||||
.scrollIntoView({behavior:'auto', block: 'center'});
|
||||
}, 0);
|
||||
}
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------------------------------------------
|
||||
ngOnInit(): void
|
||||
@ -114,7 +121,7 @@ export class PackagesComponent implements OnInit, OnDestroy, OnChanges
|
||||
.subscribe((changes: SimpleChanges) =>
|
||||
{
|
||||
if (changes.image?.currentValue && changes.imageType?.currentValue)
|
||||
this.setPackagesByImageType();
|
||||
this.setPackagesByImageType(true);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -83,7 +83,7 @@
|
||||
<div *ngIf="currentStep === 2" class="d-flex flex-column h-100">
|
||||
<h5 class="px-3 mb-3 mt-1">Choose the <b>package</b> that matches the technical specifications this machine will have</h5>
|
||||
|
||||
<app-packages [image]="editorForm.get('image').value" [imageType]="editorForm.get('imageType').value" [package]="preselectedPackage"
|
||||
<app-packages [image]="editorForm.get('image').value" [imageType]="imageType" [package]="preselectedPackage"
|
||||
(select)="setPackage($event)">
|
||||
</app-packages>
|
||||
</div>
|
||||
|
@ -35,10 +35,6 @@ export class MachineWizardComponent implements OnInit, OnDestroy
|
||||
imageList: any[];
|
||||
operatingSystems: any[];
|
||||
|
||||
private packages: {};
|
||||
packageList: any[];
|
||||
packageGroups: any[];
|
||||
|
||||
machines: Machine[];
|
||||
dataCenters: any[];
|
||||
|
||||
@ -163,11 +159,11 @@ export class MachineWizardComponent implements OnInit, OnDestroy
|
||||
.pipe(takeUntil(this.destroy$))
|
||||
.subscribe(value =>
|
||||
{
|
||||
const imageType = value | 0;
|
||||
this.imageType = value | 0;
|
||||
const imageList = [];
|
||||
const operatingSystems = {};
|
||||
|
||||
if (imageType === CatalogImageType.InfrastructureContainer)
|
||||
if (this.imageType === CatalogImageType.InfrastructureContainer)
|
||||
{
|
||||
for (const image of this.images)
|
||||
if (['lx-dataset', 'zone-dataset'].includes(image.type) && image.owner !== this.userId)
|
||||
@ -176,7 +172,7 @@ export class MachineWizardComponent implements OnInit, OnDestroy
|
||||
imageList.push(image);
|
||||
}
|
||||
}
|
||||
else if (imageType === CatalogImageType.VirtualMachine)
|
||||
else if (this.imageType === CatalogImageType.VirtualMachine)
|
||||
{
|
||||
for (const image of this.images)
|
||||
if (['zvol'].includes(image.type) && image.owner !== this.userId)
|
||||
@ -185,7 +181,7 @@ export class MachineWizardComponent implements OnInit, OnDestroy
|
||||
imageList.push(image);
|
||||
}
|
||||
}
|
||||
else if (imageType === CatalogImageType.Custom)
|
||||
else if (this.imageType === CatalogImageType.Custom)
|
||||
{
|
||||
for (const image of this.images)
|
||||
if (image.owner === this.userId)
|
||||
@ -213,11 +209,10 @@ export class MachineWizardComponent implements OnInit, OnDestroy
|
||||
.pipe(takeUntil(this.destroy$), distinctUntilChanged())
|
||||
.subscribe(imageOs =>
|
||||
{
|
||||
const imageType = this.editorForm.get('imageType').value | 0;
|
||||
const imageList = [];
|
||||
const operatingSystems = {};
|
||||
|
||||
if (imageType === CatalogImageType.InfrastructureContainer)
|
||||
if (this.imageType === CatalogImageType.InfrastructureContainer)
|
||||
{
|
||||
for (const image of this.images)
|
||||
if (['lx-dataset', 'zone-dataset'].includes(image.type) && (!imageOs || imageOs === image.os) && image.owner !== this.userId)
|
||||
@ -226,7 +221,7 @@ export class MachineWizardComponent implements OnInit, OnDestroy
|
||||
imageList.push(image);
|
||||
}
|
||||
}
|
||||
else if (imageType === CatalogImageType.VirtualMachine)
|
||||
else if (this.imageType === CatalogImageType.VirtualMachine)
|
||||
{
|
||||
for (const image of this.images)
|
||||
if (['zvol'].includes(image.type) && (!imageOs || imageOs === image.os) && image.owner !== this.userId)
|
||||
@ -235,7 +230,7 @@ export class MachineWizardComponent implements OnInit, OnDestroy
|
||||
imageList.push(image);
|
||||
}
|
||||
}
|
||||
else if (imageType === CatalogImageType.Custom)
|
||||
else if (this.imageType === CatalogImageType.Custom)
|
||||
{
|
||||
for (const image of this.images)
|
||||
if (image.owner === this.userId)
|
||||
@ -390,7 +385,7 @@ export class MachineWizardComponent implements OnInit, OnDestroy
|
||||
if (this.currentStep < this.steps.length) return;
|
||||
|
||||
this.readyText = this.translateService.instant('machines.wizard.ready', {
|
||||
imageType: this.editorForm.get('imageType').value == 1
|
||||
imageType: this.imageType == 1
|
||||
? this.translateService.instant('machines.wizard.readyImageTypeContainer')
|
||||
: this.translateService.instant('machines.wizard.readyImageTypeVm'),
|
||||
packageDescription: this.editorForm.get('package').value.description ||
|
||||
@ -410,9 +405,6 @@ export class MachineWizardComponent implements OnInit, OnDestroy
|
||||
this.steps[1].complete = true;
|
||||
|
||||
this.editorForm.get('package').setValue(selection);
|
||||
|
||||
if (this.machine)
|
||||
this.nextStep();
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------------------------------------------
|
||||
@ -606,13 +598,15 @@ export class MachineWizardComponent implements OnInit, OnDestroy
|
||||
if (this.machine)
|
||||
{
|
||||
if (this.machine.type === 'smartmachine')
|
||||
this.imageType = 1;
|
||||
this.imageType = CatalogImageType.InfrastructureContainer;
|
||||
else if (this.machine.type === 'virtualmachine')
|
||||
this.imageType = 2;
|
||||
this.imageType = CatalogImageType.VirtualMachine;
|
||||
|
||||
this.preselectedPackage = this.machine.package;
|
||||
|
||||
this.nextStep();
|
||||
this.currentStep = 2;
|
||||
|
||||
setTimeout(() => this.currentStep = 3, 300);
|
||||
}
|
||||
|
||||
if (this.imageType <= 2)
|
||||
|
@ -660,6 +660,9 @@ export class MachinesComponent implements OnInit, OnDestroy
|
||||
// ----------------------------------------------------------------------------------------------------------------
|
||||
createMachine(machine?: Machine)
|
||||
{
|
||||
if (machine)
|
||||
machine.contextMenu = false;
|
||||
|
||||
const modalConfig = {
|
||||
ignoreBackdropClick: true,
|
||||
keyboard: false,
|
||||
|
@ -5,6 +5,7 @@ import { NavigationStart, Router } from '@angular/router';
|
||||
import { Subject } from 'rxjs';
|
||||
import { filter, takeUntil } from 'rxjs/operators';
|
||||
import { CatalogPackage } from '../../catalog/models/package';
|
||||
import { CatalogImageType } from 'src/app/catalog/models/image';
|
||||
|
||||
@Component({
|
||||
selector: 'app-package-selector',
|
||||
@ -70,11 +71,11 @@ export class PackageSelectorComponent implements OnInit
|
||||
switch (this.machine.type)
|
||||
{
|
||||
case 'virtualmachine':
|
||||
this.imageType = 1;
|
||||
this.imageType = CatalogImageType.VirtualMachine;
|
||||
break;
|
||||
|
||||
case 'smartmachine':
|
||||
this.imageType = 2;
|
||||
this.imageType = CatalogImageType.InfrastructureContainer;
|
||||
break;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user