fixes, add ordinal & multiplicity fields

This commit is contained in:
annampak 2017-11-28 13:42:30 +02:00
parent d5d3f5ef37
commit f558910905
6 changed files with 51 additions and 23 deletions

View File

@ -1,12 +1,23 @@
<div class= "container"> <div>
<h4>FieldSet</h4> <h4>FieldSet</h4>
<div *ngFor="let field of dataModel.fields let i=index;"> <div [formGroup]="form">
<field-form [form]="form.get('fields').get(''+i)" [dataModel]="field"></field-form> <div class="form-row">
<div class="form-group col-md-12">
<div class="form-group col-md-6">
<label>Multiplicity</label>
<input type="nymber" class="form-control" formControlName="multiplicity">
</div>
</div>
</div> </div>
</div>
<div> <div *ngFor="let field of dataModel.fields let i=index;">
<a (click)="addNewField()" style="cursor: pointer"> <field-form [form]="form.get('fields').get(''+i)" [dataModel]="field"></field-form>
Add another field + </div>
</a>
</div> <div>
</div> <a (click)="addNewField()" style="cursor: pointer">
Add another field +
</a>
</div>
</div>

View File

@ -35,12 +35,12 @@
</div> </div>
<div class="form-group col-md-4"> <div class="form-group col-md-4">
<label>Ordinal</label> <label>Ordinal</label>
<input type="number" class="form-control" formControlName="extendedDescription"> <input type="number" class="form-control" formControlName="ordinal">
</div> </div>
</div> </div>
<div class="form-row"> <div class="form-row">
<div class="form-group col-md-12"> <div class="form-group col-md-4">
<label>Default Visibility</label> <label class="radio control-label" >Default Visibility</label>
<label class="radio-inline"> <label class="radio-inline">
<input type="radio" name="inlineRadioOptions" id="inlineRadio1" value="option1"> true <input type="radio" name="inlineRadioOptions" id="inlineRadio1" value="option1"> true
</label> </label>
@ -48,13 +48,21 @@
<input type="radio" name="inlineRadioOptions" id="inlineRadio2" value="option2"> false <input type="radio" name="inlineRadioOptions" id="inlineRadio2" value="option2"> false
</label> </label>
</div> </div>
<div class="form-group col-md-4">
<label>Multiplicity</label>
<input type="number" class="form-control" formControlName="multiplicity">
</div>
<div class="form-group col-md-4">
<label>Default Value</label>
<input type="text" class="form-control" formControlName="value">
</div>
</div> </div>
</div> </div>
<div *ngFor="let rule of dataModel.rules let i=index;"> <div *ngFor="let rule of dataModel.rules let i=index;">
<rule-form [form]="form.get('rules').get(''+i)" [dataModel]="rule"></rule-form> <rule-form [form]="form.get('rules').get(''+i)" [dataModel]="rule"></rule-form>
</div> </div>
<div style="padding-left: 15px;"> <div>
<a (click)="addNewRule(form)" style="cursor: pointer"> <a (click)="addNewRule(form)" style="cursor: pointer">
Add another rule + Add another rule +
</a> </a>

View File

@ -1,4 +1,4 @@
<div class= "container"> <div><!-- style="border-style: solid;"-->
<h4 style="text-decoration: underline;">GroupFields</h4> <h4 style="text-decoration: underline;">GroupFields</h4>
<div [formGroup]="form"> <div [formGroup]="form">
<div class="form-row"> <div class="form-row">
@ -11,17 +11,17 @@
<input type="text" class="form-control" formControlName="id"> <input type="text" class="form-control" formControlName="id">
</div> </div>
<div class="form-group col-md-4"> <div class="form-group col-md-4">
<label>defaultVisibility</label> <label>DefaultVisibility</label>
<input type="text" class="form-control" formControlName="defaultVisibility"> <input type="text" class="form-control" formControlName="defaultVisibility">
</div> </div>
</div> </div>
<div class="form-row"> <div class="form-row">
<div class="form-group col-md-6"> <div class="form-group col-md-6">
<label>description</label> <label>Description</label>
<input type="text" class="form-control" formControlName="description"> <input type="text" class="form-control" formControlName="description">
</div> </div>
<div class="form-group col-md-6"> <div class="form-group col-md-6">
<label>extendedDescription</label> <label>ExtendedDescription</label>
<input type="text" class="form-control" formControlName="extendedDescription"> <input type="text" class="form-control" formControlName="extendedDescription">
</div> </div>
</div> </div>

