Skip to content

Commit

Permalink
Merge branch 'master' into issue339_content_courses_vm_unique
Browse files Browse the repository at this point in the history
  • Loading branch information
maxsva authored Feb 26, 2024
2 parents 8a432e3 + c198542 commit e06129c
Show file tree
Hide file tree
Showing 23 changed files with 575 additions and 204 deletions.
11 changes: 11 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
"ng2-dragula": "^2.1.1",
"ngx-dynamic-hooks": "^1.7.2",
"ngx-markdown": "^12.1.0",
"parse-duration": "^1.1.0",
"rxjs": "^6.6.7",
"tslib": "^2.0.0",
"xterm": "^4.13.0",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
<clr-wizard #wizard clrWizardSize="xl" (clrWizardOnFinish)="saveEnvironment()">
<clr-wizard #wizard clrWizardSize="xl"
(clrWizardOnFinish)="saveEnvironment()"
(clrWizardOnCancel)="close()"
>
<clr-wizard-title>Edit Environment</clr-wizard-title>

<clr-wizard-button [type]="'cancel'">Cancel</clr-wizard-button>
Expand All @@ -8,7 +11,7 @@

<clr-wizard-page
[clrWizardPageNextDisabled]="!environmentDetails.valid"
(clrWizardPageNext)="copyEnvironmentDetails()"
(clrWizardPageNext)="copyEnvironmentDetails()"
>
<ng-template clrPageTitle>Basic Information</ng-template>

Expand Down Expand Up @@ -330,7 +333,7 @@
>
</clr-wizard-page>

<clr-wizard-page>
<clr-wizard-page (clrWizardPageOnLoad)="updateFormValues()">
<ng-template clrPageTitle>Confirmation</ng-template>

