X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=skyquake%2Fplugins%2Fcomposer%2Fsrc%2Fsrc%2Flibraries%2Futils.js;h=d39a138708fa6f2cd3760a284f27500c9f4c3a11;hb=2da8b7a246ba17396c5bc218a0b7f1685fb8d304;hp=ef37a0bdc2377b31864037290354c5b5c054659b;hpb=4ef8c40c2c013c21f5487330daeab2561ba25fb3;p=osm%2FUI.git diff --git a/skyquake/plugins/composer/src/src/libraries/utils.js b/skyquake/plugins/composer/src/src/libraries/utils.js index ef37a0bdc..d39a13870 100644 --- a/skyquake/plugins/composer/src/src/libraries/utils.js +++ b/skyquake/plugins/composer/src/src/libraries/utils.js @@ -187,6 +187,9 @@ export default { console.log('Something went wrong while resolving a leafref. Reached a leaf with predicate.'); } else { // contains no predicate + if (!objectCopy) { + break; + } results.push(objectCopy[fragment]); } } @@ -243,6 +246,9 @@ export default { } } else { // contains no predicate + if (!objectCopy) { + break; + } objectCopy = objectCopy[fragment]; if (!objectCopy) { // contains no value @@ -327,13 +333,21 @@ export default { } else if (fieldKeyArray.length == 2) { for (let key in catalogs) { for (let subKey in catalogs[key]) { - let found = _find(catalogs[key][subKey], {id: fieldKeyArray[0]}); + console.log(key, subKey); + var found = _find(catalogs[key][subKey], {id: fieldKeyArray[0]}); if (found) { for (let foundKey in found) { - // let topLevel = _find(found[foundKey], {id: fieldKeyArray[1]}); - if (foundKey == fieldKeyArray[1]) { - results = this.getAbsoluteResults(found[foundKey], pathArray.splice(-i, i)); - return results; + if (_isArray(found[foundKey])) { + let topLevel = _find(found[foundKey], {id: fieldKeyArray[1]}); + if (topLevel) { + results = this.getAbsoluteResults(topLevel, pathArray.splice(-i, i)); + return results; + } + } else { + if (foundKey == fieldKeyArray[1]) { + results = this.getAbsoluteResults(found[foundKey], pathArray.splice(-i, i)); + return results; + } } } } @@ -342,13 +356,20 @@ export default { } else if (fieldKeyArray.length == 3) { for (let key in catalogs) { for (let subKey in catalogs[key]) { - let found = _.find(catalogs[key][subKey], {id: fieldKeyArray[0]}); + let found = _find(catalogs[key][subKey], {id: fieldKeyArray[0]}); if (found) { for (let foundKey in found) { - let topLevel = _.find(found[foundKey], {id: fieldKeyArray[1]}); - if (topLevel) { - results = this.getAbsoluteResults(topLevel, pathArray.splice(-i, i)); - return results; + if (_isArray(found[foundKey])) { + let topLevel = _find(found[foundKey], {id: fieldKeyArray[1]}); + if (topLevel) { + results = this.getAbsoluteResults(topLevel, pathArray.splice(-i, i)); + return results; + } + } else { + if (foundKey == fieldKeyArray[1]) { + results = this.getAbsoluteResults(found[foundKey], pathArray.splice(-i, i)); + return results; + } } } }