if attribute Id is unknown (and does not match anything in metadata) the frontend breaks. Added more robust frontend display code to handle this case.

fixes #53
pull/63/head
Jason Kulatunga 4 years ago
parent adbbcb285a
commit be378bd147

@ -7,6 +7,7 @@ import { sdb } from 'app/data/mock/device/details/sdb';
import { sdc } from 'app/data/mock/device/details/sdc'; import { sdc } from 'app/data/mock/device/details/sdc';
import { sdd } from 'app/data/mock/device/details/sdd'; import { sdd } from 'app/data/mock/device/details/sdd';
import { sde } from 'app/data/mock/device/details/sde'; import { sde } from 'app/data/mock/device/details/sde';
import { sdf } from 'app/data/mock/device/details/sdf';
@Injectable({ @Injectable({
providedIn: 'root' providedIn: 'root'
@ -84,7 +85,7 @@ export class DetailsMockApi implements TreoMockApi
return [ return [
200, 200,
_.cloneDeep(sde) _.cloneDeep(sdf)
]; ];
}); });
} }

File diff suppressed because it is too large Load Diff

@ -98,13 +98,21 @@ export class DetailComponent implements OnInit, AfterViewInit, OnDestroy {
// @ Private methods // @ Private methods
// ----------------------------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------------------------
getAttributeDescription(attribute_data){ getAttributeDescription(attribute_data){
return this.data.metadata[attribute_data.attribute_id]?.description let attribute_metadata = this.data.metadata[attribute_data.attribute_id]
if(!attribute_metadata){
return 'Unknown'
} else {
return attribute_metadata.description
}
return
} }
getAttributeValue(attribute_data){ getAttributeValue(attribute_data){
if(this.isAta()) { if(this.isAta()) {
let attribute_metadata = this.data.metadata[attribute_data.attribute_id] let attribute_metadata = this.data.metadata[attribute_data.attribute_id]
if (attribute_metadata.display_type == "raw") { if(!attribute_metadata){
return attribute_data.value
} else if (attribute_metadata.display_type == "raw") {
return attribute_data.raw_value return attribute_data.raw_value
} else if (attribute_metadata.display_type == "transformed" && attribute_data.transformed_value) { } else if (attribute_metadata.display_type == "transformed" && attribute_data.transformed_value) {
return attribute_data.transformed_value return attribute_data.transformed_value
@ -120,7 +128,11 @@ export class DetailComponent implements OnInit, AfterViewInit, OnDestroy {
getAttributeValueType(attribute_data){ getAttributeValueType(attribute_data){
if(this.isAta()) { if(this.isAta()) {
let attribute_metadata = this.data.metadata[attribute_data.attribute_id] let attribute_metadata = this.data.metadata[attribute_data.attribute_id]
return attribute_metadata.display_type if(!attribute_metadata){
return ''
} else {
return attribute_metadata.display_type
}
} else { } else {
return '' return ''
} }
@ -135,12 +147,18 @@ export class DetailComponent implements OnInit, AfterViewInit, OnDestroy {
} }
getAttributeWorst(attribute_data){ getAttributeWorst(attribute_data){
return this.data.metadata[attribute_data.attribute_id]?.display_type == "normalized" ? attribute_data.worst : '' let attribute_metadata = this.data.metadata[attribute_data.attribute_id]
if(!attribute_metadata){
return attribute_data.worst
} else {
return attribute_metadata?.display_type == "normalized" ? attribute_data.worst : ''
}
} }
getAttributeThreshold(attribute_data){ getAttributeThreshold(attribute_data){
if(this.isAta()){ if(this.isAta()){
if (this.data.metadata[attribute_data.attribute_id]?.display_type == "normalized"){ let attribute_metadata = this.data.metadata[attribute_data.attribute_id]
if(!attribute_metadata || attribute_metadata.display_type == "normalized"){
return attribute_data.thresh return attribute_data.thresh
} else { } else {
// if(this.data.metadata[attribute_data.attribute_id].observed_thresholds){ // if(this.data.metadata[attribute_data.attribute_id].observed_thresholds){

Loading…
Cancel
Save