You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dlab.apache.org by dg...@apache.org on 2020/01/06 12:59:14 UTC
[incubator-dlab] branch develop updated: [Dlab 1417] Fixed error
message is not appeared if project quota is more than total one (#519)
This is an automated email from the ASF dual-hosted git repository.
dgnatyshyn pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git
The following commit(s) were added to refs/heads/develop by this push:
new a6e1e0c [Dlab 1417] Fixed error message is not appeared if project quota is more than total one (#519)
a6e1e0c is described below
commit a6e1e0cc5324c8d39729fe5794f849dad2119d3b
Author: Dmytro Gnatyshyn <42...@users.noreply.github.com>
AuthorDate: Mon Jan 6 14:59:05 2020 +0200
[Dlab 1417] Fixed error message is not appeared if project quota is more than total one (#519)
[DLAB-1417]: Fixed error message is not appeared if project quota is more than total one
---
.../manage-environment-dilog.component.html | 25 +++++++++----------
.../manage-environment-dilog.component.scss | 5 ++--
.../manage-environment-dilog.component.ts | 28 +++++++++++++++-------
.../webapp/src/app/core/util/checkUtils.ts | 2 +-
4 files changed, 34 insertions(+), 26 deletions(-)
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/management/manage-environment/manage-environment-dilog.component.html b/services/self-service/src/main/resources/webapp/src/app/administration/management/manage-environment/manage-environment-dilog.component.html
index 91c3e1e..d4380ba 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/management/manage-environment/manage-environment-dilog.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/management/manage-environment/manage-environment-dilog.component.html
@@ -35,22 +35,22 @@
<div class="scrolling-content" id="scrolling" formArrayName="projects">
<mat-list-item *ngFor="let item of usersEnvironments.controls; let i=index" [formGroupName]="i"
class="list-item">
- <div class="username ellipsis"
- matTooltip="{{ manageUsersForm.controls['projects'].controls[i].value['project'] }}"
- matTooltipPosition="above">{{ manageUsersForm.controls['projects'].controls[i].value['project'] }}
+ <div class="username ellipsis">
+ <span class="ellipsis"
+ matTooltip="{{ manageUsersForm.controls['projects']['controls'][i].value['project'] }}"
+ matTooltipPosition="above">{{ manageUsersForm.controls['projects']['controls'][i].value['project'] }}
+ </span>
</div>
<div class="quotes">
- <input type="text" (keypress)="CheckUtils.numberOnly($event)" min="0"
+ <input type="number" (keypress)="CheckUtils.numberOnly($event)" min="0"
placeholder="Enter limit, in USD" formControlName="budget">
<span class="error"
- *ngIf="!manageUsersForm?.controls['projects'].controls[i].controls['budget'].valid && !manageUsersForm?.controls['projects'].controls[i].controls['budget'].hasError('overrun')">Budget can contain only integer value</span>
- <span class="error"
- *ngIf="manageUsersForm?.controls['projects'].controls[i].controls['budget'].hasError('overrun')">Per-user
+ *ngIf="manageUsersForm?.controls['projects']['controls'][i].controls['budget'].hasError('overrun')">Per-user
quotes cannot be greater than total budget</span>
</div>
<div class="action">
<span
- *ngIf="manageUsersForm?.controls['projects'].controls[i].controls['canBeStopped'].value; else not_allowed_stop"
+ *ngIf="manageUsersForm?.controls['projects']['controls'][i].controls['canBeStopped'].value; else not_allowed_stop"
matTooltip="Stop" matTooltipPosition="above" (click)="applyAction('stop', item)">
<i class="material-icons">pause_circle_outline</i>
</span>
@@ -62,7 +62,7 @@
</ng-template>
<span
- *ngIf="manageUsersForm?.controls['projects'].controls[i].controls['canBeTerminated'].value; else not_allowed_terminate"
+ *ngIf="manageUsersForm?.controls['projects']['controls'][i].controls['canBeTerminated'].value; else not_allowed_terminate"
matTooltip="Terminate" matTooltipPosition="above" (click)="applyAction('terminate', item)">
<i class="material-icons">phonelink_off</i>
</span>
@@ -79,12 +79,9 @@
<div class="control-group total-budget">
<label class="label">Total budget</label>
<div class="control">
- <input type="text" (keypress)="CheckUtils.numberOnly($event)" formControlName="total"
+ <input type="number" (keypress)="CheckUtils.numberOnly($event)" formControlName="total"
placeholder="Enter total budget, in USD">
- <span class="error" *ngIf="manageUsersForm?.controls['total'].hasError('overrun')">Budget can contain only integer value</span>
- <span class="error"
- *ngIf="!manageUsersForm?.controls['total'].valid && !manageUsersForm?.controls['total'].hasError('overrun')">Only
- positive integers are allowed</span>
+ <span class="error" *ngIf="manageUsersForm?.controls['total'].hasError('overrun')">Total budget cannot be lower than a sum of users quotes</span>
</div>
</div>
<div class="text-center m-top-30">
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/management/manage-environment/manage-environment-dilog.component.scss b/services/self-service/src/main/resources/webapp/src/app/administration/management/manage-environment/manage-environment-dilog.component.scss
index cb18ac1..a034d8f 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/management/manage-environment/manage-environment-dilog.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/management/manage-environment/manage-environment-dilog.component.scss
@@ -20,7 +20,7 @@
.manage-env-dialog {
.mat-list {
.mat-list-item {
- height: 60px;
+ height: 63px;
margin: 5px 0;
position: relative;
@@ -50,7 +50,8 @@
.error {
position: absolute;
left: 0;
- top: 35px;
+ top: 34px;
+ font-family: 'Open Sans', sans-serif;
}
}
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/management/manage-environment/manage-environment-dilog.component.ts b/services/self-service/src/main/resources/webapp/src/app/administration/management/manage-environment/manage-environment-dilog.component.ts
index 39f598e..c9bc231 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/management/manage-environment/manage-environment-dilog.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/management/manage-environment/manage-environment-dilog.component.ts
@@ -48,8 +48,20 @@ export class ManageEnvironmentComponent implements OnInit {
ngOnInit() {
!this.manageUsersForm && this.initForm();
this.setProjectsControl();
+ this.manageUsersForm.controls['total'].setValue(this.data.total.conf_max_budget || '');
+ this.onFormChange()
+ }
- this.manageUsersForm.controls['total'].setValue(this.data.total.conf_max_budget || null);
+ public onFormChange() {
+ this.manageUsersForm.valueChanges.subscribe(value => {
+ if((this.getCurrentTotalValue() && this.getCurrentTotalValue() >= this.getCurrentUsersTotal())) {
+ this.manageUsersForm.controls['projects']['controls'].forEach(v => {
+ v.controls['budget'].setErrors(null);
+ }
+ );
+ this.manageUsersForm.controls['total'].setErrors(null)
+ }
+ })
}
get usersEnvironments(): FormArray {
@@ -57,7 +69,11 @@ export class ManageEnvironmentComponent implements OnInit {
}
public setBudgetLimits(value) {
- this.dialogRef.close(value);
+ if(this.getCurrentTotalValue() >= this.getCurrentUsersTotal()){
+ this.dialogRef.close(value);
+ }else{
+ this.manageUsersForm.controls['total'].setErrors({ overrun: true })
+ }
}
public applyAction(action, project) {
@@ -73,7 +89,7 @@ export class ManageEnvironmentComponent implements OnInit {
this.manageUsersForm.setControl('projects',
this._fb.array((this.data.projectsList || []).map((x: any) => this._fb.group({
project: x.name,
- budget: [x.budget, [Validators.min(0), this.userValidityCheck.bind(this)]],
+ budget: [x.budget, [ this.userValidityCheck.bind(this)]],
canBeStopped: x.canBeStopped,
canBeTerminated: x.canBeTerminated
}))));
@@ -95,18 +111,12 @@ export class ManageEnvironmentComponent implements OnInit {
}
private totalValidityCheck(control) {
- if(control && control.value === null && control.dirty){
- return { integerError: true }
- }
return (control && control.value)
? (control.value >= this.getCurrentUsersTotal() ? null : { overrun: true })
: null;
}
private userValidityCheck(control) {
- if(control && isNaN(control.value)){
- return { budget: true }
- }
if (control && control.value) {
return (this.getCurrentTotalValue() && this.getCurrentTotalValue() < this.getCurrentUsersTotal()) ? { overrun: true } : null;
}
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/util/checkUtils.ts b/services/self-service/src/main/resources/webapp/src/app/core/util/checkUtils.ts
index 7994030..4cd39c3 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/util/checkUtils.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/util/checkUtils.ts
@@ -42,7 +42,7 @@ export class CheckUtils {
public static numberOnly(event): boolean {
const charCode = (event.which) ? event.which : event.keyCode;
- if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode !== 46 && charCode !== 44) {
+ if (charCode > 31 && (charCode < 48 || charCode > 57)) {
return false;
}
return true;
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org