X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=skyquake%2Fplugins%2Fcomposer%2Fsrc%2Fsrc%2Flibraries%2Futils.js;h=d2a75353b913f84642a6022a0dcb6dff40035789;hb=7d5f8997f9efa65cb5e6c6f9486d8440d348bdb6;hp=a182b1a90a4e1fafb6c850a6d27fe863458c6a59;hpb=30879fffbecf6d78cde249fecf68f6335555711a;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 a182b1a90..d2a75353b 100644 --- a/skyquake/plugins/composer/src/src/libraries/utils.js +++ b/skyquake/plugins/composer/src/src/libraries/utils.js @@ -271,11 +271,11 @@ export default { // Check if relative path or not // TODO: Below works but - // better to convert the pathCopy to absolute/rooted path + // better to convert the pathCopy to absolute/rooted path // and use the absolute module instead if (this.isRelativePath(leafRefPathCopy)) { let i = pathArray.length; - while (pathArray[pathArray.length - i] == '..') { + while ((pathArray[pathArray.length - i] == '..') && fieldKeyArray.length > 1) { fieldKeyArray.splice(-1, 1); if (!isNaN(Number(fieldKeyArray[fieldKeyArray.length - 1]))) { // found a number, so an index. strip it @@ -290,7 +290,7 @@ export default { for (let subKey in catalogs[key]) { let found = _.find(catalogs[key][subKey], {id: fieldKeyArray[0]}); if (found) { - results = this.getResults(found, pathArray.splice(-i, i)); + results = this.getAbsoluteResults(found, pathArray.splice(-i, i)); return results; } } @@ -303,14 +303,14 @@ export default { for (let foundKey in found) { let topLevel = _.find(found[foundKey], {id: fieldKeyArray[1]}); if (topLevel) { - results = this.getResults(topLevel, pathArray.splice(-i, i)); + results = this.getAbsoluteResults(topLevel, pathArray.splice(-i, i)); return results; } } } } } - } else { + } else { // not supported - too many levels deep ... maybe some day console.log('The relative path is from a node too many levels deep from root. This is not supported at the time'); }