/*!
* Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
*
* 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 {catalogItemTypeClasses, migrationStatusMapper} from './onboardingCatalog/OnboardingCatalogConstants.js';
import CatalogTile from './CatalogTile.jsx';
import VersionControllerUtils from 'nfvo-components/panel/versionController/VersionControllerUtils.js';
import {statusEnum, statusBarTextMap} from 'nfvo-components/panel/versionController/VersionControllerConstants.js';
import SVGIcon from 'sdc-ui/lib/react/SVGIcon.js';
import i18n from 'nfvo-utils/i18n/i18n.js';
import OverlayTrigger from 'react-bootstrap/lib/OverlayTrigger.js';
import tooltip from './onboardingCatalog/Tooltip.jsx';
const CatalogTileIcon = ({catalogItemTypeClass}) => (
);
const ItemTypeTitle = ({catalogItemTypeClass}) => {
const itemTypeTitle = catalogItemTypeClass === catalogItemTypeClasses.LICENSE_MODEL ? i18n('VLM') : i18n('VSP');
return (
{itemTypeTitle}
);
};
const CatalogTileVendorName = ({vendorName, catalogItemTypeClass}) => {
const name = catalogItemTypeClass === catalogItemTypeClasses.SOFTWARE_PRODUCT ? vendorName : '';
return ( name ?
{name}
: {name}
);
};
const CatalogTileItemName = ({name}) => (
{name}
);
const VersionInfo = ({version}) => (
);
const EntityDetails = ({catalogItemData, catalogItemTypeClass}) => {
const {vendorName, name, version} = catalogItemData;
return (
);
};
const ItemStatusInfo = ({catalogItemTypeClass, lockingUser, itemStatus}) => {
const status = statusBarTextMap[itemStatus];
const lockedBy = lockingUser ? ` by ${lockingUser}` : '';
const toolTipMsg = `${status}${lockedBy}`;
return (
);
};
const CatalogItemDetails = ({catalogItemData, catalogItemTypeClass, onSelect, onMigrate}) => {
let {status: itemStatus} = VersionControllerUtils.getCheckOutStatusKindByUserID(catalogItemData.status, catalogItemData.lockingUser);
return (
{
if (catalogItemData.isOldVersion && catalogItemData.isOldVersion === migrationStatusMapper.OLD_VERSION) {
onMigrate({
softwareProduct: catalogItemData
});
}
else {
onSelect();
}
}} data-test-id={catalogItemTypeClass}>
);
};
CatalogItemDetails.PropTypes = {
catalogItemData: React.PropTypes.obj,
catalogItemTypeClass: React.PropTypes.string,
onSelect: React.PropTypes.func,
onMigrate: React.PropTypes.func
};
export default CatalogItemDetails;