VID - Feature flag for PNF in modern UI
[vid.git] / vid-app-common / src / main / webapp / app / vid / scripts / services / asdcService.js
index 6bdc0ae..00a6b2a 100755 (executable)
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================\r
  * VID\r
  * ================================================================================\r
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.\r
+ * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved.\r
  * ================================================================================\r
  * Licensed under the Apache License, Version 2.0 (the "License");\r
  * you may not use this file except in compliance with the License.\r
 "use strict";\r
 \r
 var AsdcService = function ($http, $log, PropertyService, UtilityService, VIDCONFIGURATION, COMPONENT, DataService, featureFlags) {\r
+    var shouldExcludeMacroFromAsyncInstantiationFlow = function(serviceModel){\r
+        if (DataService.getE2EService())\r
+            return true;\r
+        if (!_.isEmpty(serviceModel.pnfs) && !featureFlags.isOn(COMPONENT.FEATURE_FLAGS.FLAG_EXTENDED_MACRO_PNF_CONFIG))\r
+            return true;\r
+        if (!_.isEmpty(serviceModel.collectionResources))\r
+            return true;\r
+        if (!_.isEmpty(serviceModel.networks) && !featureFlags.isOn(COMPONENT.FEATURE_FLAGS.FLAG_NETWORK_TO_ASYNC_INSTANTIATION))\r
+            return true;\r
+        if(serviceModel.service.instantiationType === "ClientConfig")\r
+            return true;\r
+        return false;\r
+    };\r
+\r
     return {\r
         getModel: function (modelId, successCallbackFunction) {\r
             $log.debug("AsdcService:getModel: modelId: " + modelId);\r
@@ -34,19 +48,37 @@ var AsdcService = function ($http, $log, PropertyService, UtilityService, VIDCON
             (UtilityService.runHttpErrorHandler);\r
         },\r
 \r
-        shouldExcludeMacroFromAsyncInstatiationFlow: function(serviceModel){\r
-            if (!featureFlags.isOn(COMPONENT.FEATURE_FLAGS.FLAG_ASYNC_INSTANTIATION))\r
-                return true;\r
-                       if (DataService.getE2EService())\r
-                               return true;\r
-            if (!_.isEmpty(serviceModel.pnfs))\r
-                return true;\r
-            if (!_.isEmpty(serviceModel.collectionResource))\r
-                return true;\r
-            if (!_.isEmpty(serviceModel.networks) && !featureFlags.isOn(COMPONENT.FEATURE_FLAGS.FLAG_NETWORK_TO_ASYNC_INSTANTIATION))\r
-                return true;\r
-            if(serviceModel.service.instantiationType === "ClientConfig")\r
-                return true;\r
+        shouldTakeTheDrawingBoardViewEdit: function(serviceModel) {\r
+            if (this.enableWebpackModernUi()\r
+                && serviceModel.service.vidNotions\r
+                && serviceModel.service.vidNotions.viewEditUI\r
+                && serviceModel.service.vidNotions.viewEditUI !== 'legacy'\r
+            ) return true;\r
+\r
+            return false;\r
+        },\r
+\r
+        enableWebpackModernUi: function(){\r
+            return featureFlags.isOn(COMPONENT.FEATURE_FLAGS.FLAG_ENABLE_WEBPACK_MODERN_UI);\r
+        },\r
+\r
+        shouldTakeTheAsyncInstantiationFlow: function(serviceModel) {\r
+            if (!(this.enableWebpackModernUi()))\r
+                return false;\r
+            // Assuming positive flag - first of all, respect serviceModel.service.vidNotions.instantiationUI\r
+            if (serviceModel.service.vidNotions\r
+                && serviceModel.service.vidNotions.instantiationUI\r
+                && serviceModel.service.vidNotions.instantiationUI !== 'legacy'\r
+            ) return true;\r
+\r
+            // If defined 'legacy' or not defined, other client-side\r
+            // logic still apply:\r
+\r
+            if (this.isMacro(serviceModel)\r
+                && !shouldExcludeMacroFromAsyncInstantiationFlow(serviceModel)\r
+            ) return true;\r
+\r
+            // otherwise...\r
             return false;\r
         },\r
 \r
@@ -63,15 +95,15 @@ var AsdcService = function ($http, $log, PropertyService, UtilityService, VIDCON
                         return UtilityService.arrayContains(VIDCONFIGURATION.MACRO_SERVICES, serviceModel.service.invariantUuid);\r
                     default:\r
                         console.debug("Unexpected serviceModel.service.instantiationType: " + serviceModel.service.instantiationType);\r
-                        return true;\r
+                        return UtilityService.arrayContains(VIDCONFIGURATION.MACRO_SERVICES, serviceModel.service.invariantUuid);\r
                 }\r
             } else {\r
                 $log.debug("isMscro=false, because serviceModel.service is undefined");\r
                 return false;\r
             }\r
         }\r
-    }\r
-}\r
+    };\r
+};\r
 \r
 appDS2.factory("AsdcService", ["$http", "$log", "PropertyService",\r
     "UtilityService", "VIDCONFIGURATION","COMPONENT", "DataService", "featureFlags", AsdcService]);\r