aboutsummaryrefslogtreecommitdiffstats
path: root/cds-ui/client/src/app
diff options
context:
space:
mode:
Diffstat (limited to 'cds-ui/client/src/app')
-rw-r--r--cds-ui/client/src/app/feature-modules/blueprint/blueprint.module.ts4
-rw-r--r--cds-ui/client/src/app/feature-modules/blueprint/common-module/zipfile-extraction/zipfile-extraction.component.html20
-rw-r--r--cds-ui/client/src/app/feature-modules/blueprint/common-module/zipfile-extraction/zipfile-extraction.component.scss20
-rw-r--r--cds-ui/client/src/app/feature-modules/blueprint/common-module/zipfile-extraction/zipfile-extraction.component.spec.ts46
-rw-r--r--cds-ui/client/src/app/feature-modules/blueprint/common-module/zipfile-extraction/zipfile-extraction.component.ts136
-rw-r--r--cds-ui/client/src/app/feature-modules/blueprint/modify-template/editor/editor.component.ts13
-rw-r--r--cds-ui/client/src/app/feature-modules/blueprint/modify-template/editor/editor.service.ts8
-rw-r--r--cds-ui/client/src/app/feature-modules/blueprint/select-template/metadata/metadata.component.ts31
-rw-r--r--cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-from-database/search-from-database.component.html6
-rw-r--r--cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-from-database/search-from-database.component.ts9
-rw-r--r--cds-ui/client/src/app/feature-modules/blueprint/select-template/search-template/search-template.module.ts5
-rw-r--r--cds-ui/client/src/app/feature-modules/blueprint/select-template/select-template.module.ts13
-rw-r--r--cds-ui/client/src/app/feature-modules/blueprint/select-template/select-template.service.spec.ts12
-rw-r--r--cds-ui/client/src/app/feature-modules/blueprint/select-template/select-template.service.ts48
14 files changed, 330 insertions, 41 deletions
diff --git a/cds-ui/client/src/app/feature-modules/blueprint/blueprint.module.ts b/cds-ui/client/src/app/feature-modules/blueprint/blueprint.module.ts
index 27803ce56..edbaca67f 100644
--- a/cds-ui/client/src/app/feature-modules/blueprint/blueprint.module.ts
+++ b/cds-ui/client/src/app/feature-modules/blueprint/blueprint.module.ts
@@ -32,10 +32,12 @@ import { DeployTemplateModule } from './deploy-template/deploy-template.module';
import { TestTemplateModule } from './test-template/test-template.module';
import { AppMaterialModule } from '../../../app/common/modules/app-material.module';
import { ReactiveFormsModule } from '@angular/forms';
+import { ZipfileExtractionComponent } from './common-module/zipfile-extraction/zipfile-extraction.component';
@NgModule({
declarations: [
- BlueprintComponent
+ BlueprintComponent,
+ ZipfileExtractionComponent
],
imports: [
CommonModule,
diff --git a/cds-ui/client/src/app/feature-modules/blueprint/common-module/zipfile-extraction/zipfile-extraction.component.html b/cds-ui/client/src/app/feature-modules/blueprint/common-module/zipfile-extraction/zipfile-extraction.component.html
new file mode 100644
index 000000000..9b7f44b1c
--- /dev/null
+++ b/cds-ui/client/src/app/feature-modules/blueprint/common-module/zipfile-extraction/zipfile-extraction.component.html
@@ -0,0 +1,20 @@
+<!--
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2019 IBM Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the License);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+============LICENSE_END============================================
+--> \ No newline at end of file
diff --git a/cds-ui/client/src/app/feature-modules/blueprint/common-module/zipfile-extraction/zipfile-extraction.component.scss b/cds-ui/client/src/app/feature-modules/blueprint/common-module/zipfile-extraction/zipfile-extraction.component.scss
new file mode 100644
index 000000000..93f5c9dea
--- /dev/null
+++ b/cds-ui/client/src/app/feature-modules/blueprint/common-module/zipfile-extraction/zipfile-extraction.component.scss
@@ -0,0 +1,20 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2019 IBM Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the License);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+============LICENSE_END============================================
+*/ \ No newline at end of file
diff --git a/cds-ui/client/src/app/feature-modules/blueprint/common-module/zipfile-extraction/zipfile-extraction.component.spec.ts b/cds-ui/client/src/app/feature-modules/blueprint/common-module/zipfile-extraction/zipfile-extraction.component.spec.ts
new file mode 100644
index 000000000..a6674caae
--- /dev/null
+++ b/cds-ui/client/src/app/feature-modules/blueprint/common-module/zipfile-extraction/zipfile-extraction.component.spec.ts
@@ -0,0 +1,46 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2019 IBM Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the License);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+============LICENSE_END============================================
+*/
+
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { ZipfileExtractionComponent } from './zipfile-extraction.component';
+
+describe('ZipfileExtractionComponent', () => {
+ let component: ZipfileExtractionComponent;
+ let fixture: ComponentFixture<ZipfileExtractionComponent>;
+
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ declarations: [ ZipfileExtractionComponent ]
+ })
+ .compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(ZipfileExtractionComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/cds-ui/client/src/app/feature-modules/blueprint/common-module/zipfile-extraction/zipfile-extraction.component.ts b/cds-ui/client/src/app/feature-modules/blueprint/common-module/zipfile-extraction/zipfile-extraction.component.ts
new file mode 100644
index 000000000..2683ff5f4
--- /dev/null
+++ b/cds-ui/client/src/app/feature-modules/blueprint/common-module/zipfile-extraction/zipfile-extraction.component.ts
@@ -0,0 +1,136 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2019 IBM Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the License);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+============LICENSE_END============================================
+*/
+import { Component, OnInit } from '@angular/core';
+import * as JSZip from 'jszip';
+import { SortPipe } from '../../../../common/shared/pipes/sort.pipe';
+import { LoaderService } from '../../../../common/core/services/loader.service';
+
+@Component({
+ selector: 'app-zipfile-extraction',
+ templateUrl: './zipfile-extraction.component.html',
+ styleUrls: ['./zipfile-extraction.component.scss']
+})
+export class ZipfileExtractionComponent implements OnInit {
+ private paths = [];
+ private tree;
+ private zipFile: JSZip = new JSZip();
+ private fileObject: any;
+ private activationBlueprint: any;
+ private tocsaMetadaData: any;
+ private blueprintName: string;
+ private entryDefinition: string;
+ validfile: boolean = false;
+ uploadedFileName: string;
+
+ constructor(private loader: LoaderService) { }
+
+ ngOnInit() {
+ }
+ async buildFileViewData(zip) {
+ this.validfile = false;
+ this.paths = [];
+ console.log(zip.files);
+ for (var file in zip.files) {
+ console.log("name: " + zip.files[file].name);
+ this.fileObject = {
+ // nameForUIDisplay: this.uploadedFileName + '/' + zip.files[file].name,
+ // name: zip.files[file].name,
+ name: this.uploadedFileName + '/' + zip.files[file].name,
+ data: ''
+ };
+ const value = <any>await zip.files[file].async('string');
+ this.fileObject.data = value;
+ this.paths.push(this.fileObject);
+ }
+
+ if (this.paths) {
+ this.paths.forEach(path => {
+ if (path.name.includes("TOSCA.meta")) {
+ this.validfile = true
+ }
+ });
+ } else {
+ alert('Please update proper file');
+ }
+
+ if (this.validfile) {
+ this.fetchTOSACAMetadata();
+ this.paths = new SortPipe().transform(this.paths, 'asc', 'name');
+ this.tree = this.arrangeTreeData(this.paths);
+ } else {
+ alert('Please update proper file with TOSCA metadata');
+ }
+ }
+
+ arrangeTreeData(paths) {
+ const tree = [];
+
+ paths.forEach((path) => {
+
+ const pathParts = path.name.split('/');
+ // pathParts.shift();
+ let currentLevel = tree;
+
+ pathParts.forEach((part) => {
+ const existingPath = currentLevel.filter(level => level.name === part);
+
+ if (existingPath.length > 0) {
+ currentLevel = existingPath[0].children;
+ } else {
+ const newPart = {
+ name: part,
+ children: [],
+ data: path.data,
+ path: path.name
+ };
+ if (part.trim() == this.blueprintName.trim()) {
+ this.activationBlueprint = path.data;
+ newPart.data = JSON.parse(this.activationBlueprint.toString());
+ console.log('newpart', newPart);
+ this.entryDefinition = path.name.trim();
+ }
+ if (newPart.name !== '') {
+ currentLevel.push(newPart);
+ currentLevel = newPart.children;
+ }
+ }
+ });
+ });
+ this.loader.hideLoader();
+ return tree;
+ }
+
+ fetchTOSACAMetadata() {
+ let toscaData = {};
+ this.paths.forEach(file => {
+ if (file.name.includes('TOSCA.meta')) {
+ let keys = file.data.split("\n");
+ keys.forEach((key) => {
+ let propertyData = key.split(':');
+ toscaData[propertyData[0]] = propertyData[1];
+ });
+ }
+ });
+ this.blueprintName = (((toscaData['Entry-Definitions']).split('/'))[1]).toString();;
+ console.log(toscaData);
+ }
+
+}
diff --git a/cds-ui/client/src/app/feature-modules/blueprint/modify-template/editor/editor.component.ts b/cds-ui/client/src/app/feature-modules/blueprint/modify-template/editor/editor.component.ts
index 7b2eaeb17..cfd83f7c5 100644
--- a/cds-ui/client/src/app/feature-modules/blueprint/modify-template/editor/editor.component.ts
+++ b/cds-ui/client/src/app/feature-modules/blueprint/modify-template/editor/editor.component.ts
@@ -331,18 +331,7 @@ export class EditorComponent implements OnInit {
download() {
console.log(this.artifactName);
// status = this.editorService.downloadCBA("/download-blueprint/" + this.artifactName + "/" + this.artifactVersion);
- status = this.editorService.downloadCBA("/"+this.artifactName + "/" + this.artifactVersion);
- window.alert(status);
- // .subscribe(response => {
- // console.log(response);
- // var blob = new Blob([response], { type: 'application/zip' });
- // const fileName = 'CBA';
- // saveAs(blob, fileName);
- // },
- // error => {
- // console.log(error);
- // }
- // );
+ this.editorService.downloadCBA("/"+this.artifactName + "/" + this.artifactVersion);
}
setEditorMode() {
diff --git a/cds-ui/client/src/app/feature-modules/blueprint/modify-template/editor/editor.service.ts b/cds-ui/client/src/app/feature-modules/blueprint/modify-template/editor/editor.service.ts
index 025fc95d4..f1d1d148c 100644
--- a/cds-ui/client/src/app/feature-modules/blueprint/modify-template/editor/editor.service.ts
+++ b/cds-ui/client/src/app/feature-modules/blueprint/modify-template/editor/editor.service.ts
@@ -1,7 +1,7 @@
/*
============LICENSE_START==========================================
===================================================================
-Copyright (C) 2018 IBM Intellectual Property. All rights reserved.
+Copyright (C) 2018-19 IBM Intellectual Property. All rights reserved.
===================================================================
Unless otherwise specified, all software contained herein is licensed
@@ -26,10 +26,12 @@ import { Observable, observable } from 'rxjs';
import { ApiService } from '../../../../common/core/services/api.service';
import { saveAs } from 'file-saver';
import { BlueprintURLs } from '../../../../common/constants/app-constants';
+import { NotificationHandlerService } from 'src/app/common/core/services/notification-handler.service';
@Injectable()
export class EditorService {
- constructor(private _http: HttpClient, private api: ApiService) {
+ constructor(private _http: HttpClient, private api: ApiService,
+ private alertService: NotificationHandlerService,) {
}
enrich(body: FormData): Observable<any> {
@@ -40,7 +42,7 @@ export class EditorService {
.subscribe(response => {
let blob = new Blob([response], { 'type': "application/octet-stream" });
saveAs(blob, "CBA.zip");
- window.alert('Blueprint download successfull' );
+ this.alertService.success('Blueprint downloaded successfully' );
});
return "Download Success";
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 cefe0fd93..f49517017 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
@@ -30,7 +30,7 @@ import { IBlueprint } from 'src/app/common/core/store/models/blueprint.model';
import { IMetaData } from '../../../../common/core/store/models/metadata.model';
import { SetBlueprintState } from 'src/app/common/core/store/actions/blueprint.action';
import { LoaderService } from '../../../../common/core/services/loader.service';
-
+import { SelectTemplateService } from 'src/app/feature-modules/blueprint/select-template/select-template.service';
@Component({
selector: 'app-metadata',
templateUrl: './metadata.component.html',
@@ -49,7 +49,8 @@ export class MetadataComponent implements OnInit {
uploadedFileName: string;
entryDefinition: string;
- constructor(private formBuilder: FormBuilder, private store: Store<IAppState>, private loader: LoaderService) {
+ constructor(private formBuilder: FormBuilder, private store: Store<IAppState>,
+ private loader: LoaderService, private dataService: SelectTemplateService) {
this.bpState = this.store.select('blueprint');
this.CBAMetadataForm = this.formBuilder.group({
template_author: ['', Validators.required],
@@ -59,9 +60,17 @@ export class MetadataComponent implements OnInit {
template_version: ['', Validators.required],
template_tags: ['', Validators.required]
});
+
}
ngOnInit() {
+ 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 };
@@ -72,8 +81,6 @@ export class MetadataComponent implements OnInit {
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;
@@ -95,18 +102,18 @@ export class MetadataComponent implements OnInit {
});
})
}
-
+
UploadMetadata() {
this.loader.showLoader();
this.metadata = Object.assign({}, this.CBAMetadataForm.value);
this.blueprint.metadata = this.metadata;
- if( this.blueprint &&
- this.blueprint['topology_template'] &&
- this.blueprint['topology_template'].workflows &&
- this.blueprint['topology_template'].workflows['resource-assignment'] &&
- this.blueprint['topology_template'].workflows['resource-assignment'].name) {
- delete this.blueprint['topology_template'].workflows['resource-assignment'].name;
- }
+ /*if (this.blueprint &&
+ this.blueprint['topology_template'] &&
+ this.blueprint['topology_template'].workflows &&
+ this.blueprint['topology_template'].workflows['resource-assignment'] &&
+ this.blueprint['topology_template'].workflows['resource-assignment'].name) {
+ delete this.blueprint['topology_template'].workflows['resource-assignment'].name;
+ }*/
this.filesData.forEach((fileNode) => {
if (fileNode.name.includes(this.blueprintName) && fileNode.name == this.entryDefinition) {
fileNode.data = JSON.stringify(this.blueprint, null, "\t");
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 648271028..9cab6c44d 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 @@ limitations under the License.
<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 588854f6b..47771a7aa 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 { IBlueprint } from '../../../../../common/core/store/models/blueprint.mo
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 @@ export class SearchFromDatabaseComponent implements OnInit {
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 @@ export class SearchFromDatabaseComponent implements OnInit {
})
}
- 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 11029663b..a4e30a494 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,6 +26,8 @@ import { SearchTemplateComponent } from './search-template.component';
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';
+
@NgModule({
declarations: [
SearchTemplateComponent,
@@ -39,6 +41,7 @@ import { SharedModule} from 'src/app/common/shared/shared.module';
exports:[
SearchTemplateComponent,
SearchFromDatabaseComponent
- ]
+ ],
+ // 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 f66b78c08..085da7247 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 { MetadataComponent } from './metadata/metadata.component';
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 @@ import { SearchTemplateModule} from './search-template/search-template.module';
ReactiveFormsModule,
AppMaterialModule,
SearchTemplateModule
+ ],
+ providers: [
+ SelectTemplateService
]
})
export class SelectTemplateModule { }
diff --git a/cds-ui/client/src/app/feature-modules/blueprint/select-template/select-template.service.spec.ts b/cds-ui/client/src/app/feature-modules/blueprint/select-template/select-template.service.spec.ts
new file mode 100644
index 000000000..e5e2d0256
--- /dev/null
+++ b/cds-ui/client/src/app/feature-modules/blueprint/select-template/select-template.service.spec.ts
@@ -0,0 +1,12 @@
+import { TestBed } from '@angular/core/testing';
+
+import { SelectTemplateService } from './select-template.service';
+
+describe('SelectTemplateService', () => {
+ beforeEach(() => TestBed.configureTestingModule({}));
+
+ it('should be created', () => {
+ const service: SelectTemplateService = TestBed.get(SelectTemplateService);
+ expect(service).toBeTruthy();
+ });
+});
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
new file mode 100644
index 000000000..d6bcfb33b
--- /dev/null
+++ b/cds-ui/client/src/app/feature-modules/blueprint/select-template/select-template.service.ts
@@ -0,0 +1,48 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2019 IBM Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the License);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+============LICENSE_END============================================
+*/
+
+import { Injectable } from '@angular/core';
+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.messageSource.next(option);
+ }
+ // setCbaOption(option: string) {
+ // this.cbaOption = option;
+ // console.log("CBA option set to"+this.cbaOption+":"+option);
+ // }
+
+ // getCbaOption(): Observable<any> {
+ // console.log("CBA option is "+this.cbaOption);
+ // // return of(this.cbaOption);
+ // return this.cbaOption.asObservable();
+ // }
+}