|
|
@@ -18,142 +18,8 @@ import React from 'react'
|
|
|
import { observer } from 'mobx-react'
|
|
|
import styled, { css } from 'styled-components'
|
|
|
|
|
|
-import Generic from './images/Generic'
|
|
|
+import Generic from './resources/Generic'
|
|
|
|
|
|
-import aws32Image from './images/aws-32.svg'
|
|
|
-import azure32Image from './images/azure-32.svg'
|
|
|
-import opc32Image from './images/opc-32.svg'
|
|
|
-import openstack32Image from './images/openstack-32.svg'
|
|
|
-import oraclevm32Image from './images/oraclevm-32.svg'
|
|
|
-import vmware32Image from './images/vmware-32.svg'
|
|
|
-import oci32Image from './images/oci-32.svg'
|
|
|
-import hyperv32Image from './images/hyperv-32.svg'
|
|
|
-import scvmm32Image from './images/scvmm-32.svg'
|
|
|
-
|
|
|
-import aws32WhiteImage from './images/aws-32-white.svg'
|
|
|
-import azure32WhiteImage from './images/azure-32-white.svg'
|
|
|
-import opc32WhiteImage from './images/opc-32-white.svg'
|
|
|
-import openstack32WhiteImage from './images/openstack-32-white.svg'
|
|
|
-import oraclevm32WhiteImage from './images/oraclevm-32-white.svg'
|
|
|
-import vmware32WhiteImage from './images/vmware-32-white.svg'
|
|
|
-import oci32WhiteImage from './images/oci-32-white.svg'
|
|
|
-import hyperv32WhiteImage from './images/hyperv-32-white.svg'
|
|
|
-import scvmm32WhiteImage from './images/scvmm-32-white.svg'
|
|
|
-
|
|
|
-import aws42Image from './images/aws-42.svg'
|
|
|
-import azure42Image from './images/azure-42.svg'
|
|
|
-import opc42Image from './images/opc-42.svg'
|
|
|
-import openstack42Image from './images/openstack-42.svg'
|
|
|
-import oraclevm42Image from './images/oraclevm-42.svg'
|
|
|
-import vmware42Image from './images/vmware-42.svg'
|
|
|
-import oci42Image from './images/oci-42.svg'
|
|
|
-import hyperv42Image from './images/hyperv-42.svg'
|
|
|
-import scvmm42Image from './images/scvmm-42.svg'
|
|
|
-
|
|
|
-import aws64Image from './images/aws-64.svg'
|
|
|
-import azure64Image from './images/azure-64.svg'
|
|
|
-import opc64Image from './images/opc-64.svg'
|
|
|
-import openstack64Image from './images/openstack-64.svg'
|
|
|
-import oraclevm64Image from './images/oraclevm-64.svg'
|
|
|
-import vmware64Image from './images/vmware-64.svg'
|
|
|
-import oci64Image from './images/oci-64.svg'
|
|
|
-import hyperv64Image from './images/hyperv-64.svg'
|
|
|
-import scvmm64Image from './images/scvmm-64.svg'
|
|
|
-
|
|
|
-import aws128Image from './images/aws-128.svg'
|
|
|
-import azure128Image from './images/azure-128.svg'
|
|
|
-import opc128Image from './images/opc-128.svg'
|
|
|
-import openstack128Image from './images/openstack-128.svg'
|
|
|
-import oraclevm128Image from './images/oraclevm-128.svg'
|
|
|
-import vmware128Image from './images/vmware-128.svg'
|
|
|
-import oci128Image from './images/oci-128.svg'
|
|
|
-import hyperv128Image from './images/hyperv-128.svg'
|
|
|
-import scvmm128Image from './images/scvmm-128.svg'
|
|
|
-
|
|
|
-import aws128DisabledImage from './images/aws-128-disabled.svg'
|
|
|
-import azure128DisabledImage from './images/azure-128-disabled.svg'
|
|
|
-import opc128DisabledImage from './images/opc-128-disabled.svg'
|
|
|
-import openstack128DisabledImage from './images/openstack-128-disabled.svg'
|
|
|
-import oraclevm128DisabledImage from './images/oraclevm-128-disabled.svg'
|
|
|
-import vmware128DisabledImage from './images/vmware-128-disabled.svg'
|
|
|
-import oci128DisabledImage from './images/oci-128-disabled.svg'
|
|
|
-import hyperv128DisabledImage from './images/hyperv-128-disabled.svg'
|
|
|
-import scvmm128DisabledImage from './images/scvmm-128-disabled.svg'
|
|
|
-
|
|
|
-const endpointImages = {
|
|
|
- azure: [
|
|
|
- { h: 32, image: azure32Image },
|
|
|
- { h: 32, image: azure32WhiteImage, white: true },
|
|
|
- { h: 42, image: azure42Image },
|
|
|
- { h: 64, image: azure64Image },
|
|
|
- { h: 128, image: azure128Image },
|
|
|
- { h: 128, image: azure128DisabledImage, disabled: true },
|
|
|
- ],
|
|
|
- openstack: [
|
|
|
- { h: 32, image: openstack32Image },
|
|
|
- { h: 32, image: openstack32WhiteImage, white: true },
|
|
|
- { h: 42, image: openstack42Image },
|
|
|
- { h: 64, image: openstack64Image },
|
|
|
- { h: 128, image: openstack128Image },
|
|
|
- { h: 128, image: openstack128DisabledImage, disabled: true },
|
|
|
- ],
|
|
|
- opc: [
|
|
|
- { h: 32, image: opc32Image },
|
|
|
- { h: 32, image: opc32WhiteImage, white: true },
|
|
|
- { h: 42, image: opc42Image },
|
|
|
- { h: 64, image: opc64Image },
|
|
|
- { h: 128, image: opc128Image },
|
|
|
- { h: 128, image: opc128DisabledImage, disabled: true },
|
|
|
- ],
|
|
|
- oracle_vm: [
|
|
|
- { h: 32, image: oraclevm32Image },
|
|
|
- { h: 32, image: oraclevm32WhiteImage, white: true },
|
|
|
- { h: 42, image: oraclevm42Image },
|
|
|
- { h: 64, image: oraclevm64Image },
|
|
|
- { h: 128, image: oraclevm128Image },
|
|
|
- { h: 128, image: oraclevm128DisabledImage, disabled: true },
|
|
|
- ],
|
|
|
- vmware_vsphere: [
|
|
|
- { h: 32, image: vmware32Image },
|
|
|
- { h: 32, image: vmware32WhiteImage, white: true },
|
|
|
- { h: 42, image: vmware42Image },
|
|
|
- { h: 64, image: vmware64Image },
|
|
|
- { h: 128, image: vmware128Image },
|
|
|
- { h: 128, image: vmware128DisabledImage, disabled: true },
|
|
|
- ],
|
|
|
- aws: [
|
|
|
- { h: 32, image: aws32Image },
|
|
|
- { h: 32, image: aws32WhiteImage, white: true },
|
|
|
- { h: 42, image: aws42Image },
|
|
|
- { h: 64, image: aws64Image },
|
|
|
- { h: 128, image: aws128Image },
|
|
|
- { h: 128, image: aws128DisabledImage, disabled: true },
|
|
|
- ],
|
|
|
- oci: [
|
|
|
- { h: 32, image: oci32Image },
|
|
|
- { h: 32, image: oci32WhiteImage, white: true },
|
|
|
- { h: 42, image: oci42Image },
|
|
|
- { h: 64, image: oci64Image },
|
|
|
- { h: 128, image: oci128Image },
|
|
|
- { h: 128, image: oci128DisabledImage, disabled: true },
|
|
|
- ],
|
|
|
- 'hyper-v': [
|
|
|
- { h: 32, image: hyperv32Image },
|
|
|
- { h: 32, image: hyperv32WhiteImage, white: true },
|
|
|
- { h: 42, image: hyperv42Image },
|
|
|
- { h: 64, image: hyperv64Image },
|
|
|
- { h: 128, image: hyperv128Image },
|
|
|
- { h: 128, image: hyperv128DisabledImage, disabled: true },
|
|
|
- ],
|
|
|
- scvmm: [
|
|
|
- { h: 32, image: scvmm32Image },
|
|
|
- { h: 32, image: scvmm32WhiteImage, white: true },
|
|
|
- { h: 42, image: scvmm42Image },
|
|
|
- { h: 64, image: scvmm64Image },
|
|
|
- { h: 128, image: scvmm128Image },
|
|
|
- { h: 128, image: scvmm128DisabledImage, disabled: true },
|
|
|
- ],
|
|
|
-}
|
|
|
const Wrapper = styled.div``
|
|
|
const Logo = styled.div`
|
|
|
display: flex;
|
|
|
@@ -161,7 +27,7 @@ const Logo = styled.div`
|
|
|
justify-content: center;
|
|
|
width: ${props => props.width}px;
|
|
|
height: ${props => props.height}px;
|
|
|
- ${props => props.imageInfo ? css`background: url('${props.imageInfo.image}') no-repeat center;` : ''}
|
|
|
+ ${props => props.url ? css`background: url('${props.url}') no-repeat center;` : ''}
|
|
|
`
|
|
|
const widthHeights = [
|
|
|
{ w: 80, h: 32 },
|
|
|
@@ -169,12 +35,15 @@ const widthHeights = [
|
|
|
{ w: 192, h: 128 },
|
|
|
{ w: 192, h: 64 },
|
|
|
]
|
|
|
-
|
|
|
+const PROVIDER_LOGOS = [
|
|
|
+ 'azure', 'openstack', 'opc', 'oracle_vm', 'vmware_vsphere', 'aws', 'oci', 'hyper-v', 'scvmm',
|
|
|
+]
|
|
|
type Props = {
|
|
|
endpoint?: ?string,
|
|
|
height: number,
|
|
|
disabled?: boolean,
|
|
|
white?: boolean,
|
|
|
+ baseUrl?: string,
|
|
|
'data-test-id'?: string,
|
|
|
}
|
|
|
@observer
|
|
|
@@ -183,29 +52,6 @@ class EndpointLogos extends React.Component<Props> {
|
|
|
height: 64,
|
|
|
}
|
|
|
|
|
|
- renderLogo(size: { w: number, h: number }) {
|
|
|
- let imageInfo = null
|
|
|
-
|
|
|
- if (this.props.endpoint && endpointImages[this.props.endpoint]) {
|
|
|
- imageInfo = endpointImages[this.props.endpoint].find(
|
|
|
- i => i.h === size.h && (!this.props.disabled || i.disabled === true) && (!this.props.white || i.white === true))
|
|
|
- } else {
|
|
|
- return null
|
|
|
- }
|
|
|
-
|
|
|
- if (!imageInfo) {
|
|
|
- return null
|
|
|
- }
|
|
|
-
|
|
|
- return (
|
|
|
- <Logo
|
|
|
- width={size.w}
|
|
|
- height={size.h}
|
|
|
- imageInfo={imageInfo}
|
|
|
- />
|
|
|
- )
|
|
|
- }
|
|
|
-
|
|
|
renderGenericLogo(size: { w: number, h: number }) {
|
|
|
return (
|
|
|
<Generic
|
|
|
@@ -225,11 +71,12 @@ class EndpointLogos extends React.Component<Props> {
|
|
|
return null
|
|
|
}
|
|
|
|
|
|
- let imageInfo = null
|
|
|
-
|
|
|
- if (this.props.endpoint && endpointImages[this.props.endpoint]) {
|
|
|
- imageInfo = endpointImages[this.props.endpoint].find(i => i.h === size.h && (!this.props.disabled || i.disabled === true)
|
|
|
- && (!this.props.white || i.white === true))
|
|
|
+ let imageUrl: ?string = null
|
|
|
+ let provider = this.props.endpoint
|
|
|
+ if (provider && PROVIDER_LOGOS.indexOf(provider) > -1) {
|
|
|
+ imageUrl = `${this.props.baseUrl || ''}/api/logos/${provider}/${size.h}`
|
|
|
+ let style = this.props.white ? 'white' : this.props.disabled ? 'disabled' : null
|
|
|
+ imageUrl = style ? `${imageUrl}/${style}` : imageUrl
|
|
|
}
|
|
|
|
|
|
return (
|
|
|
@@ -237,10 +84,10 @@ class EndpointLogos extends React.Component<Props> {
|
|
|
<Logo
|
|
|
width={size.w}
|
|
|
height={size.h}
|
|
|
- imageInfo={imageInfo}
|
|
|
+ url={imageUrl}
|
|
|
data-test-id="endpointLogos-logo"
|
|
|
>
|
|
|
- {imageInfo ? null : this.renderGenericLogo(size)}
|
|
|
+ {imageUrl ? null : this.renderGenericLogo(size)}
|
|
|
</Logo>
|
|
|
</Wrapper>
|
|
|
)
|