1 import { itemTypes } from 'sdc-app/onboarding/versionsPage/VersionsPageConstants.js';
2 import { enums, screenTypes } from 'sdc-app/onboarding/OnboardingConstants.js';
3 import OnboardingActionHelper from 'sdc-app/onboarding/OnboardingActionHelper.js';
4 import { actionTypes as SoftwareProductActionTypes } from 'sdc-app/onboarding/softwareProduct/SoftwareProductConstants.js';
5 import ItemsHelper from 'sdc-app/common/helpers/ItemsHelper.js';
6 import versionPageActionHelper from 'sdc-app/onboarding/versionsPage/VersionsPageActionHelper.js';
7 import i18n from 'nfvo-utils/i18n/i18n.js';
8 import { actionTypes as modalActionTypes } from 'nfvo-components/modal/GlobalModalConstants.js';
10 const ScreensHelper = {
11 async loadScreen(dispatch, { screen, screenType, props }) {
12 if (screen === enums.SCREEN.ONBOARDING_CATALOG) {
13 OnboardingActionHelper.navigateToOnboardingCatalog(dispatch);
17 screenType = !screenType ? this.getScreenType(screen) : screenType;
19 if (screenType === screenTypes.LICENSE_MODEL) {
20 const { licenseModelId, version, licenseModel, usersList } = props;
21 const item = await ItemsHelper.fetchItem(licenseModelId);
22 let itemStatusPromise =
24 ? ItemsHelper.checkItemStatus(dispatch, {
25 itemId: licenseModelId,
29 itemStatusPromise.then(updatedVersion => {
32 updatedVersion.status !== version.status
35 type: modalActionTypes.GLOBAL_MODAL_WARNING,
37 title: i18n('Commit error'),
38 msg: i18n('Item version was certified by Owner'),
39 cancelButtonText: i18n('Cancel')
42 versionPageActionHelper.fetchVersions(dispatch, {
43 itemType: itemTypes.LICENSE_MODEL,
44 itemId: licenseModelId
47 let newVersion = updatedVersion ? updatedVersion : version;
54 case enums.SCREEN.LICENSE_MODEL_OVERVIEW:
55 OnboardingActionHelper.navigateToLicenseModelOverview(
60 case enums.SCREEN.LICENSE_AGREEMENTS:
61 OnboardingActionHelper.navigateToLicenseAgreements(
66 case enums.SCREEN.FEATURE_GROUPS:
67 OnboardingActionHelper.navigateToFeatureGroups(
72 case enums.SCREEN.ENTITLEMENT_POOLS:
73 OnboardingActionHelper.navigateToEntitlementPools(
78 case enums.SCREEN.LICENSE_KEY_GROUPS:
79 OnboardingActionHelper.navigateToLicenseKeyGroups(
84 case enums.SCREEN.ACTIVITY_LOG:
85 OnboardingActionHelper.navigateToLicenseModelActivityLog(
90 case enums.SCREEN.VERSIONS_PAGE:
92 OnboardingActionHelper.navigateToVersionsPage(
95 itemId: licenseModelId,
96 itemType: itemTypes.LICENSE_MODEL,
97 itemName: licenseModel.name,
104 } else if (screenType === screenTypes.SOFTWARE_PRODUCT) {
112 const item = await ItemsHelper.fetchItem(softwareProductId);
113 let itemStatusPromise =
115 ? ItemsHelper.checkItemStatus(dispatch, {
116 itemId: softwareProductId,
117 versionId: version.id
120 itemStatusPromise.then(updatedVersion => {
123 updatedVersion.status !== version.status
126 type: modalActionTypes.GLOBAL_MODAL_WARNING,
128 title: i18n('Commit error'),
129 msg: i18n('Item version already Certified'),
130 cancelButtonText: i18n('Cancel')
133 versionPageActionHelper.fetchVersions(dispatch, {
134 itemType: itemTypes.SOFTWARE_PRODUCT,
135 itemId: softwareProductId
139 let newVersion = updatedVersion ? updatedVersion : version;
149 screenTypes.SOFTWARE_PRODUCT_COMPONENT_DEFAULT_GENERAL
151 OnboardingActionHelper.navigateToSoftwareProductComponentGeneralAndUpdateLeftPanel(
158 case enums.SCREEN.SOFTWARE_PRODUCT_LANDING_PAGE:
159 OnboardingActionHelper.navigateToSoftwareProductLandingPage(
164 case enums.SCREEN.SOFTWARE_PRODUCT_DETAILS:
165 OnboardingActionHelper.navigateToSoftwareProductDetails(
170 case enums.SCREEN.SOFTWARE_PRODUCT_ATTACHMENTS_SETUP:
171 OnboardingActionHelper.navigateToSoftwareProductAttachmentsSetupTab(
176 case enums.SCREEN.SOFTWARE_PRODUCT_ATTACHMENTS_VALIDATION:
177 OnboardingActionHelper.navigateToSoftwareProductAttachmentsValidationTab(
182 case enums.SCREEN.SOFTWARE_PRODUCT_PROCESSES:
183 OnboardingActionHelper.navigateToSoftwareProductProcesses(
188 case enums.SCREEN.SOFTWARE_PRODUCT_DEPLOYMENT:
189 OnboardingActionHelper.navigateToSoftwareProductDeployment(
194 case enums.SCREEN.SOFTWARE_PRODUCT_NETWORKS:
195 OnboardingActionHelper.navigateToSoftwareProductNetworks(
200 case enums.SCREEN.SOFTWARE_PRODUCT_VALIDATION:
201 OnboardingActionHelper.navigateToSoftwareProductValidation(
206 case enums.SCREEN.SOFTWARE_PRODUCT_VALIDATION_RESULTS:
207 OnboardingActionHelper.navigateToSoftwareProductValidationResults(
212 case enums.SCREEN.SOFTWARE_PRODUCT_DEPENDENCIES:
213 OnboardingActionHelper.navigateToSoftwareProductDependencies(
218 case enums.SCREEN.SOFTWARE_PRODUCT_ACTIVITY_LOG:
219 OnboardingActionHelper.navigateToSoftwareProductActivityLog(
224 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENTS:
226 OnboardingActionHelper.navigateToSoftwareProductComponents(
232 SoftwareProductActionTypes.TOGGLE_NAVIGATION_ITEM,
235 .SOFTWARE_PRODUCT_COMPONENTS]: true
239 OnboardingActionHelper.navigateToSoftwareProductComponentGeneralAndUpdateLeftPanel(
245 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_GENERAL:
246 OnboardingActionHelper.navigateToSoftwareProductComponentGeneral(
251 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_COMPUTE:
252 OnboardingActionHelper.navigateToComponentCompute(
257 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_LOAD_BALANCING:
258 OnboardingActionHelper.navigateToComponentLoadBalancing(
263 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_NETWORK:
264 OnboardingActionHelper.navigateToComponentNetwork(
269 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_STORAGE:
270 OnboardingActionHelper.navigateToComponentStorage(
275 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_PROCESSES:
276 OnboardingActionHelper.navigateToSoftwareProductComponentProcesses(
281 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_MONITORING:
282 OnboardingActionHelper.navigateToSoftwareProductComponentMonitoring(
287 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_IMAGES:
288 OnboardingActionHelper.navigateToComponentImages(
293 case enums.SCREEN.SOFTWARE_PRODUCT_VERSIONS_PAGE:
295 OnboardingActionHelper.navigateToVersionsPage(
298 itemId: softwareProductId,
299 itemType: itemTypes.SOFTWARE_PRODUCT,
300 itemName: softwareProduct.name,
303 licenseModelId: softwareProduct.vendorId,
305 softwareProduct.licensingVersion
315 getScreenType(screen) {
317 case enums.SCREEN.LICENSE_MODEL_OVERVIEW:
318 case enums.SCREEN.LICENSE_AGREEMENTS:
319 case enums.SCREEN.FEATURE_GROUPS:
320 case enums.SCREEN.ENTITLEMENT_POOLS:
321 case enums.SCREEN.LICENSE_KEY_GROUPS:
322 case enums.SCREEN.ACTIVITY_LOG:
323 return screenTypes.LICENSE_MODEL;
324 case screenTypes.SOFTWARE_PRODUCT_COMPONENT_DEFAULT_GENERAL:
325 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_GENERAL:
326 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_COMPUTE:
327 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_LOAD_BALANCING:
328 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_NETWORK:
329 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_STORAGE:
330 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_PROCESSES:
331 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_MONITORING:
332 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_IMAGES:
333 case enums.SCREEN.SOFTWARE_PRODUCT_LANDING_PAGE:
334 case enums.SCREEN.SOFTWARE_PRODUCT_DETAILS:
335 case enums.SCREEN.SOFTWARE_PRODUCT_ATTACHMENTS:
336 case enums.SCREEN.SOFTWARE_PRODUCT_PROCESSES:
337 case enums.SCREEN.SOFTWARE_PRODUCT_DEPLOYMENT:
338 case enums.SCREEN.SOFTWARE_PRODUCT_NETWORKS:
339 case enums.SCREEN.SOFTWARE_PRODUCT_DEPENDENCIES:
340 case enums.SCREEN.SOFTWARE_PRODUCT_ACTIVITY_LOG:
341 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENTS:
342 return screenTypes.SOFTWARE_PRODUCT;
351 props: { licenseModelId, softwareProductId, version }
354 let selectedScreenType = screenType
356 : this.getScreenType(previousScreenName);
358 selectedScreenType === screenTypes.SOFTWARE_PRODUCT
359 ? enums.SCREEN.SOFTWARE_PRODUCT_LANDING_PAGE
360 : enums.SCREEN.LICENSE_MODEL_OVERVIEW;
361 let props = { licenseModelId, softwareProductId, version };
362 return this.loadScreen(dispatch, {
364 screenType: selectedScreenType,
370 export default ScreensHelper;