/*! * 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 from 'react'; import PropTypes from 'prop-types'; import i18n from 'nfvo-utils/i18n/i18n.js'; import { actionsEnum } from './VersionControllerConstants.js'; import ActionButtons from './components/ActionButtons.jsx'; import NotificationsView from 'sdc-app/onboarding/userNotifications/NotificationsView.jsx'; class VersionController extends React.Component { static propTypes = { version: PropTypes.object, viewableVersions: PropTypes.array, onVersionSwitching: PropTypes.func, callVCAction: PropTypes.func, onSave: PropTypes.func, onClose: PropTypes.func, isFormDataValid: PropTypes.bool, onOpenCommentCommitModal: PropTypes.func, isReadOnlyMode: PropTypes.bool }; state = { showPermissions: false, showRevisions: false }; render() { let { version = {}, viewableVersions = [], onVersionSwitching, onMoreVersionsClick, callVCAction, onSave, isReadOnlyMode, itemPermission, isFormDataValid, onClose, onManagePermissions, permissions = {}, userInfo, usersList, itemName, onOpenCommentCommitModal, onOpenRevisionsModal, isManual, candidateInProcess, isArchived } = this.props; return (
onMoreVersionsClick({ itemName, users: usersList }) } /> {isArchived && (
{i18n('Archived')}
)}
this.submit(callVCAction, version) : undefined } onRevert={ callVCAction ? () => this.revert(callVCAction, version) : undefined } onOpenRevisionsModal={onOpenRevisionsModal} onSave={onSave ? () => onSave() : undefined} permissions={permissions} userInfo={userInfo} onManagePermissions={onManagePermissions} showPermissions={this.state.showPermissions} onClosePermissions={() => this.setState({ showPermissions: false }) } onClickPermissions={() => this.onClickPermissions()} onSync={ callVCAction ? () => this.sync(callVCAction, version) : undefined } onOpenCommentCommitModal={onOpenCommentCommitModal} onCommit={ callVCAction ? comment => this.commit( callVCAction, version, comment ) : undefined } isFormDataValid={isFormDataValid} itemPermissions={itemPermission} isArchived={isArchived} isReadOnlyMode={ isReadOnlyMode || candidateInProcess } isManual={isManual} />
{onClose && (
onClose()} data-test-id="vc-cancel-btn"> {' '} X
)}
); } onClickPermissions() { let { onOpenPermissions, usersList } = this.props; let { showPermissions } = this.state; let promise = showPermissions ? Promise.resolve() : onOpenPermissions({ users: usersList }); promise.then(() => this.setState({ showPermissions: !showPermissions }) ); } submit(callVCAction, version) { const action = actionsEnum.SUBMIT; callVCAction(action, version); } revert(callVCAction, version) { const action = actionsEnum.REVERT; callVCAction(action, version); } sync(callVCAction, version) { const action = actionsEnum.SYNC; callVCAction(action, version); } commit(callVCAction, version, comment) { const action = actionsEnum.COMMIT; callVCAction(action, version, comment); } permissions() {} } function VersionSelector(props) { let { version = {}, onMoreVersionsClick, viewableVersions = [], onVersionSwitching } = props; const includedVersions = viewableVersions.filter(ver => { return ver.id === version.id; }); return (
{i18n('Versions Page')}
); } export default VersionController;