Stop clearing angular store after deploy to avoid script problem.

Issue-ID: CCSDK-3042

Signed-off-by: Ahmedeldeeb50 <ahmed.eldeeb.ext@orange.com>
Change-Id: I5eb109c6f27600be63714e93a3748f4d5ecfe37f
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/action-attributes/action-attributes.component.html b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/action-attributes/action-attributes.component.html
index 8746569..6a73d9e 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/action-attributes/action-attributes.component.html
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/action-attributes/action-attributes.component.html
@@ -427,8 +427,9 @@
                 </div>
             </div>
             <div class="modal-footer">
-                <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
-                <button type="button" class="btn btn-primary" (click)="submitAttributes()">Submit Attributes</button>
+                <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
+                <button type="button" class="btn btn-primary" data-dismiss="modal" (click)="submitAttributes()">Submit
+                    Attributes</button>
             </div>
         </div>
     </div>
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.component.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.component.ts
index 0f6e38c..cc7de5f 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.component.ts
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/designer.component.ts
@@ -25,35 +25,35 @@
 
 import dagre from 'dagre';
 import graphlib from 'graphlib';
-import {Component, OnDestroy, OnInit, ViewEncapsulation} from '@angular/core';
+import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';
 import * as joint from 'jointjs';
 import './jointjs/elements/palette.function.element';
 import './jointjs/elements/action.element';
 import './jointjs/elements/board.function.element';
-import {DesignerStore} from './designer.store';
-import {ActionElementTypeName} from 'src/app/common/constants/app-constants';
-import {GraphUtil} from './graph.util';
-import {GraphGenerator} from './graph.generator.util';
-import {FunctionsStore} from './functions.store';
-import {Subject} from 'rxjs';
-import {distinctUntilChanged, takeUntil} from 'rxjs/operators';
-import {BluePrintDetailModel} from '../model/BluePrint.detail.model';
-import {ActivatedRoute, Router} from '@angular/router';
-import {DesignerService} from './designer.service';
-import {FilesContent, FolderNodeElement} from '../package-creation/mapping-models/metadata/MetaDataTab.model';
-import {PackageCreationModes} from '../package-creation/creationModes/PackageCreationModes';
-import {PackageCreationBuilder} from '../package-creation/creationModes/PackageCreationBuilder';
-import {PackageCreationStore} from '../package-creation/package-creation.store';
-import {PackageCreationService} from '../package-creation/package-creation.service';
-import {PackageCreationUtils} from '../package-creation/package-creation.utils';
+import { DesignerStore } from './designer.store';
+import { ActionElementTypeName } from 'src/app/common/constants/app-constants';
+import { GraphUtil } from './graph.util';
+import { GraphGenerator } from './graph.generator.util';
+import { FunctionsStore } from './functions.store';
+import { Subject } from 'rxjs';
+import { distinctUntilChanged, takeUntil } from 'rxjs/operators';
+import { BluePrintDetailModel } from '../model/BluePrint.detail.model';
+import { ActivatedRoute, Router } from '@angular/router';
+import { DesignerService } from './designer.service';
+import { FilesContent, FolderNodeElement } from '../package-creation/mapping-models/metadata/MetaDataTab.model';
+import { PackageCreationModes } from '../package-creation/creationModes/PackageCreationModes';
+import { PackageCreationBuilder } from '../package-creation/creationModes/PackageCreationBuilder';
+import { PackageCreationStore } from '../package-creation/package-creation.store';
+import { PackageCreationService } from '../package-creation/package-creation.service';
+import { PackageCreationUtils } from '../package-creation/package-creation.utils';
 import * as JSZip from 'jszip';
