/*!
* Copyright (C) 2017 AT&T Intellectual Property. 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.
*/
import React, {Component} from 'react';
import PropTypes from 'prop-types';
import enhanceWithClickOutside from 'react-click-outside';
import i18n from 'nfvo-utils/i18n/i18n.js';
import SVGIcon from 'sdc-ui/lib/react/SVGIcon.js';
import Overlay from 'nfvo-components/overlay/Overlay.jsx';
import Permissions from './Permissions.jsx';
class ClickOutsideWrapper extends Component {
handleClickOutside() {
this.props.onClose();
}
render() {
return
{this.props.children}
;
}
}
const EnhancedClickOutsideWrapper = enhanceWithClickOutside(ClickOutsideWrapper);
const VCButton = ({name, tooltipText, disabled, onClick, dataTestId}) => {
let onClickAction = disabled ? ()=>{} : onClick;
return (
);
};
const Separator = () => ();
const SubmitButton = ({onClick, disabled}) => (
onClick()} data-test-id='vc-submit-btn' className={`vc-submit-button ${disabled ? 'disabled' : ''}`}>
{i18n('Submit')}
);
const ActionButtons = ({isReadOnlyMode, onSubmit, onRevert, onSave, isFormDataValid, onClickPermissions, onSync, onCommit,
onOpenCommentCommitModal, showPermissions, onClosePermissions, permissions, onManagePermissions, userInfo, onOpenRevisionsModal, isManual,
itemPermissions: {isCertified, isCollaborator, isDirty, isOutOfSync, isUpToDate}}) => (
{showPermissions &&
}
{isCollaborator &&
{onSave &&
onSave()}
name='version-controller-save' tooltipText={i18n('Save')} disabled={isReadOnlyMode || !isFormDataValid} />
}
onOpenCommentCommitModal({onCommit, title: i18n('Commit')})}
name='version-controller-commit' tooltipText={i18n('Share')} disabled={isReadOnlyMode || !isDirty || isOutOfSync} />
{onRevert &&
}
{onSubmit && (permissions.owner && permissions.owner.userId === userInfo.userId) &&
}
}
);
ActionButtons.propTypes = {
version: PropTypes.object,
onSubmit: PropTypes.func,
onRevert: PropTypes.func,
onSave: PropTypes.func,
isLatestVersion: PropTypes.bool,
isCheckedIn: PropTypes.bool,
isCheckedOut: PropTypes.bool,
isFormDataValid: PropTypes.bool,
isReadOnlyMode: PropTypes.bool
};
export default ActionButtons;