blob: d39b2affd322c4c4ebe0b4ec8e0efe5cecd31f36 [file] [log] [blame]
Michael Landoefa037d2017-02-19 12:57:33 +02001/*-
2 * ============LICENSE_START=======================================================
3 * SDC
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
19 */
20
21import LicenseModelActionHelper from './licenseModel/LicenseModelActionHelper.js';
22import LicenseAgreementActionHelper from './licenseModel/licenseAgreement/LicenseAgreementActionHelper.js';
23import FeatureGroupsActionHelper from './licenseModel/featureGroups/FeatureGroupsActionHelper.js';
24import LicenseKeyGroupsActionHelper from './licenseModel/licenseKeyGroups/LicenseKeyGroupsActionHelper.js';
25import EntitlementPoolsActionHelper from './licenseModel/entitlementPools/EntitlementPoolsActionHelper.js';
26import SoftwareProductActionHelper from './softwareProduct/SoftwareProductActionHelper.js';
27import SoftwareProductProcessesActionHelper from './softwareProduct/processes/SoftwareProductProcessesActionHelper.js';
28import SoftwareProductNetworksActionHelper from './softwareProduct/networks/SoftwareProductNetworksActionHelper.js';
29import SoftwareProductComponentsActionHelper from './softwareProduct/components/SoftwareProductComponentsActionHelper.js';
30import SoftwareProductComponentProcessesActionHelper from './softwareProduct/components/processes/SoftwareProductComponentProcessesActionHelper.js';
31import SoftwareProductComponentsNetworkActionHelper from './softwareProduct/components/network/SoftwareProductComponentsNetworkActionHelper.js';
32import SoftwareProductComponentsMonitoringAction from './softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringActionHelper.js';
33import {actionTypes, enums} from './OnboardingConstants.js';
34import {navigationItems as SoftwareProductNavigationItems, actionTypes as SoftwareProductActionTypes} from 'sdc-app/onboarding/softwareProduct/SoftwareProductConstants.js';
35import store from 'sdc-app/AppStore.js';
36
37function setCurrentScreen(dispatch, screen, props = {}) {
38 dispatch({
39 type: actionTypes.SET_CURRENT_SCREEN,
40 currentScreen: {
41 screen,
42 props
43 }
44 });
45}
46
47function getCurrentLicenseModelVersion(licenseModelId) {
48 return store.getState().licenseModelList.find(({id}) => id === licenseModelId).version;
49}
50
51export default {
52
53 navigateToOnboardingCatalog(dispatch) {
54 LicenseModelActionHelper.fetchLicenseModels(dispatch);
55 SoftwareProductActionHelper.fetchSoftwareProductList(dispatch);
56 setCurrentScreen(dispatch, enums.SCREEN.ONBOARDING_CATALOG);
57 },
58
59 navigateToLicenseAgreements(dispatch, {licenseModelId, version}) {
60 if(!version) {
61 version = getCurrentLicenseModelVersion(licenseModelId);
62 }
63 LicenseAgreementActionHelper.fetchLicenseAgreementList(dispatch, {licenseModelId, version});
64 LicenseModelActionHelper.fetchLicenseModelById(dispatch, {licenseModelId, version}).then(() => {
65 setCurrentScreen(dispatch, enums.SCREEN.LICENSE_AGREEMENTS, {licenseModelId});
66 });
67 },
68
69 navigateToFeatureGroups(dispatch, {licenseModelId, version}) {
70 if(!version) {
71 version = getCurrentLicenseModelVersion(licenseModelId);
72 }
73 FeatureGroupsActionHelper.fetchFeatureGroupsList(dispatch, {licenseModelId, version});
74 setCurrentScreen(dispatch, enums.SCREEN.FEATURE_GROUPS, {licenseModelId});
75 },
76
77 navigateToEntitlementPools(dispatch, {licenseModelId, version}) {
78 if(!version) {
79 version = getCurrentLicenseModelVersion(licenseModelId);
80 }
81 EntitlementPoolsActionHelper.fetchEntitlementPoolsList(dispatch, {licenseModelId, version});
82 setCurrentScreen(dispatch, enums.SCREEN.ENTITLEMENT_POOLS, {licenseModelId});
83 },
84
85 navigateToLicenseKeyGroups(dispatch, {licenseModelId, version}) {
86 if(!version) {
87 version = getCurrentLicenseModelVersion(licenseModelId);
88 }
89 LicenseKeyGroupsActionHelper.fetchLicenseKeyGroupsList(dispatch, {licenseModelId, version});
90 setCurrentScreen(dispatch, enums.SCREEN.LICENSE_KEY_GROUPS, {licenseModelId});
91 },
92
93 navigateToSoftwareProductLandingPage(dispatch, {softwareProductId, licenseModelId, version, licensingVersion}) {
94 SoftwareProductActionHelper.fetchSoftwareProduct(dispatch, {softwareProductId, version}).then(response => {
95 if(!licensingVersion) {
96 licensingVersion = response[0].licensingVersion;
97 }
98 if (!licenseModelId) {
99 licenseModelId = response[0].vendorId;
100 }
101
102 SoftwareProductActionHelper.loadSoftwareProductDetailsData(dispatch, {licenseModelId, licensingVersion});
103 SoftwareProductComponentsActionHelper.fetchSoftwareProductComponents(dispatch, {softwareProductId, version});
104
105 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_LANDING_PAGE, {softwareProductId, licenseModelId, version});
106 });
107 },
108
109 navigateToSoftwareProductDetails(dispatch, {softwareProductId}) {
110 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_DETAILS, {softwareProductId});
111 },
112
113 navigateToSoftwareProductAttachments(dispatch, {softwareProductId}) {
114 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_ATTACHMENTS, {softwareProductId});
115 },
116
117 navigateToSoftwareProductProcesses(dispatch, {softwareProductId, version}) {
118 if (softwareProductId) {
119 SoftwareProductProcessesActionHelper.fetchProcessesList(dispatch, {softwareProductId, version});
120 }
121 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_PROCESSES, {softwareProductId});
122 },
123
124 navigateToSoftwareProductNetworks(dispatch, {softwareProductId, version}) {
125 if (softwareProductId) {
126 SoftwareProductNetworksActionHelper.fetchNetworksList(dispatch, {softwareProductId, version});
127 }
128 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_NETWORKS, {softwareProductId});
129 },
130
131 navigateToSoftwareProductComponents(dispatch, {softwareProductId}) {
132 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENTS, {softwareProductId});
133 },
134
135 navigateToSoftwareProductComponentProcesses(dispatch, {softwareProductId, componentId, version}) {
136 if (componentId && softwareProductId) {
137 SoftwareProductComponentProcessesActionHelper.fetchProcessesList(dispatch, {componentId, softwareProductId, version});
138 }
139 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_PROCESSES, {softwareProductId, componentId});
140 },
141
142 navigateToSoftwareProductComponentMonitoring(dispatch, {softwareProductId, componentId}){
143 if (componentId && softwareProductId) {
144 SoftwareProductComponentsMonitoringAction.fetchExistingFiles(dispatch, {componentId, softwareProductId});
145 }
146 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_MONITORING, {softwareProductId, componentId});
147 },
148
149 navigateToComponentStorage(dispatch, {softwareProductId, componentId}) {
150 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_STORAGE, {softwareProductId, componentId});
151 },
152
153 navigateToComponentCompute(dispatch, {softwareProductId, componentId}) {
154 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_COMPUTE, {softwareProductId, componentId});
155 },
156
157 navigateToComponentNetwork(dispatch, {softwareProductId, componentId, version}) {
158 SoftwareProductComponentsNetworkActionHelper.fetchNICsList(dispatch, {softwareProductId, componentId, version});
159 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_NETWORK, {softwareProductId, componentId});
160 },
161
162 navigateToSoftwareProductComponentGeneral(dispatch, {softwareProductId, componentId, version}) {
163 if (componentId && softwareProductId) {
164 SoftwareProductComponentsActionHelper.fetchSoftwareProductComponent(dispatch, {softwareProductId, vspComponentId: componentId, version});
165 SoftwareProductComponentsActionHelper.fetchSoftwareProductComponentQuestionnaire(dispatch, {
166 softwareProductId,
167 vspComponentId: componentId,
168 version
169 });
170 }
171 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_GENERAL, {softwareProductId, componentId});
172 },
173
174 navigateToSoftwareProductComponentGeneralAndUpdateLeftPanel(dispatch, {softwareProductId, componentId, version}) {
175 this.navigateToSoftwareProductComponentGeneral(dispatch, {softwareProductId, componentId, version});
176 dispatch({
177 type: SoftwareProductActionTypes.TOGGLE_NAVIGATION_ITEM,
178 mapOfExpandedIds: {
179 [SoftwareProductNavigationItems.COMPONENTS]: true,
180 [SoftwareProductNavigationItems.COMPONENTS + '|' + componentId]: true
181 }
182 });
183 },
184
185 navigateToComponentLoadBalancing(dispatch, {softwareProductId, componentId}) {
186 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_LOAD_BALANCING, {softwareProductId, componentId});
187 }
188};