addition of progress bar
This commit is contained in:
parent
a9c05943e0
commit
73c38f3ff3
|
@ -1,5 +1,5 @@
|
||||||
<div [formGroup]="form">
|
<div [formGroup]="form">
|
||||||
<p-radioButton name="{{field.id}}" value="true" label="Yes" formControlName="value"></p-radioButton>
|
<p-radioButton name="{{field.id}}" [value]="true" label="Yes" formControlName="value"></p-radioButton>
|
||||||
<br>
|
<br>
|
||||||
<p-radioButton name="{{field.id}}" value="false" label="No" formControlName="value"></p-radioButton>
|
<p-radioButton name="{{field.id}}" [value]="false" label="No" formControlName="value"></p-radioButton>
|
||||||
</div>
|
</div>
|
|
@ -9,14 +9,19 @@
|
||||||
<button type="button" class="btn btn-primary" (click)="submit();">Save and Finalize</button>
|
<button type="button" class="btn btn-primary" (click)="submit();">Save and Finalize</button>
|
||||||
<progress-bar class="ui-g" *ngIf="progressbar" [formGroup]=form></progress-bar>
|
<progress-bar class="ui-g" *ngIf="progressbar" [formGroup]=form></progress-bar>
|
||||||
<div class="ui-g-12">
|
<div class="ui-g-12">
|
||||||
<p-steps [model]="stepperItems" [activeIndex]="this.paginationService.getCurrentIndex()" (activeIndex)="this.paginationService.setCurrentIndex($event)"[readonly]="false"></p-steps>
|
<p-steps [model]="stepperItems" [activeIndex]="this.paginationService.getCurrentIndex()" (activeIndex)="this.paginationService.setCurrentIndex($event)"
|
||||||
|
[readonly]="false"></p-steps>
|
||||||
|
</div>
|
||||||
|
<div class="ui-g-12">
|
||||||
|
<progress-bar *ngIf="form" [formGroup]="form"></progress-bar>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-12 form-body-container" id="form-container">
|
<div class="col-md-12 form-body-container" id="form-container">
|
||||||
|
|
||||||
<form *ngIf="form" novalidate [formGroup]="form" (ngSubmit)="onSubmit()">
|
<form *ngIf="form" novalidate [formGroup]="form" (ngSubmit)="onSubmit()">
|
||||||
|
|
||||||
<div *ngFor="let section of dataModel.sections; let i = index;">
|
<div *ngFor="let section of dataModel.sections; let i = index;">
|
||||||
<df-section *ngIf='this.paginationService.isElementVisible(section.page)' [section]="section" [form]="form.get('sections').get(''+i)" [path]="i+1" [pathName]="'sections.'+i"></df-section>
|
<df-section *ngIf='this.paginationService.isElementVisible(section.page)' [section]="section" [form]="form.get('sections').get(''+i)"
|
||||||
|
[path]="i+1" [pathName]="'sections.'+i"></df-section>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
import { VisibilityRulesService } from '../../visibility-rules/visibility-rules.service';
|
||||||
|
|
||||||
import { Component, Input, OnInit } from '@angular/core';
|
import { Component, Input, OnInit } from '@angular/core';
|
||||||
import { FormGroup, FormControl, FormArray } from '@angular/forms'
|
import { FormGroup, FormControl, FormArray } from '@angular/forms'
|
||||||
|
@ -8,27 +9,29 @@ import { FormGroup, FormControl, FormArray } from '@angular/forms'
|
||||||
export class ProgressBarComponent implements OnInit {
|
export class ProgressBarComponent implements OnInit {
|
||||||
@Input() formGroup: FormGroup
|
@Input() formGroup: FormGroup
|
||||||
|
|
||||||
|
constructor(private visibilityRulesService: VisibilityRulesService) { }
|
||||||
|
|
||||||
private value: number;
|
private value: number;
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
this.formGroup
|
this.formGroup
|
||||||
.valueChanges
|
.valueChanges
|
||||||
.subscribe(control => {
|
.subscribe(control => {
|
||||||
this.value = (this.getDirtyValues(this.formGroup) / this.getFormControlDepthLength(this.formGroup)) * 100
|
this.value = (this.countFormControlsWithValue(this.formGroup) / this.getFormControlDepthLength(this.formGroup)) * 100
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
getDirtyValues(form: FormGroup): number {
|
countFormControlsWithValue(form: FormGroup): number {
|
||||||
let value = 0;
|
let value = 0;
|
||||||
Object.keys(form.controls).forEach(key => {
|
Object.keys(form.controls).forEach(key => {
|
||||||
let control = form.controls[key]
|
let control = form.controls[key]
|
||||||
if (control instanceof FormGroup) value += this.getDirtyValues(control);
|
if (control instanceof FormGroup) value += this.countFormControlsWithValue(control);
|
||||||
else if (control instanceof FormArray) {
|
else if (control instanceof FormArray) {
|
||||||
let formArray = (<FormArray>control);
|
let formArray = (<FormArray>control);
|
||||||
for (let i = 0; i < formArray.length; i++) {
|
for (let i = 0; i < formArray.length; i++) {
|
||||||
value += this.getDirtyValues(<FormGroup>formArray.get("" + i))
|
value += this.countFormControlsWithValue(<FormGroup>formArray.get("" + i))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (control.valid) value++;
|
else if (key === "value" && control.value != null) value++;
|
||||||
});
|
});
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
@ -44,7 +47,7 @@ export class ProgressBarComponent implements OnInit {
|
||||||
value += this.getFormControlDepthLength(<FormGroup>formArray.get("" + i))
|
value += this.getFormControlDepthLength(<FormGroup>formArray.get("" + i))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (control instanceof FormControl) value++;
|
else if (key === "value" && this.visibilityRulesService.isElementVisible(null, form.controls["id"].value)) value++;
|
||||||
});
|
});
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue