2 * Copyright © 2016-2018 European Support Limited
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
13 * or implied. See the License for the specific language governing
14 * permissions and limitations under the License.
16 import React from 'react';
17 import VersionList from './components/VersionList.jsx';
18 import PermissionsView from './components/PermissionsView.jsx';
19 import Tree from 'nfvo-components/tree/Tree.jsx';
20 import SVGIcon from 'sdc-ui/lib/react/SVGIcon.js';
21 import Button from 'sdc-ui/lib/react/Button.js';
22 import i18n from 'nfvo-utils/i18n/i18n.js';
23 import featureToggle from 'sdc-app/features/featureToggle.js';
25 const DepricateButton = ({ depricateAction, title }) => (
26 <div className="depricate-btn-wrapper">
28 data-test-id="depricate-action-btn"
29 className="depricate-btn"
30 onClick={depricateAction}>
36 const FeatureDepricatedButton = featureToggle('ARCHIVE_ITEM')(DepricateButton);
38 const VersionPageTitle = ({
46 <div className="version-page-header">
47 <div className="versions-page-title">{`${i18n(
49 )} - ${itemName} ${depricatedTitle}`}</div>
50 <FeatureDepricatedButton
52 isArchived ? () => onRestore() : () => onArchive()
54 title={i18n(isArchived ? 'RESTORE' : 'ARCHIVE')}
60 class VersionsPage extends React.Component {
85 const depricatedTitle = isArchived ? i18n('(Archived)') : '';
87 <div className="versions-page-view">
90 depricatedTitle={depricatedTitle}
92 isArchived={isArchived}
97 contributors={contributors}
99 currentUser={currentUser}
101 onManagePermissions={onManagePermissions}
103 <div className="versions-page-list-and-tree">
104 <div className="version-tree-wrapper">
105 <div className="version-tree-title-container">
106 <div className="version-tree-title">
107 {i18n('Version Tree')}
109 {this.state.showExpanded && (
112 className="version-tree-full-screen"
115 name: 'versions-tree-popup',
118 nodes: versions.map(version => ({
121 parent: version.baseId || ''
123 onNodeClick: version =>
124 onModalNodeClick({ version }),
125 selectedNodeId: selectedVersion,
134 name={'versions-tree'}
136 allowScaleWidth={false}
137 nodes={versions.map(version => ({
140 parent: version.baseId || ''
142 onNodeClick={version =>
143 onSelectVersion({ version })
145 onRenderedBeyondWidth={() => {
146 this.setState({ showExpanded: true });
148 selectedNodeId={selectedVersion}
153 onSelectVersion={onSelectVersion}
154 onNavigateToVersion={onNavigateToVersion}
155 onCreateVersion={isArchived ? false : onCreateVersion}
156 selectedVersion={selectedVersion}
157 isCollaborator={isCollaborator}
165 export default VersionsPage;