/*! * 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;