/*!
* 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 OverlayTrigger from 'react-bootstrap/lib/OverlayTrigger.js';
import Tooltip from 'react-bootstrap/lib/Tooltip.js';
import i18n from 'nfvo-utils/i18n/i18n.js';
import SVGIcon from 'sdc-ui/lib/react/SVGIcon.js';
const formatTime = (time) => {
if (!time) { return ''; }
const date = new Date(time);
const options = {
year: 'numeric',
month: 'short',
day: 'numeric',
hour: '2-digit',
minute: '2-digit'
};
const newDate = date.toLocaleTimeString('en-US', options);
return newDate;
};
const DescriptionField = ({ className, text, useTooltip }) => {
if (useTooltip) {
return (
);
}
return {text}
;
};
const VersionListItem = ({ data, onSelectVersion, onNavigateToVersion, onCreateVersion, isHeader, isSelected, isCollaborator }) => {
let {modificationTime, name, status, description, additionalInfo} = data;
const modificationText = !isHeader ? formatTime(modificationTime) : i18n('Last Edited On');
return (
{
e.stopPropagation();
onSelectVersion();
onNavigateToVersion();
}}>
{name}
{status}
{modificationText}
{
isHeader ?
{i18n('Actions')}
:
{e.stopPropagation(); onNavigateToVersion();}}
label={i18n('Go to this Version')}
labelPosition='right' />
{!isHeader && isCollaborator && additionalInfo.OptionalCreationMethods.length > 0 && onCreateVersion &&
{ e.stopPropagation(); onCreateVersion(); }}
label={i18n('Create New Version')}
labelPosition='right'
disabled={!isCollaborator || !onCreateVersion} />
}
}
);
};
const VersionList = ({ versions, onSelectVersion, onNavigateToVersion, onCreateVersion, selectedVersion, isCollaborator }) => (
{versions.map(version =>
onSelectVersion({version})}
onNavigateToVersion={() => onNavigateToVersion({version})}
onCreateVersion={onCreateVersion ? () => onCreateVersion({version}) : false}
isSelected={selectedVersion === version.id}
isCollaborator={isCollaborator} />
)}
);
export default VersionList;