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 = ({
47 <div className="version-page-header">
48 <div className="versions-page-title">{`${i18n(
50 )} - ${itemName} ${depricatedTitle}`}</div>
52 <FeatureDepricatedButton
54 isArchived ? () => onRestore() : () => onArchive()
56 title={i18n(isArchived ? 'RESTORE' : 'ARCHIVE')}
63 class VersionsPage extends React.Component {
88 const depricatedTitle = isArchived ? i18n('(Archived)') : '';
90 <div className="versions-page-view">
93 depricatedTitle={depricatedTitle}
95 isArchived={isArchived}
97 isCollaborator={isCollaborator}
101 contributors={contributors}
103 currentUser={currentUser}
105 onManagePermissions={onManagePermissions}
107 <div className="versions-page-list-and-tree">
108 <div className="version-tree-wrapper">
109 <div className="version-tree-title-container">
110 <div className="version-tree-title">
111 {i18n('Version Tree')}
113 {this.state.showExpanded && (
116 className="version-tree-full-screen"
119 name: 'versions-tree-popup',
122 nodes: versions.map(version => ({
125 parent: version.baseId || ''
127 onNodeClick: version =>
128 onModalNodeClick({ version }),
129 selectedNodeId: selectedVersion,
138 name={'versions-tree'}
140 allowScaleWidth={false}
141 nodes={versions.map(version => ({
144 parent: version.baseId || ''
146 onNodeClick={version =>
147 onSelectVersion({ version })
149 onRenderedBeyondWidth={() => {
150 this.setState({ showExpanded: true });
152 selectedNodeId={selectedVersion}
157 onSelectVersion={onSelectVersion}
158 onNavigateToVersion={onNavigateToVersion}
159 onCreateVersion={isArchived ? false : onCreateVersion}
160 selectedVersion={selectedVersion}
161 isCollaborator={isCollaborator}
169 export default VersionsPage;