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;
|
||||
first_id: IdModel = null;
|
||||
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>
|
||||
</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"
|
||||
[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"
|
||||
[label]="parameter.name" appValidate="string" required
|
||||
[(ngModel)]="gSample.condition[parameter.name]" #parameterInput="ngModel">
|
||||
<ng-template rbFormValidationMessage="failure">{{parameterInput.errors.failure}}</ng-template>
|
||||
<ng-template rbFormValidationMessage="required">Cannot be empty</ng-template>
|
||||
</rb-form-input>
|
||||
</ng-container>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -182,21 +191,30 @@
|
||||
|
||||
<div *ngFor="let parameter of d.id.measurementTemplates[measurement.measurement_template].parameters;
|
||||
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"
|
||||
[label]="parameter.name" appValidate="string"
|
||||
[(ngModel)]="measurement.values[parameter.name]" #parameterInput="ngModel">
|
||||
<ng-template rbFormValidationMessage="failure">{{parameterInput.errors.failure}}</ng-template>
|
||||
<ng-template rbFormValidationMessage="required">Cannot be empty</ng-template>
|
||||
</rb-form-input>
|
||||
<rb-form-file *ngIf="parameter.range.type"
|
||||
[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>
|
||||
</ng-container>
|
||||
<canvas baseChart *ngIf="parameter.range.type && charts[gIndex][mIndex][0].data.length > 0"
|
||||
class="dpt-chart"
|
||||
[@inOut]
|
||||
|
@ -124,6 +124,17 @@ export class SampleComponent implements OnInit, AfterContentChecked {
|
||||
this.loading--;
|
||||
});
|
||||
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.d.load('materialTemplates', () => {
|
||||
@ -136,9 +147,6 @@ export class SampleComponent implements OnInit, AfterContentChecked {
|
||||
this.availableCustomFields = this.d.arr.sampleNotesFields.map(e => e.name);
|
||||
this.loading--;
|
||||
});
|
||||
this.d.load('user', () => {
|
||||
this.defaultDevice = this.d.d.user.devices[0];
|
||||
});
|
||||
if (!this.new) {
|
||||
this.loading++;
|
||||
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
|
||||
this.arr[collection] = data
|
||||
.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
|
||||
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