blob: 6e2b288262e59d346dd935f5ecc29b66031116ac [file] [log] [blame]
<!--
~ Licensed to the Apache Software Foundation (ASF) under one
~ or more contributor license agreements. See the NOTICE file
~ distributed with this work for additional information
~ regarding copyright ownership. The ASF licenses this file
~ to you under the Apache License, Version 2.0 (the
~ "License"); you may not use this file except in compliance
~ with the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing,
~ software distributed under the License is distributed on an
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~ KIND, either express or implied. See the License for the
~ specific language governing permissions and limitations
~ under the License.
-->
<div id="dialog-box" class="manage-env-dialog">
<header class="dialog-header">
<h4 class="modal-title">Manage DataLab quotas</h4>
<button type="button" class="close" (click)="dialogRef.close()">&times;</button>
</header>
<div class="dialog-content">
<div class="content-box">
<div *ngIf="data.projectsList?.length">
<form
[formGroup]="manageUsersForm"
(submit)="setBudgetLimits(manageUsersForm.value)"
novalidate
>
<mat-list>
<mat-list-item class="list-header">
<div class="username">Project</div>
<div class="period">Set per month</div>
<div class="quotes">Limit</div>
</mat-list-item>
<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">
<span
class="ellipsis"
matTooltip="{{ manageUsersForm.controls['projects']['controls'][i].value['project'] }}"
matTooltipPosition="above"
>
{{ manageUsersForm.controls['projects']['controls'][i].value['project'] }}
</span>
</div>
<div class="period">
<mat-slide-toggle formControlName="monthlyBudget"></mat-slide-toggle>
</div>
<div class="quotes">
<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'].hasError('overrun')
&& !manageUsersForm?.controls['projects']['controls'][i].controls['budget'].hasError('max')"
>
Projects budget cannot be higher than total budget.
</span>
<span
class="error"
*ngIf="manageUsersForm?.controls['projects']['controls'][i].controls['budget'].hasError('max')"
>
Project budget cannot be higher than 1000000000.
</span>
</div>
</mat-list-item>
</div>
<div class="control-group total-budget">
<mat-list-item class="list-item">
<div class="username ellipsis">
<span class="ellipsis">Total budget</span>
</div>
<div class="period"></div>
<div class="quotes">
<input
type="number"
(keypress)="CheckUtils.numberOnly($event)"
formControlName="total"
placeholder="Enter total budget, in USD"
/>
<span
class="error"
*ngIf="manageUsersForm?.controls['total'].hasError('overrun')
&& !manageUsersForm?.controls['total'].hasError('max')"
>
Total budget cannot be lower than a sum of project quotes.
</span>
<span
class="error"
*ngIf="manageUsersForm?.controls['total'].hasError('max')"
>
Total budget cannot be higher than 1000000000.
</span>
</div>
</mat-list-item>
</div>
<div class="text-center m-top-30">
<button
mat-raised-button
type="button"
(click)="dialogRef.close()"
class="butt action"
>
Cancel
</button>
<button
mat-raised-button
type="submit"
[disabled]="!manageUsersForm.valid || isFormChanged"
class="butt butt-success"
[ngClass]="{'not-allowed': !manageUsersForm.valid}"
>
Apply
</button>
</div>
</mat-list>
</form>
</div>
<div class="info message" *ngIf="!data?.projectsList.length">No active projects</div>
</div>
</div>
</div>