aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-ui/src/sdc-app/ModulesOptions.jsx
diff options
context:
space:
mode:
authorMichael Lando <ml636r@att.com>2017-02-19 12:57:33 +0200
committerMichael Lando <ml636r@att.com>2017-02-19 13:47:13 +0200
commitefa037d34be7b1570efdc767c79fad8d4005f10e (patch)
treecf1036ba2728dea8a61492b678fa91954e629403 /openecomp-ui/src/sdc-app/ModulesOptions.jsx
parentf5f13c4f6b6fe3b4d98e349dfd7db59339803436 (diff)
Add new code new version
Change-Id: Ic02a76313503b526f17c3df29eb387a29fe6a42a Signed-off-by: Michael Lando <ml636r@att.com>
Diffstat (limited to 'openecomp-ui/src/sdc-app/ModulesOptions.jsx')
-rw-r--r--openecomp-ui/src/sdc-app/ModulesOptions.jsx150
1 files changed, 150 insertions, 0 deletions
diff --git a/openecomp-ui/src/sdc-app/ModulesOptions.jsx b/openecomp-ui/src/sdc-app/ModulesOptions.jsx
new file mode 100644
index 0000000000..4f66e579d1
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/ModulesOptions.jsx
@@ -0,0 +1,150 @@
+import React from 'react';
+import {connect} from 'react-redux';
+import Input from 'react-bootstrap/lib/Input.js';
+
+import LicenseModelActionHelper from './onboarding/licenseModel/LicenseModelActionHelper.js';
+import LicenseAgreementListEditor from './onboarding/licenseModel/licenseAgreement/LicenseAgreementListEditor.js';
+import LicenseAgreementActionHelper from './onboarding/licenseModel/licenseAgreement/LicenseAgreementActionHelper.js';
+import FeatureGroupListEditor from './onboarding/licenseModel/featureGroups/FeatureGroupListEditor.js';
+import FeatureGroupsActionHelper from './onboarding/licenseModel/featureGroups/FeatureGroupsActionHelper.js';
+import LicenseKeyGroupsListEditor from './onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsListEditor.js';
+import LicenseKeyGroupsActionHelper from './onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsActionHelper.js';
+import EntitlementPoolsListEditor from './onboarding/licenseModel/entitlementPools/EntitlementPoolsListEditor.js';
+import EntitlementPoolsActionHelper from './onboarding/licenseModel/entitlementPools/EntitlementPoolsActionHelper.js';
+import SoftwareProductLandingPage from './onboarding/softwareProduct/landingPage/SoftwareProductLandingPage.js';
+import SoftwareProductDetails from './onboarding/softwareProduct/details/SoftwareProductDetails.js';
+import OnboardingCatalog from './onboarding/OnboardingCatalog.js';
+import SoftwareProductActionHelper from './onboarding/softwareProduct/SoftwareProductActionHelper.js';
+import FlowsListEditor from './flows/FlowsListEditor.js';
+import FlowsActions from './flows/FlowsActions.js';
+
+
+const mapStateToProps = ({licenseModelList}) => {
+ return {licenseModelList};
+};
+
+
+const mapActionsToProps = dispatch => {
+ return {
+ onBootstrapped: () => LicenseModelActionHelper.fetchLicenseModels(dispatch),
+ onLicenseAgreementListEditor: licenseModelId => LicenseAgreementActionHelper.fetchLicenseAgreementList(dispatch, {licenseModelId}),
+ onFeatureGroupsListEditor: licenseModelId => FeatureGroupsActionHelper.fetchFeatureGroupsList(dispatch, {licenseModelId}),
+ onLicenseKeyGroupsListEditor: licenseModelId =>LicenseKeyGroupsActionHelper.fetchLicenseKeyGroupsList(dispatch, {licenseModelId}),
+ onEntitlementPoolsListEditor: licenseModelId => EntitlementPoolsActionHelper.fetchEntitlementPoolsList(dispatch, {licenseModelId}),
+ onOnboardingCatalog: () => SoftwareProductActionHelper.fetchSoftwareProductList(dispatch),
+ onSoftwareProductDetails: () => SoftwareProductActionHelper.fetchSoftwareProductCategories(dispatch),
+ onFlowsListEditor: () => FlowsActions.fetchFlows(dispatch)
+ };
+};
+
+class ModuleOptions extends React.Component {
+
+ static propTypes = {
+ onBootstrapped: React.PropTypes.func.isRequired,
+ onLicenseAgreementListEditor: React.PropTypes.func.isRequired,
+ onFeatureGroupsListEditor: React.PropTypes.func.isRequired,
+ onLicenseKeyGroupsListEditor: React.PropTypes.func.isRequired,
+ onEntitlementPoolsListEditor: React.PropTypes.func.isRequired,
+ onOnboardingCatalog: React.PropTypes.func.isRequired,
+ onSoftwareProductDetails: React.PropTypes.func.isRequired,
+ };
+
+ state = {
+ currentModule: localStorage.getItem('default-module'),
+ licenseModelId: localStorage.getItem('default-license-model-id')
+ };
+
+ componentDidMount() {
+ this.props.onBootstrapped();
+ }
+
+ render() {
+ let {currentModule, licenseModelId} = this.state;
+ let {licenseModelList} = this.props;
+ return (
+ <div style={{marginTop:20}}>
+ <Input
+ name='licenseModel'
+ value={licenseModelId}
+ ref='licenseModelId'
+ type='select'
+ onChange={this.handleLicenseModelIdChange}
+ className='inner-pagination select-input'>
+ <option value='' key={null}>Select License Model</option>
+ {
+ licenseModelList.map(({id, vendorName}) => <option value={id} key={id}>{`${vendorName} License Model`}</option>)
+ }
+ </Input>
+ <Input
+ name='currentView'
+ value={currentModule}
+ ref='selectedModule'
+ type='select'
+ onChange={this.handleModuleSelection}
+ className='inner-pagination select-input'>
+ <option value=''>Select Module</option>
+ <option value='EntitlementPoolsListEditor'>Entitlement Pools</option>
+ <option value='LicenseAgreementListEditor'>License Agreements</option>
+ <option value='FutureGroupListEditor'>Feature Groups</option>
+ <option value='LicenseKeyGroupsListEditor'>License Key Groups</option>
+ <option value='SoftwareProductLanding'>Software Product Landing</option>
+ <option value='SoftwareProductDetails'>Software Product Details</option>
+ <option value='OnboardingCatalog'>Onboarding Catalog</option>
+ <option value='Flows'>Flows</option>
+ </Input>
+ <div className='sub-module-view' style={{paddingTop: 10, margin: 4, borderTop: '1px solid silver'}}>
+ {this.renderModule(currentModule)}
+ </div>
+ </div>
+ );
+ }
+
+ renderModule(currentModule) {
+ const {licenseModelId} = this.state;
+ if (!licenseModelId) {
+ return;
+ }
+
+ switch (currentModule) {
+ case 'LicenseAgreementListEditor':
+ this.props.onLicenseAgreementListEditor(licenseModelId);
+ return <LicenseAgreementListEditor licenseModelId={licenseModelId}/>;
+ case 'FutureGroupListEditor':
+ this.props.onFeatureGroupsListEditor(licenseModelId);
+ return <FeatureGroupListEditor licenseModelId={licenseModelId}/>;
+ case 'EntitlementPoolsListEditor':
+ this.props.onEntitlementPoolsListEditor(licenseModelId);
+ return <EntitlementPoolsListEditor licenseModelId={licenseModelId}/>;
+ case 'LicenseKeyGroupsListEditor':
+ this.props.onLicenseKeyGroupsListEditor(licenseModelId);
+ return <LicenseKeyGroupsListEditor licenseModelId={licenseModelId}/>;
+ case 'SoftwareProductLanding':
+ return <SoftwareProductLandingPage licenseModelId={licenseModelId}/>;
+ case 'SoftwareProductDetails':
+ this.props.onSoftwareProductDetails(licenseModelId);
+ return <SoftwareProductDetails licenseModelId={licenseModelId}/>;
+ case 'OnboardingCatalog':
+ this.props.onOnboardingCatalog();
+ return <OnboardingCatalog/>;
+ case 'Flows':
+ this.props.onFlowsListEditor();
+ return <FlowsListEditor/>;
+ default:
+ return;
+ }
+ }
+
+ handleModuleSelection = () => {
+ let selectedModule = this.refs.selectedModule.getValue();
+ localStorage.setItem('default-module', selectedModule);
+ this.setState({currentModule: selectedModule});
+ }
+
+ handleLicenseModelIdChange = () => {
+ let licenseModelId = this.refs.licenseModelId.getValue();
+ localStorage.setItem('default-license-model-id', licenseModelId);
+ this.setState({licenseModelId});
+ }
+}
+
+export default connect(mapStateToProps, mapActionsToProps)(ModuleOptions);