2 * Copyright © 2016-2017 European Support Limited
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 import Onboard from './onboard/Onboard.js';
18 import VersionsPage from './versionsPage/VersionsPage.js';
19 import LicenseModel from './licenseModel/LicenseModel.js';
20 import LicenseModelOverview from './licenseModel/overview/LicenseModelOverview.js';
21 import ActivityLog from 'sdc-app/common/activity-log/ActivityLog.js';
23 import LicenseAgreementListEditor from './licenseModel/licenseAgreement/LicenseAgreementListEditor.js';
24 import FeatureGroupListEditor from './licenseModel/featureGroups/FeatureGroupListEditor.js';
25 import LicenseKeyGroupsListEditor from './licenseModel/licenseKeyGroups/LicenseKeyGroupsListEditor.js';
26 import EntitlementPoolsListEditor from './licenseModel/entitlementPools/EntitlementPoolsListEditor.js';
27 import SoftwareProduct from './softwareProduct/SoftwareProduct.js';
28 import SoftwareProductLandingPage from './softwareProduct/landingPage/SoftwareProductLandingPage.js';
29 import SoftwareProductDetails from './softwareProduct/details/SoftwareProductDetails.js';
30 import SoftwareProductAttachments from './softwareProduct/attachments/SoftwareProductAttachments.js';
31 import SoftwareProductProcesses from './softwareProduct/processes/SoftwareProductProcesses.js';
32 import SoftwareProductDeployment from './softwareProduct/deployment/SoftwareProductDeployment.js';
33 import SoftwareProductNetworks from './softwareProduct/networks/SoftwareProductNetworks.js';
34 import SoftwareProductValidation from './softwareProduct/validation/SoftwareProductValidation.js';
35 import SoftwareProductValidationResults from './softwareProduct/validationResults/SoftwareProductValidationResults.js';
36 import SoftwareProductDependencies from './softwareProduct/dependencies/SoftwareProductDependencies.js';
38 import SoftwareProductComponentsList from './softwareProduct/components/SoftwareProductComponents.js';
39 import SoftwareProductComponentProcessesList from './softwareProduct/components/processes/SoftwareProductComponentProcessesList.js';
40 import SoftwareProductComponentStorage from './softwareProduct/components/storage/SoftwareProductComponentStorage.js';
41 import SoftwareProductComponentsNetworkList from './softwareProduct/components/network/SoftwareProductComponentsNetworkList.js';
42 import SoftwareProductComponentsGeneral from './softwareProduct/components/general/SoftwareProductComponentsGeneral.js';
43 import SoftwareProductComponentsCompute from './softwareProduct/components/compute/SoftwareProductComponentCompute.js';
44 import SoftwareProductComponentLoadBalancing from './softwareProduct/components/loadBalancing/SoftwareProductComponentLoadBalancing.js';
45 import SoftwareProductComponentsImageList from './softwareProduct/components/images/SoftwareProductComponentsImageList.js';
46 import SoftwareProductComponentsMonitoring from './softwareProduct/components/monitoring/SoftwareProductComponentsMonitoring.js';
47 import objectValues from 'lodash/values.js';
48 import PropTypes from 'prop-types';
50 import React from 'react';
52 import ReactDOM from 'react-dom';
53 import { enums } from './OnboardingConstants.js';
55 export default class OnboardingView extends React.Component {
57 currentScreen: PropTypes.shape({
58 screen: PropTypes.oneOf(objectValues(enums.SCREEN)).isRequired,
59 props: PropTypes.object.isRequired,
60 itemPermission: PropTypes.object
65 let element = ReactDOM.findDOMNode(this);
66 element.addEventListener('click', event => {
67 if (event.target.tagName === 'A') {
68 event.preventDefault();
71 ['wheel', 'mousewheel', 'DOMMouseScroll'].forEach(eventType =>
72 element.addEventListener(eventType, event =>
73 event.stopPropagation()
79 let { currentScreen, isLoading } = this.props;
80 let { screen, props } = currentScreen;
81 const preventClicks = isLoading ? 'no-pointer-events' : '';
84 className={`dox-ui dox-ui-punch-out dox-ui-punch-out-full-page ${preventClicks}`}>
87 case enums.SCREEN.ONBOARDING_CATALOG:
88 return <Onboard {...props} />;
89 case enums.SCREEN.VERSIONS_PAGE:
90 return <VersionsPage {...props} />;
92 case enums.SCREEN.LICENSE_AGREEMENTS:
93 case enums.SCREEN.FEATURE_GROUPS:
94 case enums.SCREEN.ENTITLEMENT_POOLS:
95 case enums.SCREEN.LICENSE_KEY_GROUPS:
96 case enums.SCREEN.LICENSE_MODEL_OVERVIEW:
97 case enums.SCREEN.ACTIVITY_LOG:
99 <LicenseModel currentScreen={currentScreen}>
103 .LICENSE_MODEL_OVERVIEW:
105 <LicenseModelOverview
112 <LicenseAgreementListEditor
116 case enums.SCREEN.FEATURE_GROUPS:
118 <FeatureGroupListEditor
122 case enums.SCREEN.ENTITLEMENT_POOLS:
124 <EntitlementPoolsListEditor
131 <LicenseKeyGroupsListEditor
135 case enums.SCREEN.ACTIVITY_LOG:
137 <ActivityLog {...props} />
144 case enums.SCREEN.SOFTWARE_PRODUCT_LANDING_PAGE:
145 case enums.SCREEN.SOFTWARE_PRODUCT_DETAILS:
146 case enums.SCREEN.SOFTWARE_PRODUCT_ATTACHMENTS:
147 case enums.SCREEN.SOFTWARE_PRODUCT_PROCESSES:
148 case enums.SCREEN.SOFTWARE_PRODUCT_DEPLOYMENT:
149 case enums.SCREEN.SOFTWARE_PRODUCT_NETWORKS:
150 case enums.SCREEN.SOFTWARE_PRODUCT_VALIDATION:
151 case enums.SCREEN.SOFTWARE_PRODUCT_VALIDATION_RESULTS:
152 case enums.SCREEN.SOFTWARE_PRODUCT_DEPENDENCIES:
153 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENTS:
154 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_PROCESSES:
155 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_STORAGE:
156 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_NETWORK:
157 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_GENERAL:
158 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_COMPUTE:
160 .SOFTWARE_PRODUCT_COMPONENT_LOAD_BALANCING:
161 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_IMAGES:
162 case enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_MONITORING:
163 case enums.SCREEN.SOFTWARE_PRODUCT_ACTIVITY_LOG:
165 <SoftwareProduct currentScreen={currentScreen}>
169 .SOFTWARE_PRODUCT_LANDING_PAGE:
171 <SoftwareProductLandingPage
176 .SOFTWARE_PRODUCT_DETAILS:
178 <SoftwareProductDetails
183 .SOFTWARE_PRODUCT_ATTACHMENTS:
185 <SoftwareProductAttachments
186 className="no-padding-content-area"
191 .SOFTWARE_PRODUCT_PROCESSES:
193 <SoftwareProductProcesses
198 .SOFTWARE_PRODUCT_DEPLOYMENT:
200 <SoftwareProductDeployment
205 .SOFTWARE_PRODUCT_NETWORKS:
207 <SoftwareProductNetworks
212 .SOFTWARE_PRODUCT_VALIDATION:
214 <SoftwareProductValidation
215 className="no-padding-content-area"
220 .SOFTWARE_PRODUCT_VALIDATION_RESULTS:
222 <SoftwareProductValidationResults
227 .SOFTWARE_PRODUCT_DEPENDENCIES:
229 <SoftwareProductDependencies
234 .SOFTWARE_PRODUCT_COMPONENTS:
236 <SoftwareProductComponentsList
241 .SOFTWARE_PRODUCT_COMPONENT_PROCESSES:
243 <SoftwareProductComponentProcessesList
248 .SOFTWARE_PRODUCT_COMPONENT_STORAGE:
250 <SoftwareProductComponentStorage
255 .SOFTWARE_PRODUCT_COMPONENT_NETWORK:
257 <SoftwareProductComponentsNetworkList
262 .SOFTWARE_PRODUCT_COMPONENT_GENERAL:
264 <SoftwareProductComponentsGeneral
269 .SOFTWARE_PRODUCT_COMPONENT_COMPUTE:
271 <SoftwareProductComponentsCompute
276 .SOFTWARE_PRODUCT_COMPONENT_LOAD_BALANCING:
278 <SoftwareProductComponentLoadBalancing
283 .SOFTWARE_PRODUCT_COMPONENT_IMAGES:
285 <SoftwareProductComponentsImageList
290 .SOFTWARE_PRODUCT_COMPONENT_MONITORING:
292 <SoftwareProductComponentsMonitoring
297 .SOFTWARE_PRODUCT_ACTIVITY_LOG:
299 <ActivityLog {...props} />