summaryrefslogtreecommitdiffstats
path: root/cds-ui/client/src/app/common
diff options
context:
space:
mode:
Diffstat (limited to 'cds-ui/client/src/app/common')
-rw-r--r--cds-ui/client/src/app/common/core/core.module.ts38
-rw-r--r--cds-ui/client/src/app/common/core/services/api.service.ts52
-rw-r--r--cds-ui/client/src/app/common/shared/components/home/home.component.html52
-rw-r--r--cds-ui/client/src/app/common/shared/components/home/home.component.scss38
-rw-r--r--cds-ui/client/src/app/common/shared/components/home/home.component.spec.ts46
-rw-r--r--cds-ui/client/src/app/common/shared/components/home/home.component.ts37
-rw-r--r--cds-ui/client/src/app/common/store/actions/blueprint.action.ts70
-rw-r--r--cds-ui/client/src/app/common/store/effects/blueprint.effects.ts56
-rw-r--r--cds-ui/client/src/app/common/store/models/blueprint-http.model.ts25
-rw-r--r--cds-ui/client/src/app/common/store/models/blueprint.model.ts30
-rw-r--r--cds-ui/client/src/app/common/store/models/blueprintState.model.ts32
-rw-r--r--cds-ui/client/src/app/common/store/models/imports.model.ts24
-rw-r--r--cds-ui/client/src/app/common/store/models/metadata.model.ts28
-rw-r--r--cds-ui/client/src/app/common/store/reducers/app.reducer.ts31
-rw-r--r--cds-ui/client/src/app/common/store/reducers/blueprint.reducer.ts56
-rw-r--r--cds-ui/client/src/app/common/store/selectors/blueprint.selectors.ts31
-rw-r--r--cds-ui/client/src/app/common/store/state/app.state.ts33
-rw-r--r--cds-ui/client/src/app/common/store/state/blueprint.state.ts31
18 files changed, 710 insertions, 0 deletions
diff --git a/cds-ui/client/src/app/common/core/core.module.ts b/cds-ui/client/src/app/common/core/core.module.ts
new file mode 100644
index 000000000..9b812a0b3
--- /dev/null
+++ b/cds-ui/client/src/app/common/core/core.module.ts
@@ -0,0 +1,38 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2018 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 { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+import { HttpClientModule } from '@angular/common/http';
+
+import { ApiService } from './services/api.service';
+// import { BlueprintService } from './services/blueprint.service';
+
+@NgModule({
+ declarations: [
+ ],
+ imports: [
+ CommonModule,
+ HttpClientModule
+ ],
+ providers : [ ApiService ]
+})
+export class CoreModule { }
diff --git a/cds-ui/client/src/app/common/core/services/api.service.ts b/cds-ui/client/src/app/common/core/services/api.service.ts
new file mode 100644
index 000000000..0ee3c6a78
--- /dev/null
+++ b/cds-ui/client/src/app/common/core/services/api.service.ts
@@ -0,0 +1,52 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2018 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 { HttpClient } from '@angular/common/http';
+import { Observable } from 'rxjs';
+
+//import { IBlueprintHttp } from '../store/models/blueprint-http.model';
+
+@Injectable()
+export class ApiService {
+ // blueprintUrl = '../../constants/blueprint.json';
+
+ constructor(private _http: HttpClient) {
+ }
+
+ get(url: string, params?: any): Observable<any> {
+ return this._http.get(url);
+ }
+
+ post() {
+ // to do
+ }
+
+ put() {
+ // to do
+ }
+
+ delete() {
+ // to do
+ }
+
+} \ No newline at end of file
diff --git a/cds-ui/client/src/app/common/shared/components/home/home.component.html b/cds-ui/client/src/app/common/shared/components/home/home.component.html
new file mode 100644
index 000000000..fc763be47
--- /dev/null
+++ b/cds-ui/client/src/app/common/shared/components/home/home.component.html
@@ -0,0 +1,52 @@
+<!-- ============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2018 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============================================
+-->
+
+
+<!-- <app-header></app-header> -->
+<!-- <mat-toolbar color="warn">
+ <mat-toolbar-row>
+ <button type="button" aria-label="Toggle sidenav" mat-icon-button (click)="drawer.toggle()" color="primary">
+ <mat-icon aria-label="Side nav toggle icon">menu</mat-icon>
+ </button>
+ <span>MY Image</span>
+ </mat-toolbar-row>
+</mat-toolbar> -->
+<mat-toolbar color="primary">
+ <mat-toolbar-row>
+ <button type="button" aria-label="Toggle sidenav" mat-icon-button (click)="drawer.toggle()" color="primary">
+ <mat-icon aria-label="Side nav toggle icon">menu</mat-icon>
+ </button>
+ <span>Controller Blueprint Design Studio</span>
+ </mat-toolbar-row>
+</mat-toolbar>
+<mat-sidenav-container class="example-container">
+ <mat-sidenav #drawer mode="side" [(opened)]="opened" (opened)="events.push('open!')"
+ (closed)="events.push('close!')">
+ <mat-toolbar color=""primary>Menu</mat-toolbar>
+ <mat-nav-list>
+ <a mat-list-item>Data dictionory</a>
+ <a mat-list-item [routerLink]="['/controllerBlueprint']">Controlled Blueprint</a>
+ </mat-nav-list>
+ </mat-sidenav>
+
+ <mat-sidenav-content (click)="drawer.close()">
+ <router-outlet></router-outlet>
+ </mat-sidenav-content>
+</mat-sidenav-container> \ No newline at end of file
diff --git a/cds-ui/client/src/app/common/shared/components/home/home.component.scss b/cds-ui/client/src/app/common/shared/components/home/home.component.scss
new file mode 100644
index 000000000..ca503e591
--- /dev/null
+++ b/cds-ui/client/src/app/common/shared/components/home/home.component.scss
@@ -0,0 +1,38 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2018 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============================================
+*/
+
+// .example-container {
+// // position: absolute;
+// top: 0;
+// bottom: 0;
+// left: 0;
+// right: 0;
+// }
+
+// .example-events {
+// width: 300px;
+// height: 200px;
+// overflow: auto;
+// border: 1px solid #555;
+// }
+.mat-sidenav-container{
+ height: 652px;
+} \ No newline at end of file
diff --git a/cds-ui/client/src/app/common/shared/components/home/home.component.spec.ts b/cds-ui/client/src/app/common/shared/components/home/home.component.spec.ts
new file mode 100644
index 000000000..5bfec0399
--- /dev/null
+++ b/cds-ui/client/src/app/common/shared/components/home/home.component.spec.ts
@@ -0,0 +1,46 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2018 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 { HomeComponent } from './home.component';
+
+describe('HomeComponent', () => {
+ let component: HomeComponent;
+ let fixture: ComponentFixture<HomeComponent>;
+
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ declarations: [ HomeComponent ]
+ })
+ .compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(HomeComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/cds-ui/client/src/app/common/shared/components/home/home.component.ts b/cds-ui/client/src/app/common/shared/components/home/home.component.ts
new file mode 100644
index 000000000..d70da85f6
--- /dev/null
+++ b/cds-ui/client/src/app/common/shared/components/home/home.component.ts
@@ -0,0 +1,37 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2018 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';
+
+@Component({
+ selector: 'app-home',
+ templateUrl: './home.component.html',
+ styleUrls: ['./home.component.scss']
+})
+export class HomeComponent implements OnInit {
+ events: string[] = [];
+ opened: boolean;
+ constructor() { }
+
+ ngOnInit() {
+ }
+
+}
diff --git a/cds-ui/client/src/app/common/store/actions/blueprint.action.ts b/cds-ui/client/src/app/common/store/actions/blueprint.action.ts
new file mode 100644
index 000000000..6a0ab8065
--- /dev/null
+++ b/cds-ui/client/src/app/common/store/actions/blueprint.action.ts
@@ -0,0 +1,70 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2018 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 { Action, Store } from '@ngrx/store';
+import { IBlueprint } from '../models/blueprint.model';
+import { IBlueprintState } from '../models/blueprintState.model';
+
+export const LOAD_BLUEPRINT = 'LOAD_BLUEPRINT';
+export const LOAD_BLUEPRINT_SUCCESS = 'LOAD_BLUEPRINT_SUCCESS';
+export const LOAD_BLUEPRINT_FAILURE = 'LOAD_BLUEPRINT_FAILURE';
+export const UPDATE_BLUEPRINT ='UPDATE_BLUEPRINT';
+export const UPDATE_BLUEPRINT_SUCCESS = 'UPDATE_BLUEPRINT_SUCCESS';
+export const UPDATE_BLUEPRINT_FAILURE = 'UPDATE_BLUEPRINT_FAILURE';
+export const SAVE_BLUEPRINT = 'SAVE_BLUEPRINT';
+export const SAVE_BLUEPRINT_SUCCESS = 'SAVE_BLUEPRINT_SUCCESS';
+export const SAVE_BLUEPRINT_FAILURE = 'SAVE_BLUEPRINT_FAILURE';
+
+export const SET_BLUEPRINT = 'SET Blueprint';
+export const REMOVE_BLUEPRINT = 'Remove Blueprint';
+
+
+export class LoadBlueprint implements Action {
+ readonly type = LOAD_BLUEPRINT;
+ constructor(public startLoadSuccess?: boolean) {}
+}
+
+export class LoadBlueprintSuccess implements Action {
+ readonly type = LOAD_BLUEPRINT_SUCCESS;
+ constructor(public payload: IBlueprint) {}
+}
+
+export class LoadBlueprintFailure implements Action {
+ readonly type = LOAD_BLUEPRINT_FAILURE;
+ constructor(public error: any) {}
+}
+
+// export class SetBlueprint implements Action {
+// readonly type = SET_BLUEPRINT;
+// constructor(public payload: Blueprint) {}
+// }
+
+// export class RemoveBlueprint implements Action {
+// readonly type = REMOVE_BLUEPRINT;
+// constructor(public payload: Blueprint) {}
+// }
+
+export class UpdateBlueprint implements Action {
+ readonly type = UPDATE_BLUEPRINT;
+ constructor(public payload: IBlueprint) {}
+}
+
+export type Actions = LoadBlueprint | LoadBlueprintSuccess | LoadBlueprintFailure; \ No newline at end of file
diff --git a/cds-ui/client/src/app/common/store/effects/blueprint.effects.ts b/cds-ui/client/src/app/common/store/effects/blueprint.effects.ts
new file mode 100644
index 000000000..e1b1c2fd9
--- /dev/null
+++ b/cds-ui/client/src/app/common/store/effects/blueprint.effects.ts
@@ -0,0 +1,56 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2018 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 { Effect, ofType, Actions } from '@ngrx/effects';
+import { Store, select } from '@ngrx/store';
+import { of } from 'rxjs';
+import { switchMap, map, withLatestFrom, catchError } from 'rxjs/operators';
+
+import { IAppState } from '../state/app.state';
+import * as BlueprintActions from '../actions/blueprint.action';
+// import { IBlueprintHttp } from '../models/blueprint-http.model';
+// import { BlueprintService } from '../../services/blueprint.service';
+// import { BlueprintService } from '../../../feature-modules/blueprint/blueprint.service';
+
+@Injectable()
+export class BlueprintEffects {
+
+
+ constructor(
+ // private blueprintService: BlueprintService,
+ private _actions$: Actions,
+ private _store: Store<IAppState>
+ ) {}
+
+ // @Effect()
+ // getBlueprint$ = this._actions$.pipe(
+ // ofType<BlueprintActions.LoadBlueprint>(BlueprintActions.LOAD_BLUEPRINT),
+ // switchMap(() =>
+ // this.blueprintService.loadBlueprint().pipe(
+ // map((blueprintResponse: any) => new BlueprintActions.LoadBlueprintSuccess(blueprintResponse)),
+ // catchError((error : any) => of(new BlueprintActions.LoadBlueprintSuccess(error)))
+ // ),
+ // ,
+ // switchMap((blueprintResponse: any) => of(new BlueprintActions.LoadBlueprintSuccess(blueprintResponse)))
+// ),
+// )
+} \ No newline at end of file
diff --git a/cds-ui/client/src/app/common/store/models/blueprint-http.model.ts b/cds-ui/client/src/app/common/store/models/blueprint-http.model.ts
new file mode 100644
index 000000000..e0e98d580
--- /dev/null
+++ b/cds-ui/client/src/app/common/store/models/blueprint-http.model.ts
@@ -0,0 +1,25 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2018 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 { IBlueprint } from '../models/blueprint.model';
+
+export interface IBlueprintHttp {
+ blueprint: IBlueprint;
+} \ No newline at end of file
diff --git a/cds-ui/client/src/app/common/store/models/blueprint.model.ts b/cds-ui/client/src/app/common/store/models/blueprint.model.ts
new file mode 100644
index 000000000..a061a4364
--- /dev/null
+++ b/cds-ui/client/src/app/common/store/models/blueprint.model.ts
@@ -0,0 +1,30 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2018 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 { IMetaData } from './metadata.model';
+import { IImportModel } from './imports.model';
+
+
+export interface IBlueprint {
+ metadata: IMetaData;
+ fileImports: Array<IImportModel>
+ toplogyTemplates: string;
+} \ No newline at end of file
diff --git a/cds-ui/client/src/app/common/store/models/blueprintState.model.ts b/cds-ui/client/src/app/common/store/models/blueprintState.model.ts
new file mode 100644
index 000000000..556b33d19
--- /dev/null
+++ b/cds-ui/client/src/app/common/store/models/blueprintState.model.ts
@@ -0,0 +1,32 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2018 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 { IMetaData } from './metadata.model';
+import { IImportModel } from './imports.model';
+import { IBlueprint } from './blueprint.model';
+
+
+export interface IBlueprintState {
+ blueprint: IBlueprint,
+ isLoadSuccess: boolean;
+ isUpdateSuccess: boolean;
+ isSaveSuccess: boolean;
+} \ No newline at end of file
diff --git a/cds-ui/client/src/app/common/store/models/imports.model.ts b/cds-ui/client/src/app/common/store/models/imports.model.ts
new file mode 100644
index 000000000..9510ed3cf
--- /dev/null
+++ b/cds-ui/client/src/app/common/store/models/imports.model.ts
@@ -0,0 +1,24 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2018 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============================================
+*/
+
+export interface IImportModel {
+ file: string;
+} \ No newline at end of file
diff --git a/cds-ui/client/src/app/common/store/models/metadata.model.ts b/cds-ui/client/src/app/common/store/models/metadata.model.ts
new file mode 100644
index 000000000..6ee427504
--- /dev/null
+++ b/cds-ui/client/src/app/common/store/models/metadata.model.ts
@@ -0,0 +1,28 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2018 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============================================
+*/
+export interface IMetaData {
+ template_author: string;
+ author_email: String;
+ user_groups: string;
+ template_name: string;
+ template_version: string;
+ template_tags: string;
+} \ No newline at end of file
diff --git a/cds-ui/client/src/app/common/store/reducers/app.reducer.ts b/cds-ui/client/src/app/common/store/reducers/app.reducer.ts
new file mode 100644
index 000000000..003886068
--- /dev/null
+++ b/cds-ui/client/src/app/common/store/reducers/app.reducer.ts
@@ -0,0 +1,31 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2018 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 { ActionReducerMap } from '@ngrx/store';
+import { routerReducer } from '@ngrx/router-store';
+
+import { IAppState } from '../state/app.state';
+import { blueprintReducer } from '../reducers/blueprint.reducer';
+
+export const appReducers: ActionReducerMap<IAppState, any> = {
+ router: routerReducer,
+ blueprint: blueprintReducer
+}; \ No newline at end of file
diff --git a/cds-ui/client/src/app/common/store/reducers/blueprint.reducer.ts b/cds-ui/client/src/app/common/store/reducers/blueprint.reducer.ts
new file mode 100644
index 000000000..edcf1c38a
--- /dev/null
+++ b/cds-ui/client/src/app/common/store/reducers/blueprint.reducer.ts
@@ -0,0 +1,56 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2018 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 { Action } from '@ngrx/store';
+import { IBlueprint } from '../models/blueprint.model';
+import { IBlueprintState } from '../models/blueprintState.model';
+import { initialBlueprintState } from '../state/blueprint.state';
+import * as BlueprintActions from '../actions/blueprint.action';
+
+// const initialState: BlueprintState = {
+// blueprint: {
+// metadata: {
+// template_author: '',
+// author_email: '',
+// user_groups: '',
+// template_name: '',
+// template_version: '',
+// template_tags: ''
+// },
+// fileImports: [{file:''}],
+// toplogyTemplates: 'temp'
+// },
+// isLoadSuccess: false,
+// isUpdateSuccess: false,
+// isSaveSuccess: false
+// }
+
+
+export function blueprintReducer(state: IBlueprintState = initialBlueprintState, action: BlueprintActions.Actions) : IBlueprintState {
+ switch(action.type) {
+ case BlueprintActions.LOAD_BLUEPRINT_SUCCESS:
+ return {...state,
+ blueprint: action.payload
+ }
+ default:
+ return state;
+ }
+}
diff --git a/cds-ui/client/src/app/common/store/selectors/blueprint.selectors.ts b/cds-ui/client/src/app/common/store/selectors/blueprint.selectors.ts
new file mode 100644
index 000000000..d23221cce
--- /dev/null
+++ b/cds-ui/client/src/app/common/store/selectors/blueprint.selectors.ts
@@ -0,0 +1,31 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2018 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 { createSelector } from '@ngrx/store';
+
+import { IAppState } from '../state/app.state';
+import { IBlueprintState } from '../models/blueprintState.model';
+
+const selectBlueprintFromAppState = (state: IAppState) => state.blueprint;
+
+export const selectBlueprint = createSelector(
+ selectBlueprintFromAppState,
+ (state: IBlueprintState) => state.blueprint
+); \ No newline at end of file
diff --git a/cds-ui/client/src/app/common/store/state/app.state.ts b/cds-ui/client/src/app/common/store/state/app.state.ts
new file mode 100644
index 000000000..66e19c9be
--- /dev/null
+++ b/cds-ui/client/src/app/common/store/state/app.state.ts
@@ -0,0 +1,33 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2018 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 { RouterReducerState } from '@ngrx/router-store';
+import { IBlueprintState } from '../models/blueprintState.model';
+import { initialBlueprintState } from './blueprint.state';
+
+export interface IAppState {
+ router? : RouterReducerState,
+ blueprint: IBlueprintState
+}
+
+export const initialAppState: IAppState = {
+ blueprint: initialBlueprintState
+} \ No newline at end of file
diff --git a/cds-ui/client/src/app/common/store/state/blueprint.state.ts b/cds-ui/client/src/app/common/store/state/blueprint.state.ts
new file mode 100644
index 000000000..913072665
--- /dev/null
+++ b/cds-ui/client/src/app/common/store/state/blueprint.state.ts
@@ -0,0 +1,31 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2018 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 { IBlueprintState } from '../models/blueprintState.model';
+import { IBlueprint } from '../models/blueprint.model';
+
+
+export const initialBlueprintState : IBlueprintState = {
+ blueprint : {} as IBlueprint,
+ isLoadSuccess: false,
+ isUpdateSuccess: false,
+ isSaveSuccess: false,
+} \ No newline at end of file