<p>Confirm the following details before finalizing</p>
Expand All @@ -345,19 +348,35 @@ <h4>Basic Information</h4>
<tbody>
<tr>
<td>Display Name</td>
<td>{{ env.display_name }}</td>
<td *ngIf="env.display_name == uneditedEnv.display_name">{{ env.display_name }}</td>
<td *ngIf="env.display_name != uneditedEnv.display_name">
<span class="del-elem arrow-after">{{ uneditedEnv.display_name }}</span >
<span class="add-elem">{{ env.display_name }}</span >
</td>
</tr>
<tr>
<td>DNS Suffix</td>
<td>{{ env.dnssuffix }}</td>
<td *ngIf="env.dnssuffix == uneditedEnv.dnssuffix">{{ env.dnssuffix }}</td>
<td *ngIf="env.dnssuffix != uneditedEnv.dnssuffix">
<span class="del-elem arrow-after">{{ uneditedEnv.dnssuffix }}</span >
<span class="add-elem">{{ env.dnssuffix }}</span >
</td>
</tr>
<tr>
<td>Provider</td>
<td>{{ env.provider }}</td>
<td *ngIf="env.provider == uneditedEnv.provider">{{ env.provider }}</td>
<td *ngIf="env.provider != uneditedEnv.provider">
<span class="del-elem arrow-after">{{ uneditedEnv.provider }}</span >
<span class="add-elem">{{ env.provider }}</span >
</td>
</tr>
<tr>
<td>Websocket Endpoint</td>
<td>{{ env.ws_endpoint }}</td>
<td *ngIf="env.ws_endpoint == uneditedEnv.ws_endpoint">{{ env.ws_endpoint }}</td>
<td *ngIf="env.ws_endpoint != uneditedEnv.ws_endpoint">
<span class="del-elem arrow-after">{{ uneditedEnv.ws_endpoint }}</span >
<span class="add-elem">{{ env.ws_endpoint }}</span >
</td>
</tr>
</tbody>
</table>
Expand All @@ -371,9 +390,27 @@ <h4>Environment Specifics</h4>
</tr>
</thead>
<tbody>
<tr *ngFor="let item of env.environment_specifics | keyvalue">
<td>{{ item.key }}</td>
<td>{{ item.value }}</td>
<tr *ngFor="let item of env.environment_specifics | keyvalue">
<!-- view of unedit value -->
<td *ngIf="uneditedEnv.environment_specifics.hasOwnProperty(item.key)">{{ item.key }}</td>
<td *ngIf="item.value == uneditedEnv.environment_specifics[item.key]">{{ item.value }}</td>
<!-- view of new key -->
<ng-container *ngIf="!uneditedEnv.environment_specifics.hasOwnProperty(item.key)">
<td class="add-elem">{{ item.key }}</td>
<td class="add-elem">{{ item.value }}</td>
</ng-container>
<!-- view of edit value -->
<td *ngIf="uneditedEnv.environment_specifics.hasOwnProperty(item.key) && item.value != uneditedEnv.environment_specifics[item.key]">
<span class="del-elem arrow-after">{{ uneditedEnv.environment_specifics[item.key] }}</span >
<span class="add-elem">{{ item.value }}</span >
</td>
</tr>
<!-- view deleted key -->
<tr *ngFor="let item of uneditedEnv.environment_specifics | keyvalue">
<ng-container *ngIf="!env.environment_specifics.hasOwnProperty(item.key)">
<td class="del-elem">{{ item.key }}</td>
<td class="del-elem">{{ item.value }}</td >
</ng-container>
</tr>
</tbody>
</table>
Expand All @@ -388,9 +425,19 @@ <h4>Template Mappings</h4>
</tr>
</thead>
<tbody>
<tr *ngFor="let template of env.template_mapping | keyvalue">
<tr *ngFor="let template of env.template_mapping | keyvalue">
<ng-container *ngIf="!isVMTemplateInUneditedEnv(template.key); else templateCountInUneditedEnv">
<td class="add-elem">{{ getVirtualMachineTemplateName(template.key) }}</td>
<td class="add-elem">{{ getTemplateCount(template.key) }}</td>
</ng-container>
<ng-template #templateCountInUneditedEnv>
<td>{{ getVirtualMachineTemplateName(template.key) }}</td>
<td>{{ getTeplateCount(template.key) }}</td>
<td *ngIf="getTemplateCount(template.key) == getTemplateUnEditEnvCount(template.key)"> {{ getTemplateCount(template.key) }} </td>
<td *ngIf="getTemplateCount(template.key) != getTemplateUnEditEnvCount(template.key)">
<span class="del-elem arrow-after">{{ getTemplateUnEditEnvCount(template.key) }}</span >
<span class="add-elem">{{ getTemplateCount(template.key) }}</span >
</td>
</ng-template>
<td>
<table class="table table-compact">
<thead>
Expand All @@ -399,11 +446,37 @@ <h4>Template Mappings</h4>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let item of template.value | keyvalue">
<td>{{ item.key }}</td>
<td>{{ item.value }}</td>
</tr>
<tbody>
<ng-container *ngIf="!isVMTemplateInUneditedEnv(template.key); else templateInUneditedEnv">
<tr *ngFor="let item of template.value | keyvalue">
<td class="add-elem">{{ item.key }}</td>
<td class="add-elem">{{ item.value }}</td>
</tr>
</ng-container>
<ng-template #templateInUneditedEnv>
<tr *ngFor="let item of template.value | keyvalue">
<!-- view of unedit value -->
<td *ngIf="uneditedEnv.template_mapping[template.key].hasOwnProperty(item.key)">{{ item.key }}</td>
<td *ngIf="item.value == uneditedEnv.template_mapping[template.key][item.key]">{{ item.value }}</td>
<!-- view of new key -->
<ng-container *ngIf="!uneditedEnv.template_mapping[template.key].hasOwnProperty(item.key)">
<td class="add-elem">{{ item.key }}</td>
<td class="add-elem">{{ item.value }}</td>
</ng-container>
<!-- view of edit value -->
<td *ngIf="uneditedEnv.template_mapping[template.key].hasOwnProperty(item.key) && item.value != uneditedEnv.template_mapping[template.key][item.key]">
<span class="del-elem arrow-after">{{ uneditedEnv.template_mapping[template.key][item.key] }}</span >
<span class="add-elem">{{ item.value }}</span >
</td>
</tr>
<!-- view deleted key -->
<tr *ngFor="let item of uneditedEnv.template_mapping[template.key] | keyvalue">
<ng-container *ngIf="!env.template_mapping[template.key].hasOwnProperty(item.key)">
<td class="del-elem">{{ item.key }}</td>
<td class="del-elem">{{ item.value }}</td >
</ng-container>
</tr>
</ng-template>
</tbody>
</table>
</td>
Expand All @@ -420,9 +493,27 @@ <h4>IP Mappings</h4>
</tr>
</thead>
<tbody>
<tr *ngFor="let item of env.ip_translation_map | keyvalue">
<td>{{ item.key }}</td>
<td>{{ item.value }}</td>
<tr *ngFor="let item of env.ip_translation_map | keyvalue">
<!-- view of unedit value -->
<td *ngIf="uneditedEnv.ip_translation_map.hasOwnProperty(item.key)">{{ item.key }}</td>
<td *ngIf="item.value == uneditedEnv.ip_translation_map[item.key]">{{ item.value }}</td>
<!-- view of new key -->
<ng-container *ngIf="!uneditedEnv.ip_translation_map.hasOwnProperty(item.key)">
<td class="add-elem">{{ item.key }}</td>
<td class="add-elem">{{ item.value }}</td>
</ng-container>
<!-- view of edit value -->
<td *ngIf="uneditedEnv.ip_translation_map.hasOwnProperty(item.key) && item.value != uneditedEnv.ip_translation_map[item.key]">
<span class="del-elem arrow-after">{{ uneditedEnv.ip_translation_map[item.key] }}</span >
<span class="add-elem">{{ item.value }}</span >
</td>
</tr>
<!-- view deleted key -->
<tr *ngFor="let item of uneditedEnv.ip_translation_map | keyvalue">
<ng-container *ngIf="!env.ip_translation_map.hasOwnProperty(item.key)">
<td class="del-elem">{{ item.key }}</td>
<td class="del-elem">{{ item.value }}</td >
</ng-container>
</tr>
</tbody>
</table>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,20 @@

