Skip to content

Commit 9201b63

Browse files
committed
Merge remote-tracking branch 'origin/next' into NAB-359
2 parents ff5bf06 + 801cd32 commit 9201b63

File tree

18 files changed

+470
-166
lines changed

18 files changed

+470
-166
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@netgrif/application-builder",
3-
"version": "2.1.0-RC.1",
3+
"version": "2.1.0-RC.2",
44
"description": "Netgrif Application Builder for building, configuring and modeling applications for Application Engine.",
55
"homepage": "https://builder.netgrif.com",
66
"license": "SEE LICENSE IN LICENSE FILE",

src/app/app.module.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ import {AppBuilderConfigurationService} from './app-builder-configuration.servic
4444
import {MatProgressSpinnerModule} from '@angular/material/progress-spinner';
4545
import {MatPaginatorIntl} from '@angular/material/paginator';
4646
import {BuilderPaginatorIntl} from './modeler/components/master-detail/main-master/builder-paginator-inpl';
47+
import {DialogMarkingChangeComponent} from './dialogs/dialog-marking-change/dialog-marking-change.component';
4748

4849
const appRoutes: Routes = [
4950
{
@@ -77,6 +78,7 @@ const appRoutes: Routes = [
7778
DialogModelEditComponent,
7879
MaterialIconPickerComponent,
7980
DialogLocalStorageModelComponent,
81+
DialogMarkingChangeComponent
8082
],
8183
imports: [
8284
BrowserModule,

src/app/dialogs/dialog-change-data/dialog-change-data.component.html

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
1-
<h2 mat-dialog-title>Change referenced data values</h2>
1+
<h2 mat-dialog-title>Change referenced data value{{dataSet.length > 1 ? 's' : ''}}</h2>
22
<mat-dialog-content class="netgrif-input">
33
<mat-form-field fxFlex *ngFor="let data of dataSet">
44
<mat-label>{{data.id}}</mat-label>
5-
<input type="number" step="1" matInput [(ngModel)]="data.value">
5+
<input type="number" step="1" min="0" matInput [(ngModel)]="data.value" [formControl]="valueCtrl">
6+
<mat-error *ngIf="valueCtrl.errors && valueCtrl.errors.required">Value is required</mat-error>
7+
<mat-error *ngIf="valueCtrl.errors && valueCtrl.errors.validValue">Value can not be a negative number</mat-error>
68
</mat-form-field>
79
<span *ngIf="dataSet.length === 0">No referenced data found</span>
810
</mat-dialog-content>
911
<mat-dialog-actions>
10-
<button mat-flat-button color="primary" [mat-dialog-close]="dataSet">
12+
<button mat-flat-button color="primary" [mat-dialog-close]="dataSet" [disabled]="valueCtrl.invalid">
1113
<mat-icon>done</mat-icon>
1214
<span>Save</span>
1315
</button>

src/app/dialogs/dialog-change-data/dialog-change-data.component.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
import {Component, Inject, OnInit} from '@angular/core';
22
import {MAT_DIALOG_DATA} from '@angular/material/dialog';
3+
import {FormControl, ValidatorFn, Validators} from '@angular/forms';
4+
import {CanvasTransition} from '../../modeler/edit-mode/domain/canvas-transition';
5+
import {CanvasNodeElement} from '../../modeler/edit-mode/domain/canvas-node-element';
36

47
export interface DataSet {
58
dataSet: Map<string, number>;
@@ -18,11 +21,26 @@ export interface Data {
1821
export class DialogChangeDataComponent {
1922

2023
public dataSet: Array<Data>;
24+
public valueCtrl: FormControl;
2125

2226
constructor(
2327
@Inject(MAT_DIALOG_DATA) public data: DataSet,
2428
) {
2529
this.dataSet = new Array<Data>();
2630
data.dataSet.forEach((value, id) => this.dataSet.push({id, value}));
31+
this.valueCtrl = new FormControl('', [
32+
Validators.required,
33+
this.validValue()
34+
]);
35+
}
36+
37+
private validValue(): ValidatorFn {
38+
return (fc: FormControl): { [key: string]: any } | null => {
39+
const value = Math.floor(fc.value as number);
40+
if (value !== Infinity && value === fc.value as number && value >= 0) {
41+
return null;
42+
}
43+
return ({validMultiplicity: true})
44+
};
2745
}
2846
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<h2 mat-dialog-title>Change marking of place {{CanvasNodeElement.pretty(place)}}</h2>
2+
<mat-dialog-content class="netgrif-input">
3+
<mat-form-field fxFlex>
4+
<mat-label>Tokens</mat-label>
5+
<input type="number" min="0" step="1" matInput [(ngModel)]="place.marking" [formControl]="markingCtrl">
6+
<mat-error *ngIf="markingCtrl.errors && markingCtrl.errors.required">Number of tokens is required</mat-error>
7+
<mat-error *ngIf="markingCtrl.errors && markingCtrl.errors.validMultiplicity">Number of tokens must be a non-negative integer</mat-error>
8+
</mat-form-field>
9+
</mat-dialog-content>
10+
<mat-dialog-actions>
11+
<button mat-flat-button color="primary" [mat-dialog-close]="place.marking" [disabled]="markingCtrl.invalid">
12+
<mat-icon>done</mat-icon>
13+
<span>Save</span>
14+
</button>
15+
</mat-dialog-actions>
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
mat-dialog-content {
2+
display: flex;
3+
flex-direction: column;
4+
}
5+
6+
mat-dialog-actions {
7+
justify-content: flex-end;
8+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import {Component, Inject} from '@angular/core';
2+
import {MAT_DIALOG_DATA} from '@angular/material/dialog';
3+
import {FormControl, ValidatorFn, Validators} from '@angular/forms';
4+
import {PlaceEditData} from '../dialog-place-edit/dialog-place-edit.component';
5+
import {SimulationModeService} from '../../modeler/simulation-mode/simulation-mode.service';
6+
import {Place} from '@netgrif/petriflow';
7+
import {CanvasNodeElement} from '../../modeler/edit-mode/domain/canvas-node-element';
8+
9+
@Component({
10+
selector: 'nab-dialog-marking-change',
11+
templateUrl: './dialog-marking-change.component.html',
12+
styleUrl: './dialog-marking-change.component.scss'
13+
})
14+
export class DialogMarkingChangeComponent {
15+
16+
public markingCtrl: FormControl;
17+
public place: Place;
18+
19+
constructor(
20+
@Inject(MAT_DIALOG_DATA) public data: PlaceEditData,
21+
public simulationService: SimulationModeService
22+
) {
23+
this.place = this.simulationService.model.getPlace(data.placeId);
24+
this.markingCtrl = new FormControl('', [
25+
Validators.required,
26+
this.validValue()
27+
]);
28+
}
29+
30+
private validValue(): ValidatorFn {
31+
return (fc: FormControl): { [key: string]: any } | null => {
32+
const value = Math.floor(fc.value as number);
33+
if (value !== Infinity && value === fc.value as number && value >= 0) {
34+
return null;
35+
}
36+
return ({validMultiplicity: true})
37+
};
38+
}
39+
40+
protected readonly CanvasNodeElement = CanvasNodeElement;
41+
}

src/app/dialogs/dialog-place-edit/dialog-place-edit.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ <h2 mat-dialog-title>Edit place</h2>
1313
<mat-form-field fxFlex>
1414
<mat-label>Tokens</mat-label>
1515
<input type="number" min="0" step="1" matInput [(ngModel)]="place.place.marking" [formControl]="markingCtrl">
16-
<mat-error *ngIf="markingCtrl.errors && markingCtrl.errors.required">Id is required</mat-error>
16+
<mat-error *ngIf="markingCtrl.errors && markingCtrl.errors.required">Number of tokens is required</mat-error>
1717
<mat-error *ngIf="markingCtrl.errors && markingCtrl.errors.validMarking">
1818
Number of tokens must be a non-negative integer
1919
</mat-error>

src/app/form-builder/edit-panel/edit-panel.component.html

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,12 +83,11 @@ <h4 class="full-width margin-html">
8383
<mat-label>Title</mat-label>
8484
<input matInput type="text" [(ngModel)]="dataVariable.title.value" (change)="notifyGridster()">
8585
</mat-form-field>
86-
<mat-form-field *ngIf="!isListOptionsDisplay()" class="full-width margin-html">
86+
<mat-form-field class="full-width margin-html">
8787
<mat-label>Placeholder</mat-label>
8888
<input matInput type="text" [(ngModel)]="dataVariable.placeholder.value" (change)="notifyGridster()">
8989
</mat-form-field>
90-
<mat-form-field *ngIf="!isBoolean() && !isButton() && !isListOptionsDisplay() && !isFile() && !isFileList()"
91-
class="full-width margin-html">
90+
<mat-form-field class="full-width margin-html">
9291
<mat-label>Description</mat-label>
9392
<textarea matInput [(ngModel)]="dataVariable.desc.value" (change)="notifyGridster()"></textarea>
9493
</mat-form-field>

0 commit comments

Comments
 (0)