/*! * Copyright © 2016-2018 European Support Limited * * 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, isArchived, onOpenCommentCommitModal, showPermissions, onClosePermissions, permissions, onManagePermissions, userInfo, onOpenRevisionsModal, isManual, itemPermissions: { isCertified, isCollaborator, isDirty, isOutOfSync, isUpToDate } }) => (
{showPermissions && ( )} {isCollaborator && !isArchived && (
{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 && (
)}
)}
); 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;