-import {saveAs} from 'file-saver';
-import {PackageCreationExtractionService} from '../package-creation/package-creation-extraction.service';
-import {CBAPackage} from '../package-creation/mapping-models/CBAPacakge.model';
-import {TopologyTemplate} from './model/designer.topologyTemplate.model';
-import {ToastrService} from 'ngx-toastr';
-import {DesignerDashboardState} from './model/designer.dashboard.state';
-import {NgxUiLoaderService} from 'ngx-ui-loader';
+import { saveAs } from 'file-saver';
+import { PackageCreationExtractionService } from '../package-creation/package-creation-extraction.service';
+import { CBAPackage } from '../package-creation/mapping-models/CBAPacakge.model';
+import { TopologyTemplate } from './model/designer.topologyTemplate.model';
+import { ToastrService } from 'ngx-toastr';
+import { DesignerDashboardState } from './model/designer.dashboard.state';
+import { NgxUiLoaderService } from 'ngx-ui-loader';
 
 @Component({
     selector: 'app-designer',
@@ -77,7 +77,7 @@
     paletteGraph: joint.dia.Graph;
     palettePaper: joint.dia.Paper;
     ngUnsubscribe = new Subject();
-    opt = {tx: 100, ty: 100};
+    opt = { tx: 100, ty: 100 };
     filesData: any = [];
     folder: FolderNodeElement = new FolderNodeElement();
     zipFile: JSZip = new JSZip();
@@ -127,7 +127,7 @@
 
     publishBluePrint() {
         this.create();
-        this.zipFile.generateAsync({type: 'blob'})
+        this.zipFile.generateAsync({ type: 'blob' })
             .then(blob => {
                 const formData = new FormData();
                 formData.append('file', blob);
@@ -173,7 +173,7 @@
                     this.packageCreationService.downloadPackage(this.viewedPackage.artifactName + '/'
                         + this.viewedPackage.artifactVersion)
                         .subscribe(response => {
-                            const blob = new Blob([response], {type: 'application/octet-stream'});
+                            const blob = new Blob([response], { type: 'application/octet-stream' });
                             this.packageCreationExtractionService.extractBlobToStore(blob);
                         });
                 }
@@ -236,7 +236,7 @@
                         setLinkVertices: false,
                         marginX: 10,
                         marginY: 10,
-                        clusterPadding: {top: 100, left: 30, right: 10, bottom: 100},
+                        clusterPadding: { top: 100, left: 30, right: 10, bottom: 100 },
                         rankDir: 'TB'
                     });
                     this.actions = [];
@@ -474,11 +474,10 @@
 
     enrichBluePrint() {
         this.ngxService.start();
+        console.log('start enrich ------------');
         this.packageCreationStore.addTopologyTemplate(this.cbaPackage.templateTopology);
         this.formTreeData();
         this.enrichPackage();
-        this.designerStore.clear();
-        this.packageCreationStore.clear();
     }
 
     private formTreeData() {
@@ -493,14 +492,18 @@
 
     private enrichPackage() {
         this.create();
-        this.zipFile.generateAsync({type: 'blob'})
+        this.zipFile.generateAsync({ type: 'blob' })
             .then(blob => {
                 this.packageCreationService.enrichAndDeployPackage(blob).subscribe(response => {
                     // this.packageCreationService.enrichPackage(blob).subscribe(response => {
+                    response = JSON.parse(response);
+                    console.log(response);
                     console.log('success');
-                    const blobInfo = new Blob([response], {type: 'application/octet-stream'});
-                    this.packageCreationStore.clear();
-                    this.packageCreationExtractionService.extractBlobToStore(blobInfo);
+                    const id = response['blueprintModel']['id'];
+                    this.router.navigate(['/packages/designer/' + id]);
+                    // const blobInfo = new Blob([response], { type: 'application/octet-stream' });
+                    // this.packageCreationStore.clear();
+                    // this.packageCreationExtractionService.extractBlobToStore(blobInfo);
                     this.toastService.success('Enriched & Deployed successfully ');
                 }, err => {
                     console.log(err);
@@ -528,22 +531,22 @@
 
     saveBluePrintToDataBase() {
         this.create();
-        this.zipFile.generateAsync({type: 'blob'})
+        this.zipFile.generateAsync({ type: 'blob' })
             .then(blob => {
-                    this.packageCreationService.savePackage(blob).subscribe(
-                        bluePrintDetailModels => {
-                            this.toastService.success('Package is successfully updated ');
-                            const id = bluePrintDetailModels.toString().split('id')[1].split(':')[1].split('"')[1];
-                            this.router.navigate(['/packages/designer/' + id]);
-                            console.log('success');
-                        }, error => {
-                            this.toastService.error('Error occured when editing ' + error.message);
-                            console.log('Error -' + error.message);
-                        }, () => {
-                            this.ngxService.stop();
-                        });
-                }, err => {
-                },
+                this.packageCreationService.savePackage(blob).subscribe(
+                    bluePrintDetailModels => {
+                        this.toastService.info('success updating the package');
+                        const id = bluePrintDetailModels.toString().split('id')[1].split(':')[1].split('"')[1];
+                        this.router.navigate(['/packages/designer/' + id]);
+                        console.log('success');
+                    }, error => {
+                        this.toastService.error('error happened when editing ' + error.message);
+                        console.log('Error -' + error.message);
+                    }, () => {
+                        this.ngxService.stop();
+                    });
+            }, err => {
+            },
                 () => {
                     this.ngxService.stop();
                 });
@@ -566,12 +569,17 @@
         // console.log(this.designerState.template.workflows[this.currentActionName]
         // ['steps'][customFunctionName]['target']);
         this.designerStore.setCurrentFunction(this.designerState.template.workflows[this.currentActionName]
-            ['steps'][customFunctionName]['target']);
+        ['steps'][customFunctionName]['target']);
     }
 
     getTarget(stepname) {
-        return this.designerState.template.workflows[this.currentActionName]
+        try {
+            //  console.log(this.currentActionName + " -- " + stepname)
+            return this.designerState.template.workflows[this.currentActionName]
             ['steps'][stepname]['target'];
+        } catch (e) {
+            // console.log(e);
+        }
     }
 
     downloadPackage() {
@@ -579,16 +587,16 @@
         this.ngxService.start();
         this.packageCreationService.downloadPackage(this.viewedPackage.artifactName + '/'
             + this.viewedPackage.artifactVersion).subscribe(response => {
-            const blob = new Blob([response], {type: 'application/octet-stream'});
-            saveAs(blob, this.viewedPackage.artifactName + '-' + this.viewedPackage.artifactVersion + '-CBA.zip');
+                const blob = new Blob([response], { type: 'application/octet-stream' });
+                saveAs(blob, this.viewedPackage.artifactName + '-' + this.viewedPackage.artifactVersion + '-CBA.zip');
 
-        }, err => {
-            this.toastService.error('Package ' + this.viewedPackage.artifactName + 'has error when downloading' +
-                err.message);
-            this.ngxService.stop();
-        }, () => {
-            this.toastService.success('Package ' + this.viewedPackage.artifactName + 'has been downloaded successfully');
-            this.ngxService.stop();
-        });
+            }, err => {
+                this.toastService.error('package ' + this.viewedPackage.artifactName + 'has error when downloading' +
+                    err.message);
+                this.ngxService.stop();
+            }, () => {
+                this.toastService.success('package ' + this.viewedPackage.artifactName + 'downloaded successfully');
+                this.ngxService.stop();
+            });
     }
 }
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/functions-attribute/functions-attribute.component.css b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/functions-attribute/functions-attribute.component.css
index 10ed56b..1159d8f 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/functions-attribute/functions-attribute.component.css
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/functions-attribute/functions-attribute.component.css
@@ -1,3 +1,3 @@
 .createAttributeTabs .active {
-    background: #eaeaea;
+    background: #C3CDDB;
 }
\ No newline at end of file
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/functions-attribute/functions-attribute.component.html b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/functions-attribute/functions-attribute.component.html
index ea17f88..ded7e5f 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/functions-attribute/functions-attribute.component.html
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/functions-attribute/functions-attribute.component.html
@@ -73,9 +73,10 @@
                                                 Template</label>
                                         </div>
                                         <br />
-                                        <button type="button" data-toggle="modal" data-target="#templateModal"
-                                            class="btn btn-select-template m-auto"><i class="icon-add-circle"
-                                                type="button" aria-hidden="true"></i> Select Template</button>
+                                        <button (click)="init()" type="button" data-toggle="modal"
+                                            data-target="#templateModal" class="btn btn-select-template m-auto"><i
+                                                class="icon-add-circle" type="button" aria-hidden="true"></i> Select
+                                            Template</button>
                                     </div>
 
                                     <div class="attribute-wrap"
@@ -235,9 +236,9 @@
 
             </div>
             <div class="modal-footer">
-                <button type="button" class="btn btn-secondary" (click)="cancel()" data-dismiss="modal">Close</button>
-                <button type="button" class="btn btn-primary" data-dismiss="modal" (click)="addTemplates()">Add
-                    Template</button>
+                <button type="button" class="btn btn-secondary" (click)="cancel()" data-dismiss="modal">Cancel</button>
+                <button type="button" class="btn btn-primary" data-dismiss="modal"
+                    (click)="addTemplates()">Save</button>
             </div>
         </div>
     </div>
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/functions-attribute/functions-attribute.component.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/functions-attribute/functions-attribute.component.ts
index d36b16f..f46004b 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/functions-attribute/functions-attribute.component.ts
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/functions-attribute/functions-attribute.component.ts
@@ -99,7 +99,7 @@
 
     onInitMapping() {
         // selectedTemplates , templateAndMappingMap
-        this.selectedTemplates = new Map<string, TemplateAndMapping>();
+        // this.selectedTemplates = new Map<string, TemplateAndMapping>();
         try {
             const functionMap = this.designerState.template.node_templates[this.functionName].artifacts;
             console.log(this.templateAndMappingMap);
@@ -117,6 +117,10 @@
         } catch (e) { }
     }
 
+    init() {
+        this.selectedTemplates = new Map(this.finalTemplates);
+    }
+
     toNodeProcess(nodeTemplate, functionName) {
         console.log(nodeTemplate);
         this.currentFuncion['instance-name'] = functionName;
@@ -156,7 +160,7 @@
     }
 
     addTemplates() {
-        this.finalTemplates = this.selectedTemplates;
+        this.finalTemplates = new Map(this.selectedTemplates);
     }
     cancel() {
         this.selectedTemplates = new Map<string, TemplateAndMapping>();
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/package-creation.service.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/package-creation.service.ts
index 2625dc8..1e0e36a 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/package-creation.service.ts
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/package-creation.service.ts
@@ -64,7 +64,7 @@
     }
 
     private enrichandpublish(body: any | null, options?: any): Observable<any> {
-        return this.api.post(BlueprintURLs.enrichandpublish, body, {responseType: 'blob'});
+        return this.api.post(BlueprintURLs.enrichandpublish, body, {responseType: 'text'});
     }
 
     private deployBluePrint(body: any | null, options?: any): Observable<any> {