convert values range from templates to option element
This commit is contained in:
parent
4376adc1eb
commit
56cd4dcbcc
@ -7,4 +7,10 @@ export class TemplateModel extends BaseModel {
|
|||||||
version = 0;
|
version = 0;
|
||||||
first_id: IdModel = null;
|
first_id: IdModel = null;
|
||||||
parameters: {name: string, range: {[prop: string]: any}, rangeString?: string}[] = [];
|
parameters: {name: string, range: {[prop: string]: any}, rangeString?: string}[] = [];
|
||||||
|
|
||||||
|
deserialize(input: any): this {
|
||||||
|
Object.assign(this, input);
|
||||||
|
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -160,14 +160,23 @@
|
|||||||
<option *ngFor="let c of d.arr.conditionTemplates" [value]="c._id">{{c.name}}</option>
|
<option *ngFor="let c of d.arr.conditionTemplates" [value]="c._id">{{c.name}}</option>
|
||||||
</rb-form-select>
|
</rb-form-select>
|
||||||
|
|
||||||
<rb-form-input *ngFor="let parameter of
|
<ng-container *ngFor="let parameter of
|
||||||
d.id.conditionTemplates[gSample.condition.condition_template].parameters; index as i"
|
d.id.conditionTemplates[gSample.condition.condition_template].parameters; index as i"
|
||||||
|
[ngSwitch]="(parameter.range.values ? 1 : 0)">
|
||||||
|
<rb-form-select *ngSwitchCase="1"
|
||||||
|
[name]="'conditionParameter-' + gIndex + '-' + i"
|
||||||
|
[label]="parameter.name" [(ngModel)]="gSample.condition[parameter.name]" ngModel>
|
||||||
|
<option *ngFor="let value of parameter.range.values" [value]="value">{{value}}</option>
|
||||||
|
<ng-template rbFormValidationMessage="required">Cannot be empty</ng-template>
|
||||||
|
</rb-form-select>
|
||||||
|
<rb-form-input *ngSwitchDefault
|
||||||
[name]="'conditionParameter-' + gIndex + '-' + i"
|
[name]="'conditionParameter-' + gIndex + '-' + i"
|
||||||
[label]="parameter.name" appValidate="string" required
|
[label]="parameter.name" appValidate="string" required
|
||||||
[(ngModel)]="gSample.condition[parameter.name]" #parameterInput="ngModel">
|
[(ngModel)]="gSample.condition[parameter.name]" #parameterInput="ngModel">
|
||||||
<ng-template rbFormValidationMessage="failure">{{parameterInput.errors.failure}}</ng-template>
|
<ng-template rbFormValidationMessage="failure">{{parameterInput.errors.failure}}</ng-template>
|
||||||
<ng-template rbFormValidationMessage="required">Cannot be empty</ng-template>
|
<ng-template rbFormValidationMessage="required">Cannot be empty</ng-template>
|
||||||
</rb-form-input>
|
</rb-form-input>
|
||||||
|
</ng-container>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -182,21 +191,30 @@
|
|||||||
|
|
||||||
<div *ngFor="let parameter of d.id.measurementTemplates[measurement.measurement_template].parameters;
|
<div *ngFor="let parameter of d.id.measurementTemplates[measurement.measurement_template].parameters;
|
||||||
index as pIndex">
|
index as pIndex">
|
||||||
<rb-form-input *ngIf="!parameter.range.type"
|
<ng-container [ngSwitch]="(parameter.range.type ? 1 : 0) + (parameter.range.values ? 2 : 0)">
|
||||||
|
<rb-form-file *ngSwitchCase="1"
|
||||||
|
[name]="'measurementParameter-' + gIndex + '-' + mIndex + '-' + pIndex"
|
||||||
|
[label]="parameter.name" maxSize="10000000" multiple
|
||||||
|
[required]="measurement.values[parameter.name] &&
|
||||||
|
!measurement.values[parameter.name].length"
|
||||||
|
(ngModelChange)="fileToArray($event, gIndex, mIndex, parameter.name)"
|
||||||
|
placeholder="Select file or drag and drop" dragDrop ngModel>
|
||||||
|
<ng-template rbFormValidationMessage="required">Cannot be empty</ng-template>
|
||||||
|
</rb-form-file>
|
||||||
|
<rb-form-select *ngSwitchCase="2"
|
||||||
|
[name]="'measurementParameter-' + gIndex + '-' + mIndex + '-' + pIndex"
|
||||||
|
[label]="parameter.name" [(ngModel)]="measurement.values[parameter.name]" ngModel>
|
||||||
|
<option *ngFor="let device of d.d.user.devices" [value]="device">{{device}}</option>
|
||||||
|
<ng-template rbFormValidationMessage="required">Cannot be empty</ng-template>
|
||||||
|
</rb-form-select>
|
||||||
|
<rb-form-input *ngSwitchDefault
|
||||||
[name]="'measurementParameter-' + gIndex + '-' + mIndex + '-' + pIndex"
|
[name]="'measurementParameter-' + gIndex + '-' + mIndex + '-' + pIndex"
|
||||||
[label]="parameter.name" appValidate="string"
|
[label]="parameter.name" appValidate="string"
|
||||||
[(ngModel)]="measurement.values[parameter.name]" #parameterInput="ngModel">
|
[(ngModel)]="measurement.values[parameter.name]" #parameterInput="ngModel">
|
||||||
<ng-template rbFormValidationMessage="failure">{{parameterInput.errors.failure}}</ng-template>
|
<ng-template rbFormValidationMessage="failure">{{parameterInput.errors.failure}}</ng-template>
|
||||||
<ng-template rbFormValidationMessage="required">Cannot be empty</ng-template>
|
<ng-template rbFormValidationMessage="required">Cannot be empty</ng-template>
|
||||||
</rb-form-input>
|
</rb-form-input>
|
||||||
<rb-form-file *ngIf="parameter.range.type"
|
</ng-container>
|
||||||
[name]="'measurementParameter-' + gIndex + '-' + mIndex + '-' + pIndex"
|
|
||||||
[label]="parameter.name" maxSize="10000000" multiple
|
|
||||||
[required]="measurement.values[parameter.name] && !measurement.values[parameter.name].length"
|
|
||||||
(ngModelChange)="fileToArray($event, gIndex, mIndex, parameter.name)"
|
|
||||||
placeholder="Select file or drag and drop" dragDrop ngModel>
|
|
||||||
<ng-template rbFormValidationMessage="required">Cannot be empty</ng-template>
|
|
||||||
</rb-form-file>
|
|
||||||
<canvas baseChart *ngIf="parameter.range.type && charts[gIndex][mIndex][0].data.length > 0"
|
<canvas baseChart *ngIf="parameter.range.type && charts[gIndex][mIndex][0].data.length > 0"
|
||||||
class="dpt-chart"
|
class="dpt-chart"
|
||||||
[@inOut]
|
[@inOut]
|
||||||
|
@ -124,6 +124,17 @@ export class SampleComponent implements OnInit, AfterContentChecked {
|
|||||||
this.loading--;
|
this.loading--;
|
||||||
});
|
});
|
||||||
this.d.load('measurementTemplates', () => {
|
this.d.load('measurementTemplates', () => {
|
||||||
|
this.d.load('user', () => {
|
||||||
|
this.defaultDevice = this.d.d.user.devices[0];
|
||||||
|
// spectrum device must be from user's devices list
|
||||||
|
this.d.arr.measurementTemplates.forEach(template => {
|
||||||
|
const device = template.parameters.find(e => e.name === 'device');
|
||||||
|
if (device) {
|
||||||
|
device.range.values = this.d.d.user.devices;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.d.idReload('measurementTemplates');
|
||||||
|
});
|
||||||
this.loading--;
|
this.loading--;
|
||||||
});
|
});
|
||||||
this.d.load('materialTemplates', () => {
|
this.d.load('materialTemplates', () => {
|
||||||
@ -136,9 +147,6 @@ export class SampleComponent implements OnInit, AfterContentChecked {
|
|||||||
this.availableCustomFields = this.d.arr.sampleNotesFields.map(e => e.name);
|
this.availableCustomFields = this.d.arr.sampleNotesFields.map(e => e.name);
|
||||||
this.loading--;
|
this.loading--;
|
||||||
});
|
});
|
||||||
this.d.load('user', () => {
|
|
||||||
this.defaultDevice = this.d.d.user.devices[0];
|
|
||||||
});
|
|
||||||
if (!this.new) {
|
if (!this.new) {
|
||||||
this.loading++;
|
this.loading++;
|
||||||
this.api.get<SampleModel>('/sample/' + this.route.snapshot.paramMap.get('id'), sData => {
|
this.api.get<SampleModel>('/sample/' + this.route.snapshot.paramMap.get('id'), sData => {
|
||||||
|
@ -40,7 +40,7 @@ export class DataService {
|
|||||||
if (this.collectionMap[collection].array) { // array data
|
if (this.collectionMap[collection].array) { // array data
|
||||||
this.arr[collection] = data
|
this.arr[collection] = data
|
||||||
.map(e => this.collectionMap[collection].model ? new this.collectionMap[collection].model().deserialize(e) : e);
|
.map(e => this.collectionMap[collection].model ? new this.collectionMap[collection].model().deserialize(e) : e);
|
||||||
this.id[collection] = this.arr[collection].reduce((s, e) => {s[e._id] = e; return s; }, {});
|
this.idReload(collection);
|
||||||
}
|
}
|
||||||
else { // not array data
|
else { // not array data
|
||||||
this.d[collection] = new this.collectionMap[collection].model().deserialize(data);
|
this.d[collection] = new this.collectionMap[collection].model().deserialize(data);
|
||||||
@ -49,4 +49,8 @@ export class DataService {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
idReload(collection) {
|
||||||
|
this.id[collection] = this.arr[collection].reduce((s, e) => {s[e._id] = e; return s; }, {});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user