summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cds-ui/client/src/app/common/core/core.module.ts4
-rw-r--r--cds-ui/client/src/app/common/core/store/actions/resources.action.ts57
-rw-r--r--cds-ui/client/src/app/common/core/store/effects/resources.effects.ts37
-rw-r--r--cds-ui/client/src/app/common/core/store/models/entrySchema.model.ts23
-rw-r--r--cds-ui/client/src/app/common/core/store/models/propertyData.model.ts27
-rw-r--r--cds-ui/client/src/app/common/core/store/models/resources-http.model.ts24
-rw-r--r--cds-ui/client/src/app/common/core/store/models/resources.model.ts30
-rw-r--r--cds-ui/client/src/app/common/core/store/models/resourcesState.model.ts28
-rw-r--r--cds-ui/client/src/app/common/core/store/models/sourcesData.model.ts23
-rw-r--r--cds-ui/client/src/app/common/core/store/reducers/app.reducer.ts4
-rw-r--r--cds-ui/client/src/app/common/core/store/reducers/resources.reducer.ts35
-rw-r--r--cds-ui/client/src/app/common/core/store/selectors/resources.selectors.ts30
-rw-r--r--cds-ui/client/src/app/common/core/store/state/app.state.ts8
-rw-r--r--cds-ui/client/src/app/common/core/store/state/resources.state.ts28
14 files changed, 353 insertions, 5 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
index f72a8a27c..807065ebc 100644
--- a/cds-ui/client/src/app/common/core/core.module.ts
+++ b/cds-ui/client/src/app/common/core/core.module.ts
@@ -28,7 +28,7 @@ import { HttpClientModule } from '@angular/common/http';
import { appReducers } from './store/reducers/app.reducer';
import { BlueprintEffects } from './store/effects/blueprint.effects';
-
+import { ResourcesEffects } from './store/effects/resources.effects';
import { ApiService } from './services/api.service';
// import { BlueprintService } from './services/blueprint.service';
@@ -38,7 +38,7 @@ import { ApiService } from './services/api.service';
imports: [
CommonModule,
StoreModule.forRoot(appReducers),
- EffectsModule.forRoot([BlueprintEffects]),
+ EffectsModule.forRoot([BlueprintEffects,ResourcesEffects]),
StoreRouterConnectingModule.forRoot({stateKey: 'router'}),
HttpClientModule
],
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/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/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/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
index 003886068..6f583202c 100644
--- 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
@@ -24,8 +24,10 @@ 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
+ blueprint: blueprintReducer,
+ resources:resourcesReducer
}; \ No newline at end of file
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/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
index 66e19c9be..052eb2c5b 100644
--- 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
@@ -22,12 +22,16 @@ limitations under the License.
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
+ blueprint: IBlueprintState,
+ resources: IResourcesState
}
export const initialAppState: IAppState = {
- blueprint: initialBlueprintState
+ blueprint: initialBlueprintState,
+ resources: initialResourcesState
} \ 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