/* * 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 { SVGIcon } from 'onap-ui-react'; import NameEditInput from './NameEditInput.js'; import SelectWithFileType from './SelectWithFileType'; import { fileTypes } from '../HeatSetupConstants.js'; import AddOrDeleteVolumeFiles from './AddOrDeleteVolumeFiles'; class ModuleFile extends React.Component { constructor(props) { super(props); this.state = { isInNameEdit: false }; } handleSubmit(event, name) { if (event.keyCode === 13) { this.handleModuleRename(event, name); } } handleModuleRename(event, name) { this.setState({ isInNameEdit: false }); this.props.onModuleRename(name, event.target.value); } deleteVolumeFiles() { const { onModuleFileTypeChange, onToggleVolFilesDisplay } = this.props; onModuleFileTypeChange(null, fileTypes.VOL.label); onModuleFileTypeChange(null, fileTypes.VOL_ENV.label); onToggleVolFilesDisplay(false); } renderNameAccordingToEditState() { const { module: { name } } = this.props; if (this.state.isInNameEdit) { return ( this.handleModuleRename(evt, name)} onKeyDown={evt => this.handleSubmit(evt, name)} /> ); } return {name}; } render() { const { module: { name, isBase, yaml, env, vol, volEnv }, onModuleDelete, files, onModuleFileTypeChange, onToggleVolFilesDisplay, isReadOnlyMode, displayVolumes } = this.props; //const { displayVolumes } = this.state; const moduleType = isBase ? 'BASE' : 'MODULE'; return (
{`${moduleType}: `}
{this.renderNameAccordingToEditState()} {!this.state.isInNameEdit && ( this.setState({ isInNameEdit: true }) } data-test-id={ isBase ? 'base-name' : 'module-name' } /> )}
onModuleDelete(name)} data-test-id="module-delete" />
{displayVolumes && ( )} {displayVolumes && ( )} onToggleVolFilesDisplay(true)} onDelete={() => this.deleteVolumeFiles()} add={!displayVolumes} />
); } } export default ModuleFile;