View File

@ -5,16 +5,19 @@ import { BaseModel } from './BaseModel';
import {Field} from './Field' import {Field} from './Field'
export class CompositeField extends BaseModel implements Serializable<CompositeField> { export class CompositeField extends BaseModel implements Serializable<CompositeField> {
public fields:Array<Field> = new Array<Field>(); public fields:Array<Field> = new Array<Field>();
public multiplicity:number;
fromJSONObject(item:any):CompositeField{ fromJSONObject(item:any):CompositeField{
this.fields = new JsonSerializer<Field>().fromJSONArray(item.fields,Field); this.fields = new JsonSerializer<Field>().fromJSONArray(item.fields,Field);
this.multiplicity = item.multiplicity;
return this; return this;
} }
buildForm():FormGroup{ buildForm():FormGroup{
let formGroup = this.formBuilder.group({}); let formGroup = this.formBuilder.group({
multiplicity:[this.multiplicity]
});
let fieldsFormArray = new Array<FormGroup>(); let fieldsFormArray = new Array<FormGroup>();
this.fields.forEach(item => { this.fields.forEach(item => {

View File

@ -15,6 +15,8 @@ export class Field extends BaseModel implements Serializable<Field>,FormGenerato
public viewStyle:string; public viewStyle:string;
public defaultVisibility:boolean; public defaultVisibility:boolean;
public page:number; public page:number;
public multiplicity: number;
public ordinal: number;
public rules: Array<Rule> = new Array<Rule>(); public rules: Array<Rule> = new Array<Rule>();
fromJSONObject(item:any):Field{ fromJSONObject(item:any):Field{
@ -26,6 +28,8 @@ export class Field extends BaseModel implements Serializable<Field>,FormGenerato
this.viewStyle = item.viewStyle; this.viewStyle = item.viewStyle;
this.defaultVisibility = item.defaultVisibility; this.defaultVisibility = item.defaultVisibility;
this.page = item.page; this.page = item.page;
this.multiplicity = item.multiplicity;
this.ordinal = item.ordinal;
this.rules = new JsonSerializer<Rule>().fromJSONArray(item.rule, Rule); this.rules = new JsonSerializer<Rule>().fromJSONArray(item.rule, Rule);
return this; return this;
} }
@ -39,7 +43,9 @@ export class Field extends BaseModel implements Serializable<Field>,FormGenerato
extendedDescription:[this.extendedDescription], extendedDescription:[this.extendedDescription],
viewStyle: [this.viewStyle], viewStyle: [this.viewStyle],
defaultVisibility:[this.defaultVisibility], defaultVisibility:[this.defaultVisibility],
page:[this.page] page:[this.page] ,
multiplicity: [this.multiplicity],
ordinal:[this.ordinal]
}); });
let rulesFormArray = new Array<FormGroup>(); let rulesFormArray = new Array<FormGroup>();

View File

@ -1,4 +1,4 @@
<div><!--style="border-style: solid;"--> <div style="background-color: #f5f5f5;border: 1px solid #e3e3e3;padding: 24px;"><!--style="border-style: solid;"-->
<h4 style="text-decoration: underline;">Section</h4> <h4 style="text-decoration: underline;">Section</h4>
<div [formGroup]="form"> <div [formGroup]="form">
<div class="form-row"> <div class="form-row">