RIFT-16524: CATALOG COMPOSER : INTERNAL CONNECTION POINTS not getting populated in...
authorKiran Kashalkar <kiran.kashalkar@riftio.com>
Fri, 12 May 2017 20:48:55 +0000 (20:48 +0000)
committerKiran Kashalkar <kiran.kashalkar@riftio.com>
Fri, 12 May 2017 20:49:13 +0000 (20:49 +0000)
Signed-off-by: root <root@SO-ub.lxd>
skyquake/plugins/composer/src/src/libraries/utils.js

index b0fcfc6..3fa9eb3 100644 (file)
@@ -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 {
                }
        }
 }
+