Operation WF association UI
[sdc.git] / catalog-ui / src / app / models / components / resource.ts
index 9f7a123..733f2ff 100644 (file)
@@ -22,6 +22,7 @@
  * Created by obarda on 2/3/2016.
  */
 'use strict';
+import * as _ from "lodash";
 import {InstancesInputsOrPropertiesMapData} from "../instance-inputs-properties-map";
 import {PropertyModel} from "../properties";
 import {DisplayModule} from "../modules/base-module";
@@ -41,6 +42,7 @@ export class Resource extends Component {
     public payloadData:string;
     public payloadName:string;
     public importedFile:FileUploadModel;
+    public resourceVendorModelNumber:string;
 
     // Onboarding parameters
     public csarUUID:string;
@@ -59,6 +61,7 @@ export class Resource extends Component {
             this.resourceType = component.resourceType;
             this.csarUUID = component.csarUUID;
             this.csarVersion = component.csarVersion;
+            this.resourceVendorModelNumber = component.resourceVendorModelNumber;
             this.filterTerm = this.name + ' ' + this.description + ' ' + (this.tags ? this.tags.toString() : '') + ' ' + this.version + ' ' + this.resourceType;
             if (component.categories && component.categories[0] && component.categories[0].subcategories && component.categories[0].subcategories[0]) {
                 component.mainCategory = component.categories[0].name;
@@ -80,6 +83,7 @@ export class Resource extends Component {
         this.csarUUID = componentMetadata.csarUUID;
         this.csarVersion = componentMetadata.csarVersion;
         this.derivedFrom = componentMetadata.derivedFrom;
+        this.resourceVendorModelNumber = componentMetadata.resourceVendorModelNumber;
         this.setComponentDisplayData();
     };
 
@@ -88,7 +92,7 @@ export class Resource extends Component {
     };
 
     public isComplex = ():boolean => {
-        return this.resourceType === ResourceType.VF;
+        return this.resourceType === ResourceType.VF || this.resourceType === ResourceType.PNF || this.resourceType === ResourceType.CVFC || this.resourceType === ResourceType.CR;
     };
 
     public isVl = ():boolean => {
@@ -100,7 +104,7 @@ export class Resource extends Component {
     };
 
     public createComponentOnServer = ():ng.IPromise<Component> => {
-        let deferred = this.$q.defer();
+        let deferred = this.$q.defer<Component>();
         let onSuccess = (component:Resource):void => {
             this.payloadData = undefined;
             this.payloadName = undefined;
@@ -121,7 +125,7 @@ export class Resource extends Component {
 
 
     public updateResourceGroupProperties = (module:DisplayModule, properties:Array<PropertyModel>):ng.IPromise<Array<PropertyModel>> => {
-        let deferred = this.$q.defer();
+        let deferred = this.$q.defer<Array<PropertyModel>>();
         let onSuccess = (updatedProperties:Array<PropertyModel>):void => {
             _.forEach(updatedProperties, (property:PropertyModel) => { // Replace all updated properties on the module we needed to update
                 _.extend(_.find(module.properties, {uniqueId: property.uniqueId}), property);
@@ -140,7 +144,7 @@ export class Resource extends Component {
 
     // For now we only implement the logic in service level
     public createInputsFormInstances = (instanceInputsPropertiesMap:InstancesInputsOrPropertiesMapData):ng.IPromise<Array<InputModel>> => {
-        let deferred = this.$q.defer();
+        let deferred = this.$q.defer<Array<InputModel>>();
         return deferred.promise;
     };
 
@@ -160,17 +164,21 @@ export class Resource extends Component {
     };
 
     public toJSON = ():any => {
-        this.componentService = undefined;
-        this.filterTerm = undefined;
-        this.iconSprite = undefined;
-        this.mainCategory = undefined;
-        this.subCategory = undefined;
-        this.selectedInstance = undefined;
-        this.showMenu = undefined;
-        this.$q = undefined;
-        this.selectedCategory = undefined;
-        this.importedFile = undefined;
-        return this;
+        let temp = angular.copy(this);
+        temp.componentService = undefined;
+        temp.filterTerm = undefined;
+        temp.iconSprite = undefined;
+        temp.mainCategory = undefined;
+        temp.subCategory = undefined;
+        temp.selectedInstance = undefined;
+        temp.showMenu = undefined;
+        temp.$q = undefined;
+        temp.selectedCategory = undefined;
+        temp.importedFile = undefined;
+        temp.modules = undefined;
+        temp.groupInstances = undefined;
+        temp.policies = undefined;
+        return temp;
     };
 }