/*!
* 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 'onap-ui-react';
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;