.no-margin-top{
margin-top: 0;
}

.del-elem {
color:red;
font-weight: bold;
}

.arrow-after::after {
color:black;
content: ' \1F862 ';
vertical-align: middle;
}

.add-elem {
color:green;
font-weight: bold;
}
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ export class EditEnvironmentComponent implements OnInit, OnChanges {
public event: EventEmitter<boolean> = new EventEmitter(false);

public env: Environment = new Environment();
public uneditedEnv = new Environment();
public virtualMachineTemplateList: Map<string, string> = new Map();

constructor(
Expand Down Expand Up @@ -200,8 +201,9 @@ export class EditEnvironmentComponent implements OnInit, OnChanges {

ngOnChanges() {
if (this.updateEnv) {
this.fixNullValues();
this.fixNullValues();
this.env = this.updateEnv;
this.uneditedEnv = JSON.parse(JSON.stringify(this.updateEnv))
this._prepare();
this.wizard.navService.goTo(this.wizard.pages.last, true);
this.wizard.pages.first.makeCurrent();
Expand Down Expand Up @@ -284,6 +286,11 @@ export class EditEnvironmentComponent implements OnInit, OnChanges {
this.wizard.open();
}

public close(){
// when close/cancel clean env
this.updateEnv = null;
}

public copyEnvironmentDetails() {
this.env.display_name = this.environmentDetails.get('display_name').value;
this.env.dnssuffix = this.environmentDetails.get('dnssuffix').value;
Expand Down Expand Up @@ -370,13 +377,20 @@ export class EditEnvironmentComponent implements OnInit, OnChanges {
(this.templateMappings.get('templates') as FormArray).removeAt(index);
}

public getTeplateCount(vmt: string) {
public getTemplateCount(vmt: string) {
if (!this.env.count_capacity) {
return 0;
}
return this.env.count_capacity[vmt] ?? 0;
}

public getTemplateUnEditEnvCount(vmt: string){
if(!this.uneditedEnv.count_capacity){
return 0;
}
return this.uneditedEnv.count_capacity[vmt] ?? 0
}

public copyTemplateMapping() {
this.env.template_mapping = {};
this.env.count_capacity = {};
Expand Down Expand Up @@ -452,7 +466,24 @@ export class EditEnvironmentComponent implements OnInit, OnChanges {
}
}

updateFormValues() {
this.copyEnvironmentDetails();
this.copyEnvironmentSpecifics();
this.copyTemplateMapping();
this.copyIpMapping();
}

isSpecificsInList(scenario: string, list?: string[]): boolean {
return list ? list.includes(scenario) : false;
}

getVirtualMachineTemplateName(template: any) {
return this.virtualMachineTemplateList.get(template as string) ?? template;
}

isVMTemplateInUneditedEnv(template: string) {
return (
this.uneditedEnv.template_mapping.hasOwnProperty(template)
);
}
}
Loading

0 comments on commit e06129c

Please sign in to comment.