summaryrefslogtreecommitdiffstats
path: root/src/editAttributes/EditAttributes.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/editAttributes/EditAttributes.jsx')
-rw-r--r--src/editAttributes/EditAttributes.jsx116
1 files changed, 116 insertions, 0 deletions
diff --git a/src/editAttributes/EditAttributes.jsx b/src/editAttributes/EditAttributes.jsx
new file mode 100644
index 0000000..ab2d391
--- /dev/null
+++ b/src/editAttributes/EditAttributes.jsx
@@ -0,0 +1,116 @@
+/*
+ * ============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 {connect} from 'react-redux';
+import i18n from 'utils/i18n/i18n';
+
+import InlineMessage from 'generic-components/InlineMessage/InlineMessage.jsx';
+import {
+ clearFeebackMessage,
+ requestEditEntityAttributes
+} from './EditAttributeActions.js';
+import {
+ SET_ATTRIBUTE_TITLE,
+ ATTRIBUTE_MODIFICATION
+} from './EditAttributeConstants.js';
+import ChangeAttributeForm from 'editAttributes/changeAttributeForm/ChangeAttributeForm.jsx';
+import {NO_VALUE_SELECTED} from 'editAttributes/changeAttributeForm/ChangeAttributeFormConstants.js';
+
+let mapStateToProps = ({setAttributes}) => {
+ let {
+ feedbackMsgText = '',
+ feedbackMsgSeverity = ''
+ } = setAttributes;
+
+ return {
+ feedbackMsgText,
+ feedbackMsgSeverity
+ };
+};
+
+let mapActionToProps = (dispatch) => {
+ return {
+ handleSubmit: (values) => {
+ let uri = values.uri;
+ let attrMap = new Map();
+ attrMap.set('provStatus', 'prov-status');
+ attrMap.set('inMaint', 'in-maint');
+ attrMap.set('isClosedLoopDisabled', 'is-closed-loop-disabled');
+
+ let attributes = {};
+ let valueString = JSON.stringify(values);
+ JSON.parse(valueString, (key, value) => {
+ if(value !== NO_VALUE_SELECTED) {
+ let formattedKey = attrMap.get(key);
+ if(formattedKey !== undefined) {
+ attributes = {
+ ...attributes, [formattedKey]: value
+ };
+ }
+ return value;
+ }
+ });
+
+ dispatch(requestEditEntityAttributes(uri, attributes));
+ },
+ clearFeedbackMessage: () => {
+ dispatch(clearFeebackMessage());
+ }
+ };
+};
+
+class SetAttribute extends Component {
+ render() {
+ let {
+ feedbackMsgText,
+ feedbackMsgSeverity,
+ handleSubmit,
+ clearFeedbackMessage} = this.props;
+ return (
+ <div>
+ <div className='header'>
+ <div className='application-title'>{i18n(SET_ATTRIBUTE_TITLE)}</div>
+ </div>
+ <div className='secondary-header'>
+ <span
+ className='secondary-title'>{i18n(ATTRIBUTE_MODIFICATION)}</span>
+ <InlineMessage level={feedbackMsgSeverity}
+ messageTxt={feedbackMsgText}/>
+ </div>
+
+ <ChangeAttributeForm
+ onSubmit={(values) => {
+ handleSubmit(values);
+ }}
+ buttonSelected={() => {
+ clearFeedbackMessage();
+ }}/>
+ </div>
+ );
+ }
+}
+
+export default connect(mapStateToProps, mapActionToProps)(SetAttribute);