Passing Option from Search DB to metadata

Changes to make metadata and editor option based Search from db buttons
Change-Id: I93f1f2658b2c2d4ba11f35cc44c190998c08381d
Issue-ID: CCSDK-1275
Signed-off-by: Ezhilarasi <ezhrajam@in.ibm.com>
diff --git a/cds-ui/client/src/app/feature-modules/blueprint/select-template/metadata/metadata.component.ts b/cds-ui/client/src/app/feature-modules/blueprint/select-template/metadata/metadata.component.ts
index 174bdf1..f495170 100644
--- a/cds-ui/client/src/app/feature-modules/blueprint/select-template/metadata/metadata.component.ts
+++ b/cds-ui/client/src/app/feature-modules/blueprint/select-template/metadata/metadata.component.ts
@@ -48,7 +48,7 @@
   blueprintName: string;
   uploadedFileName: string;
   entryDefinition: string;
-
+  
   constructor(private formBuilder: FormBuilder, private store: Store<IAppState>,
     private loader: LoaderService, private dataService: SelectTemplateService) {
     this.bpState = this.store.select('blueprint');
@@ -60,12 +60,17 @@
       template_version: ['', Validators.required],
       template_tags: ['', Validators.required]
     });
+
   }
 
   ngOnInit() {
-    this.dataService.getCbaOption().subscribe(
-      res => {console.log("data from service " + res);}
+    this.dataService.currentMessage.subscribe(
+      res => {
+        let options = res;
+        console.log(options + " data from service ngoninit" + res);
+      }
     );
+    
     this.bpState.subscribe(
       blueprintdata => {
         var blueprintState: IBlueprintState = { blueprint: blueprintdata.blueprint, isLoadSuccess: blueprintdata.isLoadSuccess, isSaveSuccess: blueprintdata.isSaveSuccess, isUpdateSuccess: blueprintdata.isUpdateSuccess };
@@ -76,8 +81,6 @@
         this.uploadedFileName = blueprintdata.uploadedFileName;
         this.entryDefinition = blueprintdata.entryDefinition;
 
-
-
         var blueprintState: IBlueprintState = { blueprint: blueprintdata.blueprint, isLoadSuccess: blueprintdata.isLoadSuccess, isSaveSuccess: blueprintdata.isSaveSuccess, isUpdateSuccess: blueprintdata.isUpdateSuccess };
         this.metadata = blueprintState.blueprint.metadata;
         this.blueprint = blueprintState.blueprint;
@@ -99,11 +102,7 @@
         });
       })
   }
