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(
183 .SOFTWARE_PRODUCT_ATTACHMENTS_VIEW_VALIDATION:
184 OnboardingActionHelper.viewSoftwareProductAttachmentsValidationTab(
189 case enums.SCREEN.SOFTWARE_PRODUCT_PROCESSES:
190 OnboardingActionHelper.navigateToSoftwareProductProcesses(
195 case enums.SCREEN.SOFTWARE_PRODUCT_DEPLOYMENT:
196 OnboardingActionHelper.navigateToSoftwareProductDeployment(
201 case enums.SCREEN.SOFTWARE_PRODUCT_NETWORKS:
202 OnboardingActionHelper.navigateToSoftwareProductNetworks(
207 case enums.SCREEN.SOFTWARE_PRODUCT_VALIDATION:
208 OnboardingActionHelper.navigateToSoftwareProductValidation(
213 case enums.SCREEN.SOFTWARE_PRODUCT_VALIDATION_RESULTS:
214 OnboardingActionHelper.navigateToSoftwareProductValidationResults(
219 case enums.SCREEN.SOFTWARE_PRODUCT_DEPENDENCIES:
220 OnboardingActionHelper.navigateToSoftwareProductDependencies(
225 case enums.SCREEN.SOFTWARE_PRODUCT_ACTIVITY_LOG:
226 OnboardingActionHelper.navigateToSoftwareProductActivityLog(
231 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENTS:
233 OnboardingActionHelper.navigateToSoftwareProductComponents(
239 SoftwareProductActionTypes.TOGGLE_NAVIGATION_ITEM,
242 .SOFTWARE_PRODUCT_COMPONENTS]: true
246 OnboardingActionHelper.navigateToSoftwareProductComponentGeneralAndUpdateLeftPanel(
252 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_GENERAL:
253 OnboardingActionHelper.navigateToSoftwareProductComponentGeneral(
258 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_COMPUTE:
259 OnboardingActionHelper.navigateToComponentCompute(
264 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_LOAD_BALANCING:
265 OnboardingActionHelper.navigateToComponentLoadBalancing(
270 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_NETWORK:
271 OnboardingActionHelper.navigateToComponentNetwork(
276 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_STORAGE:
277 OnboardingActionHelper.navigateToComponentStorage(
282 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_PROCESSES:
283 OnboardingActionHelper.navigateToSoftwareProductComponentProcesses(
288 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_MONITORING:
289 OnboardingActionHelper.navigateToSoftwareProductComponentMonitoring(
294 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_IMAGES:
295 OnboardingActionHelper.navigateToComponentImages(
300 case enums.SCREEN.SOFTWARE_PRODUCT_VERSIONS_PAGE:
302 OnboardingActionHelper.navigateToVersionsPage(
305 itemId: softwareProductId,
306 itemType: itemTypes.SOFTWARE_PRODUCT,
307 itemName: softwareProduct.name,
310 licenseModelId: softwareProduct.vendorId,
312 softwareProduct.licensingVersion
322 getScreenType(screen) {
324 case enums.SCREEN.LICENSE_MODEL_OVERVIEW:
325 case enums.SCREEN.LICENSE_AGREEMENTS:
326 case enums.SCREEN.FEATURE_GROUPS:
327 case enums.SCREEN.ENTITLEMENT_POOLS:
328 case enums.SCREEN.LICENSE_KEY_GROUPS:
329 case enums.SCREEN.ACTIVITY_LOG:
330 return screenTypes.LICENSE_MODEL;
331 case screenTypes.SOFTWARE_PRODUCT_COMPONENT_DEFAULT_GENERAL:
332 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_GENERAL:
333 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_COMPUTE:
334 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_LOAD_BALANCING:
335 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_NETWORK:
336 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_STORAGE:
337 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_PROCESSES:
338 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_MONITORING:
339 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_IMAGES:
340 case enums.SCREEN.SOFTWARE_PRODUCT_LANDING_PAGE:
341 case enums.SCREEN.SOFTWARE_PRODUCT_DETAILS:
342 case enums.SCREEN.SOFTWARE_PRODUCT_ATTACHMENTS:
343 case enums.SCREEN.SOFTWARE_PRODUCT_PROCESSES:
344 case enums.SCREEN.SOFTWARE_PRODUCT_DEPLOYMENT:
345 case enums.SCREEN.SOFTWARE_PRODUCT_NETWORKS:
346 case enums.SCREEN.SOFTWARE_PRODUCT_DEPENDENCIES:
347 case enums.SCREEN.SOFTWARE_PRODUCT_ACTIVITY_LOG:
348 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENTS:
349 return screenTypes.SOFTWARE_PRODUCT;
358 props: { licenseModelId, softwareProductId, version }
361 let selectedScreenType = screenType
363 : this.getScreenType(previousScreenName);
365 selectedScreenType === screenTypes.SOFTWARE_PRODUCT
366 ? enums.SCREEN.SOFTWARE_PRODUCT_LANDING_PAGE
367 : enums.SCREEN.LICENSE_MODEL_OVERVIEW;
368 let props = { licenseModelId, softwareProductId, version };
369 return this.loadScreen(dispatch, {
371 screenType: selectedScreenType,
377 export default ScreensHelper;