From a7b4b96afee33a2ff458f906742d88cd306ed961 Mon Sep 17 00:00:00 2001 From: Shawn Severin Date: Thu, 7 Dec 2017 15:19:25 -0500 Subject: Adding filter bar Issue-ID: AAI-543 Change-Id: I18ec69f4585a9f01feafd009fcd30493a039b064 Signed-off-by: Shawn Severin --- .../changeAttributeForm/ChangeAttributeForm.jsx | 161 +++++++++++++++++++++ .../ChangeAttributeFormConstants.js | 46 ++++++ .../ChangeAttributeFormReducer.js | 38 +++++ src/editAttributes/changeAttributeForm/validate.js | 51 +++++++ 4 files changed, 296 insertions(+) create mode 100644 src/editAttributes/changeAttributeForm/ChangeAttributeForm.jsx create mode 100644 src/editAttributes/changeAttributeForm/ChangeAttributeFormConstants.js create mode 100644 src/editAttributes/changeAttributeForm/ChangeAttributeFormReducer.js create mode 100644 src/editAttributes/changeAttributeForm/validate.js (limited to 'src/editAttributes/changeAttributeForm') diff --git a/src/editAttributes/changeAttributeForm/ChangeAttributeForm.jsx b/src/editAttributes/changeAttributeForm/ChangeAttributeForm.jsx new file mode 100644 index 0000000..34ba98d --- /dev/null +++ b/src/editAttributes/changeAttributeForm/ChangeAttributeForm.jsx @@ -0,0 +1,161 @@ +/* + * ============LICENSE_START=================================================== + * SPARKY (AAI UI service) + * ============================================================================ + * Copyright © 2017 AT&T Intellectual Property. + * Copyright © 2017 Amdocs + * All rights reserved. + * ============================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END===================================================== + * + * ECOMP and OpenECOMP are trademarks + * and service marks of AT&T Intellectual Property. + */ + +import React, {Component} from 'react'; +import {Field, Fields, reduxForm, propTypes} from 'redux-form'; +import i18n from 'utils/i18n/i18n'; + +import { + LABEL_NODE_URI, + LABEL_PROV_STATUS, + LABEL_ATTRIBUTES, + LABEL_IN_MAINT, + LABEL_IS_CLOSED_LOOP, + BUTTON_SUBMIT, + BUTTON_CLEAR, + NO_VALUE_SELECTED, + PREPROV, + NVTPROV, + DECOM, + PROV, + CAPPED, + RETIRED, + TRUE, + FALSE +} from './ChangeAttributeFormConstants.js'; +import validate from './validate.js'; + +class ChangeAttributeForm extends Component { + + static propTypes = { + ...propTypes + }; + + renderTextField = ({input, label, type, meta: {touched, error}}) => ( +
+ +
+ input.value === '' ? input.onBlur(' ') : input.onBlur()}/> + {touched && ((error && {error}))} +
+
+ ); + + + booleanOptions = [ + , + , + + ]; + + provStatusOptions = [ + , + , + , + , + , + , + + ]; + + renderAttributeFields = (fields) => ( +
+
+ {(fields.provStatus.meta.touched || + fields.inMaint.meta.touched || + fields.isClosedLoopDisabled.meta.touched) && + fields.provStatus.meta.error && + {fields.provStatus.meta.error}} +
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ ); + + render() { + const { + handleSubmit, + buttonSelected, + pristine, + reset, + submitting} = this.props; + + return ( +
+ +

{i18n(LABEL_ATTRIBUTES)}

+ +
+ + +
+ + ); + } +} + +export default reduxForm({ + form: 'changeAttributeForm', + validate +})(ChangeAttributeForm); + diff --git a/src/editAttributes/changeAttributeForm/ChangeAttributeFormConstants.js b/src/editAttributes/changeAttributeForm/ChangeAttributeFormConstants.js new file mode 100644 index 0000000..02e8996 --- /dev/null +++ b/src/editAttributes/changeAttributeForm/ChangeAttributeFormConstants.js @@ -0,0 +1,46 @@ +/* + * ============LICENSE_START=================================================== + * SPARKY (AAI UI service) + * ============================================================================ + * Copyright © 2017 AT&T Intellectual Property. + * Copyright © 2017 Amdocs + * All rights reserved. + * ============================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END===================================================== + * + * ECOMP and OpenECOMP are trademarks + * and service marks of AT&T Intellectual Property. + */ + +export const LABEL_NODE_URI = 'Target Entity URI'; +export const LABEL_PROV_STATUS = 'prov-status'; +export const LABEL_IN_MAINT = 'in-maint'; +export const LABEL_IS_CLOSED_LOOP = 'is-closed-loop-disabled'; +export const LABEL_ATTRIBUTES = 'ATTRIBUTES'; + +export const BUTTON_SUBMIT = 'Submit'; +export const BUTTON_CLEAR = 'Clear'; + +export const NO_VALUE_SELECTED = 'No Value Selected'; +export const PREPROV = 'PREPROV'; +export const NVTPROV = 'NVTPROV'; +export const PROV = 'PROV'; +export const CAPPED = 'CAPPED'; +export const DECOM = 'DECOM'; +export const RETIRED = 'RETIRED'; +export const TRUE = 'TRUE'; +export const FALSE = 'FALSE'; + +export const ERROR_MISSING_ATTR = 'At least one attribute must be set'; +export const ERROR_REQUIRED = 'Required'; diff --git a/src/editAttributes/changeAttributeForm/ChangeAttributeFormReducer.js b/src/editAttributes/changeAttributeForm/ChangeAttributeFormReducer.js new file mode 100644 index 0000000..0778a0e --- /dev/null +++ b/src/editAttributes/changeAttributeForm/ChangeAttributeFormReducer.js @@ -0,0 +1,38 @@ +/* + * ============LICENSE_START=================================================== + * SPARKY (AAI UI service) + * ============================================================================ + * Copyright © 2017 AT&T Intellectual Property. + * Copyright © 2017 Amdocs + * All rights reserved. + * ============================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END===================================================== + * + * ECOMP and OpenECOMP are trademarks + * and service marks of AT&T Intellectual Property. + */ + +/*import { combineReducers } from 'redux' + import { reducer as formReducer } from 'redux-form' + + + + const reducer = combineReducers({ + form: formReducer.validation({ + changeAttributeForm: validate + }) + }); + + export default reducer; + */ diff --git a/src/editAttributes/changeAttributeForm/validate.js b/src/editAttributes/changeAttributeForm/validate.js new file mode 100644 index 0000000..d6a8d99 --- /dev/null +++ b/src/editAttributes/changeAttributeForm/validate.js @@ -0,0 +1,51 @@ +/* + * ============LICENSE_START=================================================== + * SPARKY (AAI UI service) + * ============================================================================ + * Copyright © 2017 AT&T Intellectual Property. + * Copyright © 2017 Amdocs + * All rights reserved. + * ============================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END===================================================== + * + * ECOMP and OpenECOMP are trademarks + * and service marks of AT&T Intellectual Property. + */ + +import i18n from 'utils/i18n/i18n'; + +import { + ERROR_MISSING_ATTR, + ERROR_REQUIRED, + NO_VALUE_SELECTED +} from './ChangeAttributeFormConstants.js'; + +const validate = (values) => { + const errors = {}; + + if (!values.uri || values.uri.replace(/\s/g, '') === '') { + errors.uri = i18n(ERROR_REQUIRED); + } + if ((!values.provStatus || values.provStatus === NO_VALUE_SELECTED) && + (!values.inMaint || values.inMaint === NO_VALUE_SELECTED) && + (!values.isClosedLoopDisabled || + values.isClosedLoopDisabled === + NO_VALUE_SELECTED)) { + errors.provStatus = i18n(ERROR_MISSING_ATTR); + } + + return errors; +}; + +export default validate; -- cgit