X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=skyquake%2Fplugins%2Fcomposer%2Fsrc%2Fsrc%2Flibraries%2Futils.js;h=3fa9eb3484fa45a5e759f678aa59e0a0ca899152;hb=f2dc2462571800e62cba969964de621dca09299c;hp=b0fcfc6eb0a5dd72334b79f73f5f4ca526194ba2;hpb=6f88e279fe92f07bd29ac5d4dfa5a91287cec793;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 b0fcfc6eb..3fa9eb348 100644 --- a/skyquake/plugins/composer/src/src/libraries/utils.js +++ b/skyquake/plugins/composer/src/src/libraries/utils.js @@ -283,6 +283,13 @@ export default { return leafRefPath; }, + cleanupFieldKeyArray (fieldKeyArray) { + fieldKeyArray.map((fieldKey, fieldKeyIndex) => { + fieldKeyArray[fieldKeyIndex] = fieldKey.replace(/.*\/(.*)/, '$1'); + }); + return fieldKeyArray; + }, + resolveLeafRefPath (catalogs, leafRefPath, fieldKey, path, container) { let pathCopy = _clone(path); // Strip any prefixes @@ -295,16 +302,20 @@ export default { // Split on delimiter (/) const pathArray = leafRefPathCopy.split('/'); + let fieldKeyArray = fieldKey.split(':'); + + // strip prepending qualifiers from fieldKeys + fieldKeyArray = this.cleanupFieldKeyArray(fieldKeyArray); let results = []; // 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 @@ -390,3 +401,4 @@ export default { } } } +