-ngAfterInit(){
-  this.dataService.getCbaOption().subscribe(
-    res => {console.log("data from service after init" + res);}
-  );
-}
+  
   UploadMetadata() {
     this.loader.showLoader();
     this.metadata = Object.assign({}, this.CBAMetadataForm.value);
diff --git a/cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-from-database/search-from-database.component.html b/cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-from-database/search-from-database.component.html
index 6482710..9cab6c4 100644
--- a/cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-from-database/search-from-database.component.html
+++ b/cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-from-database/search-from-database.component.html
@@ -41,9 +41,9 @@
                     <br>{{option.blueprintModel.updatedBy}}
                 </mat-card-content>
                 <mat-card-actions class="flexBox">
-                    <button matStepperNext mat-menu-item (click)="editCBA(option.blueprintModel.artifactName,option.blueprintModel.artifactVersion,edit)">Edit</button>
-                    <button matStepperNext mat-menu-item (click)="editCBA(option.blueprintModel.artifactName,option.blueprintModel.artifactVersion,clone)">Clone</button>
-                    <button matStepperNext mat-menu-item (click)="editCBA(option.blueprintModel.artifactName,option.blueprintModel.artifactVersion,info)">Info</button>
+                    <button matStepperNext mat-menu-item (click)="editCBA(option.blueprintModel.artifactName,option.blueprintModel.artifactVersion,1)">Edit</button>
+                    <button matStepperNext mat-menu-item (click)="editCBA(option.blueprintModel.artifactName,option.blueprintModel.artifactVersion,2)">Clone</button>
+                    <button matStepperNext mat-menu-item (click)="editCBA(option.blueprintModel.artifactName,option.blueprintModel.artifactVersion,3)">Info</button>
                 </mat-card-actions>
             </mat-card>
         </div>
diff --git a/cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-from-database/search-from-database.component.ts b/cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-from-database/search-from-database.component.ts
index 588854f..47771a7 100644
--- a/cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-from-database/search-from-database.component.ts
+++ b/cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-from-database/search-from-database.component.ts
@@ -33,7 +33,7 @@
 import { IBlueprintState } from '../../../../../common/core/store/models/blueprintState.model';
 import { IAppState } from '../../../../../common/core/store/state/app.state';
 import { SetBlueprintState } from '../../../../../common/core/store/actions/blueprint.action';
-
+import { SelectTemplateService } from '../../select-template.service';
 @Component({
   selector: 'app-search-from-database',
   templateUrl: './search-from-database.component.html',
@@ -61,8 +61,8 @@
 
   searchText: string = '';
   constructor(private _formBuilder: FormBuilder,
-    private searchService: SearchTemplateService, private alertService: NotificationHandlerService, 
-    private loader: LoaderService, private store: Store<IAppState>) { }
+    private searchService: SearchTemplateService, private alertService: NotificationHandlerService,
+    private loader: LoaderService, private store: Store<IAppState>, private cbEditOption: SelectTemplateService) { }
 
   ngOnInit() {
     this.myControl = this._formBuilder.group({
@@ -85,7 +85,8 @@
       })
   }
 
-  editCBA(artifactName: string,artifactVersion:string, option: string) {
+  editCBA(artifactName: string, artifactVersion: string, option: string) {
+    this.cbEditOption.setCbaOption(option);
     this.zipFile.generateAsync({ type: "blob" })
       .then(blob => {
         const formData = new FormData();
diff --git a/cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-template.module.ts b/cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-template.module.ts
index 9bafaeb..a4e30a4 100644
--- a/cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-template.module.ts
+++ b/cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-template.module.ts
@@ -26,7 +26,7 @@
 import { ReactiveFormsModule } from '@angular/forms';
 import { AppMaterialModule } from 'src/app/common/modules/app-material.module';
 import { SharedModule} from 'src/app/common/shared/shared.module';
-import { SelectTemplateService } from 'src/app/feature-modules/blueprint/select-template/select-template.service';
+// import { SelectTemplateService } from 'src/app/feature-modules/blueprint/select-template/select-template.service';
   
 @NgModule({
   declarations: [
@@ -42,6 +42,6 @@
     SearchTemplateComponent,
     SearchFromDatabaseComponent
     ],
-  providers:[ SelectTemplateService]
+  // providers:[ SelectTemplateService]
 })
 export class SearchTemplateModule { }
diff --git a/cds-ui/client/src/app/feature-modules/blueprint/select-template/select-template.module.ts b/cds-ui/client/src/app/feature-modules/blueprint/select-template/select-template.module.ts
index f66b78c..085da72 100644
--- a/cds-ui/client/src/app/feature-modules/blueprint/select-template/select-template.module.ts
+++ b/cds-ui/client/src/app/feature-modules/blueprint/select-template/select-template.module.ts
@@ -27,15 +27,15 @@
 import { SelectTemplateComponent } from './select-template.component';
 import { SelectTemplateRoutingModule } from './select-template-routing.module';
 import { AppMaterialModule } from 'src/app/common/modules/app-material.module';
-import { SearchTemplateModule} from './search-template/search-template.module';
-
+import { SearchTemplateModule } from './search-template/search-template.module';
+import { SelectTemplateService } from './select-template.service';
 @NgModule({
   declarations: [
     TemplateOptionsComponent,
-     MetadataComponent,
-     SelectTemplateComponent
+    MetadataComponent,
+    SelectTemplateComponent
   ],
-   exports: [
+  exports: [
     TemplateOptionsComponent,
     SearchTemplateComponent,
     MetadataComponent,
@@ -47,6 +47,9 @@
     ReactiveFormsModule,
     AppMaterialModule,
     SearchTemplateModule
+  ],
+  providers: [
+    SelectTemplateService
   ]
 })
 export class SelectTemplateModule { }
diff --git a/cds-ui/client/src/app/feature-modules/blueprint/select-template/select-template.service.ts b/cds-ui/client/src/app/feature-modules/blueprint/select-template/select-template.service.ts
index fa18cbd..d6bcfb3 100644
--- a/cds-ui/client/src/app/feature-modules/blueprint/select-template/select-template.service.ts
+++ b/cds-ui/client/src/app/feature-modules/blueprint/select-template/select-template.service.ts
@@ -20,21 +20,29 @@
 */
 
 import { Injectable } from '@angular/core';
-import { Observable, of } from 'rxjs';
+import { BehaviorSubject } from 'rxjs';
 
 @Injectable({
   providedIn: 'root'
 })
 export class SelectTemplateService {
   cbaOption: string;
+  private messageSource = new BehaviorSubject('default message');
+  currentMessage = this.messageSource.asObservable();
 
   constructor() { }
 
   setCbaOption(option: string) {
-    this.cbaOption = option;
+    this.messageSource.next(option);
   }
+  // setCbaOption(option: string) {
+  //   this.cbaOption = option;
+  //   console.log("CBA option set to"+this.cbaOption+":"+option);
+  // }
 
-  getCbaOption(): Observable<string> {
-    return of(this.cbaOption);
-  }
+  // getCbaOption(): Observable<any> {
+  //   console.log("CBA option is "+this.cbaOption);
+  //   // return of(this.cbaOption);
+  //   return this.cbaOption.asObservable(); 
+  // }
 }