diff options
Diffstat (limited to 'cds-ui/client/src/app/common/core/store')
25 files changed, 863 insertions, 0 deletions
diff --git a/cds-ui/client/src/app/common/core/store/README.md b/cds-ui/client/src/app/common/core/store/README.md new file mode 100644 index 000000000..c9584c84a --- /dev/null +++ b/cds-ui/client/src/app/common/core/store/README.md @@ -0,0 +1,22 @@ +/* +============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============================================ +*/ + +This folder contains the code related to ngrx/store, for application state management.
\ No newline at end of file diff --git a/cds-ui/client/src/app/common/core/store/actions/blueprint.action.ts b/cds-ui/client/src/app/common/core/store/actions/blueprint.action.ts new file mode 100644 index 000000000..8dc5067e7 --- /dev/null +++ b/cds-ui/client/src/app/common/core/store/actions/blueprint.action.ts @@ -0,0 +1,78 @@ +/* +============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 const SET_BLUEPRINT_STATE = 'SET Blueprint state'; + + +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 SetBlueprintState implements Action { + readonly type = SET_BLUEPRINT_STATE; + constructor(public payload: IBlueprintState) {} +} + +// 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 | SetBlueprintState;
\ No newline at end of file diff --git a/cds-ui/client/src/app/common/core/store/actions/resources.action.ts b/cds-ui/client/src/app/common/core/store/actions/resources.action.ts new file mode 100644 index 000000000..d5a723b6d --- /dev/null +++ b/cds-ui/client/src/app/common/core/store/actions/resources.action.ts @@ -0,0 +1,57 @@ +/* +* ============LICENSE_START======================================================= +* ONAP : CDS +* ================================================================================ +* Copyright (C) 2019 TechMahindra +*================================================================================= +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file 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 { IResources } from '../models/resources.model'; +import { IResourcesState } from '../models/resourcesState.model'; + +export const LOAD_RESOURCES = 'LOAD_RESOURCES'; +export const LOAD_RESOURCES_SUCCESS = 'LOAD_RESOURCES_SUCCESS'; +export const LOAD_RESOURCES_FAILURE = 'LOAD_RESOURCES_FAILURE'; +export const UPDATE_RESOURCES ='UPDATE_RESOURCES'; +export const SET_RESOURCES_STATE = 'SET Resources state'; + + +export class LoadResources implements Action { + readonly type = LOAD_RESOURCES; + constructor(public startLoadSuccess?: boolean) {} +} + +export class LoadResourcesSuccess implements Action { + readonly type = LOAD_RESOURCES_SUCCESS; + constructor(public payload: IResources) {} +} + +export class LoadResourcesFailure implements Action { + readonly type = LOAD_RESOURCES_FAILURE; + constructor(public error: any) {} +} + +export class SetResourcesState implements Action { + readonly type = SET_RESOURCES_STATE; + constructor(public payload: IResourcesState) {} +} + +export class UpdateResources implements Action { + readonly type = UPDATE_RESOURCES; + constructor(public payload: IResources) {} +} + +export type Actions = LoadResources | LoadResourcesSuccess | LoadResourcesFailure | SetResourcesState;
\ No newline at end of file diff --git a/cds-ui/client/src/app/common/core/store/effects/blueprint.effects.ts b/cds-ui/client/src/app/common/core/store/effects/blueprint.effects.ts new file mode 100644 index 000000000..e1b1c2fd9 --- /dev/null +++ b/cds-ui/client/src/app/common/core/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/core/store/effects/resources.effects.ts b/cds-ui/client/src/app/common/core/store/effects/resources.effects.ts new file mode 100644 index 000000000..f48f28497 --- /dev/null +++ b/cds-ui/client/src/app/common/core/store/effects/resources.effects.ts @@ -0,0 +1,37 @@ +/* +* ============LICENSE_START======================================================= +* ONAP : CDS +* ================================================================================ +* Copyright (C) 2019 TechMahindra +*================================================================================= +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file 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 ResourcesActions from '../actions/resources.action'; + +@Injectable() +export class ResourcesEffects { + + constructor( + private _actions$: Actions, + private _store: Store<IAppState> + ) {} +}
\ No newline at end of file diff --git a/cds-ui/client/src/app/common/core/store/models/blueprint-http.model.ts b/cds-ui/client/src/app/common/core/store/models/blueprint-http.model.ts new file mode 100644 index 000000000..e0e98d580 --- /dev/null +++ b/cds-ui/client/src/app/common/core/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/core/store/models/blueprint.model.ts b/cds-ui/client/src/app/common/core/store/models/blueprint.model.ts new file mode 100644 index 000000000..f4989fb73 --- /dev/null +++ b/cds-ui/client/src/app/common/core/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'; +import { ITopologyTemplate } from './itopologytemplate.model'; + +export interface IBlueprint { + metadata: IMetaData; + fileImports: Array<IImportModel> + toplogyTemplates: ITopologyTemplate; +}
\ No newline at end of file diff --git a/cds-ui/client/src/app/common/core/store/models/blueprintState.model.ts b/cds-ui/client/src/app/common/core/store/models/blueprintState.model.ts new file mode 100644 index 000000000..6d2659248 --- /dev/null +++ b/cds-ui/client/src/app/common/core/store/models/blueprintState.model.ts @@ -0,0 +1,34 @@ +/* +============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, + name?: string; + files?: any; + filesData?: any; + isLoadSuccess?: boolean; + isUpdateSuccess?: boolean; + isSaveSuccess?: boolean; +}
\ No newline at end of file diff --git a/cds-ui/client/src/app/common/core/store/models/entrySchema.model.ts b/cds-ui/client/src/app/common/core/store/models/entrySchema.model.ts new file mode 100644 index 000000000..8e9659051 --- /dev/null +++ b/cds-ui/client/src/app/common/core/store/models/entrySchema.model.ts @@ -0,0 +1,23 @@ +/* +* ============LICENSE_START======================================================= +* ONAP : CDS +* ================================================================================ +* Copyright (C) 2019 TechMahindra +*================================================================================= +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file 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 IEntrySchema{ + Type:string; +}
\ No newline at end of file diff --git a/cds-ui/client/src/app/common/core/store/models/imports.model.ts b/cds-ui/client/src/app/common/core/store/models/imports.model.ts new file mode 100644 index 000000000..9510ed3cf --- /dev/null +++ b/cds-ui/client/src/app/common/core/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/core/store/models/itopologytemplate.model.ts b/cds-ui/client/src/app/common/core/store/models/itopologytemplate.model.ts new file mode 100644 index 000000000..7457f2f8c --- /dev/null +++ b/cds-ui/client/src/app/common/core/store/models/itopologytemplate.model.ts @@ -0,0 +1,26 @@ +/* +============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 ITopologyTemplate { + inputs: object[]; + node_template: object[]; + workflow: object[]; +}
\ No newline at end of file diff --git a/cds-ui/client/src/app/common/core/store/models/metadata.model.ts b/cds-ui/client/src/app/common/core/store/models/metadata.model.ts new file mode 100644 index 000000000..6ee427504 --- /dev/null +++ b/cds-ui/client/src/app/common/core/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/core/store/models/propertyData.model.ts b/cds-ui/client/src/app/common/core/store/models/propertyData.model.ts new file mode 100644 index 000000000..94cff8991 --- /dev/null +++ b/cds-ui/client/src/app/common/core/store/models/propertyData.model.ts @@ -0,0 +1,27 @@ +/* +* ============LICENSE_START======================================================= +* ONAP : CDS +* ================================================================================ +* Copyright (C) 2019 TechMahindra +*================================================================================= +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file 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 {IEntrySchema} from './entrySchema.model'; + +export interface IPropertyData{ + discription:string; + _type:string; + required:boolean; + entry_schema:IEntrySchema; +}
\ No newline at end of file diff --git a/cds-ui/client/src/app/common/core/store/models/resources-http.model.ts b/cds-ui/client/src/app/common/core/store/models/resources-http.model.ts new file mode 100644 index 000000000..3f2556a50 --- /dev/null +++ b/cds-ui/client/src/app/common/core/store/models/resources-http.model.ts @@ -0,0 +1,24 @@ +/* +* ============LICENSE_START======================================================= +* ONAP : CDS +* ================================================================================ +* Copyright (C) 2019 TechMahindra +*================================================================================= +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file 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 { IResources } from '../models/resources.model'; + +export interface IResourcesHttp { + resources: IResources; +}
\ No newline at end of file diff --git a/cds-ui/client/src/app/common/core/store/models/resources.model.ts b/cds-ui/client/src/app/common/core/store/models/resources.model.ts new file mode 100644 index 000000000..019c2684a --- /dev/null +++ b/cds-ui/client/src/app/common/core/store/models/resources.model.ts @@ -0,0 +1,30 @@ +/* +* ============LICENSE_START======================================================= +* ONAP : CDS +* ================================================================================ +* Copyright (C) 2019 TechMahindra +*================================================================================= +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file 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 { ISourcesData } from './sourcesData.model'; +import { IPropertyData } from './propertyData.model'; + +export interface IResources { + name:string ; + tags:string; + updated_bt:string; + property: IPropertyData; + sources: ISourcesData; +}
\ No newline at end of file diff --git a/cds-ui/client/src/app/common/core/store/models/resourcesState.model.ts b/cds-ui/client/src/app/common/core/store/models/resourcesState.model.ts new file mode 100644 index 000000000..7dacf3242 --- /dev/null +++ b/cds-ui/client/src/app/common/core/store/models/resourcesState.model.ts @@ -0,0 +1,28 @@ +/* +* ============LICENSE_START======================================================= +* ONAP : CDS +* ================================================================================ +* Copyright (C) 2019 TechMahindra +*================================================================================= +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file 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 { IResources } from './resources.model'; + +export interface IResourcesState { + resources: IResources, + isLoadSuccess: boolean; + isUpdateSuccess: boolean; + isSaveSuccess: boolean; +}
\ No newline at end of file diff --git a/cds-ui/client/src/app/common/core/store/models/sourcesData.model.ts b/cds-ui/client/src/app/common/core/store/models/sourcesData.model.ts new file mode 100644 index 000000000..ed43fc969 --- /dev/null +++ b/cds-ui/client/src/app/common/core/store/models/sourcesData.model.ts @@ -0,0 +1,23 @@ +/* +* ============LICENSE_START======================================================= +* ONAP : CDS +* ================================================================================ +* Copyright (C) 2019 TechMahindra +*================================================================================= +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file 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 ISourcesData{ +sources: object[]; +}
\ No newline at end of file diff --git a/cds-ui/client/src/app/common/core/store/reducers/app.reducer.ts b/cds-ui/client/src/app/common/core/store/reducers/app.reducer.ts new file mode 100644 index 000000000..6f583202c --- /dev/null +++ b/cds-ui/client/src/app/common/core/store/reducers/app.reducer.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 { ActionReducerMap } from '@ngrx/store'; +import { routerReducer } from '@ngrx/router-store'; + +import { IAppState } from '../state/app.state'; +import { blueprintReducer } from '../reducers/blueprint.reducer'; +import { resourcesReducer } from '../reducers/resources.reducer'; + +export const appReducers: ActionReducerMap<IAppState, any> = { + router: routerReducer, + blueprint: blueprintReducer, + resources:resourcesReducer +};
\ No newline at end of file diff --git a/cds-ui/client/src/app/common/core/store/reducers/blueprint.reducer.ts b/cds-ui/client/src/app/common/core/store/reducers/blueprint.reducer.ts new file mode 100644 index 000000000..37a659da6 --- /dev/null +++ b/cds-ui/client/src/app/common/core/store/reducers/blueprint.reducer.ts @@ -0,0 +1,63 @@ +/* +============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 + } + case BlueprintActions.SET_BLUEPRINT_STATE : + return {...state, + blueprint: action.payload.blueprint, + name: action.payload.name, + files: action.payload.files, + filesData: action.payload.filesData + } + default: + return state; + } +} diff --git a/cds-ui/client/src/app/common/core/store/reducers/resources.reducer.ts b/cds-ui/client/src/app/common/core/store/reducers/resources.reducer.ts new file mode 100644 index 000000000..c9d587d16 --- /dev/null +++ b/cds-ui/client/src/app/common/core/store/reducers/resources.reducer.ts @@ -0,0 +1,35 @@ +/* +* ============LICENSE_START======================================================= +* ONAP : CDS +* ================================================================================ +* Copyright (C) 2019 TechMahindra +*================================================================================= +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file 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 { IResources } from '../models/resources.model'; +import { IResourcesState } from '../models/resourcesState.model'; +import { initialResourcesState } from '../state/resources.state'; +import * as ResourcesActions from '../actions/resources.action'; + +export function resourcesReducer(state: IResourcesState = initialResourcesState, action: ResourcesActions.Actions) : IResourcesState { + switch(action.type) { + case ResourcesActions.LOAD_RESOURCES_SUCCESS: + return {...state, + resources: action.payload + } + default: + return state; + } +} diff --git a/cds-ui/client/src/app/common/core/store/selectors/blueprint.selectors.ts b/cds-ui/client/src/app/common/core/store/selectors/blueprint.selectors.ts new file mode 100644 index 000000000..d23221cce --- /dev/null +++ b/cds-ui/client/src/app/common/core/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/core/store/selectors/resources.selectors.ts b/cds-ui/client/src/app/common/core/store/selectors/resources.selectors.ts new file mode 100644 index 000000000..96ec4d3ec --- /dev/null +++ b/cds-ui/client/src/app/common/core/store/selectors/resources.selectors.ts @@ -0,0 +1,30 @@ +/* +* ============LICENSE_START======================================================= +* ONAP : CDS +* ================================================================================ +* Copyright (C) 2019 TechMahindra +*================================================================================= +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file 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 { IResourcesState } from '../models/resourcesState.model'; + +const selectResourcesFromAppState = (state: IAppState) => state.resources; + +export const selectResources = createSelector( + selectResourcesFromAppState, + (state: IResourcesState) => state.resources +);
\ No newline at end of file diff --git a/cds-ui/client/src/app/common/core/store/state/app.state.ts b/cds-ui/client/src/app/common/core/store/state/app.state.ts new file mode 100644 index 000000000..052eb2c5b --- /dev/null +++ b/cds-ui/client/src/app/common/core/store/state/app.state.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 { RouterReducerState } from '@ngrx/router-store'; +import { IBlueprintState } from '../models/blueprintState.model'; +import { initialBlueprintState } from './blueprint.state'; +import { IResourcesState } from '../models/resourcesState.model'; +import { initialResourcesState } from './resources.state'; + +export interface IAppState { + router? : RouterReducerState, + blueprint: IBlueprintState, + resources: IResourcesState +} + +export const initialAppState: IAppState = { + blueprint: initialBlueprintState, + resources: initialResourcesState +}
\ No newline at end of file diff --git a/cds-ui/client/src/app/common/core/store/state/blueprint.state.ts b/cds-ui/client/src/app/common/core/store/state/blueprint.state.ts new file mode 100644 index 000000000..19a837693 --- /dev/null +++ b/cds-ui/client/src/app/common/core/store/state/blueprint.state.ts @@ -0,0 +1,34 @@ +/* +============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, + name: '', + files: [], + filesData: [], + isLoadSuccess: false, + isUpdateSuccess: false, + isSaveSuccess: false, +}
\ No newline at end of file diff --git a/cds-ui/client/src/app/common/core/store/state/resources.state.ts b/cds-ui/client/src/app/common/core/store/state/resources.state.ts new file mode 100644 index 000000000..046667a04 --- /dev/null +++ b/cds-ui/client/src/app/common/core/store/state/resources.state.ts @@ -0,0 +1,28 @@ +/* +* ============LICENSE_START======================================================= +* ONAP : CDS +* ================================================================================ +* Copyright (C) 2019 TechMahindra +*================================================================================= +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file 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 { IResourcesState } from '../models/resourcesState.model'; +import { IResources } from '../models/resources.model'; + +export const initialResourcesState : IResourcesState = { + resources : {} as IResources, + isLoadSuccess: false, + isUpdateSuccess: false, + isSaveSuccess: false, +}
\ No newline at end of file |