diff --git a/packages/xo-web/src/xo-app/home/pool-item.js b/packages/xo-web/src/xo-app/home/pool-item.js index aa732547ef9..066ff3b6457 100644 --- a/packages/xo-web/src/xo-app/home/pool-item.js +++ b/packages/xo-web/src/xo-app/home/pool-item.js @@ -96,24 +96,27 @@ export default class PoolItem extends Component { return Object.values(this.props.poolHosts)[0].productBrand === 'XCP-ng' } + _getPoolLicenseInfo = () => this.props.state.poolLicenseInfoByPoolId[this.props.item.id] + _getAlerts = createSelector( - () => this.props.item, () => this.props.isAdmin, - () => this.props.state, - (pool, isAdmin, reacletteState) => { + this._getPoolLicenseInfo, + (isAdmin, poolLicenseInfo) => { const alerts = [] - if (isAdmin) { - const { icon, supportLevel } = reacletteState.poolLicenseInfoByPoolId[pool.id] - const level = supportLevel === 'total' ? 'success' : supportLevel === 'partial' ? 'warning' : 'danger' - alerts.push({ - level, - render: ( -

- {icon()} {this._getPoolLicenseIconTooltip()} -

- ), - }) + if (isAdmin && this._isXcpngPool()) { + const { icon, supportLevel } = poolLicenseInfo + if (supportLevel !== 'total') { + const level = supportLevel === 'partial' ? 'warning' : 'danger' + alerts.push({ + level, + render: ( +

+ {icon()} {this._getPoolLicenseIconTooltip()} +

+ ), + }) + } } return alerts } @@ -122,6 +125,7 @@ export default class PoolItem extends Component { render() { const { item: pool, expandAll, selected, hostMetrics, poolHosts, nSrs, nVms } = this.props const { missingPatchCount } = this.state + const { icon, supportLevel } = this._getPoolLicenseInfo() return (
@@ -134,8 +138,6 @@ export default class PoolItem extends Component { - {isAdmin && this._isXcpngPool() && {this._getPoolLicenseIcon()}} -        @@ -146,6 +148,9 @@ export default class PoolItem extends Component { )} +   + {isAdmin && this._isXcpngPool() && supportLevel === 'total' && icon(this._getPoolLicenseIconTooltip())} +   {pool.HA_enabled && (    diff --git a/packages/xo-web/src/xo-app/index.js b/packages/xo-web/src/xo-app/index.js index b3cb7405bbd..030e25c81bf 100644 --- a/packages/xo-web/src/xo-app/index.js +++ b/packages/xo-web/src/xo-app/index.js @@ -50,6 +50,7 @@ import Xosan from './xosan' import Import from './import' import keymap, { help } from '../keymap' +import Tooltip from '../common/tooltip' import { createCollectionWrapper, createGetObjectsOfType } from '../common/selectors' import { bindXcpngLicense, rebindLicense, subscribeXcpngLicenses } from '../common/xo' import { SOURCES } from '../common/xoa-plans' @@ -88,10 +89,12 @@ const WrapperIconPoolLicense = ({ children }) => ( ) export const ICON_POOL_LICENSE = { - total: () => ( - - - + total: tooltip => ( + + + + + ), partial: () => (